Skip to content
Zum Inhalt springen

.grafcetio Dateiformat

Technische Dokumentation

Das .grafcetio-Format ist ein JSON-basiertes Dateiformat zum Speichern und Austauschen von GRAFCET-Diagrammen. Diese Dokumentation beschreibt den Aufbau und alle verfügbaren Elemente.

1. Dateistruktur

Eine .grafcetio-Datei ist eine JSON-Datei mit folgender Grundstruktur:

{
  "version": "1.0",
  "createdWith": "grafcet.io",
  "createdAt": "2024-01-15T10:30:00.000Z",
  "nodes": [...],
  "edges": [...],
  "counter": 5
}
  • versionVersionsnummer des Dateiformats (aktuell immer "1.0")
  • createdWithName der Anwendung, die die Datei erstellt hat
  • createdAtErstellungszeitpunkt im ISO 8601 Format
  • nodesArray mit allen GRAFCET-Symbolen (Schritte, Transitionen, Aktionen, etc.)
  • edgesArray mit allen Wirkungslinien (Verbindungen zwischen Symbolen)
  • counterInterner Zähler für die Vergabe eindeutiger Element-IDs

2. GRAFCET-Symbole

Alle Symbole werden im "nodes"-Array gespeichert. Jedes Symbol hat folgende Grundstruktur:

{
  "id": "step-1",
  "type": "step",
  "position": { "x": 400, "y": 240 },
  "data": { "label": "1" }
}
  • idEindeutige Kennung des Symbols (z.B. "step-1", "transition-2")
  • typeArt des Symbols (siehe Symboltypen unten)
  • positionPosition auf der Zeichenfläche in Pixeln (x/y-Koordinaten)
  • dataSymbolspezifische Daten wie Beschriftung, Aktionsart, etc.

Verfügbare Symboltypen

stepSchritt

Repräsentiert einen Zustand im Ablaufdiagramm. Wird als Rechteck mit Schrittnummer dargestellt.

Speichert: Schrittnummer (z.B. "1", "2", "10")

initialStepInitialschritt

Der Startzustand des GRAFCET, der bei Initialisierung automatisch aktiviert wird. Dargestellt als Rechteck mit doppelter Umrandung.

Speichert: Schrittnummer (typischerweise "0")

transitionTransition

Definiert die Übergangsbedingung zwischen Schritten. Dargestellt als horizontaler Strich mit Bedingungstext.

Speichert: Übergangsbedingung (z.B. "a", "a AND b", "!x", "*" für immer wahr)

actionAktion

Beschreibt eine Ausgabe oder Aktion, die bei aktivem Schritt ausgeführt wird. Wird rechts neben dem zugehörigen Schritt platziert.

Speichert: Aktionsbezeichnung, Aktionsart, Zeitwert, Zusatzbedingung

andNodeSimultanverzweigung

Ermöglicht parallele Abläufe im GRAFCET. Dargestellt als doppelte horizontale Linie. Kann mehrere ein- und ausgehende Verbindungen haben.

Speichert: Breite (Standard: 240px), optionale Beschriftung

loopNodeSchleife

Rückführungssymbol im GRAFCET. Dargestellt als vertikale Linie mit Dreieckspfeil nach oben. Zwei Symbole mit gleichem Referenzzeichen ersetzen eine lange Rückführungslinie.

Speichert: Referenzzeichen (z.B. "*", "A")

textTextanmerkung

Freitextfeld für Kommentare und Anmerkungen im Diagramm. Nicht Teil der GRAFCET-Logik.

Speichert: Anzeigetext

Aktion:

{
  "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. Aktionsarten (DIN EN 60848)

Aktionen können verschiedene Arten haben, die ihr Verhalten bestimmen. Die Aktionsart wird grafisch dargestellt:

AktionsartDarstellungBeschreibung
continuousEinfache BoxAktion ist aktiv, solange der zugehörige Schritt aktiv ist
setBox mit Pfeil ↑Aktion wird eingeschaltet und bleibt auch nach Deaktivierung des Schritts aktiv
resetBox mit Pfeil ↓Aktion wird ausgeschaltet (setzt eine vorher gesetzte Aktion zurück)
delayedBox mit ZeitangabeAktion startet erst nach Ablauf der angegebenen Zeit
limitedBox mit ZeitbegrenzungAktion endet automatisch nach der angegebenen Zeit
pulseBox mit ImpulssymbolEinzelner kurzer Impuls bei Aktivierung des Schritts
conditionalBox mit BedingungslinieAktion wird nur ausgeführt, wenn die Zusatzbedingung erfüllt ist

4. Wirkungslinien

Wirkungslinien verbinden die GRAFCET-Symbole und definieren den Ablauf. Sie werden im "edges"-Array gespeichert.

{
  "id": "e-step-1-transition-1",
  "source": "step-1",
  "sourceHandle": "bottom",
  "target": "transition-1",
  "targetHandle": "top",
  "type": "defaultEdge"
}
  • idEindeutige Kennung der Verbindung
  • sourceID des Quell-Symbols (von wo die Linie startet)
  • targetID des Ziel-Symbols (wo die Linie endet)
  • sourceHandleAnschlusspunkt am Quell-Symbol
  • targetHandleAnschlusspunkt am Ziel-Symbol
  • typeArt der Wirkungslinie

Linientypen

defaultEdge
Standard-WirkungslinieVerbindet Schritte mit Transitionen und Transitionen mit Schritten. Auch für Verbindungen zu Simultanverzweigungen.
actionEdge
AktionslinieHorizontale Verbindung zwischen einem Schritt und seiner zugehörigen Aktion.

Anschlusspunkte

Jedes Symbol hat definierte Anschlusspunkte für Wirkungslinien:

  • "top" - Eingang von oben
  • "bottom" - Ausgang nach unten
  • "left" - Eingang von links (bei Aktionen)
  • "right" - Ausgang nach rechts (für Aktionslinien)
  • Bei Simultanverzweigungen: "handle-0", "handle-1", ... (oben) und "source-0", "source-1", ... (unten)

5. Kompaktes Sharing-Format (v2)

Beim Teilen per Link verwendet grafcet.io ein kompakteres Format mit Kurzschlüsseln. Die Daten werden per Deflate komprimiert und als Base64URL in der URL gespeichert (?g=...). Dies reduziert die Datenmenge um ca. 40%.

Node-Felder

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

Node-Typ-Kürzel

VollständigKompakt
stepS
initialStepI
transitionT
actionA
enclosingStepE
macroStepM
andSplitAS
andJoinAJ
andNodeAN
textX
endLoopL
loopNodeLN
forcedCommandUpFU
forcedCommandDownFD
boxNodeB

Edge-Felder

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

Handle-Kürzel

VollständigKompakt
topT
bottomB
leftL
rightR
handle-NhN
source-NsN

Positionen werden als [x,y]-Array mit ganzen Zahlen gespeichert. Alte v1-Links bleiben kompatibel.

Editor ausprobieren

Erstelle dein eigenes GRAFCET-Diagramm und exportiere es als .grafcetio-Datei!

Zum Editor
.grafcetio Dateiformat | Dokumentation