Contrôle d’interruption
L’instruction ICTL permet de paramétrer le contrôle d’interruption. Lorsque l’instruction ICTL est exécutée, il est possible de définir le type et l’état du programme d’interruption. Les paramètres peuvent être définis par s1_Control et s2_Condition.
s1_Control constante de 16 bits ou zone de 16 bits pour le paramétrage du contrôle d’interruption
s2_Condition constante de 16 bits ou zone de 16 bits pour le paramétrage des conditions de déclenchement d’interruption
Entrée
Paramétrage des données de contrôle d’interruption
Paramétrage des conditions d’interruption
Programmes d’interruption disponibles :
Programmes d’interruptions contrôlés via des modules d’interruption (INT 0–INT 15)
Programmes d’interruption contrôlés via un module spécial (module de positionnement,...) (INT 16–INT 23)
Programme d’interruption périodique (INT 24) (base de temps de 0,5ms sélectionnable pour FP2/2SH, FP10SH)
Veillez à ce que les instructions ICTL soient exécutées uniquement en front montant du déclencheur ICTL lorsque l’instruction DF (DF Front montant différentiel) est utilisée.
Plusieurs instructions ICTL peuvent avoir le même déclencheur.
Bit |
15 .. 8 |
7 .. 0 |
---|---|---|
s1_Control 16# |
Sélection de la fonction de contrôle 00 : contrôle d’activation/de désactivation de l’interruption 01 : contrôle de réinitialisation du déclencheur d’interruption |
Sélection du type d’interruption 00 : module d’interruption (INT 0–15) 01 : module spécial (INT 16–23) 02 : interruption périodique (INT 24) |
s2_Condition 2# |
Bit 0 : 0 programme d’interruption 0 désactivé Bit 0 : 1 programme d’interruption 0 activé Bit 1 : 0 programme d’interruption 1 désactivé ... Bit 15 : 1 programme d’interruption 15 activé Exemple : s2 = 2#0000000000001010 |
L’état activé/désactivé actuel de chaque interruption contrôlée via un module d’interruption peut être supervisé via la variable système sys_wInterruptMask_0_15.
L’état activé/désactivé actuel de chaque interruption contrôlée via un module autre qu’un module d’interruption peut être supervisé via la variable système sys_wInterruptMask_16_31.
L’intervalle actuel de l’interruption périodique peut être supervisé via la variable système sys_iPeriodicInterruptInterval.
Si un programme est écrit dans une tâche d’interruption, l’interruption concernée sera activée automatiquement pendant la routine d’initialisation lors du lancement du programme.
L’instruction ICTL permet au programme d’activer ou de désactiver une tâche d’interruption.