Realmente depende del idioma que desee / necesite usar. Puede implementar un SFC / Grafcet en prácticamente cualquier idioma, incluido el lenguaje gráfico como Ladder.
Solo recuerda que un SFC gira en torno a 3 cosas: Estados, Eventos y Acciones.
Podrías representar tus estados usando un vector booleano (o matriz). Sus eventos son, bueno, eventos (cosas que suceden dentro o fuera de su código), y sus acciones son básicamente lo que debe hacer un estado (encender una salida o iniciar un temporizador).
Aquí tenemos un ejemplo muy simple de un SFC:
- Considere una casa de poder que entrega energía a una ciudad. Una persona de repente se inspira para ahorrar electricidad y apagar su ventilador. Si no se apaga ningún otro dispositivo en toda la ciudad, ¿realmente se ahorra energía? ¿Si es así, cómo?
- ¿Cómo puedo construir un motor eléctrico sin imanes?
- ¿Qué es una puerta de entrada flotante?
- ¿Por qué el botón de inicio parece ser el modo de falla principal para el iPhone?
- ¿Qué consejo le darías a un estudiante de primer año de Ingeniería Eléctrica que desearías haber conocido como estudiante de primer año?
En este SFC, tenemos 3 estados (S0, S1 y S2, donde S0 es el estado inicial), 3 eventos (E0, E1 y E2). Cada estado puede tener una acción asociada, pero en este ejemplo, no necesitamos las acciones.
La idea es: el programa comienza en S0. Si sucede E1, el programa evoluciona a S1, y así sucesivamente. Una forma de implementar este SFC sería (tenga en cuenta que esta implementación está en python):
estados = [Verdadero, Falso, Falso] eventos = [Falso, Falso, Falso] mientras que (Verdadero): si indica [0] * eventos [0] == 1: estados [0] = falso estados [1] = Verdadero if indica [1] * eventos [1] == 1: estados [1] = falso estados [2] = Verdadero si indica [2] * eventos [2] == 1: estados [2] = falso estados [0] = Verdadero
Todavía necesita implementar las ecuaciones para que los eventos de este programa funcionen, pero de todos modos, creo que es suficiente para tener una idea de cómo implementar un SFC.