-> Hier kostenlos registrieren
Hab nun das verworfen die LibNodave zu ändern, hab nun in meiner erweiterten libnodave.net.dll die funktion libnodave.daveStrS7onlineError definiert.
Ruf die mal auf wenn dir S7Online -1 als Handle zurückgibt, oder wenn die Kommunikation nicht mehr funzt, um zu sehen ob der S7 Online Treiber einen fehler wirft.
Die Dll lade Ich in den anderen Thread wo Ich bereits die vorige Version hab!
Libnodave.dll kannst du dann wieder die orginale verwenden!
so, habe nun die neue libnodave.net.dll von Dir compiliert und eingebunden. Da wie erwähnt der Verbindungsaufbau an sich bei S7Online fehlerfrei durchläuft gibt auch die openS7online Funktion "0" zurück und damit die libnodave.daveStrS7onlineError auch "Kein Fehler".
Dass das mit dem nicht zurückgesetzten fds.rfd vermutlich nicht das Problem ist, konnte ich mich nun auch bei einem getesten MPI Adapter von PI überzeugen. Nach einem Disconnect war fds.rfd immer noch auf dem alten Wert, es konnte jedoch danach wieder erfolgreich verbunden und gelesen werden.
Das Problem vermute ich aber immer noch beim Verbindungsabbau des S7ONLINE und nicht unbedingt bei der Funktion "openS7online", da ich beobachtet hatte, dass der Adapter in "PG/PC Schnittstelle einstellen" nach dem Verbindungsabbau nicht umgestellt werden konnte, da sie noch immer reserviert war. Erst nach dem Beenden des Programmes konnte ich diese wieder umstellen. Das Problem liegt also wahrscheinlich eher bei der Funktion "res = libnodave.closeS7online(fds.rfd)"
Es ist aber natürlich trotzdem nicht korrekt, dass openS7online "0" zurück gibt und vorgibt es sei alles in Ordnung.
Gruss,
bool