Sonstiges libnodave & vb2010 & logo

drake

Level-1
Beiträge
13
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forenmitglieder!

Ich habe ein Problem beim Versuch eine Verbindung mit vb.net und libnodave zur Siemens Logo herzustellen. Alle Beispiele, die ich bis jetzt ausprobiert habe führten nicht zum Erfolg.

Siemens Logo = 0BA8, Betriebssystem = Windows 7 64bit, VB = Visual Basic 2010 Express, libnodave = 0.8.5

Könnt ihr mir da bitte behilflich sein?
Mit welchen Schritten würdet ihr mir empfehlen anzufangen?

Grüße, drake
 
Du könntest dir das Siemens Beispiel für eine Verbindung von WinCC flexible zu einer Logo ansehen:

http://w3.siemens.com/mcms/programm...-logo/anwendungsbeispiele/seiten/default.aspx

Unter "Beispiele für LOGO! 0BA7 und 0BA8" die Einstiegshilfe für "HMI Kommunikation mit WinCC flexible".

Bis zum Abschnitt von WinCC flexible stellst du erstmal deine Logo passend ein. Mit libnodave dann mit der IP und der Rack/Slot Kombination 0/0 darauf zugreifen. Wie die Speicherbereiche umgesetzt werden steht ebenfalls in dem Dokument.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke, bin dabei ... bei "Ethernet-Verbindungen projektieren" läßt sich das Fenster erst schließen, wenn ein "korrekter TSAP" eingegeben wird, in der Anleitung ist dieses Feld allerdings leer -> da komm ich im Moment nicht weiter ...

Beim Versuch mit dem (im libnodave-Paket enthaltenem Programm) testISO_TCP.exe eine Verbindung herzustellen kommt die Ausgabe:

Code:
C:\libnodave-0.8.5\win>testISO_TCP.exe 192.168.144.161
IF1 error in daveConnectPLC() step 1. retrying...
IF1 error in daveConnectPLC() step 1. retrying...
IF1 error in daveConnectPLC() step 1. retrying...
Couldn't connect to PLC.
 Please make sure you use the -2 option with a CP243 but not with CPs 343 or 443.

Verbindung von LogoSoft zur Logo klappt ohne Probleme.
 
Probier mal
Code:
testISO_TCP.exe --slot=0 192.168.144.161

Der TSAP scheint nur für die Client-Funktionalität zu sein, die du hier aber nicht benötigst da die Logo Server ist. Stell einfach irgendwas gültiges ein (z.B. 1234).
 
Leider das gleiche Ergebnis:
Code:
C:\libnodave-0.8.5\win>testISO_TCP.exe --slot=0 192.168.144.161
IF1 error in daveConnectPLC() step 1. retrying...
IF1 error in daveConnectPLC() step 1. retrying...
IF1 error in daveConnectPLC() step 1. retrying...
Couldn't connect to PLC.
 Please make sure you use the -2 option with a CP243 but not with CPs 343 or 443.

Der TSAP mit "1234" ist anscheinend nicht gültig:
"Sie müssen einen korrekten dezentralen TSAP eingeben."
 
Die Hilfe sagt:
"Hier können Sie die Eigenschaften des Clients festlegen. Der dezentrale TSAP ist der TSAP des Clients, zu dem Sie eine Verbindung herstellen möchten."

Vielleicht braucht man diese Einstellung ja nur, wenn ein "HMI" angeschlossen wird?
 
Dann tippe da mal 02.00 ein.
Außerdem den Haken bei "Alle Verbindungen akzeptieren" setzen.

Die Logo V8 scheint sich auch etwas anders zu verhalten, wie eine S7-200. Ansonsten beim Testprogramm mit der zusätzlichen Option -2 probieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
OK, mit 02.00 und dem Haken hat's funktioniert!

Das mit dem -2 hat nicht geholfen:
Code:
C:\libnodave-0.8.5\win>testISO_TCP.exe --slot=0 -2 192.168.144.161
IF1 error in daveConnectPLC() step 1. retrying...IF1 error in daveConnectPLC() step 1. retrying...IF1 error in daveConnectPLC() step 1. retr
ying...Couldn't connect to PLC.
 Please make sure you use the -2 option with a CP243 but not with CPs 343 or 443.
 
Ohne auch nicht:
Code:
C:\libnodave-0.8.5\win>testISO_TCP.exe --slot=0 192.168.144.161
IF1 error in daveConnectPLC() step 1. retrying...
IF1 error in daveConnectPLC() step 1. retrying...
IF1 error in daveConnectPLC() step 1. retrying...
Couldn't connect to PLC.
 Please make sure you use the -2 option with a CP243 but not with CPs 343 or 443.

