La section suivante décrit les différents types de tâches disponibles dans votre programme, ainsi que leurs caractéristiques.
Une tâche cyclique se voit affecter un temps de cycle fixe correspondant au paramètre Intervalle défini dans la section Type du sous-onglet Configuration de cette tâche. Chaque type de tâche cyclique s'exécute comme suit :
1. Lecture des entrées : les états des entrées physiques sont écrits dans les variables mémoire d'entrée %I et d'autres opérations système sont exécutées.
2. Traitement de la tâche : le code utilisateur (POU, etc.) défini dans la tâche est traité. Les variables mémoire de sortie %Q sont mises à jour en fonction des instructions du programme d'application, mais ne sont pas encore écrites dans les sorties physiques.
3. Ecriture des sorties : les variables mémoire de sortie %Q sont modifiées en fonction du forçage de sorties défini, mais l'écriture des sorties physiques dépend du type de sortie et des instructions utilisées.
Pour plus d'informations sur la définition de la tâche de cycle de bus, reportez-vous au document EcoStruxure Machine Expert - Guide de programmation et à la rubrique relative aux paramètres du Modicon M251 Logic Controller.
4. Intervalle restant : le micrologiciel du contrôleur effectue le traitement et exécute les autres tâches de priorité inférieure.
NOTE : Si vous définissez une période courte pour une tâche cyclique, celle-ci se répète immédiatement après l'écriture des sorties, sans exécuter les autres tâches de priorité inférieure ou des opérations système. Cela affecte l'exécution de toutes les tâches et fait dépasser au contrôleur les limites de l'horloge de surveillance du système, ce qui génère une exception d'horloge de surveillance système.
NOTE : Lorsque le temps de cycle de tâche est défini sur une valeur inférieure à 3 ms, la durée réelle doit être surveillée via l'écran Task Monitoring pendant la mise en service pour garantir qu'elle est constamment inférieure au temps de cycle configuré. Si elle est supérieure, le cycle de tâche risque de ne pas être respecté sans causer l'expiration de l'horloge de surveillance de cycle et le passage du contrôleur à l'état HALT. Pour éviter autant que possible cette situation, lorsque la durée du cycle de tâche est réglée sur une valeur inférieure à 3 ms, des limites réelles de +1 ms sont appliquées si, pendant un cycle, la durée calculée dépasse légèrement la valeur configurée.
NOTE : vous pouvez obtenir et définir l'intervalle d'une tâche cyclique par l'application à l'aide des fonctions GetCurrentTaskCycle et SetCurrentTaskCycle. Pour plus d'informations, reportez-vous au Guide de bibliothèque Toolbox_Advance.
Une tâche exécutée librement n'a pas de durée fixe. En mode d'exécution libre, chaque scrutation de tâche démarre après l'achèvement de la scrutation précédente et après une courte période de traitement système. Chaque type de tâche exécutée librement s'exécute comme suit :
1. Lecture des entrées : les états des entrées physiques sont écrits dans les variables mémoire d'entrée %I et d'autres opérations système sont exécutées.
2. Traitement de la tâche : le code utilisateur (POU, etc.) défini dans la tâche est traité. Les variables mémoire de sortie %Q sont mises à jour en fonction des instructions du programme d'application, mais ne sont pas encore écrites dans les sorties physiques.
3. Ecriture des sorties : les variables mémoire de sortie %Q sont modifiées en fonction du forçage de sorties défini, mais l'écriture des sorties physiques dépend du type de sortie et des instructions utilisées.
Pour plus d'informations sur la définition de la tâche de cycle de bus, reportez-vous au document EcoStruxure Machine Expert - Guide de programmation et à la rubrique relative aux paramètres du Modicon M251 Logic Controller.
4. Traitement système : le micrologiciel du contrôleur effectue le traitement et exécute les autres tâches de priorité inférieure (par exemple, gestion HTTP, gestion Ethernet et gestion des paramètres).
NOTE : Pour définir l'intervalle de tâche, consultez la section Tâche cyclique.
Ce type de tâche est lié à un événement et déclenché par une variable de programme. La tâche débute sur le front montant de la variable booléenne associée à l'événement déclencheur sauf si une tâche de priorité supérieure doit être exécutée avant. Dans ce cas, la tâche d'événement commence conformément aux attributions de priorité des tâches.
Etape |
Action |
---|---|
1 |
Double-cliquez sur Tâche dans l'arborescence Équipements. |
2 |
Sélectionnez Événement dans la liste Type de l'onglet Configuration. |
3 |
Cliquez sur le bouton Aide à la saisie Résultat : la fenêtre Aide à la saisie s'affiche. |
4 |
Recherchez la variable my_Var dans l'arborescence de l'aide à la saisie afin de l'attribuer. |
NOTE : Le fait de déclencher une tâche d'événement à une fréquence trop élevée fait passer le contrôleur à l'état HALT (exception). La fréquence maximum est de 6 événements par milliseconde. Si l'événement est déclenché selon une fréquence supérieure à celle-ci, le message « ISR Count Exceeded » s'affiche dans la page du journal de l'application.
Ce type de tâche est piloté par événement et initié par la détection d'un événement matériel ou associé au matériel. La tâche débute lorsque l'événement survient, sauf si une tâche de priorité supérieure doit être exécutée avant. Dans ce cas, la tâche d'événement externe démarre selon les priorités de tâche affectées.
La tâche d'événement externe est associée à l'événement de synchronisation CAN. Pour associer l'événement CAN_1_SYNC à une tâche d'événement externe, sélectionnez-le dans la liste déroulante Événement externe de l'onglet Configuration.
NOTE : l'objet de synchronisation CAN est un objet d'événement spécifique, qui dépend de la configuration du gestionnaire CANopen.