Ressources

Visual State Machines

2014
Visual State Machine editor inside Microsoft Visual Studio ®
Technique

Dans le domaine de l'automatisation industrielle, les State Machines sont souvent utilisées pour modéliser le comportement des hardware.

Définition d'une State machine

Les machines à états sont constituées de :

  • États : ils représentent le fait que le système est en train de faire quelque chose ou d'attendre quelque chose, comme un état « Idle » en attendant qu'un bouton soit pressé, ou un état « Moving » lorsque le système est en mouvement.
  • Transitions : elles représentent tous les changements d'état possibles, comme une transition de l'état « Idle » à l'état « Moving ».
  • Événements : ils représentent ce qui peut se produire pour activer une transition, comme l'événement « eMove » qui est généré lorsque l'on appuie sur le bouton « Move » du système et qui active la transition de l'état « Idle » à l'état « Moving ». Un événement peut également être déclenché par une minuterie.
  • Conditions : empêcher la transition d'un état à un autre si les conditions ne sont pas remplies même si l'événement approprié est déclenché, comme la vérification de l'état d'un autre appareil représenté par une autre machine à états.
  • Actions : quelque chose à faire lorsqu'une transition est exécutée, qu'un état est entré ou qu'un état est sorti.

     

Les machines à états sont très utiles pour modéliser des comportements complexes et les représenter visuellement.

State Machine with Alarm, Idle, Pick, Place, Align, Process states

Dans le langage UML (Unified Modeling Language), les diagrammes de classes sont souvent utilisés par les développeurs de logiciels pour modéliser la structure du code et les relations entre les classes. Les diagrammes d'état peuvent être utilisés pour représenter le comportement dynamique. Ils sont basés sur le concept mathématique des machines à états finis, avec quelques variations par rapport aux diagrammes d'états de Harel.

Mise en œuvre de machines à états simples

Les machines à états peuvent être facilement mises en œuvre dans n'importe quel langage de programmation à l'aide d'un simple switch/case utilisant l'état actuel comme sélecteur de cas. Toutefois, cette implémentation présente plusieurs inconvénients :

  • Il est nécessaire de maintenir séparément un dessin de la machine à états
  • Il y a souvent des doutes quant à savoir si le dessin a été mis à jour avec le dernier correctif du code.
  • Certains développeurs ne dessinent même pas la machine à états parce qu'ils commencent par une machine à états avec seulement 3 états, mais après 6 mois, la complexité a augmenté et il n'y a pas de documentation du tout !
  • Il n'y a pas de contrôle syntaxique qui vérifie que le dessin représente correctement la machine à états implémentée.
  • Pour les machines à états complexes, l'utilisation de switch/case peut être source d'erreurs (comme oublier une instruction break ou se perdre dans tous les états).

Visual State Machines

Chez Agileo Automation, nous pensons, pour citer Aristote, que :

L'âme ne pense pas sans image

En conséquence, nous avons ajouté les machines à états sur Visual Studio de manière à ce que :

  • Un développeur peut dessiner l'état et les transitions qu'il envisage pour un appareil ou un équipement plus complexe,
  • Il peut partager sa machine à états sous forme d'image avec ses collègues et ses partenaires afin de remettre en question sa conception et donc de l'améliorer,
  • Il peut rendre le dessin exécutable sans écrire de code dans le cadre d'une approche « low code » : Ce que vous voyez est ce que vous obtenez (WYSIWYG)

Ce processus est itératif dans le cadre d'une approche agile.

A²ECF-Industry and A²ECF-SEMI embed:

  • un éditeur visuel de machine à états directement dans Microsoft Visual Studio ® pour concevoir la machine à états et faire le lien avec le code C# comme le déclenchement d'événements ou l'appel d'actions.
  • un moteur de machine à états pour exécuter la machine d'état comme changer d'état lorsqu'un événement est déclenché, vérifier les conditions et appeler des actions dans le code C#.

Voyez comment cela peut accélérer le développement de votre contrôleur d'équipement et améliorer sa qualité ainsi que sa documentation :

Ressources
Technique Introduction SECS/GEM Décembre 2020 SECS/GEM est le protocole d'interface des équipements du semi-conducteur pour les communications de données entre l'équipement et&... Technique Industrie 4.0 : L’usine du futur Juin 2015 Présentation de la 4ème révolution industrielle, panorama des technologies clés, des attentes auxquelles l'usine du futur devra ré... Technique Introduction GEM300 Decembre 2020 Avec l'introduction de wafers de 300 mm plus lourds et de taille plus grande, les usines de semi-conducteurs ont nécessité un chan... Technique Adoption des normes d'automatisation industrielle 5 août 2020 Tout au long de la chaîne de valeur, les produits et les processus de production, par exemple la production de machines qui produi... Tendances Les défis de l’industrie de futur pour les machines de production 1 Avril 2021 Présentation des défis et problématiques auxquels devront répondre les machines de production ainsi que la valeur ajoutée que le j... Technique L'interopérabilité dans les usines avec SECS/GEM et OPC-UA Décembre 2020 Cette vidéo présente le travail que nous avons réalisé sur l'interopérabilité entre SECS/GEM et OPC-UA en utilisant un modèle d'in... Technique Pas d’industrie du futur sans standards de communication : OPC-UA un début de solution Juillet 2016 Présentation du besoin d'industrie 4.0 en terme d'échange d'information, de la réponse de l'industrie du semi-conducteur avec les ... Technique Visual State Machines 2014 ​ Dans le domaine de l'automatisation industrielle, les State Machines sont souvent utilisées pour modéliser le comportement de... Technique Agileo Automation dans la chaîne de valeur industrielle Février 2022 Agileo Automation dans la chaîne de valeur industrielle complexe Agileo Automation propose des solutions logicielles d'automati...
scroll-top
Agileo automation

Accepter les cookies

Ce site utilise des cookies pour réaliser des statistiques de visites anonymes. Acceptez-vous ?

Plus d'information... Refuser Plus d'information...