Interrupt Control (Interruptsteuerung)
Der Befehl ICTL wird zur Einstellung der Interruptsteuerung verwendet. Mit jeder Ausführung des Befehls ICTL können die Interruptparameter wie Interruptart und Status (aktiviert/deaktiviert) neu festgelegt werden. Die Parameter werden mit s1_Control und s2_Condition festgelegt
s1_Control: 16-Bit-Bereich oder äquivalente 16-Bit-Konstante zur Einstellung der Interruptsteuerung
s2_Condition: 16-Bit-Bereich oder äquivalente 16-Bit-Konstante zur Einstellung der Interrupt-Trigger-Bedingung
Eingang
Einstellung der Interrupt-Steuerungswerte
Einstellung der Interrupt-Bedingung
Anzahl der verfügbaren Interrupt-Programme:
durch Interrupt-Modul ausgelöste Interrupt-Programme (INT 0–INT 15)
durch erweitertes Modul (Spezialmodule wie Positioniermodul usw.) ausgelöste Interrupt-Programme (INT 16–INT 23)
zeitgesteuertes Interrupt-Programm (INT 24) (Zeitabstand 0,5ms einstellbar für FP2/2SH, FP10SH)
Verwenden Sie nur ICTL-Befehle, damit diese an der steigenden Flanke des ICTL-Triggers mit Hilfe des Befehls DF einmal ausgeführt werden.
Zwei oder mehr ICTL-Befehle können denselben Trigger verwenden.
Bit |
15 .. 8 |
7 .. 0 |
---|---|---|
s1_Control 16# |
Auswahl der Steuerungsfunktion 00: Steuerung Interrupt-Programm "aktivieren/deaktivieren" 01: Steuerung Interrupt-Trigger zurücksetzen |
Auswahl des Interrupt-Typs 00: Interrupt-Modul (INT 0–15) 01: Erweitertes Modul (INT 16–23) 02: Zeit-Interrupt (INT 24) |
s2_Condition 2# |
Bit 0: 0 Interrupt-Programm 0 deaktiviert Bit 0: 1 Interrupt-Programm 0 aktiviert Bit 1: 0 Interrupt-Programm 1 deaktiviert ... Bit 15: 1 Interrupt-Programm 15 aktiviert Beispiel: s2 = 2#0000000000001010 |
Der aktuelle Aktivierungs-/Deaktivierungsstatus jedes durch ein Interrupt-Modul ausgelösten Interrupt-Programms kann anhand der Systemvariablen sys_wInterruptMask_0_15 geprüft werden.
Der aktuelle Aktivierungs-/Deaktivierungsstatus jedes durch ein Nicht-Interrupt-Modul ausgelösten Interrupt-Programms kann anhand der Systemvariablen sys_wInterruptMask_16_31 geprüft werden.
Das aktuelle Interrupt-Intervall des Zeit-Interrupts kann anhand der Systemvariablen sys_iPeriodicInterruptInterval geprüft werden.
Wenn ein Programm in einen Interrupt-Task geschrieben wird, wird das betreffende Interrupt-Programm während der Initialisierungsroutine beim Starten des Programms automatisch aktiviert.
Mit dem Befehl ICTL kann ein Interrupt-Task durch das Programm aktiviert oder deaktiviert werden.