Reaktionszeiten
Das Vorhandensein eines Interrupts wird in einer
speziellen Funktion geprüft, die auch zur Watch-
Dog-Überwachung verwendet wird. Deshalb wird
diese generell in jeder Prozedur die etwas länger
dauern könnte und in allen Schleifen etc. aufge-
rufen.
In dieser Prozedur wird immer nach 1 ms geprüft,
ob ein solches Ereignis vorliegt und gegebenenfalls
ein entsprechendes Flag gesetzt. Dieses Flag wird
dann spätestens nach Abarbeitung des gerade
aktuellen APOS-Maschinencodes erkannt und aus-
gewertet.
Die Reaktionszeit ist die maximale Ausführungszeit
eines Maschinencodes oder 1 ms, je nachdem was
größer ist: Beim VLT ist dies ca. 1 ms.
Eine Ausnahme bildet der Zeit-Interrupt (ON TIME
/ ON PERIOD). Hier wird nur alle 20 ms geprüft ob
die Zeit abgelaufen ist. Daher macht es auch kei-
nen Sinn, eine ON PERIOD mit weniger als 20 ms
zu definieren.
ACHTUNG!
Außerdem ist generell darauf zu achten,
dass Interrupt-Funktionen nicht zu lange
dauern. Vor allem bei ON PERIOD Funktionen ist
dringend darauf zu achten, dass die Funktion nicht
länger dauert als die Periode, weil sonst ein Stau
von Funktionsaufrufen entsteht.
Prioritäten
Falls zwei Interrupt Ereignisse gleichzeitig auftreten
sollten, wird die Abarbeitung wie folgt priorisiert:
ON INT geht vor ON COMBIT vor ON STATBIT
vor ON PARAM vor ON TIME / ON PERIOD,
wobei die anderen Ereignisse aber nicht verloren
gehen.
Innerhalb der einzelnen Typen gilt wiederum
Folgendes:
ON INT / ON COMBIT / ON STATBIT
Sollten zwei (Eingangs)-Interrupts gleichzeitig kom-
men, wird der mit der niedrigeren Nummer zuerst
ausgeführt, wobei der andere aber nicht verloren
geht. Die anderen werden dann nach Beendigung
der Interrupt Prozedur entsprechend aufgerufen.
Sollte derselbe Eingang bzw. Interrupt während der
Ausführung der Prozedur noch einmal kommen,
wird auch dieser wieder vermerkt und anschlie-
ßend ausgeführt.
Ein Interrupt kann also nur verlorengehen, wenn er
während der Ausführung einer Interrupt Prozedur
zweimal kommt.
MG.10.J4.03 - VLT ist ein eingetragenes Warenzeichen von Danfoss
VLT
5000 SyncPos-Option
ON TIME / PERIOD
Wie bereits oben beschrieben, wird in einer inter-
nen Struktur für jede Zeitfunktion die nächste Aus-
führungszeit vermerkt. Bei gleichzeitiger Ausfüh-
rungszeit wird die Prozedur zuerst ausgeführt, die
zuerst in der Liste steht. Die Priorität ergibt sich
also aus der Reihenfolge der ON PERIOD Befehle.
ON PARAM
Wenn mehrere dieser Interrupts gleichzeitig auftre-
ten, werden sie in der Reihenfolge der ON PARAM
Befehle im Programm abgearbeitet.
Interrupt Schachtelung
Es ist nicht möglich, dass ein Interrupt von einem
anderen Interrupt unterbrochen wird. Während ein
Interrupt behandelt wird, kann demnach kein zwei-
ter behandelt werden. Einzige Ausnahme ist die
ON ERROR Funktion, die auch während der Abar-
beitung von Interrupts möglich ist.
Eine ON ERROR Funktion kann aber von keinem
Interrupt unterbrochen werden.
NOWAIT in Interrupts
Generell ist während eines Interrupts NOWAIT auf
ON gesetzt, das heißt dass nicht auf die Beendi-
gung von POSA Befehlen gewartet wird.
Dies ist nötig, da sonst ein POSA Befehl von einer
Interrupt-Prozedur nicht unterbrochen werden
kann, da sofort auf das Ankommen der Achsen ge-
wartet werden würde. Will man also innerhalb einer
Interrupt-Prozedur auf das Ankommen einer Achse
warten, muss man dies explizit mit WAITAX tun.
65