Formato de arquivo .grafcetio
Documentação técnica
O formato .grafcetio é um formato de arquivo baseado em JSON para armazenar e trocar diagramas GRAFCET. Esta documentação descreve a estrutura e todos os elementos disponíveis.
1. Estrutura do arquivo
Um arquivo .grafcetio é um arquivo JSON com a seguinte estrutura básica:
{
"version": "1.0",
"createdWith": "grafcet.io",
"createdAt": "2024-01-15T10:30:00.000Z",
"nodes": [...],
"edges": [...],
"counter": 5
}versionNúmero da versão do formato (atualmente sempre "1.0")createdWithNome do aplicativo que criou o arquivocreatedAtTimestamp de criação no formato ISO 8601nodesArray com todos os símbolos GRAFCET (etapas, transições, ações, etc.)edgesArray com todas as linhas de ligação (conexões entre símbolos)counterContador interno para atribuição de IDs únicos
2. Símbolos GRAFCET
Todos os símbolos são armazenados no array "nodes". Cada símbolo tem a seguinte estrutura básica:
{
"id": "step-1",
"type": "step",
"position": { "x": 400, "y": 240 },
"data": { "label": "1" }
}idIdentificador único do símbolo (ex: "step-1", "transition-2")typeTipo de símbolo (veja tipos abaixo)positionPosição no canvas em pixels (coordenadas x/y)dataDados específicos do símbolo como rótulo, tipo de ação, etc.
Tipos de símbolos disponíveis
stepEtapaRepresenta um estado no diagrama. Exibida como um retângulo com número da etapa.
Armazena: Número da etapa (ex: "1", "2", "10")
initialStepEtapa inicialO estado inicial do GRAFCET, ativado automaticamente na inicialização. Exibida como um retângulo com borda dupla.
Armazena: Número da etapa (tipicamente "0")
transitionTransiçãoDefine a condição de transição entre etapas. Exibida como uma linha horizontal com texto da condição.
Armazena: Condição de transição (ex: "a", "a AND b", "!x", "*" para sempre verdadeiro)
actionAçãoDescreve uma saída ou ação executada quando a etapa está ativa. Posicionada à direita da etapa associada.
Armazena: Nome da ação, tipo de ação, valor de tempo, condição adicional
andNodeDivergência simultâneaPermite sequências paralelas no GRAFCET. Exibida como uma linha horizontal dupla.
Armazena: Largura (padrão: 240px), rótulo opcional
loopNodeCicloSímbolo de retroalimentação no GRAFCET. Exibido como uma linha vertical com uma seta triangular para cima. Dois símbolos com o mesmo marcador de referência substituem uma longa linha de retroalimentação.
Armazena: Marcador de referência (ex: "*", "A")
textAnotação de textoCampo de texto livre para comentários e anotações. Não faz parte da lógica GRAFCET.
Armazena: Texto a exibir
Ação:
{
"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. Tipos de ações (IEC 60848)
As ações podem ter diferentes tipos que determinam seu comportamento. O tipo de ação é representado graficamente:
| Tipo de ação | Representação | Descrição |
|---|---|---|
continuous | Caixa simples | A ação está ativa enquanto o passo associado estiver ativo |
set | Caixa com seta ↑ | A ação é ativada e permanece ativa após a desativação do passo |
reset | Caixa com seta ↓ | A ação é desativada (redefine uma ação previamente ativada) |
delayed | Caixa com anotação temporal | A ação começa somente após o tempo especificado |
limited | Caixa com limite de tempo | A ação termina automaticamente após o tempo especificado |
pulse | Caixa com símbolo de impulso | Impulso único na ativação do passo |
conditional | Caixa com linha de condição | A ação só é executada se a condição for atendida |
4. Linhas de ligação
As linhas de ligação conectam os símbolos GRAFCET e definem o fluxo. São armazenadas no array "edges".
{
"id": "e-step-1-transition-1",
"source": "step-1",
"sourceHandle": "bottom",
"target": "transition-1",
"targetHandle": "top",
"type": "defaultEdge"
}idIdentificador único da conexãosourceID do símbolo de origem (onde a linha começa)targetID do símbolo de destino (onde a linha termina)sourceHandlePonto de conexão no símbolo de origemtargetHandlePonto de conexão no símbolo de destinotypeTipo de linha de ligação
Tipos de linhas
defaultEdgeactionEdgePontos de conexão
Cada símbolo tem pontos de conexão definidos para as linhas:
- "top" - Entrada de cima
- "bottom" - Saída para baixo
- "left" - Entrada da esquerda (para ações)
- "right" - Saída para a direita (para linhas de ação)
- Para divergências: "handle-0", "handle-1", ... (acima) e "source-0", "source-1", ... (abaixo)
5. Formato de compartilhamento compacto (v2)
Ao compartilhar por link, grafcet.io usa um formato compacto com chaves abreviadas. Os dados são comprimidos com Deflate e armazenados como Base64URL na URL (?g=...). Isso reduz o tamanho dos dados em aproximadamente 40%.
Campos dos nós
| Completo | Compacto |
|---|---|
| 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 |
Códigos dos tipos de nós
| Completo | Compacto |
|---|---|
| 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 |
Campos das ligações
| Completo | Compacto |
|---|---|
| id | i |
| source | s |
| target | t |
| sourceHandle | sh |
| targetHandle | th |
| type | y |
| data.waypoints | w ([[x,y],...]) |
Códigos dos conectores
| Completo | Compacto |
|---|---|
| top | T |
| bottom | B |
| left | L |
| right | R |
| handle-N | hN |
| source-N | sN |
As posições são armazenadas como arrays [x,y] com números inteiros. Os links v1 antigos permanecem compatíveis.
Experimente o editor
Crie seu próprio diagrama GRAFCET e exporte-o como arquivo .grafcetio!
Ir para o editor