Resources

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 :

Resources
Technical SECS/GEM Introduction December 2020 SECS/GEM is the semiconductor equipment interface protocol for data communications between the equipment and the host. Find out ho... Technical Industry 4.0 : The factory of the future June 2015 Presentation of the 4th industrial revolution, panorama of key technologies, the expectations that the factory of the future will ... Technical GEM300 Introduction December 2020 With the introduction of larger and heavier 300 mm wafers, semiconductor factories required a significant change in the automation... Technical Adoption of industrial automation standards August 5, 2020 All over the value chain, the produced items and the production processes e.g. production of machines that produce goods, the prod... Trends The challenges of Industry 4.0 for the manufacturing machines April 1, 2021 Presentation of the challenges and issues that production machines will have to face and the added value that the digital twin can... Technical Addressing interoperability issues in factories using SECS/GEM and OPC-UA December 2020 This video presents the work we have done on the interoperability between SECS/GEM and OPC-UA using an information model based on ... Technical No industry 4.0 without communication standards: OPC-UA, a first step towards a solution July 2016 Presentation of the industry 4.0 need for information exchange, the response of the semiconductor industry with SECS/GEM standards... Technical Visual State Machines 2014 ​ Dans le domaine de l'automatisation industrielle, les State Machines sont souvent utilisées pour modéliser le comportement de... Technical Agileo Automation in the industrial value chain February 2022 Agileo Automation in the complex industrial value chain. Agileo Automation offers software automation solutions including equip...
scroll-top
Agileo automation

Accept cookies

This site uses cookies to compile anonymous site visit statistics. Accept cookies ?

More information... Refuse More information...