Skip to content

.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 aangemaakt
  • createdAtAanmaaktijdstempel in ISO 8601-formaat
  • nodesArray 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

stepStap

Vertegenwoordigt een toestand in het diagram. Weergegeven als een rechthoek met stapnummer.

Slaat op: Stapnummer (bijv. "1", "2", "10")

initialStepInitiële stap

De starttoestand van het GRAFCET, automatisch geactiveerd bij initialisatie. Weergegeven als een rechthoek met dubbele rand.

Slaat op: Stapnummer (typisch "0")

transitionTransitie

Definieert de overgangsvoorwaarde tussen stappen. Weergegeven als een horizontale lijn met voorwaardetekst.

Slaat op: Overgangsvoorwaarde (bijv. "a", "a AND b", "!x", "*" voor altijd waar)

actionActie

Beschrijft 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 vertakking

Maakt 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

loopNodeLus

Terugkoppelingssymbool 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")

textTekstaantekening

Vrij 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:

ActietypeWeergaveBeschrijving
continuousEenvoudige boxActie is actief zolang de bijbehorende stap actief is
setBox met pijl ↑Actie wordt ingeschakeld en blijft actief na deactivering van de stap
resetBox met pijl ↓Actie wordt uitgeschakeld (reset een eerder ingestelde actie)
delayedBox met tijdaanduidingActie start pas na het verstrijken van de opgegeven tijd
limitedBox met tijdslimietActie eindigt automatisch na de opgegeven tijd
pulseBox met impulssymboolEnkele korte impuls bij activering van de stap
conditionalBox met voorwaardenlijnActie 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 verbinding
  • sourceID van het bronsymbool (waar de lijn begint)
  • targetID van het doelsymbool (waar de lijn eindigt)
  • sourceHandleVerbindingspunt op het bronsymbool
  • targetHandleVerbindingspunt op het doelsymbool
  • typeType gerichte verbinding

Verbindingstypen

defaultEdge
StandaardverbindingVerbindt stappen met transities en transities met stappen. Ook voor verbindingen naar simultane vertakkingen.
actionEdge
ActieverbindingHorizontale verbinding tussen een stap en de bijbehorende actie.

Verbindingspunten

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

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

Knooppunttypecodes

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

Verbindingsvelden

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

Verbindingspuntcodes

VolledigCompact
topT
bottomB
leftL
rightR
handle-NhN
source-NsN

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
.grafcetio Bestandsformaat | Documentatie