Utiliser Graphviz pour dessiner rapidement vos grafcets

Trucs-Astuces-Micro cours sur les automatismes industriels
Répondre
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1425
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Utiliser Graphviz pour dessiner rapidement vos grafcets

Message par MiGaNuTs »

Graphviz est un outil qui, comme son nom l’indique, sert a tracer des graphes (qu’on peut aussi appeler arbres)
Les Grafcets qu’on utilise en automatisme n’étant jamais qu’une forme particulière de graphes, on peut dont l’utiliser pour notre usage, a condition d’accepter qu’ils n’auront pas tout a fait la même tete que d’habitude.
Graphviz est un langage de description. On peut lui trouver des similitudes avec divers autres langages de descriptions de trucs, comme le html ou le yaml

On va garder toujours le même code en entête puis y encapsuler ce dont on a besoin.
Perso je préfère commencer par les transitions, car ça permets d'avoir un premier jet très rapidement et simplement.

Code : Tout sélectionner

 Digraph Machin {
	X1 - > X2
	X1 - > X3
	X2 - > X3
	X3 - > X4
	X4 - > X1
} # Fin du graphe Machin
Ca nous génère un bel arbre.
Sans titre.png
On a déja la un "outil de reflexion" franchement pratique a mon gout et très vite fait

Maintenant on va le « tuner » un peut.
On va rajouter des labels a nos transitions et a nos étapes pour le rendre plus clair.

Code : Tout sélectionner

digraph G {

#Liste des transitions d'abords
X1 -> X2 [label="condition 1"]
X1 -> X3 [label="condition 2"]
X2 -> X3 [label="condition 3"]
X3 -> X4 [label="condition 4"]
X4 -> X1 [label="condition 5\r ou suite de la condition 5"]

#Ensuite les étapes.
#Mais rien ne vous empêche de faire l'inverse
X1 [ shape=square label="X1 : Etape 1 \r Faire des trucs"]
X2 [label ="X2: Etape 2"]
#Etc ...

}
2025-05-07 09_47_01-Window.png
On peut même customiser (beaucoup) leur présentation. En fouillant sur Google on se rends compte qu'on peut le personnaliser sans fin.
Mais au bout d'un moment si on passe trop de temps a le personnaliser, on fini par perdre le te temps qu'on était censés gagner.
Perso je m’arrête aux labels. Les doubles flèches, cases forcées a s’aligner cote a cote et autre c'est plus joli mais ca ne m'aide pas plus a réfléchir.

Dernier point important : Vous n’êtes absolument pas obligés d'installer le soft sur votre PC, il existe des versions en ligne qui vous permettent de travailler directement dans votre navigateur.

https://dreampuf.github.io/GraphvizOnline/?engine=dot

Vous connaissiez cet outil ?
Laurent
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 116
Enregistré le : 20 oct. 2015, 11:16
Localisation : Oise et Ile-de-France / France

Re: Utiliser Graphviz pour dessiner rapidement vos grafcets

Message par Laurent »

Salut,

je ne connaissais pas, mais effectivement, ça peut être pratique.
Avec la version en ligne, c'est sympa aussi.
Merci d'avoir partagé ça !
Laurent
Avatar du membre
Bruce33
Dieu du process
Dieu du process
Messages : 886
Enregistré le : 28 oct. 2015, 06:54
Localisation : Pas-de-Calais

Re: Utiliser Graphviz pour dessiner rapidement vos grafcets

Message par Bruce33 »

Bonjour,

Merci pour cette présentation.
Même si pour moi le graphe d'états reste trop éloigné du Grafcet pour que j'en fasse usage dans mon cadre de travail.
Cependant je suis intéressé par ces outils qui génèrent des résultats à partir d'un simple fichier texte.

Il existait un projet similaire pour générer du Grafcet, je crois que c'était GRED : https://diam.minisme.fr/gred/ (avec une réplique du code source par ici : https://github.com/tbultel/gred)
Le fait que ce soit écrit en TCL/TK ne m'avait pas emballé.
Répondre