Ja, ping funktioniert:
Code:
C:\libnodave-0.8.5\win>ping 192.168.144.161

Ping wird ausgeführt für 192.168.144.161 mit 32 Bytes Daten:
Antwort von 192.168.144.161: Bytes=32 Zeit=2ms TTL=255
Antwort von 192.168.144.161: Bytes=32 Zeit=3ms TTL=255
Antwort von 192.168.144.161: Bytes=32 Zeit=3ms TTL=255
Antwort von 192.168.144.161: Bytes=32 Zeit=3ms TTL=255

Ping-Statistik für 192.168.144.161:
    Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
    (0% Verlust),
Ca. Zeitangaben in Millisek.:
    Minimum = 2ms, Maximum = 3ms, Mittelwert = 2ms
 
Wow, das wird ja mitteilsam:

Code:
C:\libnodave-0.8.5\win>testISO_TCP.exe --slot=0 -d 192.168.144.161
openSocketw.c: enter OpenSocket
openSocketw.c: 1
openSocketw.c: 2 6600
openSocketw.c: peer:192.168.144.161=-1584355136
openSocketw.c: 6
openSocketw.c: 7
openSocketw.c: socket is 116
openSocketw.c: setsockopt No error 0
openSocketw.c: 8
openSocketw.c: Connected to host: 192.168.144.161
send packet: :
                            0:0x03,0x00,0x00,0x16,0x11,0xE0,0x00,0x00,0x00,0x01,0x00,0xC1,0x02,0x01,0x00,0xC2,
                            10:0x02,0x01,0x00,0xC0,0x01,0x09,
readISOpacket: 22 bytes read, 22 needed
readISOpacket: packet:
                            0:0x03,0x00,0x00,0x16,0x11,0xD0,0x00,0x01,0xAB,0xF7,0x00,0xC0,0x01,0x09,0xC1,0x02,
                            10:0x01,0x00,0xC2,0x02,0x01,0x00,
IF1 daveConnectPLC() step 1. got packet: :
                            0:0x03,0x00,0x00,0x16,0x11,0xD0,0x00,0x01,0xAB,0xF7,0x00,0xC0,0x01,0x09,0xC1,0x02,
                            10:0x01,0x00,0xC2,0x02,0x01,0x00,
TPDU len 9 = 512
PDU header:
                            0:0x32,0x01,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,
plen: 8 dlen: 0
Parameter:
                            0:0xF0,0x00,0x00,0x01,0x00,0x01,0x07,0x80,
_daveExchange PDU number: 65535
IF1 enter _daveExchangeTCP
send packet: :
                            0:0x03,0x00,0x00,0x19,0x02,0xF0,0x80,0x32,0x01,0x00,0x00,0xFF,0xFF,0x00,0x08,0x00,
                            10:0x00,0xF0,0x00,0x00,0x01,0x00,0x01,0x07,0x80,
readISOpacket: 27 bytes read, 27 needed
readISOpacket: packet:
                            0:0x03,0x00,0x00,0x1B,0x02,0xF0,0x80,0x32,0x03,0x00,0x00,0xFF,0xFF,0x00,0x08,0x00,
                            10:0x00,0x81,0x04,0xF0,0x00,0x00,0x01,0x00,0x01,0x00,0xF0,
IF1 _daveExchangeTCP res from read 27
result of exchange: 0
PDU header:
                            0:0x32,0x03,0x00,0x00,0xFF,0xFF,0x00,0x08,0x00,0x00,0x81,0x04,
plen: 8 dlen: 0
Parameter:
                            0:0xF0,0x00,0x00,0x01,0x00,0x01,0x00,0xF0,
error: context is not supported. Step7 says:Function not implemented or error in telgram.
IF1 error in daveConnectPLC() step 1. retrying...
PDU header:
                            0:0x32,0x01,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,
plen: 8 dlen: 0
Parameter:
                            0:0xF0,0x00,0x00,0x01,0x00,0x01,0x07,0x80,
_daveExchange PDU number: 65536
IF1 enter _daveExchangeTCP
send packet: :
                            0:0x03,0x00,0x00,0x19,0x02,0xF0,0x80,0x32,0x01,0x00,0x00,0x00,0x00,0x00,0x08,0x00,
                            10:0x00,0xF0,0x00,0x00,0x01,0x00,0x01,0x07,0x80,
