libnodave keine Verb. mehr nach 3. Versuch

noeppkes

Level-1
Beiträge
150
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich bin erade dabei mit Libnodave zu experimentieren.
Dabei habe ich ein VB6-Programm mit dem ich die Verbindung Auf- und Abbauen und auch Daten lesen kann.
Das ganze funktioniert genau 3x. Nach dem 3. Mal bekomme ich keine Verbindung mehr.
Woran kann das liegen ?

libnodave Version 0.8.4.4

noeppkes ...
 
ich bin erade dabei mit Libnodave zu experimentieren.
Dabei habe ich ein VB6-Programm mit dem ich die Verbindung Auf- und Abbauen und auch Daten lesen kann.
Das ganze funktioniert genau 3x. Nach dem 3. Mal bekomme ich keine Verbindung mehr.
Woran kann das liegen ?

das kann mehrer Ursachen haben, z.b. das du deine Verbindung nicht richtig abbaust und dadurch die Kommunikationresourcen der CPU belegt bleiben.
am besten du stellst mal deinen Code mit dem Verbindungsaufbau- und abbau
hier rein.
Die rückgabewerte des fehlgeschlagen Verbindungsaufbau wären auch nicht schlecht ;)

ohne genauere info´s zum Problem kann dir da wohl kaum jemand helfen. ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

der Code stammt von dem Beispielprojekt.
Sobald ich das 3. mal die Verbindung abgebaut habe, bekomme ich keine Verbindung mehr.
Klar, ist vielleicht kein unbedingter Anwendungsfall, stört jedoch trotzdem.

'Verbindungsabbau:
Die Rückgabewerte von hConection und hInterface sind immer 0, hSocket ist immer 1.

Verbindungsaufbau beim Versuch > 3:
hSocket irgend ein Wert um die 600 ... 800.
RetCode ist dann immer 0 ?

Nach irgend einer Zeit (Timeout-Zeit ? schätze so um die halbe Stunde, muss ich aber noch einmal prüfen) geht es dann wieder 3 mal.

noeppkes ...

Code:
´
' Verbindungsaufbau über das Beispiel von libnodave
Private Sub cmdConnect_Click()
  ' Verbindung herstellen
  Dim RetCode As Long
  lblConnect.Caption = "connected to " & S7_IP & " ... failed!"   ' ... von Natur aus pessimistisch ;-)
  hSocket = openSocket(102, S7_IP)                               ' for ISO over TCP, siehe Doku zu libnodave
 
  If hSocket > 0 Then
    hInterface = daveNewInterface(hSocket, hSocket, "DEMO", 0, daveProtoISOTCP, 0)
    RetCode = daveInitAdapter(hInterface)
    If RetCode = daveResOK Then
      hConnection = daveNewConnection(hInterface, 0, 0, 2)
      RetCode = daveConnectPLC(hConnection)
      If RetCode = daveResOK Then
         lblConnect.Caption = "connected to " & S7_IP
         tcp_connection = True
      End If
      cmdConnect.Enabled = (RetCode <> 0)
      cmdDisconnect.Enabled = (RetCode = 0)
      cmdRead.Enabled = (RetCode = 0)
      cmdWrite.Enabled = (RetCode = 0)
    End If
  End If
 
End Sub
 
 
' Verbindungsabbau über das Beispiel von libnodave
Private Sub cmdDisconnect_Click()
  ' Verbindung abbauen
  Dim RetCode As Long
  If hConnection <> 0 Then
    RetCode = daveDisconnectPLC(hConnection)
    'MsgBox ("1: " & RetCode)
    daveFree hConnection
    hConnection = 0
  End If
 
  If hInterface <> 0 Then
    RetCode = daveDisconnectAdapter(hInterface)
    'MsgBox ("2: " & RetCode)
    daveFree hInterface
    hInterface = 0
  End If
 
  If hSocket <> 0 Then
    'MsgBox ("CP: " & hSocket)
    RetCode = closePort(hSocket)
    'MsgBox ("3: " & RetCode)
    hSocket = 0
  End If
 
  tcp_connection = False
 
  cmdConnect.Enabled = True
  cmdDisconnect.Enabled = False
  cmdRead.Enabled = False
  cmdWrite.Enabled = False
  lblConnect.Caption = ""
End Sub
 
Hallo noeppkes,

habe gerade dein Code ausprobiert, funktioniert bei mir ohne Probleme. Ich kann die Verbindung beliebig oft auf- und abbauen.
Ich habe mit einer 313C und einem IBHsoftec Link S7++ getestet.
Ist deine Konfiguration von dem MPI/LAN Wandler richtig?

Gruß Thomas
 
Hallo Thomas,

was für ein MPI/LAN-Wandler ?
Ich gehe mit meinem Laptop direkt auf's Netzwerk über den Netzwerkanschluss in meinem Laptop.
Beim CP343-1 LEAN kann ich in der HW-Konfig nichts finden.
Der CP343-1 LEAN hängt direkt am Netzwerk-Switch.

Es funktioniert ja auch soweit, nur wie gesagt:
3 mal hintereinander auf- und abbauen, dann ist erst mal tutti.
Die Keep-alive Timout-Zeit im CP343-1 LEAN ist auf 30 Sekunden eingestellt.

noeppkes ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo noeppkes,

Sorry, bin von einem MPI/LAN Wandler ausgegangen. Den CP343-1 LEAN kenne ich nicht. Ich habe es eben noch kurz mit einer Vipa 313SC mit eingebauten LAN versucht, hat auch ohne Probleme funktioniert. Hast du es mal ohne Switch versucht also mit einem Crossover Netzwerkkabel direkt zwischen Laptop und CP343, nur um den Switch als Fehler auszuschließen. Da das Programm bei mir funktioniert, denke ich mal das der Fehler eher an der Hardware zusuchen ist. Tut mir leid, dass ich dir nicht weiter helfen kann.

Gruß Thomas
 
Zurück
Oben