Jochen Kühner
Level-3
- Beiträge
- 4.303
- Reaktionspunkte
- 530
Hab grad mal schnell die neue libnodave.dll mit ner CP5611 getestet, die S7Online Verbindung geht wieder, nach Verbindungstrennung wird die CP aber leider noch immer nicht für eine erneute Verbindung freigegeben.
Gruss,
bool
Wie sieht das denn bei dir aus ??? Also wenn ich mit dem Seriellen Adapter die Verbindung trenne und neu verbinde klappts ohne Probleme. (Zumindest mit meinem Programm). Hast du das jetzt mit deinem Code, oder mit meinem Programm versucht?
Hab auch noch einen CP5611 rumliegen, der läuft aber nicht mit meinem aktuellen Laptop, muss mal sehen, vielleicht kann Ich da nächste Woche nochmal was probieren!
Habs mit meinem eigenen Programm ausprobiert, der S7Online Verbindungsauf- und Abbau funktioniert eigentlich ganz unspektakulär wie in meinem separten Thread gepostet, siehe:
http://www.sps-forum.de/showthread.php?t=35831
Allerdings habe ich bei meinem Test heute noch die libnodave.Connection() aufgerufen, nicht die für TCP/IP überarbeitete neue Funktion.
Ich werde jetzt am Wochenende mal versuchen Deine Connection lib zu verwenden. Vielleicht läuft es dann mit dem Reconnect in Verbindung mit S7Online besser, alle anderen Verbindungsarten über MPI,MPI2 und ISO onTCP funktionieren ja auch bei mir via Reconnect (z.B. wenn jemand während dem Protokollieren das Kabel gezogen und wieder eingesteckt hat) problemlos.
Gruss,
bool
Also Ich habe auf jeden Fall was geändert, das wenn du DisconnectPLC aufrufst, beim S7Online Protokoll auch was gesendet wird!
Rufst du bei dir auch sicher DisconnectPLC auf?
Nutze mal die test csharp. das müsste es auch schon ein exe file geben! nur zum testen ob der reconnect geht!
Gesagt, getan und tut? ...leider nicht:
Hab die bereits von Dir erstellte TestLibrary.exe (unter Verwendung der libnodave.dll vom 10.06. 08:31 mit 148kB) ausgeführt, doch auch mit dem Programm funktioniert nur der erste Connect via S7Online mittels der CP5611 (PCI), nach einem Disconnect und erneutem Connect (auch mit Warten mehrer Minuten zwischen Disconnect und Reconnect) wird beim anschliessenden zyklischen Lesen einer Variablen (hier Taktmerkerbyte MB190) ebenfalls "Error: Unexpected function code in answer" ausgegeben.
Interessanterweise funktionierte das Lesen über S7Online bei Deinem Programm 1-2 mal wieder wenn zwischendurch z.B. eine Verbindung über ISOonTCP aufgebaut wurde, dann ging auf einmal auch das nicht mehr.
Beobachtung:
Auch wenn eine S7Online Verbindung über "Disconnect" abgebaut wird, wird die Schnittstelle nicht wieder freigegeben. Dies äussert sich dadurch, dass wenn man unter "PG/PC Schnittstelle einstellen" geht und sich die Parameter des eben verwendeten Adapters ansehen möchte folgende Meldung kommt: "Die benutze Schnittstelle kommuniziert gerade.Sie können die Eigenschaft im Moment nicht ändern.". Auch kann, solange das Programm welches die Verbindung aufgebaut hatte, geöffnet ist kein anderer Adapter unter "PG/PC Schnittstelle einstellen" ausgewählt werden. Das zeigt doch, dass diese nicht wieder freigegeben wurde. Daran ändert sich nichts ob man nur 5 Sekunden oder 10 Minuten wartet. Erst das Beenden des Programms bringt die erhoffte Schnittstellenfreigabe.
Ich hoffe Du kannst dieses Verhalten auf Deinem System ebenfalls nachvollziehen, da sich Dein Testprogramm TestLibrary.exe bei mir ebenso verhalten hat.
Gruss,
bool
Also ich kann das nicht nachvollziehen, zumindest nicht mit dem seriellen Adapter über S7Online! Bei mir hat jeder Verbindungs auf und Abbau geklappt! Bei mir machts mit S7Online nur Probleme wenn Step 7 im Hintergrund läuft... (Ich habe alle Prozesse mit s7 gekillt!). Funktioniert das ganze den richtig wenn du agling statts libnodave verwendest?
Der Verbindungsaufbau an sich (auch nach einem Abbau) wird bei mir auch immer positiv gemeldet (siehe auch Debugfileauszug weiter oben), jeflicher Zugriff auf die SPS wie z.B. Lesefunktionen gehen im Anschluss jedoch schief!!!
Hast Du nach dem Connect -> Disconnect -> Connect im Anschluss auch eine Variable versucht zu lesen und das ging bei Dir fehlerfrei?
Das Abschiessen der gesamten S7 Prozesse habe ich noch nicht versucht, wenn dies jedoch für das Funktionieren der Kommunikation mit libnodave via S7Online nötig sein sollte, wäre das auf jeden Fall nicht grade sehr elegant, Ich werde es heute abned auf jeden Fall mal ausprobieren.
Hast Du auch mal nach einem S/Online Connect -> Read ON -> Read OFF -> Disconnect versucht die Schnittstellen Paramter des "PG PC Schnittstelle einstellen" Dialogs zu öffnen und hat dieser dann nicht reklamiert, dass die Schnittstelle noch in Verwendung ist? (wichtig: bevor das Programm beendet wurde welches die Schnittstelle verwendet hat)
Gruss,
bool
Jo, hab Ich alles Probiert, und das ging bei mir auch ohne Probleme. Sowohl mit TCP/IP über S7Online als auch mit der Seriellen Schnittstelle über S7Online. Keine Probleme. Hab auch meine CP 5511 Karte gefunden, mit der probier Ich es am Montag mit dem alten Laptop nochmal.
Ok, da bin ich auf jeden Fall mal gespannt, was das Ergebnis mit Deinem Laptop sein wird. Meine beiden Systeme (Laptop und Desktop) welche Probleme mit dem Reconnect von libnodave unter S7Online haben sind übrigens beides Rechner mit XP SP3.
Nach noch ein bischen herum probieren mit dem von Dir zur Verfügung gestellten vorcompilierten Programm "TestLibrary" habe ich ausserdem noch festgestellt, dass wenn man zum Forcieren eines Übertragungsfehlers z.B. das MPI Kabel während des zyklischen Lesens entfernt hat und danach wieder gesteckt hat, das Lesen der Testvariable hin und wieder wieder möglich war wenn man einen "Connect" ausgeführt hat, ohne zuvor zu "disconnecten". Wurde vor dem "Connect" ein "Disconnect" ausgeführt wie man (oder zumindest ich) es eigentlich erwarten würde, dann klappte der darauffogende Lesebefehl wie zuvor gepostet nicht.
Kurz zusammen gefasst:
Connect (erst bei 2tem Versuch ok) -> Read (MB190) -> MPI Kabel gezogen (erzwungener Lesefehler)-> Kabel wieder gesteckt -> Stop Read -> Disconnect -> Connect -> Read -> geht nicht! (Lesefehler)
Connect (erst bei 2tem Versuch ok) -> Read (MB190) -> MPI Kabel gezogen (erzwungener Lesefehler)-> Kabel wieder gesteckt -> Stop Read -> Connect ohne Disconnect -> Read -> geht!
Wie auch zuvor beschrieben wurde auch mit der "Testlibrary" (Version vom 10.06.) nach einem S7Online Connect -> Read (MB190) -> Stop Read -> Disconnect der Adapter unter "PG/PC Schnittstelle einstellen" nicht wieder freigegeben, auch nicht wenn ich die vier "S7***" Prozesse über den Taskmanager abgeschossen habe. Dies äussert sich bei mir indem ich eine Meldung bekomme, dass der Adapter grade kommuniziert und die Parameter nur schreibgeschützt geöffnet werden können. Erst wenn das "TestLibrary" Programm beendet wurde, wird bei meinem Desktop der ADapter wieder freigegeben. (mein Laptop hat noch kein .NET 4.0 installiert-> Was ist eigentlich der Grund für die Abhängigkeit der Testlibrary von .NET 4.0?)
Es wäre auf jeden Fall klasse wenn Du der Reproduzierbarkeit halber das oben beschriebene Verhalten ebenfalls mit dem Programm "Testlibrary" vom 10.06. ausprobieren könntest, Danke schon mal im voraus.
Gruss,
bool
Ok, habs nun auch mit dem CP5511 Probiert...
Read -> Stecker ziehen (unexpected usw..) -> Stecker drauf -> Disconnect -> Connect -> geht!
paar mal probiert! ohne Probleme!!!
Hmm, danke auf jeden Fall für Deine Tests.
Da frage ich mich nun wo bei den Systemen der Unterschied liegt.
Welches OS und SP hast Du auf dem Laptop und welche Step7 Version ist installiert? Ist auf dem Laptop die Step7 Lizenz drauf oder benutzt Du nur die DLL ohne lauffähige Step7 Installation?
Was könnte es sonst noch für entscheidende Unterschiede geben?
Gruss,
bool
Und die probleme traten jetzt mit meinem Beispielprogramm auch auf??
Ja für mich auch, probiers doch jetzt mal noch mit der demo von Accon AGLink, ob dies die gleichen Probleme verursacht!
Gibt es bei der Accon AGLink Demo ebenfalls die Möglichkeit die S7Online Schnittstelle zu benutzen oder inwiefern bekomme ich hierbei eine Aussage bezüglich meines Problems über S7Online?
Ich werde die Demo morgen mal installieren, für heute bin ich einfach zu platt und werde mich gleich waagerecht legen.
Soweit schon mal ä guts nächtle.
Gruss,
bool
Ja die gibt es! Will damit nur prüfen ob es ein LibNoDave oder ein generelles Problem ist! Wenn es damit funktioniert können wir viel. über ein Telegrammlog das Problem eingrenzen..
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?