.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 hatcreatedAtErstellungszeitpunkt im ISO 8601 FormatnodesArray 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
stepSchrittRepräsentiert einen Zustand im Ablaufdiagramm. Wird als Rechteck mit Schrittnummer dargestellt.
Speichert: Schrittnummer (z.B. "1", "2", "10")
initialStepInitialschrittDer Startzustand des GRAFCET, der bei Initialisierung automatisch aktiviert wird. Dargestellt als Rechteck mit doppelter Umrandung.
Speichert: Schrittnummer (typischerweise "0")
transitionTransitionDefiniert die Übergangsbedingung zwischen Schritten. Dargestellt als horizontaler Strich mit Bedingungstext.
Speichert: Übergangsbedingung (z.B. "a", "a AND b", "!x", "*" für immer wahr)
actionAktionBeschreibt eine Ausgabe oder Aktion, die bei aktivem Schritt ausgeführt wird. Wird rechts neben dem zugehörigen Schritt platziert.
Speichert: Aktionsbezeichnung, Aktionsart, Zeitwert, Zusatzbedingung
andNodeSimultanverzweigungErmöglicht parallele Abläufe im GRAFCET. Dargestellt als doppelte horizontale Linie. Kann mehrere ein- und ausgehende Verbindungen haben.
Speichert: Breite (Standard: 240px), optionale Beschriftung
loopNodeSchleifeRü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")
textTextanmerkungFreitextfeld 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:
| Aktionsart | Darstellung | Beschreibung |
|---|---|---|
continuous | Einfache Box | Aktion ist aktiv, solange der zugehörige Schritt aktiv ist |
set | Box mit Pfeil ↑ | Aktion wird eingeschaltet und bleibt auch nach Deaktivierung des Schritts aktiv |
reset | Box mit Pfeil ↓ | Aktion wird ausgeschaltet (setzt eine vorher gesetzte Aktion zurück) |
delayed | Box mit Zeitangabe | Aktion startet erst nach Ablauf der angegebenen Zeit |
limited | Box mit Zeitbegrenzung | Aktion endet automatisch nach der angegebenen Zeit |
pulse | Box mit Impulssymbol | Einzelner kurzer Impuls bei Aktivierung des Schritts |
conditional | Box mit Bedingungslinie | Aktion 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 VerbindungsourceID des Quell-Symbols (von wo die Linie startet)targetID des Ziel-Symbols (wo die Linie endet)sourceHandleAnschlusspunkt am Quell-SymboltargetHandleAnschlusspunkt am Ziel-SymboltypeArt der Wirkungslinie
Linientypen
defaultEdgeactionEdgeAnschlusspunkte
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ändig | Kompakt |
|---|---|
| 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 |
Node-Typ-Kürzel
| Vollständig | Kompakt |
|---|---|
| step | S |
| initialStep | I |
| transition | T |
| action | A |
| enclosingStep | E |
| macroStep | M |
| andSplit | AS |
| andJoin | AJ |
| andNode | AN |
| text | X |
| endLoop | L |
| loopNode | LN |
| forcedCommandUp | FU |
| forcedCommandDown | FD |
| boxNode | B |
Edge-Felder
| Vollständig | Kompakt |
|---|---|
| id | i |
| source | s |
| target | t |
| sourceHandle | sh |
| targetHandle | th |
| type | y |
| data.waypoints | w ([[x,y],...]) |
Handle-Kürzel
| Vollständig | Kompakt |
|---|---|
| top | T |
| bottom | B |
| left | L |
| right | R |
| handle-N | hN |
| source-N | sN |
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