.grafcetio File Format
Technical Documentation
The .grafcetio format is a JSON-based file format for storing and exchanging GRAFCET diagrams. This documentation describes the structure and all available elements.
1. File Structure
A .grafcetio file is a JSON file with the following basic structure:
{
"version": "1.0",
"createdWith": "grafcet.io",
"createdAt": "2024-01-15T10:30:00.000Z",
"nodes": [...],
"edges": [...],
"counter": 5
}versionVersion number of the file format (currently always "1.0")createdWithName of the application that created the filecreatedAtCreation timestamp in ISO 8601 formatnodesArray containing all GRAFCET symbols (steps, transitions, actions, etc.)edgesArray containing all directed links (connections between symbols)counterInternal counter for assigning unique element IDs
2. GRAFCET Symbols
All symbols are stored in the "nodes" array. Each symbol has the following basic structure:
{
"id": "step-1",
"type": "step",
"position": { "x": 400, "y": 240 },
"data": { "label": "1" }
}idUnique identifier of the symbol (e.g., "step-1", "transition-2")typeType of symbol (see symbol types below)positionPosition on the canvas in pixels (x/y coordinates)dataSymbol-specific data such as label, qualifier, etc.
Available Symbol Types
stepStepRepresents a state in the sequence diagram. Displayed as a rectangle with step number.
Stores: Step number (e.g., "1", "2", "10")
initialStepInitial StepThe start state of the GRAFCET, automatically activated on initialization. Displayed as a rectangle with double border.
Stores: Step number (typically "0")
transitionTransitionDefines the transition condition between steps. Displayed as a horizontal line with condition text.
Stores: Transition condition (e.g., "a", "a AND b", "!x", "*" for always true)
actionActionDescribes an output or action executed when the step is active. Placed to the right of the associated step.
Stores: Action name, qualifier (N/S/R/D/L/P/C), time value for D/L, additional condition for C
andNodeSimultaneous DivergenceEnables parallel sequences in GRAFCET. Displayed as a double horizontal line. Can have multiple incoming and outgoing connections.
Stores: Width (default: 240px), optional label
loopNodeLoopFeedback symbol in GRAFCET. Displayed as a vertical line with an upward-pointing triangle arrow. Two symbols with matching reference markers replace a long feedback line.
Stores: Reference marker (e.g., "*", "A")
textText AnnotationFree text field for comments and annotations in the diagram. Not part of the GRAFCET logic.
Stores: Display text
Action:
{
"id": "action-1",
"type": "action",
"position": { "x": 500, "y": 230 },
"data": {
"label": "Motor ein",
"qualifier": "N"
}
}{
"id": "action-2",
"type": "action",
"position": { "x": 500, "y": 350 },
"data": {
"label": "Ventil öffnen",
"qualifier": "D",
"time": "5s",
"condition": "p1"
}
}3. Action Qualifiers (IEC 60848)
Actions can be assigned qualifiers that determine the behavior of the action:
| Code | Name | Description |
|---|---|---|
N | Continuous | Action is active as long as the associated step is active |
S | Stored (Set) | Action is turned on and remains active after the step is deactivated |
R | Stored (Reset) | Action is turned off (resets a previously set action) |
D | Delayed | Action starts only after the specified time has elapsed (requires time value) |
L | Time-limited | Action automatically ends after the specified time (requires time value) |
P | Pulse | Single short pulse when the step is activated |
C | Conditional | Action is only executed if the additional condition is met |
4. Directed Links
Directed links connect GRAFCET symbols and define the flow. They are stored in the "edges" array.
{
"id": "e-step-1-transition-1",
"source": "step-1",
"sourceHandle": "bottom",
"target": "transition-1",
"targetHandle": "top",
"type": "defaultEdge"
}idUnique identifier of the connectionsourceID of the source symbol (where the line starts)targetID of the target symbol (where the line ends)sourceHandleConnection point on the source symboltargetHandleConnection point on the target symboltypeType of directed link
Link Types
defaultEdgeactionEdgeConnection Points
Each symbol has defined connection points for directed links:
- "top" - Input from above
- "bottom" - Output downward
- "left" - Input from left (for actions)
- "right" - Output to right (for action links)
- For simultaneous divergences: "handle-0", "handle-1", ... (top) and "source-0", "source-1", ... (bottom)