Zusammenfassung
Für zeitgesteuerte Vorgänge bietet Elvis eine ganze Reihe von vorgefertigten Elementen (Zeitprogramme, Sequenzen, Metronom). Manchmal benötigt man jedoch auch ein zeitabhängiges Verhalten bei eigenen Skripts. Dieser Artikel diskutiert die Möglichkeiten, das zu realisieren.
Einzelheiten
Option 1: Zeit-Eingang
Diese Methode eignet sich, wenn es um Zeiten und Genauigkeiten ab 10 Sekunden geht.
Definieren Sie eine Eingangsvariable vom Typ DateTime und binden Sie diese bei der Benutzung des CustomItems an einen Zeit-Datenpunkt (z.B. TimeUTC im Systemanschluss). Dadurch wird diese Eingangsvariable regelmäßig (normalerweise etwa alle 10 Sekunden) aktualisiert und entsprechend die Methode Execute aufgerufen.
Option 2: Benutzung von Timern
Es ist auch möglich, Timer zu nutzen. Das kann eine der in .NET Framework verfügbaren Timer-Klassen sein, besser jedoch der im Elvis-Server verfügbare TimedCallbackService, der eine vorgegebene Methode zu einer angegebenen Zeit aufruft. Eine Schwierigkeit dabei ist, dass Elvis Änderungen in den Ausgangsvariablen nur nach einem Execute-Aufruf auswertet, nicht jedoch, wenn diese „spontan“ erfolgt. Daher muss das Skript Elvis über Änderungen an Ausgangsvariablen, die innerhalb der vom Timer aufgerufenen Methode erfolgen, informieren.