Skip to content

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 arquivo
  • createdAtTimestamp de criação no formato ISO 8601
  • nodesArray 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

stepEtapa

Representa um estado no diagrama. Exibida como um retângulo com número da etapa.

Armazena: Número da etapa (ex: "1", "2", "10")

initialStepEtapa inicial

O 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ção

Define 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ção

Descreve 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ânea

Permite sequências paralelas no GRAFCET. Exibida como uma linha horizontal dupla.

Armazena: Largura (padrão: 240px), rótulo opcional

loopNodeCiclo

Sí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 texto

Campo 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çãoRepresentaçãoDescrição
continuousCaixa simplesA ação está ativa enquanto o passo associado estiver ativo
setCaixa com seta ↑A ação é ativada e permanece ativa após a desativação do passo
resetCaixa com seta ↓A ação é desativada (redefine uma ação previamente ativada)
delayedCaixa com anotação temporalA ação começa somente após o tempo especificado
limitedCaixa com limite de tempoA ação termina automaticamente após o tempo especificado
pulseCaixa com símbolo de impulsoImpulso único na ativação do passo
conditionalCaixa com linha de condiçãoA 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ão
  • sourceID 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 origem
  • targetHandlePonto de conexão no símbolo de destino
  • typeTipo de linha de ligação

Tipos de linhas

defaultEdge
Linha padrãoConecta etapas com transições e transições com etapas. Também para conexões a divergências simultâneas.
actionEdge
Linha de açãoConexão horizontal entre uma etapa e sua ação associada.

Pontos 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

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

Códigos dos tipos de nós

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

Campos das ligações

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

Códigos dos conectores

CompletoCompacto
topT
bottomB
leftL
rightR
handle-NhN
source-NsN

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
Formato de arquivo .grafcetio | Documentação