Grafcet: rafcet: una herramienta herramienta p oderosa p ara la la especificación especificación de con troladores lógicos Resumen: básicamente, un un controlador controlador lógico es un sistema sistem a de eventos eventos discretos disc retos cuyo objetivo objetivo es control c ontrolar ar el comportamiento de un un proceso que es así mismo mism o (visto (visto por el controlador controlador como) un sistema de evento discreto, tomando en cuenta el estado de este proceso y otra información viniendo viniendo de un operador o de otros sistem s istemas. as. A principios de la década de 1970, 1970, la necesidad neces idad de describir cada vez más m ás complejos controlado controladores res lógicos l ógicos se hizo evidente, evidente, ya que el los controladores controladores lógicos programables programables (PLC) eran cada c ada vez más potentes y ampliamente ampliamente utilizados. utilizados. Este Es te documento muestra cómo c ómo se ppued uede e usar Grafcet para este propósito. Grafcet es una herramienta que se inspira en Redes de Petri (una herramienta matemática de propósito general de sistemas sis temas de eventos discretos discr etos que se desc describirán), ribirán), cuyo objetivo objetivo es la especificación de de controladores controladores lógicos. Es la base de la Función Secuencial Secuencial Chart (SFC), un estándar internacional en 1987.Este documento, de carácter introductorio, explica el modelo de Grafcet utilizando el modelo de tabla de estado clásico y presenta un método para interpretar grafcets. I. INTRODUCCIÓN INTR ODUCCIÓN
El sistema sis tema dinámico dinámico de eventos eventos discretos disc retos (DEDS), o simplemente sim plemente un siste s istema ma de eventos eventos discretos, disc retos, es un sis sistema tema con un estado de espacio discreto discr eto y una ev evolución olución del estado es tado que está determinada por los eventos. Por ejemplo, el estado de un buffer en un sistema de fabricación fabricac ión eess la cantidad de partes partes en este buffer. Este E ste estado cambia cam bia cuando el evento evento ocurre "una parte se pone en el búfer" o "se toma una parte fuera del buffer". Un sistema físico dinámico diná mico pue puede de ser s er visto visto como c omo un un sistema sis tema dinámico dinámico variab variable le continuo continuo o como c omo un sis sistema tema de eventos discretos, según el objetivo del modelo. Por ejemplo, si el estado de un tanque es el nivel de líquido en este tanque, el modelo correspondiente es un sistema variable continuo. Este tanque tanque se s e puede puede modelar como un sistema de evento evento discreto, disc reto, sin embargo, si consideramos que puede tener solo tres estados: vacío, entre vacío y lleno, y lleno. Básicamente, un controlador lógico es un sistema de evento discreto cuyo propósito es controlar el comportamien c omportamiento to de de un proceso que que es en sí s í mismo (visto como) un sistema sis tema de evento discreto, teniendo en cuenta el estado de este proceso y otra información proveniente de un operador o de otros sistemas. Esto se ilustra en la Fig. 1 donde X, Y, Z y W son variables o vectores booleanos. booleanos. El control lógico es relevante relevante para procesos proces os cuyas mediciones mediciones y las acciones son de un tipo lógico. Eso significa que estas medidas y las acciones solo pueden tomar dos valores (por ejemplo, un contactor puede estar abierto o cerrado, una temperatura ha llegado al umbral o no). La medida es entrada, y la acción es salida de un controlador lógico. El objetivo de un controlador lógico es reaccionar a los cambios de entrada modificando el estado de salida como una función de las reglas de control. El diseñador debe especificar estas reglas de control.
Fig. 1. El controlador lógico y su entorno. Antes de la introducción del primer controlador lógico programable (PLC) en 1969 [13], se implementó el control lógico por lógica cableada. Relés electromagnéticos, relés neumáticos, y se usaron compuerta c ompuertass electrónicas y flip-flops. flip-flops. Con estas tecnologías, tecnologías, problemas problemas complejos son difíciles de manejar, y un controlador lógico es difícil de modificar. Los primeros PLC's trabajado trabajadoss con procesadores procesadores especializados capaces c apaces de llevar llevar a cabo c abo operaciones operaciones lógicas. Entonces, microprocesadores de uso general general se s e utilizaron en PLC cuando los microprocesadores se volvie volvieron ron más baratos y más potentes. PLC's Sin embargo, se mantienen diferentes de las computadoras de propósito general, ya que su hardware está diseñado para el entorno industrial. Los PLC se usan ampliamente en muchos tipos de industrias: fabricación, metalurgia, química, papel, comida, transporte, industrias de manejo, etc. Hoy en día, un PLC puede manejar varios cientos de entradas-salidas, varios PLC se pueden vincular por una red de comunicación, y algunos PLC pueden llevar a cabo funciones adicionales tales como cálculo y regulación. Muchos de ellos están integrados en las máquinas de producción, de tal manera que sean transparentes para los usuarios de las máquinas. Mientras ientras los control c ontrolado adores res lógi lógicos cos eran sistemas pequeños, pequeños, los l os mode m odelos los clásicos eran suficientes para especificar las reglas de control lógico. Había dos tipos de modelos. El primer tipo correspond c orrespondee a los mode m odelos los habituales habituales de circuitos circ uitos secuenciales secuenciales asíncronos, asíncronos, diag diagramas ramas de estado, o tablas de estado [25], que representan autómatas, es decir, especificaciones independientes de hardware y software. Notar que los autómatas son asíncronos porque los sistemas sistem as de eve eventos ntos discretos de tiempo contin c ontinuo uo son considerados. considerados. El segun s egundo do tipo corresponde a la representación como una posible implementación. La más famosa es la lógica de escalera de relés (RLL) que es una representación representac ión gráfica basada en una analogí analogíaa con el físico sistemas de retransmisión [19]. A principios de la década de 1970, la necesidad de describir control c ontroladore adoress lógi lógicos cos cada c ada vez más complej c omplejos, os, la implementación implementación dde e que se simplificaría por el desarrollo reciente y futuro de microproces m icroprocesadore adores, s, se hizo evide evidentes. ntes.
Fig. 2. Ejemplo: Llenado de un tanque Más o menos, se requería que representara controladores lógicos grandes con muchas entradas entradas y muchas salidas. Más Más precisamente, las las necesidades necesidades fueron las sigu s iguiente ientes: s: 1) Descr Des cribe ibe la sec secuencia uencia de estados de un sistema sist ema de evento discreto discr eto que que puede contener una gran cantidad de estados.
2) Tenga en cuenta la conc concurrencia urrencia (tanto para para la sim simplicidad plicidad y fácil comprens c omprensión), ión), ya que algunos subsistemas pueden ser parcialmente independiente. 3) En general, general, dado el estado del sistema, sistem a, solo unas pocas entradas entradas afectan afecta n el estado, y solo algunos resultados pueden cambiar. Luego, describa solo el comportamiento correspondiente correspondiente a estos cambios cam bios de entrada. entrada. 4) Tener una comprensión comprens ión clara del comportamiento comportam iento de entrada-salida entrada-s alida de un controlador lógico, lógi co, es decir, ¿cuál es el control c ontrol aplicado aplicado a el proceso a controlar controlar (salida del PLC) como un función de un cambio del proceso o su entorno (entrada del PLC).7 El modelo de Grafcet vino de esta necesidad. Se inspira de las redes de Petri que se estudiaron estudiaron en los primeros años años sesenta s esenta por Petri [21]. Suponemos Suponemos que el el lector está familiarizado con Redes de Petri [7], [9], [18], [20]. Las redes de Petri son una herramienta gráfica que permiten el modelado del comportamiento secuencial y la concurrencia (necesita 1 y 2). Un lugar en una red de Petri (PN) corresponde a un componente del estado. Se deduce que cuando un solo cambio de componentes (marca de un lugar), el estado cambia. Entonces, uno puede "ver" qué parte del sistema cambia, y Además, un número razonable de lugares puede proporcionar la representación de un gran número de estados (el número de las marcas pueden aumentar exponencialmente con el número de lugares). luga res). Además, las otras necesidades están están satisfechas s atisfechas en el model m odelo o Grafcet. Vamos a presentar ahora varios modelos con la ayuda de un ejemplo. Se usan las siguientes anotaciones. El complemento de la variable booleana a se escribirá como a': eso significa que a '= 1 exactamente cuándo a = 0. El producto booleano (función AND) se representa como un producto producto (a*b = ab = (a) (b)).La suma boolea booleana na (función OR) OR ) se representa como una suma (+). Llenado del tanque: tanque: el dispositivo en cuestión está representado en la Fig. 2. Ambos tanques se usan de forma similar. Un símbolo romano representa un dispositivo (sensor o actuador) y un símbolo en cursiva la variable booleana correspondiente El tanque 1 está vacío cuando el nivel es menor que b1, es decir, b1 = 0, y está lleno cuando el nivel es mayor que h1, es decir, h1 = 1. En el estado inicial, ambos tanques están vacíos. Si se presiona el botón m, ambos tanques son llenados por válvulas de apertura V1 (VI = 1 significa que la válvula V1 está abierta) y V2. Cuando un tanque está lleno, por ejemplo, tanque 1, el llenando se detiene (cerrando la válvula V1) y su contenido comienza a ser utilizado (abriendo la válvula W1). Cuando el tanque 1 está vacío, la válvula W1 es cerrado. El llenado solo puede comenzar nuevamente cuando ambos tanques estén vacíos y si se presiona el botón m. Vamos a presentar ahora ahora esta especificación usando cuatro modelos modelos 1) Tabla de estados [3 (a)]. En esta tabla, una columna está asoc asociada iada con cada estado de entrada y una fila con cada estado interno. Un estado interno y un estado de entrada definen un estado total. El estado inicial (señalado por una estrella) es el estado 1, que es estable para el estado de entrada mh1h2b1b2 = 00000 (representado ceros al número de estado). Todas las salidas son 0 en este estado. Si m asume el valor 1, llegamos a la columna donde el estado inestable 2 (no cero) significa que se alcanzará el nuevo estado interno 2. En este estado, en las salidas V1 y V2 toman el valor 1. Y así sucesivamente. Un guion indica un estado total que no se puede alcanzar. Este modelo es extremadamente detallado. En la Fig. 3 (a) tenemos una especificación completa que muestra todos los estados totales, a pesar de que algunos no pueden ser alcanzados desde cualquier cualquier estado interno. interno. Para sistemas sistem as más grandes, grandes, las tablas de estado se se
vuelven casi vacias (es decir, muchos estados totales no son alcanzables) generalmente, solo unas pocas entradas pueden cambiar cuando un estado ha sido alcanzado. Este modelo es muy útil para un preciso análisis de una pequeña parte del sistema. Se vuelve prácticamente inutilizable, sin embargo, para especificar un gran sistema. Para 20 variables de entrada hay más de un millón de columnas! 2) Diagrama de estado [Fig. 3 (b)]. En este modelo, un nodo es asociado con cada estado total. Por ejemplo, nodo 2 corresponde a los ocho estados estables totales de la segunda fila en la Fig. 3 (a). Cada arco está etiquetado por una variable booleana o función. La transición correspondiente es realizada tan pronto como esta función asume el valor 1. El estado inicial se muestra con una flecha entrante corta. En este modelo, la información es más concisa. Nosotros representamos estados internos (no estados totales). El cambio de entradas que no causan un cambio de estado no son necesariamente mostrado por auto-bucles (self-loops). Por ejemplo, las entradas m, h1 y b2 pueden cambiar en el estado 3, sin embargo, dado que sus cambios no causan un cambio de estado, esta información es omitida en la Fig. 3 (b). La concurrencia, sin embargo, no puede ser representada por este modelo. Esta es su principal debilidad. En nuestro ejemplo, lo que sucede con el tanque 1 es independiente de qué pasa con el tanque 2, mientras no estén vacíos. Este modelo representa un estado para que todo el sistema pueda volverse grande y difícil de entender cuando sistema está hecho de varias partes, completa o parcialmente independiente. 3) RLL [Fig. 3 (c)]. En este modelo, un peldaño correspondiente a una ecuación booleana está asociada con cada variable interna y cada variable de salida Puede ser conveniente usar las salidas variables como variables internas. La variable dependiente de la ecuación está representado por un círculo. Las entradas escalon (o peldaño) están representadas por pares de barras verticales paralelas representando relés que se cierran cuando la correspondiente entrada está activa. Una línea diagonal entre las barras significa que se usa el valor complementado de la variable. Las funciones AND y OR están construidas por variables puestas en serie y en paralelo, respectivamente. Por ejemplo, el primer escalón en la Fig. 3 (c) corresponde a la ecuación q1 = b1'* b2'; Entonces q1 = 1 cuando ambos tanques están vacíos. El segundo escalón corresponde a V1 =(q1. m + V1)h1'. Eso significa que V1 asume el valor1 tan pronto como q1*m = 1 y mantiene este valor (porque está activa la realimentación por la variable V1 en paralelo con q1*m) siempre que h1 = 0 (es decir, siempre que el tanque 1 no este lleno).En este modelo, la concurrencia puede ser explotada (para el ejemplo uno puede tener V1 = V2 = 1) incluso si no es representado gráficamente. Pero la naturaleza secuencial del comportamiento no es aparente. Por ejemplo, para saber qué puede suceder desde el estado donde V1 = V2 = 1 y q1 = W1 = W2 = 0, es necesario un análisis detallado. Esta es la principal debilidad de esta representación. 4) Grafcet [Fig. 3 (d)]. Este modelo se explicará con precisión en la sección III (3). Los cuadrados etiquetados del 1 al 6 son pasos, es decir, componentes de estados. En el momento inicial, los pasos en el set {1, 4) están activos. Luego transición (1) que sigue estos pasos pueden activarse tan pronto como la variable booleana m, asociado con (1), tiene el valor 1. Después de este disparo, los pasos 2 y 5 están activos. Cuando el paso 2 está activo, la salida V1 = 1 (representada por V1 escrita en un rectángulo asociado con el paso 2). Cuando el paso 2 está activo, la transición (2) puede dispararse si h1 = 1. Y así sucesivamente. La concurrencia está explícitamente representada en este modelo. Los pasos 1, 2 y 3 corresponden a los estados del tanque
1 (vacío, durante el llenado y durante el vaciado, respectivamente) y los pasos 4, 5 y 6 corresponden a los estados del tanque 2. La secuencia de estados (o pasos activos) y Las condiciones booleanas que llevan de uno a otro son bastante evidentes (necesidad 1). Cuando el paso 2 está activo, solo la entrada h1 puede cambiar la actividad de los pasos 2 y 3, independientemente de los otros pasos (necesidad 2) y de las otras entradas (necesidad 3). Necesidad 4 también está satisfecho y será explicada para casos más complicados en este documento El modelo Grafcet fue definido por un grupo francés. Mitad de los 24 signatarios del informe final, con fecha de agosto de 1977 [1], son académicos (incluido el autor), y la mitad son de industria. El modelo de Grafcet se ha definido brevemente en [1] y luego detallado en [2]. Una cantidad de conceptos y formalismos que permiten que la definición original se establezca de forma precisa y formalizada se han introducido en [6], [7] y [17] para presentar este modelo de una manera que es a la vez coherente con la definición original y estricta desde un punto de vista teórico. Primero un estándar francés, en 1987 se convirtió en un internacional uno [1 11. Los Comités Nacionales de los siguientes países declararon su aprobación explícita de la publicación: Australia, Bélgica, Canadá, Checoslovaquia, Dinamarca, Egipto, Finlandia, Francia, Alemania, Italia, Japón, Países Bajos, Noruega, Portugal, España, Suecia, Suiza, Turquía, Reino Unido y Yugoslavia. Básicamente, un grafcet se comporta como una red de Petri con solo unas pocas diferencias [5], [17], pero sobre todo, propone una interpretación única de entradas-salidas. Este es un modelo de especificación que solo describe la función a realizar, es decir, una máquina secuencial en el sentido matemático, libre de todo hardware y software. El presente artículo es un documento introductorio destinado a académicos e ingenieros de control que quieran usar modelos formales para la especificación de controladores lógicos. El estándar internacional Sequential Function Chart (SFC) introduce algunas modificaciones y se presenta de una manera destacando el lado práctico. Este punto será comentado en la Sección VII. El documento está organizado de la siguiente manera. La sección II (2) presenta el concepto de condición y el concepto de evento. Las nociones básicas utilizadas en el Grafcet y el algoritmo de interpretación se presentan en la Sección III y la Sección IV, respectivamente. Los macrosteps y macroacciones, que son abreviaturas del Grafcet básico, se presentan en la Sección V. La Sección VI compara el Grafcet con otros modelos, y la Sección VII concluye el documento
Fig. 3. Lógica de escalera de relevo. (d) Grafcet. Especificación del llenado del tanque. (a) Tabla de estados. (b) Diagrama de estado. (do) II. CONDICIONES Y EVENTOS
A. Presentación general El comportamiento de un controlador lógico puede depender de dos tipos de información provenientes de su entorno (proceso a ser controlado u operador u otro sistema): condiciones y eventos. Como veremos más adelante, el estado de un controlador lógico puede cambiar si una condición es verdadera (se expresa una condición) por una variable booleana cuando ocurre un evento. Estas nociones han sido claramente definidas por M. Moalla [17], y se forman una base para la interpretación de Grafcet [6], [7]. Nociones similares son presentado en [23].El primer tipo de información se relaciona con el estado del entorno del controlador lógico. Por ejemplo, "el número de partes en el buffer es mayor o igual a 10" o "el nivel en el tanque es alto." Este tipo de información se relaciona con el estado del medio ambiente Observación 1: El estado de un sistema de evento discreto (asumido estado finito) siempre se puede definir mediante valores booleanos. Esto se ilustra con el ejemplo en la Fig. 4. El nivel en el tanque [Fig. 4 (a)] es una variable continua. Si este tanque es considerado con tres estados (bajo, medio y alto), este es el estado que se puede modelar como en la figura 4 (b). Obviamente, tres estados discretos pueden codificarse con dos variables booleanas. Una de las soluciones posibles se presenta en la figura 4 (c): la variable booleana x1 = 0 si el nivel es bajo, y x1 = 1 de lo contrario, y la variable booleana x2 = 0 si el nivel es bajo o medio, y x2 = 1 en caso contrario. Un predicado es una proposición que puede ser verdadera o falso y que luego puede ser modelado por una variable booleana. Por ejemplo, permita que x3 denote la variable booleana correspondiente al predicado "la cantidad de partes en el buffer es mayor o igual a 10, "es decir, x3 = 1 si este predicado es verdadero. Si suponemos que la cantidad de partes en el búfer está codificada como un número binario de cuatro dígitos y3 y2 y1 y0 (número máximo de partes = 15), luego x3 = y3 (y1 + y2).El segundo tipo de información se relaciona con un cambio en el estado del medio ambiente Tal cambio se llama evento. Un evento no tiene duración, mientras que el valor de una variable booleana dura un tiempo. Por ejemplo, el evento "el nivel en el tanque cambia de bajo a medio " ocurre en los tiempos t1 y t2 ilustrado en la Fig. 4 (d). Este evento se denota ↑x1 ya que corresponde al borde ascendente del valor booleano x1. Observación 2: un evento siempre se puede definir como un aumento (o caáda) al borde de un valor booleano (variable o función).Esta es una consecuencia directa de la Observación 1, ya que el evento es un cambio de estado de una variable discreta. Se deduce que todas las entradas de un controlador lógico pueden ser variables booleanas, ya que los eventos se pueden definir a partir de sus cambios. Tener una comprensión clara de las relaciones entre condiciones y eventos, déjenos dar algunas definiciones formales y propiedades que se introdujeron en [6] y [7].
Fig. 4. codificación de estados discretos. (d) Ocurrencias de un evento. Ilustración de (a) Estado continuo. (b) estado discreto. (c) Booleano B. Álgebra de eventos La siguiente definición se ilustra en la Fig. 5 (a). Definición I: Sea f (a1, a2,., am) una función booleana cuyo valor se define desde el tiempo inicial 0, y tal que, para t1
Definiciones 2-a), b) y c) se ilustran en la figura 5 (b), (c) y (d), respectivamente
Fig 5. Ilustración de las definiciones 1 y 2 Definición 2: a) ↑a* b es un evento que ocurre al mismo tiempo que ↑ a, cada vez que b = 1 en el momento
correspondiente. b) ↑a*↑ b es un evento que ocurre en los momentos cuando ↑a y ↑b ocurren simultáneamente
(lo cual solo es posible si a y b no son independientes, como especificaremos). c) ↑a + ↑ b es un evento que ocurre cada vez que ↑a o ↑ b ocurre .
d) Sea S un sistema cuyo comportamiento depende del conjunto de eventos E. Sea E (t) la señal de evento asociada con S en el tiempo t: E (t) pertenece a E incluido { E} donde E es la ausencia de un evento en E en el tiempo t. Notación 2: a) Deje que E1 y E2 sean dos eventos. Escribimos E1 = E2, si E1 y E2 son equivalentes, es decir, si siempre ocurren al mismo tiempo. b) Escribimos E1 = 0, si E1 es un evento que nunca ocurre. c) Denotamos e = ΣE*EE Ei + E. Llamamos e el evento "siempre presente" (se usará en la Sección III-B-3). Definición 3: Dos eventos E1 y E2 son independientes sino hay evento Ei tal que E1 = X + A*Ei, E2 = Y + B*Ei, donde X e Y son eventos, A y B son funciones booleanas o eventos tales que X + Y + A*B*Ei> X + Y. Por ejemplo, E1 = ↑f y E2 = ↑g pueden no ser independientes si ambos
dependen de la misma variable booleana a, por ejemplo, f = a*b y g = a. En este ejemplo, el lector puede verificar (usando Propiedad 1- 4) a continuación) que Ei = ↑a, X = ↑b*a ', A = b', Y =0 y B = 1. Hipótesis 1: Dos eventos independientes nunca ocurren simultáneamente. Es decir que ↑a *↑ b = 0, si a y b son dos variables independientes La Hipótesis 1 se basa en el hecho de que un evento no tiene duración y que se consideran los modelos de tiempo continuo. Entonces la probabilidad de que dos eventos independientes ocurran al mismo el tiempo es cero. Observación 1: parece que tenemos las siguientes características: 1) El producto de dos eventos es un evento [Definición 2-b)]. 2) La suma de dos eventos es un evento [Definición 2-c) . 3) El producto de un evento y una condición es un evento Ahora, ¿qué pasa con la suma de un evento y una condición? se comentará en la Sección IDB-3.1) Esta Propiedad 1 ↑a = ↓ a '. 2) ↑a*a = ↑a, ↑a. a '= 0,↓ a*a '= ↓a, ↓a* a = 0. 3) ↑a*↑a = ↑a, ↑a, ↑*a↑a '= 0, ↑a*e = ↑ a
4) Si a y b son dos varia bles independientes, entonces ↑ (a. b) = ↑a*b + ↑b * a, ↑ (a + b) = ↑a* b '+ ↑b*a'. 5) Si a, b y c son tres variabl es independientes, entonces ↑ (a * b) ↑ (a * C ) = ↑a*b*c . Propiedades 1-1), 1-2) y 1-3) son obvios de las Definiciones 1 y 2. Las pruebas de las Propiedades 1-4) y 1-3, basadas en La hipótesis 1 se puede encontrar en [7]. Propiedad 1-5) muestra que los eventos ↑ (a. b) y ↑ (a c) pueden ocurrir simultáneamente desde ellos no son independientes
Fig. 6. Representación de un paso.
III. NOCIONES B ÁSICAS
Un grafcet es un gráfico que tiene dos tipos de nodos, es decir, pasos y transiciones (un grafcet contiene al menos un paso y uno transición). Los arcos direccionados conectan un paso a una transición o una transición a un paso. La representación gráfica original fue similar a la representación de una red de Petri [1]: se dio un paso representado por un círculo como un lugar en una red de Petri, y una transición estaba representado por una barra como en una red de Petri. Entonces, un estandarizado se presentó la representación [11]. Presentaremos solo la representación estandarizada. A. Pasos y transiciones: Un paso está representado por un cuadrado como se muestra en la Fig. 6. Un paso puede tener dos estados: puede estar activo (esto es representado por un token en el paso) como es el caso del paso 2 en la Fig. 6, o inactivo como es el caso del paso 1 en la Fig. 6. Los pasos que deberían estar activos cuando el sistema se inicia y representado por un doble cuadrado. Estos se conocen como pasos iniciales (paso 3 en la Fig. 6). Las acciones están asociadas con los pasos, y estas son las salidas del grafcet (esto se especificará en la Sección 111-C).
Fig. 7. Representación de una transición.
Fig. 8. Representación de enlaces dirigidos.
Transiciones: Una transición se representa como se muestra en la Fig. 7. Para una comprensión clara de esta figura, observemos que una el arco vertical sin flecha se ejecuta de arriba hacia abajo. Ahí hay una cantidad de casos para ser considerados. El símbolo de transición es una barra, pero el último debe estar precedido y/o seguido por una doble barra en algunos casos. Está precedido por una barra doble cuando dos o más arcos se unen a esta transición [transiciones (2) y(4)]; esto implica que múltiples entradas pasan a estar activas antes de disparar la transición. Una transición es seguido de una barra doble cuando dos o más arcos salen de esta transición [transiciones (3) y (4)]; esto implica que involucra activar múltiples pasos de salida cuando se inicia la transición. Una receptividad Ri se asociará con cada transición (i). La receptividad es una función de las variables de entrada grafcet, posiblemente del estado interno (esto se especificará en la Sección III-E). Enlaces Dirigidos (o Arcos): la representación de enlaces dirigidos (o arcos) se ilustra en la Fig. 8. Un enlace dirigido debe siempre ejecutarse desde un paso hasta una transición o desde una transición a un paso. Cuando dos o más enlaces dirigidos se unen al mismo paso, se agrupan como se muestra en la Fig. 8 para arc os (3) → 2 y (4) → 2. Cuando dos o más enlaces directos abandonan el mismo paso, tienen un punto de partida común como se muestra en la Fig. 8 para los arcos 3 → (5) y 3 → (6). Un arco vertical corriendo de abajo hacia arriba debe estar marcado con una flecha. Observación 2: en un grafcet, un paso puede no tener entrada y/o no tener transiciones de salida (por ejemplo, el paso 7 en la Fig. 22 no tiene transición de entrada). Del mismo modo, una transición puede no tener entrada y/o pasos de salida. Una transición sin pasos de entrada se conoce como una transición de fuente y una transición sin pasos de salida como una transición de sumidero. Por otro lado, un enlace dirigido siempre debe tener un nodo de salida (transición o paso) y un nodo de llegada (paso o transición).
Fig. 9 Evolución de una situación B. Disparo de Transiciones Un paso activo contiene un solo token y el paso inactivo no contiene ningún token. Todos los pasos activos en cualquier momento dado, es decir, el marcado, define la situación en ese momento. Una situación corresponde a un estado del sistema. La evolución de la situación se logra disparando transiciones. Las entradas del controlador lógico están asociadas con
transiciones (provocan sus despidos) y los resultados son asociados con los pasos (que son producidos por los lugares activos). Definición 4: una transición es posible si se cumplen las siguientes condiciones: 1) Todos los pasos que preceden a la transición están activos 2) La receptividad de la transición es verdadera. La figura 9 representa la evolución de la situación de un grafcet tener cuatro pasos y tres transiciones. (En este grafcet, no hay salida. Las salidas serán consideradas en la Sección 111-C.) La situación está representada por el conjunto de pasos activos, es decir, {1) en la situación inicial correspondiente a la izquierda del grafcet de la Fig. 9. En esta situación, solo la transición (1) está habilitada. Eso será posible tan pronto como R1 sea verdadero. Disparo de una transición consiste en desactivar todos los pasos anteriores a la transición y activando todos los pasos debajo. Estas operaciones (activación y desactivación) son indisociables y se llevan a la vez. Disparo de (1) deriva de la situación {1} a la situación {2,3}. Luego, el disparo de (2) conduce a la situación {2, 4}, y el disparo de (3) nos lleva de vuelta a la situación inicial. Ahora explicaremos cuando una receptividad es verdadera. Consideraremos tres casos: la receptividad es una condición (es decir, una Función booleana), o un evento, o una condición y una evento. El comportamiento del grafcet se explica por medio del modelo de tabla de estado clásico.
Fig.10 La receptividad es una condición: R3 = a (a) y (b) E valor de a es único cuando el paso 6 es activado (c) y (d) El valor de a puede tener cualquier valor booleano cuando el paso 6 esta activado 1) La receptividad es una condición: esto se ilustra en Fig. 10. La transición bajo consideración es (3) con un receptividad R3 = a, donde a es una variable booleana. Transición (3) está habilitada cuando el paso 6 está activo. Luego, el disparo de (3) ocurre si el paso 6 está activo y tan pronto como la receptividad a = 1. La Fig. 10 (a) y (b) ilustran un caso donde a = 0 cuando el paso se activa. El paso 6 permanece activo siempre que a = 0, y el disparo ocurre tan pronto como el valor de a = cambia a 1.En la figura 10 (c) y (d), el valor de a puede ser 0 o 1 cuando el paso 6 se activa. El paso 5 corresponde a dos estados totales ya que a puede tener cualquier valor booleano. Estos estados totales se anotan (5, 00) y (5, 10) ya que son estables en las columnas donde ab = 00 y 10, respectivamente. Cuando la receptividad R2 = b toma el valor 1, luego la transición (2) es pasado y se alcanza la situación (6). Si a = 0 en este momento, entonces la situación (6) es estable. Pero si a = 1, la transición (3) es apagada inmediatamente y se alcanza la situación (7) que significa esa situación (6) es inestable. Este comportamiento se ilustra en la Fig. 10 (d). Si el estado totales (5, 00)
cuando b cambia a 1, el estado inestable (5, 01) luego se alcanza el estado estable (6, 01). Ahora, si el total estado es (5, 10) cuando b cambia a 1, el estado inestable (5,11), el estado inestable (6, 11) y el estado estable (7, 11) son alcanzados sucesivamente. Si el estado estable es (6, 01), b puede cambiar cualquier número de veces; el estado del sistema es (6, 01) o (6,00). De ambos casos, si a cambia a 1, se alcanza el estado 7(cualquiera (7, 11) o (7, 10)).
Fig. 11. La receptividad es un evento: R3 = ↑ a (a) y (b) El valor de a es único cuando el
paso 6 es activado (c) y (d) El valor de a puede tener cualquier valor booleano cuando el paso 6 esta activado. 2) La receptividad es un evento: esto se ilustra en Fig. 11. La transición bajo consideración es (3) con una receptividad R3 = ↑a El disparo de (3) ocurre si el paso 6 es activo, y tan pronto como ocurra el evento ↑a. Fig. 11 (a) y (b) ilustra un caso donde a = 0 cuando el paso se activa. El paso 6 perm anece activo hasta que ocurre ↑a , es decir, hasta que cambia a 1. Los comportamientos de la figura 10(a) y 11(a) son bastante similares. Esto es consistente con la definición 1. En la Fig.11 (c) y (d), el valor de a puede ser 0 o 1 cuando el paso 6 se activa. Cuando la receptividad R2 = b toma el valor 1, luego se activa la transición (2) y la situación (6) se alcanza. Si a = 0 en este momento, entonces situación (6) corresponde al estado 62 en la figura 1 l (d). Pero si a = 1, situación (6) corresponde al estado 61 en la figura 11 (d) En ambos casos, la situación {6) es estable. Si a = 0 cuando se alcanza la situación {6)(estado 62 en la tabla de estado), se producirá la activación de la transición (3)tan pronto como a toma el valor 1. Si a = 1 cuando la situación (63se alcanza (estado 61 en la tabla de estado), el evento Tu puede ocurrir solo después de un cambio de a a 0 (que va del 61 al 62). Observación 3: aparece en el ejemplo de la figura 11 (c) y (d) que un paso (incluso si es el único activo) no siempre corresponden a un solo estado interno.
Fig. 12. La recep tividad R8 = ↑a*b es el producto de un evento, ↑ a y una condición b.
3) La receptividad es el producto de un evento y una condición: Esto se ilustra en la figura 12. La receptividad de la transición (8) es R8 = ↑a*b. Cuando el paso 3 está activo, el estado interno es ya sea 31 o 32 [Fig. 12 (b)]. Suponga que el paso 3 está activo. Los el disparo de la transición (8) ocurrirá si b = 1 cuando ocurre la. Entonces el estado de entrada debe ser ab = 01 justo antes del disparo (estado32). Cuando se alcanza el estado 32, pueden ocurrir dos eventos: ↑a que lleva a la situación {4), o ↓ b que lleva al estado 31.Tenga en cuenta que desde el estado estable (32, 01) la columna ab = 10 no puede ser alcanzado ya que dos eventos independientes no pueden ocurrir simultáneamente (Hipótesis 1). Generalización: este tercer caso es el más general, mientras que los primeros dos son casos particulares. De hecho, una receptividad R; mayormente se escribirá como Ri = Ei * Ci usando: 1) La condición "siempre verdadera", escrita como Ci = 1, que se asocia con receptividades Ri que solo dependen de un evento externo Ei. Por ejemplo, R2 = E2 significa que C2 = 1, entonces, R2 = E2 si y solo si R2 = E2*1 2) El evento "siempre presente", escrito como e (ver Notación 2), que está asociado a receptividades Ri que solo depende de una condición Ci. Por ejemplo, R3 = C3 significa que E3 = e , por lo tanto R3 = C3 Observación 4: de acuerdo con la definición 2-a) y la observación 1-3), el producto de un evento y una condición es un evento. Entonces, de la generalización anterior, una receptividad siempre puede ser considerada como un evento. Se deduce que una receptividad que sería la suma de un evento Ei y una condición Ri puede ser considerado como la suma de ambos eventos Ei y e *Ri, es decir, un evento por extensión. 3) --4) Reglas de tiro: Regla 1) Todas las transiciones inevitables se disparan inmediatamente. Regla 2) Simultáneamente varias transiciones disparables son disparadas al mismo tiempo Regla 3) Cuando un paso debe ser simultáneamente activado y desactivado. Este permanece activo Estas reglas son esenciales para comprender e interpretar Grafcet. El primero y el tercero son fáciles de entender y no requieren ningún comentario en particular. El segundo es extremadamente importante, primero porque su aplicación da como resultado una interpretación diferente de la de una red de Petri (este punto se comentará en Sección VI-B), y segundo porque puede ser el origen de errores de especificación La figura 13 presenta dos ejemplos de disparos simultáneos. En Fig. 13 (a), transiciones (1) y (2), pertenecientes a la misma Grafcet, están habilitados. Cuando la variable booleana a asume el valor 1, estas dos transiciones son al mismo tiempo encendidas y, por lo tanto, se disparan simultáneamente de acuerdo con la Regla 2. Esta evolución de la situación {1,2} a la situación {3,4} no presenta problemas desde las condiciones habilitantes para las transiciones (1) y (2) son independientes. De hecho, si R1 no es igual a R2 y la transición (1) fue disparada antes de la transición (2), la transición (2) se mantendría habilitado, y viceversa La Fig. 13 (b) presenta un caso considerablemente diferente. A pesar de que las transiciones (6) y (7) también se disparan simultáneamente cuando la variable b asume el valor 1, observamos que no hay independencia entre las posibilidades de estas dos transiciones.
De hecho, si R6 no es igual a R7 y la transición (6) se dispara antes que la transición (7), el paso 8 solo estaría activo y la transición (7) ya no estaría habilitado. Esto no puede ocurrir desde R6 = R7 = b. Podemos encontrar, sin embargo, casos donde R6 no es igual a R7. El resultado final puede depender del orden en que tienen lugar los siguientes 3 eventos: 1) se convierte en el paso 7 activo, 2) receptividad R6 se vuelve verdad, y 3) receptividad R7 se vuelve verdad Observación 5: Tenga en cuenta que la Fig. 13 (b) puede ser reemplazada por Fig. 13 (c) que tiene una evolución idéntica (en cuanto a las situaciones sucesivas se refieren) pero es sin disparo simultáneo. Supongamos que hay varias transiciones siguiendo simultáneamente algún paso i . Siempre es posible modificar el grafcet para no tener más de una de estas transiciones que se puede disparar (esto se recomienda). Ejemplo: supongamos que Rs = a y R7 = b en la figura 13 (b). Modificamos las receptividades como R6 = a*b 'y R7 = a'*b, y agregamos una transición (8) con un paso de entrada 7, con los pasos de salida 8 y 9 y con una receptividad Rg = a*b Dado que las receptividades son mutuamente excluyentes, en la mayoría de ellos puede ser verdad en cualquier momento.
Fig. 13. Ilustración de disparos simultáneos
C. Acciones y productos Hay dos categorías principales de acciones, a saber, nivel y acciones de impulso.
FIg.14 Ilustración de una acción de nivel incondicional
Fig. 15 Ilustración de una acción de nivel condicional 1) Acción de nivel: una acción de nivel es modelada por un booleano variable. Puede ser incondicional o condicional. La acción A en la figura 14 (a) es incondicional. Esto significa que A asume el valor 1 cuando el paso 7 se activa hasta el momento en que este paso se vuelve inactivo, sin ningún otra condición. Esto es ilustrado por el Moore asincrónico la tabla de estado en la figura 14 (b) (en una máquina de Moore el valor de una salida depende solo del estado interno), y un ejemplo del comportamiento se presenta en la figura 14 (c). La acción A en la Fig. 15 (a) es condicional. La acción A asume el valor 1 cuando el paso 7 está activo si b = 1. Esto se ilustra mediante la tabla de estado asincrónico de Mealy en la figura 15 (b) (en una máquina Mealy el valor de una salida depende del estado total), y un ejemplo de comportamiento se presenta en la figura 15 (c). 2) Acción de impulso: una acción de impulso es responsable del cambio en el valor de una variable discreta. El último puede ser una variable booleana o cualquier otra variable discreta (por ejemplo, el valor de un contador). Una acción de impulso asociada con un paso se lleva a cabo tan pronto como este paso cambia desde el inactivo al estado activo, independientemente del tiempo durante el cual este el paso permanece activo (incluso infinitamente corto). Una acción de impulso se puede decir que es una orden (haz esto ...), mientras que una acción de nivel indica un estado. En la figura 16 (a), la acción B* es una acción de impulso. El asterisco fue recomendado en el origen de Grafcet para indicar el carácter impulsivo de una acción. No siempre, sin embargo, sirve a un propósito.
Por ejemplo, incrementar un contador C puede ser escrito como (C ← C + 1)* o simplemente (C ← C + 1) ya que no hay ambigüedad con respecto al carácter de impulso de este acción. Un ejemplo de este comportamiento se presenta en la figura 16 (c): si la situación es {6}, tan pronto como a asuma el valor 1, se alcanza la situación (7) y se ejecuta la acción B*
Fig. 16 Ilustración de la acción de impulso
Fig. 17 Acciones asociadas con un paso inestable
Hemos ilustrado este ejemplo con la tabla de estado en la Fig. 16 (b), aunque la representación de una salida de impulso no es usualmente usada en un autómata asincrónico. Observación 6: 1) Una acción de nivel tiene, por definición, una duración finita (o posiblemente infinitamente largo). En otras palabras, una acción de nivel con una duración infinitamente pequeña no puede existir, ya que este no tendría ningún significado. Se deduce que una acción de nivel es solo definido para situaciones estables. 2) Por otro lado, una acción de impulso es infinitamente corta. Tal acción se ejecuta tan pronto como el correspondiente paso se activa, incluso si la situación no es estable. La observación 6 se ilustra en la Fig. 17. En la Fig. 17 (c), receptividad R3 = a es verdadero cuando la receptividad R2 = b se vuelve verdadera. Las transiciones (2) y (3) se disparan así sucesivamente. El paso 6 es activado transitoriamente (es decir, durante un tiempo infinitamente corto). Por lo tanto, la acción de nivel C permanece en 0, mientras que la acción de impulso D * es ejecutado. Tenga en cuenta que si las transiciones entre los estados 5, 6 y 7 fueron representados por un diagrama de estado, uno tendría la representación en la figura 17 (d). Está claro que, del estado 5, si a = 1 cuando b cambia de 0 a 1, se alcanza directamente el estado 7 y que el estado
asociado 6 de la acción de nivel permanece en valor 0. Esto es consistente con la Observación 6.1. (Representación de un impulso de salida no existe en este modelo.
Fig. 18. Controlador lógico, entradas, acciones y salidas
Fig. 19. Descrito con una acción de nivel. (a) Acción de impulso a la sección de procesamiento. (b) Comportamiento equivalente 3) Acciones y salidas: una salida corresponde a una señal que actúa sobre el entorno del sistema descrito (ya sea en el proceso controlado, o en un sistema de supervisión, o un operador humano, por ejemplo mediante una visualización). Esto se muestra en forma de diagrama en la figura 18. La acción de impulso C* no es una salida, pero controla una operación en el procesamiento de la sección de control que es el controlador lógico: incrementando un contador, orden de cálculo, etc. La variable E es una salida de controlador lógico, pero no es una acción en el sentido del Grafcet (puede ser, por ejemplo, un valor de contador o cualquier valor booleano o cantidad numérica cuya evolución está controlada por acciones de impulso como C*). Se puede usar una acción de impulso como B* si hay un dispositivo para memorizar el estado. Esto se ilustra en la Fig. 19 donde (Válvula abierta V)* y (Válvula cerrada V)* son acciones de impulso. Fig. 19 (a) y (b) son equivalentes en cuanto al estado de la válvula V se refiere. Se observará que la válvula V debe estar cerrada incluso si el paso 4 se activa solo transitoriamente.
D. Concurrencia y sincronización
Fig. 20. Concurrencia y sincronización Esto se ilustra en la figura 20 en un ejemplo sin salida. De la situación {1), se llega a la situación {2, 3) transición de disparo (1) tan pronto como a asuma el valor 1. Desde esta vez, hay una concurrencia entre lo que sucede en el parte {paso 2, transición (2), paso 4) por un lado, y en la parte {paso 3, transición (3), paso 5) por otro lado, en la Fig. 20 (a). La transición (4) corresponde a una sincronización ya que ambos pasos 4 y 5 deben estar activos antes de dispararse. Este comportamiento se ilustra en la figura 20 (b) y (c). Está claro en Fig. 20 (b) que se deben considerar cuatro casos cuando la transición (1) está despedido. Caso b = 0 y c = 0 (columna 100): el establo la situación (2, 3) se alcanza inmediatamente. Caso b = 0 y c = 1 (columna 101): la situación inestable (2, 3) luego la situación estable (2, 5) se alcanzan. Caso b = 1 y c = 1 (columna101): la situación inestable {2,3) luego la situación estable (4,5) son alcanzados. Tenga en cuenta que, en este caso, las transiciones (2) y (3) se disparan simultáneamente (Regla 2, Sección 111-B-4). Caso b = 1 y c = 0: simétrico al caso b = 0 yc = 1. En la Fig. 20 (b), el guion para el estado total (2, 3; 011) significa que no se puede alcanzar este estado total. De hecho, b y c tendrían que cambiar su valor simultáneamente para alcanzar este estado total desde (2, 3; 000), y a, b, y c tendrían que cambiar su valor simultáneamente para alcanzar este estado total desde (2, 3; 100).
E. Tener en cuenta el estado interno y el tiempo Ahora presentaremos la variable escrita como Xi. Definición 5: La variable Xi es una variable booleana que es igual a 1 cuando el paso i está activo. En la figura 21 (a) tenemos x5 = 1 y x6 = 0. En el Grafcet original, se introduce un variable Ti. La misma variable se escribe como t / i / Δ en el estándar francés, y esta es la notación que utilizaremos aquí. En el estándar
internacional, se han considerado otras posibilidades. Definición 6: La va riable t / i / Δ es una variable booleana que es igual a 1 si ha transcurrido un tiempo al menos igual a Δ desde la última vez que el paso i es movido de estado inactivo a activo. Esto se ilustra en la figura 21. El paso 5 está activo, es decir, X5 = 1.
Fig 21. Estado interno y tiempo Cuando la variable a asume el valor 1, el paso 6 se activa, es decir, x6 supone el valor 1. La variable booleana t / 6/10 seg asume el valor 1, diez segundos después. Mantendrá este valor hasta la variable X6, luego cambia del estado 0 al estado 1. Notar que el momento en que el paso 6 vuelve a estar inactivo no tiene Influencia. Una variable booleana Xi o t / i / Δ se puede utilizar en una receptividad o como una condición para una acción de nivel. Un evento ↑(t / i / Δ) se puede usar en una receptividad (pero se recomienda tener mucho cuidado con un evento ↑(Xi) [16]).
IV. INTERPRETACIÓN
Un grafcet describe un controlador lógico (que es una máquina secuencial): especifica las relaciones entre las entradas y las salidas. Usando cualquier diagrama de tiempo de entrada, el grafcet nos deja saber el diagrama de tiempos de las salidas correspondientes. La interpretación debe, por lo tanto, ser inequívoco.
Dos personas enfrentadas con el mismo grafcet y el mismo diagrama de tiempo de entrada debe venir con el mismo diagrama de tiempo de salida. Este es el objetivo del algoritmo de interpretación dado a continuación. Todos los elementos encontrados ya se han presentado en ejemplos simples. El algoritmo de interpretación se basa en dos hipótesis, es decir, las Hipótesis 2 y 3 presentadas a continuación. Hipótesis 2: Todos los eventos externos son independientes (no correlacionados). Las hipótesis 1 y 2 conducen al hecho de que los eventos externos nunca ocurrirán simultáneamente (sin esta suposición el modelo Grafcet no sería determinista). Esto corresponde a un modelo formal. Cómo gestionar esta suposición para implementaciones prácticas se comentará en la Sección VII. Hipótesis 3: Un grafcet tiene el tiempo para llegar a una situación estable entre dos ocurrencias de eventos externos distintos (de hecho que el cambio de una situación estable a otra tiene una duración cero, incluso si hay varias situaciones inestables entre ellos). Estas hipótesis no son nuevas, y corresponden al funcionamiento en el modo fundamental [25] que es clásico en la teoría de los sistemas secuenciales asíncronos (aproximadamente hablando, esto significa que la parte de procesamiento, es decir, el proceso a ser controlado, representado en la Fig. 18, se considera más lento que el controlador lógico). A. Algoritmo de interpretación Algoritmo: Interpretación del Grafcet Paso 1) Inicialización: activación de los pasos iniciales y ejecución de las acciones impulso asociadas. Ir Paso 5 Paso 2) Cuando ocurre un nuevo evento externo, determine el set T1 de las transiciones deseables en la aparición de este evento. Si T1 no está vacío, vaya al Paso 3. De lo contrario, modifique si es necesario el estado de las acciones condicionales asociadas con los pasos activos (de hecho, ciertas acciones pueden depender de las condiciones los valores de los cuales pueden haber cambiado). Espera un nuevo evento externo en el Paso 2. Paso 3) Dispara todas las transiciones disparables. Si la situación permanece sin cambios después de este disparo simultáneo, ve al paso 6. Paso 4) Llevar a cabo todas las acciones de impulso asociadas con los pasos que se han activado en el Paso 3 (incluida la inicialización de los retrasos de tiempo). Paso 5) Determine el set T2 de las transiciones deseables en ocurrencia del evento e (siempre presente). Si T2 no está vacío, ve al paso 3. Paso 6) Se alcanza una situación estable.
Paso 6.1) Determine el conjunto A0 del nivel acciones que deben ser desactivadas (acciones asociadas con los pasos que estaban activos en el Paso 2 y que ahora están inactivos, y acciones condicionales asociadas con los pasos que han permanecido activos para que las condiciones ya no se verifican). Paso 6.2) Determine el conjunto A1 del nivel de acciones que deben ser activadas (acciones asociadas con los pasos que estaban inactivos en el Paso 2 y que ahora están activos, posiblemente bajo ciertas condiciones y acciones condicionales asociadas con los pasos que han permanecido activos para los cuales las condiciones se verifican, mientras que fueron no en el Paso 2). Paso 6.3) Establecer en 0 todas las acciones que pertenecen para A0 y no pertenecen a A1. Establecer en 1 todas las acciones que pertenecen a A1. Ve al paso 2. B. Ejemplo
Fig. 22 (a) y (b) Ejemplo de especificaciones e interpretaciones (c) ejemplo (parcial) con un estado inicial
Relleno de tanque Modificado: el sistema controlado es el mismo como en la Fig. 2. Las especificaciones de control se modifican de la siguiente manera: 1) El proceso de llenado ya no está permitido si el botón m se presiona (es decir, si m = 1) pero se activa presionando botón de empuje m (es decir, por ↑m).
2) Se agrega un contador: el valor C en el contador representa la cantidad de ciclos (vaciado y llenado del tanque 2). A partir de esta especificación, puede obtenerse el grafcet en la figura 22 (a). (Este grafcet no es la única solución al problema de construir un grafcet que represente esta especificación). La receptividad R1 = 1 significa que siempre es verdad. Las operaciones en el mostrador son acciones de impulso. Ejemplo: apliquemos el algoritmo de interpretación desde la situación inicial (1, 7) para el diagrama de tiempos en la figura 22 (b). Este diagrama corresponde a la cadena de eventos externos Paso 1) Inicialización: tenemos la situación inicial {1,7}. La acción de impulso (C ← -1)*, asociada con el paso 7, es ejecutada (luego C = -1). Paso 5) Solo la transición (6) está habilitada. Es disparable en la aparición de e ya que la receptividad es siempre cierta. Por lo tanto, T2 = ((6)). Paso 3) Disparo de la transición (6). Situación {1,4) se alcanza. Paso 4) La acción de impulso (C ← C + 1)*, asociado con el paso 4, se ejecuta (luego
C = 0). Paso 5) Se encuentra que T2 está vacío, es decir, T2 = 0. Paso 6) Situación estable {1, 4). A0 y A1 están vacíos. Paso 2) Cuando ocurre el evento ↑m, tenemos T1 = {(I)}.
Paso 3) Disparo de la transición (1). Situación {2, 5) se alcanza. Paso 4) Sin acción de impulso asociada con los pasos 2 y 5. Paso 5) Las transiciones habilitadas son (2) y (4). Tenemos h1 = h2 = 0. Por lo tanto, T2 está vacío. Paso 6) Situación estable (2, 5). A0 está vacío y A1 = {V1, V2}. Entonces V1 y V2 asumen el valor 1. Paso 2) Cuando ocurre el evento ↓m, tenemos T1 = 0.
Paso 2) Cuando ocurre el evento ↑b1, tenemos T1 = 0. Paso 2) Cuando ocurre el evento ↑b2, tenemos T1 = 0. Paso 2) Cuando ocurre el evento ↑h1, tenemos T1 = ((2)).
Paso 3) Disparo de la transición (2). Situación {3,5} se alcanza.
Paso 4) Ninguna acción de impulso asociada con el paso 3. Paso 5) T2 = 0. Paso 6) Situación estable (3, 5). A0 = {V1} y A1 = {WI}. Por lo tanto, V1 asume el valor 0 y W1 asume el valor 1. Tengamos en cuenta que, cuando la situación estable es (2, 5), solo las transiciones (2) y (4) están habilitadas y el gr afcet es solo receptivo a h1 y h2 (luego a los eventos ↑h1 y ↑h2 desde h1 = h2 = 0). Por lo tanto, no se puede disparar la ocurrencia de cualquier evento diferente. Grafcet equivalente sin macropasos.
Fig. 23. Macrostep (a) Grafcet con macrostep. (b) Expansión de Macrostep, (c)
Fig. 24 Ilustración de forcejeo de macroacción
V. MACROSTEPS Y MACROACCIONES
Puede ser útil construir un grafcet en una manera de jerarquía. Comentemos los conceptos de macrosteps y macroacciones [7]. Observe que los macrosteps y las macroacciones corresponden a las abreviaturas de un grafcet "ordinario", ya que siempre es posible obtener un grafcet equivalente sin cualquier macroprocesamiento o macroacción, como se ilustra en las Figs. 23 y 24. A. Macrosteps El objetivo del concepto de macrostep es facilitar la descripción de sistemas complejos. El macrostep lo hace posible aligerar la representación gráfica de un grafcet detallando ciertas partes por separado. El concepto de macrostep se ilustra en la Fig. 23. Un macrostep o macro paso está representado por un cuadrado dividido en tres partes por dos líneas horizontales. Un macrostep dado como 2/M40 está representado en la figura 23 (a). Representa un grafcet que se detalla en otro lugar y que se conoce como una expansión macrostep. La Fig. 23 (b) es la expansión correspondiente a M40. Si esta expansión de macrostep se usa para reemplazar macrostep 2/M40, se obtiene el grafcet de la Fig. 23 (c). El conjunto completo de la figura 23 (a) y (b) (grafcet con macrostep más expansión del macrostep) es estrictamente equivalente a la figura 23 (c) en la cual el macrostep ha sido reemplazado por su expansión. Un macrostep y su expansión satisfacen las siguientes reglas: 1) Una expansión de macrostep tiene solo un paso de entrada (escrito como 1) y un paso de salida (escrito como 0). 2) Todas las activaciones de una transición por arriba del macrostep activan el paso de entrada de su expansión. 3) El paso de salida de la expansión de macrostep participa en la habilitación de las transiciones que están debajo, de conformidad con la estructura del grafcet que contiene este macrostep. 4) No hay enlaces dirigidos, ya sea que se unan o dejen la expansión macrostep. Volvamos ahora a la Fig. 23 para dar más detalles sobre ciertos puntos. El grafcet de la figura 23 (a) contiene un macrostep que está escrito como 2/M40. El número 2 es el número de macro, es decir, indica su posición en el grafcet. El símbolo M40 se relaciona a la expansión de macrostep. El número 40 se encuentra en la expansión para marcar el paso de entrada, I40, y el paso de salida, O40, de expansión M40. Cuando la parte del grafcet correspondiente a la expansión M40 se ha utilizado para reemplazar el macrostep 2 [es decir, en la figura 23 (c)], los símbolos M, I y O han desaparecido. Ahora tenemos un grafcet ordinario en el que cada paso tiene un número. Durante el reemplazo, los pasos I40 y O40 tienen que convertirse en 40 y 40' (cualquier otra numeración hubiera sido posible, siempre que no haya dos pasos de grafcet con el mismo número).
En general, un grafcet puede contener varios macrosteps. Finalmente dos o más macrosteps pueden tener la misma expansión, por ejemplo, 2/M50 y 5/M50 [7]. B. Macroacciones Al describir sistemas complejos, el tamaño de los grafcets puede aumentar, por lo que se vuelven difíciles de resolver y así para entender, corregir, actualizar, etc. Tomar en cuenta la seguridad de dispositivos es una razón importante para aumentar la complejidad. No deberíamos tratarlos como otros parámetros ya que tienen un papel diferente, que es menos frecuente (¡espero!) y tiene mayor prioridad. El concepto de jerarquía naturalmente viene a la mente. Es fácil imaginar que un control lógico (descrito por un grafcet) tiene una influencia global en otro controlador lógico (descrito por otro grafcet), esto siendo conocido como una macroacción. Una macroacción puede ser un nivel o una acción de impulso (solo como una acción ordinaria). Es producido por un grafcet G1 y tiene un efecto en el comportamiento de un grafcet G2. Una macroacción es por lo tanto homogéneo con una acción desde el punto de vista de G1 El forzamiento de macroacción se ilustra en la figura 24. Forzando G2: {12}, asociado con el paso 5, significa que el grafcet G2 se pone en una situación tal que el paso 12 está activo (mientras que los otros están inactivos) siempre que el paso 5 esté activo. Es una macroacción de nivel. El conjunto de los dos grafcets G1 y G2 de La Fig. 24 (a) es equivalente a grafcet G1,2 de la Fig. 24 (b). Cuando el paso 5 está activo, el paso 12 también se activa. Como una cuestión de hecho, en la figura 24 (b): si el paso 11 está activo, la transición (11) se dispara porque R11 = a + X5; si el paso 13 está activo, la transición (14) es despedida porque R14 = X5; si el paso 12 está activo, permanece activo; en todos los casos, el paso 12 permanece activo siempre que X5 = 1 desde otras macroacciones como la fuerza (macroacción de impulso),puede usarse como congelación y enmascaramiento (macroacciones de nivel) [7]. VI. COMPARACIÓN CON OTROS MODELOS
A. Comparación con las redes de Petri El hecho principal que deseamos señalar aquí es que la representación de la concurrencia en grafcets se hereda de Redes de Petri. Cada modelo posee dos tipos de nodos, a saber los pasos y las transiciones para Grafcet y los lugares y transiciones para la PN (Petri Network o Red de Petri) interpretada. Redes de Petri interpretadas se pueden definir de manera que el comportamiento de entrada-salida sea similar al comportamiento de entrada-salida de un grafcet [7], [8], [17] (nivel y acciones de impulso asociadas con los lugares, eventos y condiciones asociadas con las transiciones). Hay dos diferencias básicas entre la PN interpretada y el Grafcet. Primera diferencia: el marcado de un paso de grafcet es booleano, mientras que el marcado de un lugar PN interpretado es numérico.
Segunda diferencia: en un grafcet, todo al mismo tiempo las transiciones irreversibles se disparan simultáneamente (Regla 2).Por otro lado, si varias transiciones están en conflicto [su habilitación depende del marcado del mismo lugar, como en la Fig. 13 (b)] y son simultáneamente disparables en una PN interpretada, solo una de ellas puede ser disparada. El comportamiento de tal PN no es determinista, ya que no hay una regla para elegir la transición a ser disparada. Ahora, si una PN es segura (es decir, para cualquier marca alcanzable, el marcado de cada lugar es menor o igual a uno), la primera diferencia no existe Si una PN interpretada es tal que, para cualquier marca alcanzable, cualquier par de transiciones en conflicto tener receptividades que no pueden ser verdaderas al mismo tiempo, solo una de ellas puede ser disparable: el comportamiento es entonces determinista, y la segunda diferencia no existe. Se deduce que una PN (con una interpretación de entrada-salida de tipo Grafcet), que es seguro y determinista, es equivalente a un grafcet, como se ilustra en la Fig. 25. Esto significa que si la "red" se interpreta como una PN o un grafcet, se deduce el mismo comportamiento de entrada-salida de eso. En general, un sonido grafcet [5] tiene lo siguiente propiedades: 1) En ningún momento puede un paso activo ser tal que una de sus transiciones de entrada es posible y ninguna de sus transiciones de salida son simultáneamente disparables (decimos que grafcet no es reactivable). 2) Para cualquier par de transiciones que sean simultáneas disparables, no tienen ningún paso de entrada en común. 3) Ningún paso puede tener dos transiciones de entrada simultáneas. Ahora, si la evolución del marcado de un sonido grafcet era interpretado como para un PN, esta PN estaría a salvo de las propiedades 1 y 3 de arriba. Si la propiedad 2 anterior está satisfecha, entonces un caso similar a la Fig. 13 (b) no puede existir. Sigue que un sonido grafcet es equivalente a un PN (con una interpretación de entradasalida tipo Grafcet), como se ilustra en Fig. 25. Tengamos en cuenta que la mayoría de los grafcets que se dibujan son naturalmente sanos. Si un grafcet no es sano ( ϒ en la Fig. 25), se puede modificar para que se vuelva sonido (δ en la Fig. 25). La transformación presentada en la observación 5 suele
ser suficiente. Se pueden encontrar más detalles en [7]. Luego, en la práctica, la mayoría de los grafcets también son redes de Petri, y los pocos otros pueden ser modificados para tener esta propiedad. Esto permite las propiedades clásicas de las PN que se aplicarán a ellos (marca invariantes por ejemplo). B. Comparación con los modelos clásicos de máquinas secuenciales En esta sección veremos que el Grafcet es una poderosa herramienta de descripción. Los modelos clásicos que describen los sistemas secuenciales corresponden a máquinas asincrónicas por un lado y a máquinas sincrónicas en el otro. Veremos que un grafcet que describe el mismo funcionamiento puede ser inmediatamente asociado
con cada uno de estos modelos. Por otro lado, sin embargo, existen grafcets que no pueden ser traducidos inmediatamente por uno de estos modelos.
Fig. 25. Comparación entre Grafcet y redes de Petri. Mover de una tabla de estado que representa un asincrónico la máquina a un grafcet es inmediata. Un paso del grafcet es asociado con cada estado de la máquina. Una transición en el grafcet se asocia con cada transición de la máquina (con un solo paso anterior y un paso posterior). Las receptividades corresponden a las condiciones de disparo. Para la tabla de estado en la Fig. 11 (d), esta transformación conduce a cuatro estados, a saber, 5, 61, 62 y 7. Para una máquina Moore, las acciones son incondicionales, y para una máquina Mealy las acciones son condicionales. La figura 26 (a) representa una máquina secuencial síncrona con dos entradas, a y b, y una salida, S. Entrada h es una entrada especial que es un reloj (por lo general, este modelo se utiliza para piezas de computadoras pero no para controladores lógicos). El estado interno y/o estado de salida solo puede cambiar en un borde ascendente del reloj. Como esto se aplica a todas las transiciones, esta condición es implícito y por lo tanto no está representado en la tabla de estado de Moore en la figura 26 (b). Por ejemplo, si estamos en el estado 1 y ab = 10, en el siguiente borde ascendente de h, pasaremos al estado 2. La noción de un estado estable pierde todo el significado en una máquina síncrona. Cada vez que se produce ese borde ↑h, tanto el estado interno
como el estado de salida pueden cambiarse. Tenga en cuenta que una máquina síncrona siempre se puede transformar en una máquina asincrónica (considerando que el reloj es una entrada ordinaria), pero que lo contrario no es verdad. La transformación de una tabla de estado a un grafcet se lleva a cabo de inmediato en cuanto al caso asincrónico La única diferencia es que cada receptividad explícitamente menciona que está en la ocurrencia del evento que la transición tiene lugar. Por ejemplo, con la transición del estado 1 al estado 2 en la tabla de estados de la figura 26 (b) es asociado la receptividad ↑h*ab 'en el grafcet de la figura 26 (c). En el caso de la máquina sincrónica Mealy, las salidas de la tabla de flujo o diagrama corresponden a acciones de impulso en el Grafcet.
Mientras que un paso de grafcet siempre se puede hacer para corresponder a un estado, de lo contrario no se aplica. Esto es claro cuando grafcet tiene un número mayor que uno de los pasos activos (Fig. 20 por ejemplo), y también hay ejemplos donde el grafcet tiene un solo paso activo [7]. Para resumir, el grafcet incluye el poder descriptivo de máquinas asíncronas y síncronas y puede mezclar entradas booleanas y de eventos, y acciones de nivel e impulso (qué modelo booleano y salidas de eventos).
Fig. 26. Grafcet correspondiente a una máquina síncrona. VII. OBSERVACIONES FINALES
El modelo Grafcet, inspirado en las redes de Petri, es una muy buena herramienta para la especificación del controlador lógico. Permite modelado de simultaneidad y sincronización. Sobre todo, el comportamiento de entrada-salida se especifica sin ambigüedad. Cuando algunas partes del controlador lógico se pueden describir por separado, uno puede usar macrosteps para simplificar el modelo [7], [16]. Esto permite refinamientos paso a paso que ya se han utilizado para redes de Petri [26]. Gracias a las macroacciones [7], uno puede modelar un sistema a través de varios grafcets teniendo una relación de jerarquía. Esto es particularmente útil para tomar dispositivos de seguridad en cuenta. ZEC Standard: la Comisión Electrotécnica Internacional (IEC) Norma sobre Controladores Programables [12] incluye solo algunos elementos del SFC y se refiere a [11] que es, entonces, la referencia básica. En [12], la siguiente restricción está hecha: un SFC debe tener exactamente un estado inicial. Esta restricción se puede tener fácilmente en cuenta como se ilustra en la Fig. 22 (c). Como se señaló en la introducción, la Norma de la CE [11] no está presentada de manera formal como en este documento; es presentado en cierto modo, haciendo hincapié en el lado práctico. La mayoría de los conceptos presentados en este documento, sin embargo, se puede encontrar en él. Aquí están las principales características de este estándar.
1) Receptividades: Ellos explícitamente pueden ser una condición, o un evento, o ambos (como en este documento). La recomendación en la Observación 5 (receptividades mutuamente excluyentes para transiciones de salida de un lugar) es una obligación en el estándar. 2) Acciones: Básicamente, una acción es una acción de nivel. Las acciones condicionales existen. Las acciones de impulso no son formalmente definidas como en este documento; sin embargo, los mismos resultados se pueden obtener gracias a las acciones que son calificadas "almacenado" [por ejemplo, paso 2 en la Fig. 19 (a)] o "pulso conformado "[por ejemplo, paso 4 en la figura 22 (a)]. 3) Macrostep: La palabra no se usa, pero el concepto de "Representación detallada de un paso" es similar. 4) Macroacción: No existe en el estándar. 5) Tiempo: Las acciones pueden calificarse como "retrasadas" y/o "Tiempo limitado". La variable booleana definida en Definición 6 no se usa, pero el poder descriptivo es el mismo. Implementación: cuando alguna entrada de un controlador lógico cambia, este controlador debe reaccionar "inmediatamente" modificando su estado de salida que controla el proceso. Por lo tanto, cualquier modelo es de un controlador lógico asíncrono, modelo de tiempo continuo. Esto es cierto para los cuatro modelos en la Fig. 3. Cada modelo es una especificación, es decir, un modelo matemático donde el tiempo no es involucrado. Una vez que se ha especificado un controlador lógico, debe implementarse [15], [22]. La implementación es diferente de la especificación desde el tiempo necesario para cualquier operación debe ser tenido en cuenta en la práctica. La característica importante es que el comportamiento de la entrada-salida de la implementación debe ser el mismo que el comportamiento de entrada-salida de la especificación (incluso si el tiempo para alcanzar un nuevo estado de salida no es nulo). Carreras entre variables es un problema que es bien conocido en la lógica de cableado. Similares problemas ocurren en la lógica programada, incluso si su causa no es la misma. Usualmente, un PLC escanea las entradas del controlador lógico y calcula el siguiente estado interno y de salida antes de un nuevo escaneo de entradas (esto es diferente en el modelo de tiempo continuo). Vamos a llamar a un ciclo el período entre dos escaneos sucesivos de entrada. En un programa RLL, todos los escalones son escaneados y actualizados en orden de un ciclo. Obviamente, el orden es importante dado que el valor de una variable interna P depende de otro, Q, que cambia durante el ciclo, puede depender de orden de P y Q en el programa. Para un programa Grafcet, dos puntos deben considerarse cuidadosamente: