TIA AGLINK4 Verbindung getrennt

helpseeker

Level-1
Beiträge
17
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Werte community

Nachdem erfolgreich eine Verbindung zur SPS1200 erstellt wurde, simuliere ich einen Abriss der Verbindung.
Wenn ich nun versuche erneut eine Verbindung herzustellen, ist mein Rückgabe Parameter result eine erfolgreiche Verbindung. Sie sollte aber gescheitert sein, da keine LAN Verbindung mehr existiert.

Warum?
 
Kann ich auch nicht aus dem Bauch heraus sagen. Schicke das bitte an den Support AT deltalogic.de (da ich derzeit unterwegs bin). Dann eröffnen die ein Ticket und die Entwicklung kümmert sich darum.
Wo wird die Verbindung getrennt, am PC oder hinter einem Switch?
Welche AGLink-Funktionen werden alles in welcher Reihenfolge aufgerufen?
Welche davon liefert wann keinen Fehler obwohl sie es tun sollte?
Wird die unterbrochene Verbindung trotzdem ordentlich über AGLink abgebaut?
 
Danke fürs Probieren
Kann ich auch nicht aus dem Bauch heraus sagen. Schicke das bitte an den Support AT deltalogic.de (da ich derzeit unterwegs bin). Dann eröffnen die ein Ticket und die Entwicklung kümmert sich darum.
Wo wird die Verbindung getrennt, am PC oder hinter einem Switch?
Welche AGLink-Funktionen werden alles in welcher Reihenfolge aufgerufen?
Welche davon liefert wann keinen Fehler obwohl sie es tun sollte?
Wird die unterbrochene Verbindung trotzdem ordentlich über AGLink abgebaut?

  • Verbindung soll überall getrennt werden können und eine Fehlermeldung auftreten - für Testzwecke wurde sie am PC getrennt
AGL4.SetParaPath(Pfad);
connection = AGL4ConnectionFactory.CreateTiaInstance(devNr, plcNr, timeout);

bool re = false;
re = connection.Connect();
  • die obige Verbindung liefert bei "re" immer true zurück, selbst, wenn keine physikalische Verbindung zur SPS besteht
  • keine Funktion liefert einen Fehler - "re" ist nur immer "true"
    • Wenn ich connection auf null setzen würde, vor dem connection.Connect(); passiert das gleiche
  • Wüsste nicht wie ich die Verbindung sonst aufbauen sollte

Die SPS ist eine 1200er
 
Wenn keine Kommunikation durch Lesen- und schreiben stattfindet, kann es sein, dass AGLink das Trennen gar nicht mitbekommt. AGLink verwendet zur Resourcenschonung der SPS ein Connection-Recycling, d.h. wenn bereits eine Verbindung zur gewünschten SPS besteht, dann wird diese mitverwendet. Wenn dort kein Fehler auftrat, dann wird sofort ok zurückgeliefert. Nach dem Trennen ein Lesen ausführen, das müsste dann einen Fehler liefern. Danach liefert ein Connect auch hoffentlich einen Fehler, wenn die Verbindung nicht besteht.
Verwende für diesen Test der Einfachheit halber eine normaler S7-TCP/IP- und keine S7-TCP/IP-TIA Verbindung. Dann geht das Lesen, z. B. von MW 0, direkt und wir ersparen uns hier das Einlesen und Verwenden der Symbolinformationen aus einem Projekt oder von der SPS.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn keine Kommunikation durch Lesen- und schreiben stattfindet, kann es sein, dass AGLink das Trennen gar nicht mitbekommt. AGLink verwendet zur Resourcenschonung der SPS ein Connection-Recycling, d.h. wenn bereits eine Verbindung zur gewünschten SPS besteht, dann wird diese mitverwendet. Wenn dort kein Fehler auftrat, dann wird sofort ok zurückgeliefert. Nach dem Trennen ein Lesen ausführen, das müsste dann einen Fehler liefern. Danach liefert ein Connect auch hoffentlich einen Fehler, wenn die Verbindung nicht besteht.
Verwende für diesen Test der Einfachheit halber eine normaler S7-TCP/IP- und keine S7-TCP/IP-TIA Verbindung. Dann geht das Lesen, z. B. von MW 0, direkt und wir ersparen uns hier das Einlesen und Verwenden der Symbolinformationen aus einem Projekt oder von der SPS.


Habe nun die Verbindung mit TCP/IP hergestellt. Keine Veränderung und keine einzige Fehlermeldung. Die Verbindung wird als hergestellt betrachtet - von Connect() selbst

Beim Verbinden öffne ich nicht den Konfigurator, sondern führe nur die vorher genannten Codezeilen durch.

Wenn ich die Verbindung mit dem Konfigurator teste, bekomme ich erfolgreich die Meldung, dass keine Verbindung existiert.

*edit*
Vor connect() ist der Zustand "connected " der connectionVariable(Datentyp IAGlink4) auf false- wie es sein sollte. Nachdem vermeintlichen Verbinden ist connected aber true. Die Verbindung konnte physisch aber nie hergestellt werden
 
Zuletzt bearbeitet:
Hast Du eine Lesefunktion aufgerufen nachdem die Verbindung unterbrochen wurde? Oder War die Verbindung von Anfang an unterbrochen? Ansonste siehe meinen vorigen Kommentar.
 
Hast Du eine Lesefunktion aufgerufen nachdem die Verbindung unterbrochen wurde? Oder War die Verbindung von Anfang an unterbrochen? Ansonste siehe meinen vorigen Kommentar.

Danke
Habe meinen Code so umgeschrieben, dass ich etwas vorher auslese, die Sps nochmal disconnecte und dann connecte.

Mir wird ein Fehler ausgegeben der für mich ein Erfolg ist. Also danke
 
Zurück
Oben