Industry Online Support
Technical Forum
05.03.2010 11:56 | |
Beiträge: 5822 Bewertung: (412)
|
Hallo, Punkt 1. Die doppelte Angabe der Länge, trifft meiner Meinung nach nicht zu. Beim AG_SEND gebe ich einen ANY-Pointer an, dieser Bereich kann der maximal mögliche Datenbereich sein der übertragen werden muß, aber auch größer. Der eigentlich wichtige Parameter ist die LEN denn dort wird die Länge angegeben die tatsächlich übertragen wird. Punkt 2. Der Anstoß des AG_SEND. Ich würde hier nicht auf die Flanke allein vertrauen. Ich weiß das es unterschiedliche Versionen des AG_SEND gibt und deren Verhalten ist auch unterschiedlich. Ich würde immer den AG_SEND mit einem REQ == 1 anstoßen und das REQ so lange auf true halten bis DONE oder ERRORtrue waren. Damit kann man den REQ zurücksetzen, alles andere macht nicht immer Sinn, vor allem ist aber auch so gewährleistet das der Auftrag wirklich bis zum Ende, egal wie dieses auch aussieht, ausgeführt wird. Punkt 3. Der Zustand der Verbindung. Je nachdem welchen CP Du hast kannst Du natürlich auch den Status einer Verbindung im Programm auslesen, hierzu bietet die SIMATIC NET Bibliothek die Funktion FC 10 AG_CNTRL. Dort kann man mit CMD 1 den Status einer selektierten Verbindung auswählen. Beachte aber bitte das nicht alle CPs diese Funktion unterstützen. Siehe hierzu: Welche Kommandos (CMD) des FC10 "AG_CNTRL" können mit den IE CPs umgesetzt werden? Viel Erfolg! J_Bell |
Folgen Sie uns auf