Herunterladen Diese Seite drucken

Danfoss VLT MCO 305 Projektierungshandbuch Seite 168

Vorschau ausblenden Andere Handbücher für VLT MCO 305:

Werbung

MCO 305 Projektierungshandbuch
Wird zum Beispiel im Hauptprogramm eine Zuweisung der Art:
ziel = ziel + wert – 1000
vorgenommen, wird diese in eine Folge von APOSS-Maschinencode-Befehlen zerlegt, wobei die Zwischen-
ergebnisse in temporären Registern gespeichert werden. Erst am Ende der Folge wird das Ergebnis nach ziel
zurückgespeichert.
Wird nun während der Ausführung dieser Befehle ein Interrupt ausgelöst und in der entsprechenden Proze-
dur ein Befehl
ziel = 0
ausgeführt, wird es in diesem Fall Probleme geben. Denn nach der Abarbeitung der Interrupt-Prozedur wird
in das Hauptprogramm zurückgesprungen und dann das immer noch vorhandene Zwischenergebnis nach
ziel gespeichert: Somit wird die 0 in ziel wieder überschrieben.
ON PERIOD innerhalb von Interrupt-Prozeduren
Bei ON PERIOD Funktionen wird dagegen beim Start einer solchen Funktion die Zeit berechnet, wann der
nächste Aufruf erfolgen soll, also
START_TIME = TIME + PERIOD.
Sobald diese Zeit erreicht ist, wird die Funktion ausgeführt und anschließend die nächste Startzeit berechnet
mit der Formel
START_TIME = START_TIME + PERIOD.
Dies sorgt dafür, dass die Abstände des Aufrufens wirklich gleich sind, da die Ausführungszeit die Berech-
nung nicht beeinflusst. Dies bedeutet aber auch, dass der Anwender darauf achten muss, dass die Periode
wirklich länger als die Ausführungszeit ist, da sonst ein „Stau" entsteht, das heißt es würde eigentlich nur
noch die ON PERIOD Funktion ausgeführt.
Reaktionszeiten
Das Vorhandensein eines Interrupts wird in einer speziellen Funktion geprüft, die auch zur Watch-Dog-Über-
wachung verwendet wird. Deshalb wird diese generell in jeder Prozedur die etwas länger dauern könnte und
in allen Schleifen etc. aufgerufen. 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 APOSS-Maschinencodes erkannt und ausgewertet.
Die Reaktionszeit ist die maximale Ausführungszeit eines Maschinencodes oder 1 ms, je nachdem was
größer ist.
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 keinen Sinn, 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, werden sie in folgender Reihenfolge abgearbeitet:
ON INT geht vor
ON posint (ON APOS, ON MAPOS, ON MCPOS, ON IPOS, ON MIPOS) vor
ON COMBIT vor
ON STATBIT vor
ON PARAM vor
ON CANMSG vor
ON KEYPRESSED vor
ON TIME / ON PERIOD
wobei die anderen Ereignisse aber nicht verloren gehen.
168
__ Programmieren mit APOSS __
®
MG.33.L5.03 – VLT
ist ein eingetragenes Warenzeichen von Danfoss.

Werbung

loading