readISOpacket: 27 bytes read, 27 needed
readISOpacket: packet:
                            0:0x03,0x00,0x00,0x1B,0x02,0xF0,0x80,0x32,0x03,0x00,0x00,0x00,0x00,0x00,0x08,0x00,
                            10:0x00,0x81,0x04,0xF0,0x00,0x00,0x01,0x00,0x01,0x00,0xF0,
IF1 _daveExchangeTCP res from read 27
result of exchange: 0
PDU header:
                            0:0x32,0x03,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x81,0x04,
plen: 8 dlen: 0
Parameter:
                            0:0xF0,0x00,0x00,0x01,0x00,0x01,0x00,0xF0,
error: context is not supported. Step7 says:Function not implemented or error in telgram.
IF1 error in daveConnectPLC() step 1. retrying...
PDU header:
                            0:0x32,0x01,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,
plen: 8 dlen: 0
Parameter:
                            0:0xF0,0x00,0x00,0x01,0x00,0x01,0x07,0x80,
_daveExchange PDU number: 65537
IF1 enter _daveExchangeTCP
send packet: :
                            0:0x03,0x00,0x00,0x19,0x02,0xF0,0x80,0x32,0x01,0x00,0x00,0x00,0x01,0x00,0x08,0x00,
                            10:0x00,0xF0,0x00,0x00,0x01,0x00,0x01,0x07,0x80,
readISOpacket: 27 bytes read, 27 needed
readISOpacket: packet:
                            0:0x03,0x00,0x00,0x1B,0x02,0xF0,0x80,0x32,0x03,0x00,0x00,0x00,0x01,0x00,0x08,0x00,
                            10:0x00,0x81,0x04,0xF0,0x00,0x00,0x01,0x00,0x01,0x00,0xF0,
IF1 _daveExchangeTCP res from read 27
result of exchange: 0
PDU header:
                            0:0x32,0x03,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x81,0x04,
plen: 8 dlen: 0
Parameter:
                            0:0xF0,0x00,0x00,0x01,0x00,0x01,0x00,0xF0,
error: context is not supported. Step7 says:Function not implemented or error in telgram.
IF1 error in daveConnectPLC() step 1. retrying...
Couldn't connect to PLC.
 Please make sure you use the -2 option with a CP243 but not with CPs 343 or 443.

ok, Danke erstmal für deine Hilfe!
 
Hab grade nochmal in den libnodave Code reingeschaut. Er verwendet so wie es aussieht den TSAP 01.00 wenn du es mit slot=0 aufrufst.
Mit dem mitgelieferten Testprogramm bekommst du keine Verbindung hin. So wie es in den Screenshots aussieht, ist der TSAP 02.00 für den Server auch nicht änderbar.

Du musst also schon dein eigenes Programm schreiben, und dann über die Funktion daveSetCommunicationType auf OP (2) umstellen, das ist dann das erste Byte im TSAP.
 
Hab ich gemacht, hier die Ausgabe:

Code:
C:\libnodave-0.8.5\win>testISO_TCP.exe --slot=0 -2 -d 192.168.144.161
openSocketw.c: enter OpenSocket
openSocketw.c: 1
openSocketw.c: 2 6600
openSocketw.c: peer:192.168.144.161=-1584355136
openSocketw.c: 6
openSocketw.c: 7
openSocketw.c: socket is 116
openSocketw.c: setsockopt No error 0
openSocketw.c: 8
openSocketw.c: Connected to host: 192.168.144.161
send packet: :
                            0:0x03,0x00,0x00,0x16,0x11,0xE0,0x00,0x00,0x00,0x01,0x00,0xC1,0x02,0x4D,0x57,0xC2,
                            10:0x02,0x4D,0x57,0xC0,0x01,0x09,
IF1 daveConnectPLC() step 1. got packet: :
IF1 error in daveConnectPLC() step 1. retrying...IF1 daveConnectPLC() step 1. got packet: :
IF1 error in daveConnectPLC() step 1. retrying...IF1 daveConnectPLC() step 1. got packet: :
IF1 error in daveConnectPLC() step 1. retrying...Couldn't connect to PLC.
 Please make sure you use the -2 option with a CP243 but not with CPs 343 or 443.
 
Probier mal ob es mit der angehängten Datei funktioniert, zumindest der Verbindungsaufbau.
Wenn es damit funktioniert muss man später die libnodave.dll noch anpassen, wenn du diese aus deinem vb Programm verwenden willst. Brauchst dazu nur einen Hex-Editor.
 

Anhänge

  • testISO_TCPp.zip
    55,8 KB · Aufrufe: 23
Zurück
Oben