Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 5 von 5

Thema: libnodave TCP/IP auf S7

  1. #1
    Registriert seit
    01.08.2005
    Beiträge
    75
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich versuche mit hilfe libnodave-0.8.4.5 und Microsoft Visual Basic 2008 Express Edition auf eine S7 400 über eine TCP/IP Verbindung Daten zu lesen.

    Gibt es ein Beispiel in VB?
    Zitieren Zitieren libnodave TCP/IP auf S7  

  2. #2
    Registriert seit
    15.10.2008
    Beiträge
    75
    Danke
    15
    Erhielt 3 Danke für 3 Beiträge

    Standard

    in dem Archiv von Libnodave ist doch ein beispiel dabei. Guck mal in dem Ordner libnodave-0.8.4.5\Excel And VB
    Wobei das eher für excel gedacht ist. vielleicht einfach erst mal da testen und dann unter VB weitermachen.


    Gruß
    Tobl

  3. #3
    Registriert seit
    27.11.2005
    Ort
    im Osten
    Beiträge
    1.183
    Danke
    141
    Erhielt 271 Danke für 248 Beiträge

    Standard

    ich hatte mal ein kleines Beispiel für ein anderes Forenmitglied gemacht, dass war allerdings für MPI, ich hab das hier
    mal schnell auf TCP/IP umgeschreiben, kann also noch nen Fehler enthalten, sollte dir aber erstmal weiterhelfen.
    Im Archiv von Libnodave findest du auch ein Beispiel in C#(im Dot.Net/CS Verzeichnis), dass sich leicht umschreiben lässt.


    Code:
    Public Class Form1
        Dim fds As libnodave.daveOSserialType
        Dim di As New libnodave.daveInterface(fds, "IF 1", Localmpi, libnodave.daveProtoISOTCP, libnodave.daveSpeed187k)
        Dim dc As New libnodave.daveConnection(di, plcmpi, 0, 2)
        Dim Localmpi As Integer = 0
        Dim plcmpi As Integer = 2
        Dim buf(1000) As Byte
        Dim res As Integer = 0
    
        Private Sub Button_Connect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Connect.Click
            fds.rfd = libnodave.openSocket(102, "127.0.0.1")
            fds.wfd = fds.rfd
            If fds.rfd > 0 Then       
                di = New libnodave.daveInterface(fds, "IF 1", Localmpi, libnodave.daveProtoISOTCP, libnodave.daveSpeed187k)
                di.setTimeout(1000000)  
                res = di.initAdapter
                If res = 0 Then      
                    dc = New libnodave.daveConnection(di, plcmpi, 0, 2)  
                    res = dc.connectPLC()
                    If res = 0 Then
                        Label_verbindung.Text = "Verbindung aufgebaut"
                        Label_verbindung.BackColor = Color.Lime
                        Button_Connect.Enabled = False
                        Button_Disconnect.Enabled = True
                        Timer_refresh.Enabled = True
                        Timer_refresh.Start()
                    Else
                        TextBox_status.Text = "Fehler bei connect PLC " & res
                        di.disconnectAdapter()
                        libnodave.closesocket(fds.rfd)
                    End If
                Else
                    TextBox_status.Text = "Fehler bei init Adapter " & res
                    libnodave.closesocket(fds.rfd)   
                End If
            Else
                TextBox_status.Text = "Fehler beim öffnen des Serielen Ports"
            End If
        End Sub
    
        Private Sub Button_Disconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Disconnect.Click
            
            dc.disconnectPLC()
            di.disconnectAdapter()  
            libnodave.closesocket(fds.rfd)
    
            Label_verbindung.Text = "Verbindung abgebaut"
            Label_verbindung.BackColor = Color.Transparent
            Button_Connect.Enabled = True
            Button_Disconnect.Enabled = False
            Timer_refresh.Stop()
            Timer_refresh.Enabled = False
        End Sub
    
        Private Sub Timer_refresh_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer_refresh.Tick
             res = dc.readBytes(libnodave.daveFlags, 0, 0, 16, buf)
            If res = 0 Then
                TextBox1.Text = CInt(buf(0))
                TextBox2.Text = CInt(libnodave.getS16from(buf, 0))
            Else
                TextBox_status.Text = "Fehler beim Lesen " & res
            End If
        End Sub
    End Class
    Geändert von MW (20.11.2009 um 13:42 Uhr)
    Es ist nicht schwierig, mit noch nicht erreichten Zielen zu Leben; schwierig ist, ohne Ziele zu Leben !
    (Günther Kraftschik)

  4. #4
    Franz ist offline Benutzer
    Themenstarter
    Registriert seit
    01.08.2005
    Beiträge
    75
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke !

    ich möchte in einen DB einen Wert schreiben habe mir folgende Funktion erstellt.

    dc.writeBytes(libnodave.daveDB, 4, 4, 4, buf)

    aber wie schreibe ich der Wert in die Funktion.

    dc.writeBytes(libnodave.daveDB, 4, 4, 4, buf) = wert ????

    Ich arbeite mit VB. Das ist aber schon etwas länger her.
    Geändert von Franz (21.11.2009 um 20:45 Uhr)

  5. #5
    Registriert seit
    27.11.2005
    Ort
    im Osten
    Beiträge
    1.183
    Danke
    141
    Erhielt 271 Danke für 248 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Franz Beitrag anzeigen
    ich möchte in einen DB einen Wert schreiben habe mir folgende Funktion erstellt.

    dc.writeBytes(libnodave.daveDB, 4, 4, 4, buf)

    aber wie schreibe ich der Wert in die Funktion.

    dc.writeBytes(libnodave.daveDB, 4, 4, 4, buf) = wert ????

    Ich arbeite mit VB. Das ist aber schon etwas länger her.
    Deinen zuschreibenden Wert musst du bei "buf" reinschreiben bzw. "buf" vorher mit dem Wert füllen(Achtung: Byte Array !!!), dass könnte dann für einen Real Wert zb. so aussehen:

    Code:
    dc.writeBytes(libnodave.daveDB, 4, 4, 4, BitConverter.GetBytes(libnodave.daveToPLCfloat(CSng(neuer_Wert))))
    Es ist nicht schwierig, mit noch nicht erreichten Zielen zu Leben; schwierig ist, ohne Ziele zu Leben !
    (Günther Kraftschik)

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 09.09.2010, 00:27
  2. ÄÖnderungen am libnodave.net.cs File von libnodave
    Von Jochen Kühner im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 12.05.2010, 16:56
  3. LibNoDave unter VB.Net ohne libnodave.net.dll
    Von Earny im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 09.03.2010, 18:57
  4. libnodave: Woher kommt die "libnodave.net.dll"?
    Von Thomas_v2.1 im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 10.11.2008, 12:07
  5. VB.Net und Libnodave
    Von oliverlorenz im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 07.05.2008, 10:54

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •