-> Hier kostenlos registrieren
Hallo zusammen,
nachdem man mir letzte Woche so großartige Hilfestellung in diesem Forum geben konnte, kann ich mittlerweile bereits mit einer realen SPS sprechen. Ich kann die Datenblöcke mit AGLink auslesen und neu beschreiben und habe auch Zugriff auf die Merkerbits, mit denen die SPS mir mitteilt, daß ein bestimmter Zustand erreicht ist, oder umgekehrt ich der SPS mitteile, daß es etwas zu tun gibt.
Meine Frage dazu ist, ob es da 'Best Practices' gibt, wie man auf die Änderung eines Merkerflags programmatisch lauscht. Ließt man das Feld zyklisch in einem Tread aus bis es sich geändert hat oder kann man einen 'EventListener' auf diese Änderung registrieren? Ich arbeite im Moment mit C# und bin grundsätzlich mit dem dort benutzen Event Mechanismus durch Delegates vertraut. Ich habe auch gesehen, daß es bereits Events in der AGLink Bibliothek gibt, diese sind aber leider nicht im AGLink Api Guide dokumentiert. In den Beispielen werden sie benutzt aber ich verstehe das im Moment so, daß damit nur eine asynkrone Kommunikation geschaffen wird und nicht auf eine Bestimmte Änderung gewartet wird.
An anderer Stelle hier im Forum habe ich gelesen, daß man bei erwarteten Änderungen besser nicht die Events benutzen sollte, sondern nur bei unerwarteten (Paperstau, Station nicht mehr erreichbar, etc.)
Ich würde gerne Meinungen bzw. Beispiel dazu hören.
Mit freundlichem Gruß
Lorgarn
nachdem man mir letzte Woche so großartige Hilfestellung in diesem Forum geben konnte, kann ich mittlerweile bereits mit einer realen SPS sprechen. Ich kann die Datenblöcke mit AGLink auslesen und neu beschreiben und habe auch Zugriff auf die Merkerbits, mit denen die SPS mir mitteilt, daß ein bestimmter Zustand erreicht ist, oder umgekehrt ich der SPS mitteile, daß es etwas zu tun gibt.
Meine Frage dazu ist, ob es da 'Best Practices' gibt, wie man auf die Änderung eines Merkerflags programmatisch lauscht. Ließt man das Feld zyklisch in einem Tread aus bis es sich geändert hat oder kann man einen 'EventListener' auf diese Änderung registrieren? Ich arbeite im Moment mit C# und bin grundsätzlich mit dem dort benutzen Event Mechanismus durch Delegates vertraut. Ich habe auch gesehen, daß es bereits Events in der AGLink Bibliothek gibt, diese sind aber leider nicht im AGLink Api Guide dokumentiert. In den Beispielen werden sie benutzt aber ich verstehe das im Moment so, daß damit nur eine asynkrone Kommunikation geschaffen wird und nicht auf eine Bestimmte Änderung gewartet wird.
An anderer Stelle hier im Forum habe ich gelesen, daß man bei erwarteten Änderungen besser nicht die Events benutzen sollte, sondern nur bei unerwarteten (Paperstau, Station nicht mehr erreichbar, etc.)
Ich würde gerne Meinungen bzw. Beispiel dazu hören.
Mit freundlichem Gruß
Lorgarn