Skip to content

Formato file .grafcetio

Documentazione tecnica

Il formato .grafcetio è un formato di file basato su JSON per memorizzare e scambiare diagrammi GRAFCET. Questa documentazione descrive la struttura e tutti gli elementi disponibili.

1. Struttura del file

Un file .grafcetio è un file JSON con la seguente struttura di base:

{
  "version": "1.0",
  "createdWith": "grafcet.io",
  "createdAt": "2024-01-15T10:30:00.000Z",
  "nodes": [...],
  "edges": [...],
  "counter": 5
}
  • versionNumero di versione del formato (attualmente sempre "1.0")
  • createdWithNome dell'applicazione che ha creato il file
  • createdAtTimestamp di creazione in formato ISO 8601
  • nodesArray con tutti i simboli GRAFCET (fasi, transizioni, azioni, ecc.)
  • edgesArray con tutte le linee di collegamento (connessioni tra simboli)
  • counterContatore interno per l'assegnazione di ID univoci

2. Simboli GRAFCET

Tutti i simboli sono memorizzati nell'array "nodes". Ogni simbolo ha la seguente struttura di base:

{
  "id": "step-1",
  "type": "step",
  "position": { "x": 400, "y": 240 },
  "data": { "label": "1" }
}
  • idIdentificatore univoco del simbolo (es: "step-1", "transition-2")
  • typeTipo di simbolo (vedi tipi sotto)
  • positionPosizione sul canvas in pixel (coordinate x/y)
  • dataDati specifici del simbolo come etichetta, tipo di azione, ecc.

Tipi di simboli disponibili

stepFase

Rappresenta uno stato nel diagramma. Visualizzata come un rettangolo con numero di fase.

Memorizza: Numero di fase (es: "1", "2", "10")

initialStepFase iniziale

Lo stato di partenza del GRAFCET, attivato automaticamente all'inizializzazione. Visualizzata come un rettangolo con bordo doppio.

Memorizza: Numero di fase (tipicamente "0")

transitionTransizione

Definisce la condizione di transizione tra le fasi. Visualizzata come una linea orizzontale con testo della condizione.

Memorizza: Condizione di transizione (es: "a", "a AND b", "!x", "*" per sempre vero)

actionAzione

Descrive un'uscita o azione eseguita quando la fase è attiva. Posizionata a destra della fase associata.

Memorizza: Nome azione, tipo di azione, valore tempo, condizione aggiuntiva

andNodeDivergenza simultanea

Permette sequenze parallele nel GRAFCET. Visualizzata come una doppia linea orizzontale.

Memorizza: Larghezza (predefinito: 240px), etichetta opzionale

loopNodeCiclo

Simbolo di retroazione nel GRAFCET. Visualizzato come una linea verticale con una freccia triangolare verso l'alto. Due simboli con lo stesso marcatore di riferimento sostituiscono una lunga linea di retroazione.

Memorizza: Marcatore di riferimento (es: "*", "A")

textAnnotazione testo

Campo di testo libero per commenti e annotazioni. Non fa parte della logica GRAFCET.

Memorizza: Testo da visualizzare

Azione:

{
  "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. Tipi di azioni (IEC 60848)

Le azioni possono avere diversi tipi che determinano il loro comportamento. Il tipo di azione è rappresentato graficamente:

Tipo di azioneRappresentazioneDescrizione
continuousBox sempliceL'azione è attiva finché la fase associata è attiva
setBox con freccia ↑L'azione viene attivata e rimane attiva dopo la disattivazione della fase
resetBox con freccia ↓L'azione viene disattivata (ripristina un'azione precedentemente attivata)
delayedBox con annotazione temporaleL'azione inizia solo dopo il tempo specificato
limitedBox con limite di tempoL'azione termina automaticamente dopo il tempo specificato
pulseBox con simbolo di impulsoImpulso singolo all'attivazione della fase
conditionalBox con linea di condizioneL'azione viene eseguita solo se la condizione è soddisfatta

4. Linee di collegamento

Le linee di collegamento connettono i simboli GRAFCET e definiscono il flusso. Sono memorizzate nell'array "edges".

{
  "id": "e-step-1-transition-1",
  "source": "step-1",
  "sourceHandle": "bottom",
  "target": "transition-1",
  "targetHandle": "top",
  "type": "defaultEdge"
}
  • idIdentificatore univoco della connessione
  • sourceID del simbolo sorgente (dove inizia la linea)
  • targetID del simbolo destinazione (dove termina la linea)
  • sourceHandlePunto di connessione sul simbolo sorgente
  • targetHandlePunto di connessione sul simbolo destinazione
  • typeTipo di linea di collegamento

Tipi di linee

defaultEdge
Linea standardCollega fasi con transizioni e transizioni con fasi. Anche per connessioni a divergenze simultanee.
actionEdge
Linea di azioneConnessione orizzontale tra una fase e la sua azione associata.

Punti di connessione

Ogni simbolo ha punti di connessione definiti per le linee:

  • "top" - Ingresso dall'alto
  • "bottom" - Uscita verso il basso
  • "left" - Ingresso da sinistra (per azioni)
  • "right" - Uscita verso destra (per linee di azione)
  • Per divergenze: "handle-0", "handle-1", ... (sopra) e "source-0", "source-1", ... (sotto)

5. Formato di condivisione compatto (v2)

Quando si condivide tramite link, grafcet.io utilizza un formato compatto con chiavi abbreviate. I dati vengono compressi con Deflate e memorizzati come Base64URL nell'URL (?g=...). Questo riduce la dimensione dei dati di circa il 40%.

Campi dei nodi

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

Codici dei tipi di nodi

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

Campi dei collegamenti

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

Codici dei connettori

CompletoCompatto
topT
bottomB
leftL
rightR
handle-NhN
source-NsN

Le posizioni sono memorizzate come array [x,y] con numeri interi. I vecchi link v1 rimangono compatibili.

Prova l'editor

Crea il tuo diagramma GRAFCET ed esportalo come file .grafcetio!

Vai all'editor
Formato file .grafcetio | Documentazione