User manual

Betrieb
10/10 MN05003003Z-DE
52
Interruptverarbeitung
Tritt ein Interrupt auf, wird das Anwenderprogramm unterbrochen
und die mit dem Systemereignis verknüpfte Programm-Routine
bearbeitet. In der Abbildung 54 sind die Interruptquellen aufge-
führt.
Die vom Interrupt aufgerufene Programm-Routine kann durch
einen neuen Interrupt (anderer Kanal) unterbrochen werden.
Folgt dem aktuellen Interrupt ein neuer Interrupt (gleicher Kanal),
wird der neue Interrupt erst nach Beendigung des aktuellen ausge-
führt.
Die Interrupts werden im Zustand RUN der CPU freigegeben und
im STOP gesperrt. In der Konfiguration nicht freigegebene Inter-
ruptquellen lösen keinen Interrupt aus.
Sie können die Interrupt-Eingänge I1…I4 und den Timer-Interrupt
aus dem Programm heraus sperren und wieder freigeben. Hierzu
gibt es die Funktionen „DisableInterrupt“ und „EnableInterrupt“.
Ein Aufrufparameter bestimmt, ob ein einzelner Interrupt oder alle
Interrupts gesperrt/freigegeben werden. Die Freigabe eines
gesperrten Interrupts muss mit dem gleichen Parameter erfolgen,
wie die Sperrung.
Die beiden Funktionen „DisableInterrupt“ und „EnableInterrupt“
sind Bestandteil der Biblithek „EC_Util.lib“. Diese Bibliothek-
müssen Sie – falls noch nicht vorhanden – vom Bibliotheks-
verwalter der Programmiersoftware zu Ihrem Projekt einbinden.
DisableInterrupt: Mit dieser Funktion schalten Sie einen paramet-
rierten physikalischen Interrupt aus dem Anwenderprogramm
heraus inaktiv.
EnableInterrupt: Mit dieser Funktion geben Sie den zuvor inaktiv
geschalteten physikalischen Interrupt wieder als aktiven Interrupt
frei.
Arbeitsschritte zur Interruptverarbeitung
X Legen Sie die Interrupt-Eigenschaften fest:
X Erstellen Sie die Programm-Routine (POU).
Zur bestehenden POU PLC_PRG ist eine weitere Programm-
Routine (POU) vom Typ PRGzu erstellen, die ein Interrupt aufruft.
X Ordnen Sie der Programm-Routine eine Interruptquelle zu:
Rufen Sie dazu den Steuerungskonfigurator auf und klicken
Sie die Taskkonfiguration l System-Ereignisse an.
Im Register „System-Ereignisse“ sind die Interruptquellen
(Namen) aufgeführt und ein freies Eingabefeld für den
Namen der „aufgerufenen POU“.
Geben Sie den Interrupt frei, indem Sie auf das Kästchen
neben dem gewünschten Interrupt klicken und tragen Sie in
der gleichen Zeile den Namen der POU ein. Die Details sind
im Beispiel zur Interruptverarbeitung beschrieben.
Beispiel zur Interruptverarbeitung
Eine POU „PLC_PRG“ soll ständig abgearbeitet werden. Eine
weitere Programm-Routine (POU) „Fastprog“ soll abgearbeitet
werden, wenn eine steigende (L
l H) Flanke am Eingang I3 einen
Interrupt erzeugt.
X Erstellen Sie die POUs „PLC_PRG“und „Fastprog“ gemäß
Abbildung 55.
X Wechseln Sie in die Steuerungskonfiguration, klicken Sie auf
den Ordner Local I/O[SLOT] und öffnen Sie das Register
„Weitere Parameter“.
X Weisen Sie dem Eingang I3 den Typ „steigende Flanke“ zu.
Abbildung 54: Interruptquellen
h
Die Ausführung der Programm-Routinen wird zeitlich
überwacht.
START/STOP
COLDSTART
WARMSTART
(Start der Steuerung)
TIMER INTERRUPT
(periodisch)
Interrupt-Eingänge
(Spannung an I1, I2, I3, I4)
Schnelle Zähler
(Istwert = Sollwert)
Programm zur
Verarbeitung des
Interrupts
Startverhalten Art auswählen
TIMER INTERRUPT Funktion aufrufen
TIMERINTERRUPTENABLE
Interrupt Eingänge Flanken bestimmen
Schnelle Zähler Typ auswählen
Abbildung 55: Programm erstellen