Control Expert utilise une structure multitâche dans l'automate. Une application peut se composer de différentes tâches :
-
Tâche maître
-
Tâche Fast
-
Tâche auxiliaire
-
Tâche événementielle
Le diagramme suivant illustre le séquencement des tâches d'un traitement multitâche comportant une tâche maître cyclique, une tâche rapide de période 20 ms et un traitement événementiel :
I :
Acquisition des entrées
P :
Traitement du programme
O :
Mise à jour des sorties
Le schéma suivant indique le positionnement des tâches événementielles dans la hiérarchie des priorités d'une structure multitâche :
Traitements événementiels
Les traitements événementiels peuvent être déclenchés par le temporisateur d'événement ou via un signal d'entrée du module HLI. Au sein même des tâches événementielles, il existe à nouveau une hiérarchie des priorités.
Le schéma suivant indique le positionnement des événements d'E/S dans la hiérarchie des priorités des tâches événementielles :
Règles des priorités des événements d'E/S
La liste suivante indique les règles de base qui s'appliquent aux priorités de traitement des événements.
-
L'événement EVT0 est la priorité la plus élevée (priorité 0). Il peut interrompre lui-même d'autres types d'événements.
-
Un seul signal d'E/S peut être associé à EVT0.
-
EVTi a la priorité 1. Il peut interrompre les événements TIMERi.
-
La priorité d'un signal d'entrée associé à un événement de priorité 1 est déterminée par :
Le signal d'entrée dont le numéro de position est le plus bas présente la priorité la plus élevée.
L'illustration suivante indique l'interdépendance entre le numéro d'emplacement/de voie et la priorité d'un signal d'entrée :
Pilotage du traitement événementiel
Les différents types de traitement événementiel peuvent être globalement validés ou inhibés par le programme d'application, à l'aide du bit système %S38. Si un ou plusieurs événements interviennent pendant qu'ils sont inhibés, les traitements associés sont perdus.
Deux fonctions élémentaires du langage, MASKEVT() et UNMASKEVT(), utilisés dans le programme d'application, peuvent être employés pour masquer ou démasquer le traitement évènementiel.
Si un ou plusieurs évènements surviennent alors qu'ils sont masqués, le système les enregistre et le traitement associé est exécuté après démasquage.