-> Hier kostenlos registrieren
Hallo zusammen,
inzwischen bin ich dabei mit dem S7Online Protokoll zu experimentieren und habe dieses prinzipiell mit dem PCMCIA CP5511 MPI/Profibus Adapter zum laufen bekommen. Den Verbindungsauf und Abbau habe ich gemäss diverser Programmbeispiele folgendermassen vorgenommen:
Verbindungsaufbau (wichtigsten Funktionen aus dem Code extrahiert):
fds.rfd = libnodave.openS7online(S7Online_accesspoint)
fds.wfd = fds.rfd
di = New libnodave.daveInterface(fds, "IF1", S7Online_localAddress, libnodave.daveProtoS7online, nodaveBaudrate)
di.setTimeout(1000)
res = di.initAdapter
dc = New libnodave.daveConnection(di, S7Online_remoteAddress, S7Online_rack, S7Online_slot)
res = dc.connectPLC
Verbindungsabbau (wichtigsten Funktionen aus dem Code extrahiert):
res = dc.disconnectPLC()
di.disconnectAdapter()
'res = libnodave.closePort(fds.rfd)
'WriteDebugInfo("Close S7Online Connection: closePort() ... (res=" & CStr(res) & " - " & libnodave.daveStrerror(res) & ")")
res = libnodave.closeS7online(fds.rfd)
WriteDebugInfo("Close S7Online Connection: closeS7online() ... (res=" & CStr(res) & " - " & libnodave.daveStrerror(res) & ")")
Für mich stellen sich nun folgende Fragen:
Muss ich beim Verbindungsabbau die Funktion
a) libnodave.closeS7online(fds.rfd) oder
b) libnodave.closePort(fds.rfd) ausführen
oder sogar beide?
Bei dem von mir als Vorlage verwendeten Programmbeispiel wurde Variante b) verwendet aber wofür gibt es dann a)?
Warum funktioniert das Lesen nur nach dem ersten Verbindungsaufbau und ab dem zweiten Verbindungsaufbau nicht mehr?
Dann bekomme ich vom dc.execReadRequest() nur noch eine "-128"
Leider funktioniert bei mir ausserdem die Funktion "libnodave.daveStrerror(res)" nicht richtig, ich bekomme leider den Fehlertext nicht im Klartext sondern nur kryptische Zeichen zurück.
Ich habe in einem anderen Thread gelesen, dass in "neueren versionen der LibNoDave an S7Online eine HWND Übergeben" werden muss.
Was steckt da dahinter? Was muss ich machen und wie würde dies Codetechnisch für VB 2008 Express aussehen?
Danke bereits jetzt im voraus für Eure Unterstützung.
Gruss,
bool
inzwischen bin ich dabei mit dem S7Online Protokoll zu experimentieren und habe dieses prinzipiell mit dem PCMCIA CP5511 MPI/Profibus Adapter zum laufen bekommen. Den Verbindungsauf und Abbau habe ich gemäss diverser Programmbeispiele folgendermassen vorgenommen:
Verbindungsaufbau (wichtigsten Funktionen aus dem Code extrahiert):
fds.rfd = libnodave.openS7online(S7Online_accesspoint)
fds.wfd = fds.rfd
di = New libnodave.daveInterface(fds, "IF1", S7Online_localAddress, libnodave.daveProtoS7online, nodaveBaudrate)
di.setTimeout(1000)
res = di.initAdapter
dc = New libnodave.daveConnection(di, S7Online_remoteAddress, S7Online_rack, S7Online_slot)
res = dc.connectPLC
Verbindungsabbau (wichtigsten Funktionen aus dem Code extrahiert):
res = dc.disconnectPLC()
di.disconnectAdapter()
'res = libnodave.closePort(fds.rfd)
'WriteDebugInfo("Close S7Online Connection: closePort() ... (res=" & CStr(res) & " - " & libnodave.daveStrerror(res) & ")")
res = libnodave.closeS7online(fds.rfd)
WriteDebugInfo("Close S7Online Connection: closeS7online() ... (res=" & CStr(res) & " - " & libnodave.daveStrerror(res) & ")")
Für mich stellen sich nun folgende Fragen:
Muss ich beim Verbindungsabbau die Funktion
a) libnodave.closeS7online(fds.rfd) oder
b) libnodave.closePort(fds.rfd) ausführen
oder sogar beide?
Bei dem von mir als Vorlage verwendeten Programmbeispiel wurde Variante b) verwendet aber wofür gibt es dann a)?
Warum funktioniert das Lesen nur nach dem ersten Verbindungsaufbau und ab dem zweiten Verbindungsaufbau nicht mehr?
Dann bekomme ich vom dc.execReadRequest() nur noch eine "-128"
Leider funktioniert bei mir ausserdem die Funktion "libnodave.daveStrerror(res)" nicht richtig, ich bekomme leider den Fehlertext nicht im Klartext sondern nur kryptische Zeichen zurück.
Ich habe in einem anderen Thread gelesen, dass in "neueren versionen der LibNoDave an S7Online eine HWND Übergeben" werden muss.
Was steckt da dahinter? Was muss ich machen und wie würde dies Codetechnisch für VB 2008 Express aussehen?
Danke bereits jetzt im voraus für Eure Unterstützung.
Gruss,
bool