Skip to content

Format de fichier .grafcetio

Documentation technique

Le format .grafcetio est un format de fichier basé sur JSON pour stocker et échanger des diagrammes GRAFCET. Cette documentation décrit la structure et tous les éléments disponibles.

1. Structure du fichier

Un fichier .grafcetio est un fichier JSON avec la structure de base suivante :

{
  "version": "1.0",
  "createdWith": "grafcet.io",
  "createdAt": "2024-01-15T10:30:00.000Z",
  "nodes": [...],
  "edges": [...],
  "counter": 5
}
  • versionNuméro de version du format de fichier (actuellement toujours "1.0")
  • createdWithNom de l'application qui a créé le fichier
  • createdAtHorodatage de création au format ISO 8601
  • nodesTableau contenant tous les symboles GRAFCET (étapes, transitions, actions, etc.)
  • edgesTableau contenant toutes les liaisons orientées (connexions entre symboles)
  • counterCompteur interne pour l'attribution d'IDs uniques

2. Symboles GRAFCET

Tous les symboles sont stockés dans le tableau "nodes". Chaque symbole a la structure de base suivante :

{
  "id": "step-1",
  "type": "step",
  "position": { "x": 400, "y": 240 },
  "data": { "label": "1" }
}
  • idIdentifiant unique du symbole (ex: "step-1", "transition-2")
  • typeType de symbole (voir les types ci-dessous)
  • positionPosition sur le canevas en pixels (coordonnées x/y)
  • dataDonnées spécifiques au symbole comme l'étiquette, le type d'action, etc.

Types de symboles disponibles

stepÉtape

Représente un état dans le diagramme. Affiché comme un rectangle avec le numéro d'étape.

Stocke : Numéro d'étape (ex: "1", "2", "10")

initialStepÉtape initiale

L'état de départ du GRAFCET, automatiquement activé à l'initialisation. Affiché comme un rectangle avec double bordure.

Stocke : Numéro d'étape (typiquement "0")

transitionTransition

Définit la condition de transition entre les étapes. Affichée comme une ligne horizontale avec le texte de condition.

Stocke : Condition de transition (ex: "a", "a AND b", "!x", "*" pour toujours vrai)

actionAction

Décrit une sortie ou action exécutée lorsque l'étape est active. Placée à droite de l'étape associée.

Stocke : Nom d'action, type d'action, valeur de temps, condition supplémentaire

andNodeDivergence simultanée

Permet des séquences parallèles dans le GRAFCET. Affichée comme une double ligne horizontale.

Stocke : Largeur (défaut: 240px), étiquette optionnelle

loopNodeBoucle

Symbole de rétroaction dans le GRAFCET. Affiché comme une ligne verticale avec une flèche triangulaire vers le haut. Deux symboles avec le même marqueur de référence remplacent une longue ligne de rétroaction.

Stocke : Marqueur de référence (ex: "*", "A")

textAnnotation texte

Champ de texte libre pour commentaires et annotations. Ne fait pas partie de la logique GRAFCET.

Stocke : Texte à afficher

Action:

{
  "id": "action-1",
  "type": "action",
  "position": { "x": 500, "y": 230 },
  "data": {
    "label": "Motor ein",
    "actionType": "continuous"
  }
}
{
  "id": "action-2",
  "type": "action",
  "position": { "x": 500, "y": 350 },
  "data": {
    "label": "Ventil öffnen",
    "actionType": "delayed",
    "time": "5s",
    "condition": "p1"
  }
}

3. Types d'actions (IEC 60848)

Les actions peuvent avoir différents types qui déterminent leur comportement. Le type d'action est représenté graphiquement :

Type d'actionReprésentationDescription
continuousBoîte simpleL'action est active tant que l'étape associée est active
setBoîte avec flèche ↑L'action est activée et reste active après la désactivation de l'étape
resetBoîte avec flèche ↓L'action est désactivée (réinitialise une action précédemment activée)
delayedBoîte avec annotation temporelleL'action ne démarre qu'après le temps spécifié
limitedBoîte avec limite de tempsL'action se termine automatiquement après le temps spécifié
pulseBoîte avec symbole d'impulsionImpulsion unique lors de l'activation de l'étape
conditionalBoîte avec ligne de conditionL'action n'est exécutée que si la condition est remplie

4. Liaisons orientées

Les liaisons orientées connectent les symboles GRAFCET et définissent le flux. Elles sont stockées dans le tableau "edges".

{
  "id": "e-step-1-transition-1",
  "source": "step-1",
  "sourceHandle": "bottom",
  "target": "transition-1",
  "targetHandle": "top",
  "type": "defaultEdge"
}
  • idIdentifiant unique de la connexion
  • sourceID du symbole source (où la ligne commence)
  • targetID du symbole cible (où la ligne se termine)
  • sourceHandlePoint de connexion sur le symbole source
  • targetHandlePoint de connexion sur le symbole cible
  • typeType de liaison orientée

Types de liaisons

defaultEdge
Liaison standardConnecte les étapes aux transitions et les transitions aux étapes. Aussi pour les connexions aux divergences simultanées.
actionEdge
Liaison d'actionConnexion horizontale entre une étape et son action associée.

Points de connexion

Chaque symbole a des points de connexion définis pour les liaisons :

  • "top" - Entrée par le haut
  • "bottom" - Sortie vers le bas
  • "left" - Entrée par la gauche (pour les actions)
  • "right" - Sortie vers la droite (pour les liaisons d'action)
  • Pour les divergences : "handle-0", "handle-1", ... (haut) et "source-0", "source-1", ... (bas)

5. Format de partage compact (v2)

Lors du partage via lien, grafcet.io utilise un format compact avec des clés abrégées. Les données sont compressées avec Deflate et stockées en Base64URL dans l'URL (?g=...). Cela réduit la taille des données d'environ 40%.

Champs des noeuds

CompletCompact
idi
typet
positionp ([x,y])
data.labell
data.actionTypea
data.timeti
data.conditionco
data.widthw
data.heighth
data.bottomLabelbl
data.rotationr
zIndexz

Codes des types de noeuds

CompletCompact
stepS
initialStepI
transitionT
actionA
enclosingStepE
enclosingInitialStepEI
macroStepM
andSplitAS
andJoinAJ
andNodeAN
textX
endLoopL
loopNodeLN
forcedCommandUpFU
forcedCommandDownFD
boxNodeB

Champs des liaisons

CompletCompact
idi
sources
targett
sourceHandlesh
targetHandleth
typey
data.waypointsw ([[x,y],...])

Codes des connecteurs

CompletCompact
topT
bottomB
leftL
rightR
handle-NhN
source-NsN

Les positions sont stockées sous forme de tableaux [x,y] avec des nombres entiers. Les anciens liens v1 restent compatibles.

Essayer l'éditeur

Créez votre propre diagramme GRAFCET et exportez-le en fichier .grafcetio !

Vers l'éditeur
Format de fichier .grafcetio | Documentation