Les recommandations PackML définissent un modèle d'état normalisé afin de présenter de façon standardisée le fonctionnement fondamental d'une machine d'emballage/conditionnement.
Selon les recommandations PackML, chaque machine d'emballage/conditionnement peut supporter de nombreux modes de fonctionnement.
Chaque mode de fonctionnement peut comprendre jusqu'à 17 états (Aborted, Aborting, Clearing, Complete, Completing, Execute, Held, Holding, Idle, Resetting, Starting, Stopped, Stopping, Suspended, Suspending, Un-Holding et Un-Suspending).
Pour passer d'un état à un autre, il existe des transitions entre les états. Chaque transition est déclenchée soit par une commande de transition d'état, soit par la condition de SC (State Complete).
L'implémentation de la bibliothèque PackML se concentre sur le mode de contrôle de l'unité tel que décrit dans la norme ANSI/ISA TR88.00.02-2015. Dans tous les cas, lorsque ce document fait référence au mode de fonctionnement, il s'agit spécifiquement du mode de contrôle de l'unité.
Les modèles d'état dans la bibliothèque PackML sont basées sur le modèle à 17 états, tel que défini dans la norme ANSI/ISA TR88.00.02-2015 : consultez le diagramme ci-après. Un modèle d'état doit contenir ces états, ou un sous-ensemble de ces états.
Un modèle d'état se définit par la spécification des états existants pour le mode de fonctionnement. Les transitions entre états sont créées automatiquement, et dépendent implicitement des états sélectionnés.
ST_UnitModeDefinition est la structure qui représente le modèle d'état d'un mode de fonctionnement donné.
FC_InitStateModelExistingStates initialise l'existence ou non des états.
FC_InitStateModelChangeStates initialise les états qui peuvent permettre un changement de mode de fonctionnement.
FB_ModeManager vérifie que le modèle d'état est cohérent, vérifie qu'un changement de mode de fonctionnement est possible, et trouve l'état cible dans ce mode de fonctionnement.
FC_CheckCmd vérifie la validité d'une commande de transition d'état et retourne l'état cible correspondant.
Les cadres de visualisation et le FB_VisController sont utilisés pour visualiser le modèle d'état et lui fournir une interface de mise en service.
Il vous incombe d'implémenter un flux correct dans le modèle d'état, en accord avec les transitions définies dans le modèle d'état, ainsi que d'implémenter les changements de modes de fonctionnement. Les POU fournis dans la bibliothèque peuvent vous aider à implémenter cette logique (FB_ModeManager et FC_CheckCmd).
Il vous incombe d'implémenter le suivi du mode de fonctionnement et d'état, ainsi que d'implémenter un comportement de machine qui correspond aux états, aux transitions, et aux modes de fonctionnement.
Le diagramme ci-dessous illustre le modèle d'état pour le mode de fonctionnement comportant les 17 états :
Dans le cadre du modèle d'état, on distingue trois types d'états :
Type d'état |
Description issue de ANSI/ISA TR88.00.02-2015 |
Exemple |
---|---|---|
État d'attente |
Etat utilisé pour indiquer qu’une machine a atteint un ensemble de conditions définies. Dans cet état, la machine reste en attente jusqu’à la transition vers un état d’action. |
![]()
|
État d'action |
État qui représente des activités de traitement. Il implique l’exécution unique ou répétée des étapes de traitement dans un ordre logique, pour une durée définie ou jusqu’à ce qu’une condition spécifique soit remplie. |
![]()
![]()
|
La liste qui suit décrit les limites qui caractérisent les modes de fonctionnement basés sur le modèle d'état :
oNombre maximum d'états : 17
Les états du mode de fonctionnement peuvent être sélectionnés parmi les états prédéfinis du modèle d'état. Chaque état ne peut apparaître qu'une fois, dans une position spécifiée par le modèle d'état. Vous ne pouvez pas ajouter d'états supplémentaires, ni changer l'ordre d'enchaînement des états.
oLe modèle d'état ne fonctionne que dans un sens.
oL'état qui suit un État d'attente doit être un État d'action.
oDe la logique peut être exécutée dans chaque état.
NOTE : D'autres règles s'appliquent également à la création de modes de fonctionnement avec la bibliothèque PackML. Consultez FB_ModeManager.