Skip to content

Formato de archivo .grafcetio

Documentación técnica

El formato .grafcetio es un formato de archivo basado en JSON para almacenar e intercambiar diagramas GRAFCET. Esta documentación describe la estructura y todos los elementos disponibles.

1. Estructura del archivo

Un archivo .grafcetio es un archivo JSON con la siguiente estructura básica:

{
  "version": "1.0",
  "createdWith": "grafcet.io",
  "createdAt": "2024-01-15T10:30:00.000Z",
  "nodes": [...],
  "edges": [...],
  "counter": 5
}
  • versionNúmero de versión del formato (actualmente siempre "1.0")
  • createdWithNombre de la aplicación que creó el archivo
  • createdAtMarca de tiempo de creación en formato ISO 8601
  • nodesArray con todos los símbolos GRAFCET (etapas, transiciones, acciones, etc.)
  • edgesArray con todas las líneas de enlace (conexiones entre símbolos)
  • counterContador interno para asignar IDs únicos

2. Símbolos GRAFCET

Todos los símbolos se almacenan en el array "nodes". Cada símbolo tiene la siguiente estructura básica:

{
  "id": "step-1",
  "type": "step",
  "position": { "x": 400, "y": 240 },
  "data": { "label": "1" }
}
  • idIdentificador único del símbolo (ej: "step-1", "transition-2")
  • typeTipo de símbolo (ver tipos abajo)
  • positionPosición en el lienzo en píxeles (coordenadas x/y)
  • dataDatos específicos del símbolo como etiqueta, tipo de acción, etc.

Tipos de símbolos disponibles

stepEtapa

Representa un estado en el diagrama. Se muestra como un rectángulo con número de etapa.

Almacena: Número de etapa (ej: "1", "2", "10")

initialStepEtapa inicial

El estado de inicio del GRAFCET, activado automáticamente en la inicialización. Se muestra como un rectángulo con borde doble.

Almacena: Número de etapa (típicamente "0")

transitionTransición

Define la condición de transición entre etapas. Se muestra como una línea horizontal con texto de condición.

Almacena: Condición de transición (ej: "a", "a AND b", "!x", "*" para siempre verdadero)

actionAcción

Describe una salida o acción ejecutada cuando la etapa está activa. Se coloca a la derecha de la etapa asociada.

Almacena: Nombre de acción, tipo de acción, valor de tiempo, condición adicional

andNodeDivergencia simultánea

Permite secuencias paralelas en GRAFCET. Se muestra como una doble línea horizontal.

Almacena: Ancho (predeterminado: 240px), etiqueta opcional

loopNodeBucle

Símbolo de retroalimentación en el GRAFCET. Se muestra como una línea vertical con una flecha triangular hacia arriba. Dos símbolos con el mismo marcador de referencia reemplazan una línea de retroalimentación larga.

Almacena: Marcador de referencia (ej: "*", "A")

textAnotación de texto

Campo de texto libre para comentarios y anotaciones. No es parte de la lógica GRAFCET.

Almacena: Texto a mostrar

Acción:

{
  "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 acciones (IEC 60848)

Las acciones pueden tener diferentes tipos que determinan su comportamiento. El tipo de acción se representa gráficamente:

Tipo de acciónRepresentaciónDescripción
continuousCaja simpleLa acción está activa mientras el paso asociado esté activo
setCaja con flecha ↑La acción se activa y permanece activa después de la desactivación del paso
resetCaja con flecha ↓La acción se desactiva (restablece una acción previamente activada)
delayedCaja con anotación temporalLa acción comienza después del tiempo especificado
limitedCaja con límite de tiempoLa acción termina automáticamente después del tiempo especificado
pulseCaja con símbolo de impulsoImpulso único al activar el paso
conditionalCaja con línea de condiciónLa acción solo se ejecuta si se cumple la condición

4. Líneas de enlace

Las líneas de enlace conectan los símbolos GRAFCET y definen el flujo. Se almacenan en el array "edges".

{
  "id": "e-step-1-transition-1",
  "source": "step-1",
  "sourceHandle": "bottom",
  "target": "transition-1",
  "targetHandle": "top",
  "type": "defaultEdge"
}
  • idIdentificador único de la conexión
  • sourceID del símbolo de origen (donde comienza la línea)
  • targetID del símbolo de destino (donde termina la línea)
  • sourceHandlePunto de conexión en el símbolo de origen
  • targetHandlePunto de conexión en el símbolo de destino
  • typeTipo de línea de enlace

Tipos de líneas

defaultEdge
Línea estándarConecta etapas con transiciones y transiciones con etapas. También para conexiones a divergencias simultáneas.
actionEdge
Línea de acciónConexión horizontal entre una etapa y su acción asociada.

Puntos de conexión

Cada símbolo tiene puntos de conexión definidos para las líneas:

  • "top" - Entrada desde arriba
  • "bottom" - Salida hacia abajo
  • "left" - Entrada desde la izquierda (para acciones)
  • "right" - Salida hacia la derecha (para líneas de acción)
  • Para divergencias: "handle-0", "handle-1", ... (arriba) y "source-0", "source-1", ... (abajo)

5. Formato de compartición compacto (v2)

Al compartir por enlace, grafcet.io usa un formato compacto con claves abreviadas. Los datos se comprimen con Deflate y se almacenan como Base64URL en la URL (?g=...). Esto reduce el tamaño de los datos en aproximadamente un 40%.

Campos de nodos

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 de tipos de nodos

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

Campos de enlaces

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

Códigos de conectores

CompletoCompacto
topT
bottomB
leftL
rightR
handle-NhN
source-NsN

Las posiciones se almacenan como arrays [x,y] con números enteros. Los enlaces v1 antiguos siguen siendo compatibles.

Probar el editor

¡Crea tu propio diagrama GRAFCET y expórtalo como archivo .grafcetio!

Ir al editor
Formato de archivo .grafcetio | Documentación