.grafcetio Bestandsformaat
Technische documentatie
Het .grafcetio-formaat is een op JSON gebaseerd bestandsformaat voor het opslaan en uitwisselen van GRAFCET-diagrammen. Deze documentatie beschrijft de structuur en alle beschikbare elementen.
1. Bestandsstructuur
Een .grafcetio-bestand is een JSON-bestand met de volgende basisstructuur:
{
"version": "1.0",
"createdWith": "grafcet.io",
"createdAt": "2024-01-15T10:30:00.000Z",
"nodes": [...],
"edges": [...],
"counter": 5
}versionVersienummer van het bestandsformaat (momenteel altijd "1.0")createdWithNaam van de applicatie die het bestand heeft aangemaaktcreatedAtAanmaaktijdstempel in ISO 8601-formaatnodesArray met alle GRAFCET-symbolen (stappen, transities, acties, etc.)edgesArray met alle gerichte verbindingen (verbindingen tussen symbolen)counterInterne teller voor het toewijzen van unieke element-ID's
2. GRAFCET-symbolen
Alle symbolen worden opgeslagen in de "nodes"-array. Elk symbool heeft de volgende basisstructuur:
{
"id": "step-1",
"type": "step",
"position": { "x": 400, "y": 240 },
"data": { "label": "1" }
}idUnieke identificatie van het symbool (bijv. "step-1", "transition-2")typeType symbool (zie symbooltypen hieronder)positionPositie op het canvas in pixels (x/y-coördinaten)dataSymboolspecifieke gegevens zoals label, actietype, etc.
Beschikbare symbooltypen
stepStapVertegenwoordigt een toestand in het diagram. Weergegeven als een rechthoek met stapnummer.
Slaat op: Stapnummer (bijv. "1", "2", "10")
initialStepInitiële stapDe starttoestand van het GRAFCET, automatisch geactiveerd bij initialisatie. Weergegeven als een rechthoek met dubbele rand.
Slaat op: Stapnummer (typisch "0")
transitionTransitieDefinieert de overgangsvoorwaarde tussen stappen. Weergegeven als een horizontale lijn met voorwaardetekst.
Slaat op: Overgangsvoorwaarde (bijv. "a", "a AND b", "!x", "*" voor altijd waar)
actionActieBeschrijft een uitgang of actie die wordt uitgevoerd wanneer de stap actief is. Wordt rechts van de bijbehorende stap geplaatst.
Slaat op: Actienaam, actietype, tijdwaarde, aanvullende voorwaarde
andNodeSimultane vertakkingMaakt parallelle sequenties in GRAFCET mogelijk. Weergegeven als een dubbele horizontale lijn. Kan meerdere inkomende en uitgaande verbindingen hebben.
Slaat op: Breedte (standaard: 240px), optioneel label
loopNodeLusTerugkoppelingssymbool in GRAFCET. Weergegeven als een verticale lijn met een naar boven wijzende driehoekspijl. Twee symbolen met hetzelfde referentieteken vervangen een lange terugkoppelingslijn.
Slaat op: Referentieteken (bijv. "*", "A")
textTekstaantekeningVrij tekstveld voor opmerkingen en aantekeningen in het diagram. Maakt geen deel uit van de GRAFCET-logica.
Slaat op: Weergavetekst
Actie:
{
"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. Actietypen (IEC 60848)
Acties kunnen verschillende typen hebben die hun gedrag bepalen. Het actietype wordt grafisch weergegeven:
| Actietype | Weergave | Beschrijving |
|---|---|---|
continuous | Eenvoudige box | Actie is actief zolang de bijbehorende stap actief is |
set | Box met pijl ↑ | Actie wordt ingeschakeld en blijft actief na deactivering van de stap |
reset | Box met pijl ↓ | Actie wordt uitgeschakeld (reset een eerder ingestelde actie) |
delayed | Box met tijdaanduiding | Actie start pas na het verstrijken van de opgegeven tijd |
limited | Box met tijdslimiet | Actie eindigt automatisch na de opgegeven tijd |
pulse | Box met impulssymbool | Enkele korte impuls bij activering van de stap |
conditional | Box met voorwaardenlijn | Actie wordt alleen uitgevoerd als de aanvullende voorwaarde is vervuld |
4. Gerichte verbindingen
Gerichte verbindingen verbinden de GRAFCET-symbolen en definiëren de stroom. Ze worden opgeslagen in de "edges"-array.
{
"id": "e-step-1-transition-1",
"source": "step-1",
"sourceHandle": "bottom",
"target": "transition-1",
"targetHandle": "top",
"type": "defaultEdge"
}idUnieke identificatie van de verbindingsourceID van het bronsymbool (waar de lijn begint)targetID van het doelsymbool (waar de lijn eindigt)sourceHandleVerbindingspunt op het bronsymbooltargetHandleVerbindingspunt op het doelsymbooltypeType gerichte verbinding
Verbindingstypen
defaultEdgeactionEdgeVerbindingspunten
Elk symbool heeft gedefinieerde verbindingspunten voor gerichte verbindingen:
- "top" - Ingang van boven
- "bottom" - Uitgang naar beneden
- "left" - Ingang van links (voor acties)
- "right" - Uitgang naar rechts (voor actieverbindingen)
- Voor simultane vertakkingen: "handle-0", "handle-1", ... (boven) en "source-0", "source-1", ... (onder)
5. Compact deelformaat (v2)
Bij het delen via link gebruikt grafcet.io een compact formaat met verkorte sleutels. De gegevens worden gecomprimeerd met Deflate en opgeslagen als Base64URL in de URL (?g=...). Dit vermindert de gegevensgrootte met ongeveer 40%.
Knooppuntvelden
| Volledig | Compact |
|---|---|
| id | i |
| type | t |
| position | p ([x,y]) |
| data.label | l |
| data.actionType | a |
| data.time | ti |
| data.condition | co |
| data.width | w |
| data.height | h |
| data.bottomLabel | bl |
| data.rotation | r |
| zIndex | z |
Knooppunttypecodes
| Volledig | Compact |
|---|---|
| step | S |
| initialStep | I |
| transition | T |
| action | A |
| enclosingStep | E |
| enclosingInitialStep | EI |
| macroStep | M |
| andSplit | AS |
| andJoin | AJ |
| andNode | AN |
| text | X |
| endLoop | L |
| loopNode | LN |
| forcedCommandUp | FU |
| forcedCommandDown | FD |
| boxNode | B |
Verbindingsvelden
| Volledig | Compact |
|---|---|
| id | i |
| source | s |
| target | t |
| sourceHandle | sh |
| targetHandle | th |
| type | y |
| data.waypoints | w ([[x,y],...]) |
Verbindingspuntcodes
| Volledig | Compact |
|---|---|
| top | T |
| bottom | B |
| left | L |
| right | R |
| handle-N | hN |
| source-N | sN |
Posities worden opgeslagen als [x,y]-arrays met gehele getallen. Oude v1-links blijven compatibel.
Editor uitproberen
Maak je eigen GRAFCET-diagram en exporteer het als .grafcetio-bestand!
Naar de editor