El diagrama de función secuencial ( SFC ) es un lenguaje de programación gráfico utilizado para controladores lógicos programables (PLC). Es uno de los cinco lenguajes definidos por el estándar IEC 61131-3 . El estándar SFC se define como Preparación de gráficos de funciones para sistemas de control , y se basó en GRAFCET (a su vez basado en redes de Petri binarias [1] [2] ).
Se puede utilizar para programar procesos que se pueden dividir en pasos.
Los componentes principales de SFC son:
- Pasos con acciones asociadas;
- Transiciones con condiciones lógicas asociadas;
- Vínculos dirigidos entre pasos y transiciones.
Los pasos de un diagrama SFC pueden estar activos o inactivos. Las acciones solo se ejecutan para pasos activos. Un paso puede estar activo por uno de dos motivos:
- Es un paso inicial según lo especificado por el programador.
- Se activó durante un ciclo de exploración y no se desactivó desde entonces.
Los pasos se activan cuando todos los pasos anteriores están activos y la transición de conexión es superable (es decir, su condición asociada es verdadera). Cuando se pasa una transición, todos los pasos anteriores se desactivan a la vez y después de que todos los pasos siguientes se activan a la vez.
Las acciones asociadas con los pasos pueden ser de varios tipos, siendo las más relevantes Continua (N), Fijar (S) y Reiniciar (R). Aparte del significado obvio de Establecer y Restablecer, una acción N asegura que su variable de destino se establezca en 1 siempre que el paso esté activo. Una regla SFC establece que si dos pasos tienen una acción N en el mismo objetivo, la variable nunca debe restablecerse a 0. También es posible insertar acciones LD ( diagrama de contactos ) dentro de un programa SFC (y esta es la forma estándar, por ejemplo, para trabajar con variables enteras).
SFC es un lenguaje intrínsecamente paralelo en el sentido de que múltiples flujos de control (unidades de organización de programas (POU) en el lenguaje del estándar) pueden estar activos a la vez.
Las extensiones no estándar del lenguaje incluyen macroacciones: es decir, acciones dentro de una unidad de programa que influyen en el estado de otra unidad de programa. La macroacción más relevante de este tipo es "forzar", en la que una POU puede decidir los pasos activos de otra POU.
Ver también
Referencias
- ^ Fernández, JL; Sanz, R .; Paz, E .; Alonso, C. (19 a 23 de mayo de 2008). "Uso de redes de Petri binarias jerárquicas para construir aplicaciones robustas de robots móviles: RoboGraph". Conferencia Internacional IEEE sobre Robótica y Automatización, 2008 . Pasadena, CA, Estados Unidos. págs. 1372-1377. doi : 10.1109 / ROBOT.2008.4543394 .
- ^ Lewis, RW (1998). Programación de sistemas de control industrial mediante IEC 1131-3 . ISBN 978-0852969502.
- ↑ Tom Meadowcroft, 2018