Está en la página 1de 11

Página 1

112 Controladores lógicos programables

4.5.6 Ejemplo: proceso por lotes


La figura 4.17 muestra una sección del proceso en la que dos productos químicos, A y B, se mezclan. S1 ,
S2 y S3 son interruptores de nivel del tipo NC (normalmente cerrado) que cambian de estado cuando el
el fluido alcanza el nivel en cuestión. Ts es un sensor de temperatura. La instalación también tiene un comienzo
botón, Inicio y un botón de detención, Stop1 .
La instalación debe funcionar de la siguiente manera:

• A la señal de inicio, la válvula A se abre.


• En el nivel S2, la válvula A se cierra, el elemento calefactor se enciende, el agitador arranca y la válvula B
se abre
• En el nivel S3, la válvula B se cierra.
• Cuando se alcanzan los 85 ° C, se activa un temporizador. 30 segundos después, la calefacción se apaga y
la válvula C está abierta.
• Por debajo del nivel S2, el agitador se detiene.
• Por debajo del nivel S1, la válvula C se cierra y la válvula A se abre nuevamente.
• La secuencia se repite hasta que se presiona Stop1.

El diagrama de secuencia en la Figura 4.18 se dibuja en base a los siguientes supuestos, evalu-
aciones y opciones:

• Suponga que el tanque está vacío al comienzo. Tenga en cuenta que el interruptor de nivel es de tipo NC para que
da una señal lógica alta cuando no está activado.

Agitador
Válvula A Válvula B

S3

S2

Calentador
S1
Válvula C

Figura 4.17 Proceso por lotes

Página 2
Diseño estructurado 113

1 2 3 44 55 66 77 8 99 10 11 12 13/4

30s
comienzo

S1 (NC)

S2 (NC)

S3 (NC)

Temp_Ok

Timer.Q

Calentador

Agitador

Válvula A

Válvula B

Válvula C

Figura 4.18 Diagrama de secuencia para el proceso por lotes

• Se activa un retraso de tiempo de ENCENDIDO cuando se alcanza la temperatura deseada (Temp_Ok). Después
30 segundos, el temporizador de salida Timer.Q sale alto. Tenga en cuenta el comentario de tiempo entre
Líneas de acción 6 y 7.
• La instalación completa una secuencia continua antes de cualquier parada eventual. En el código del programa,
entonces debemos almacenar el evento "Stop pulse" y verificar esto al final de la secuencia actual.
Sin embargo, no es práctico dibujar resultados alternativos en el diagrama de secuencia para que el Stop
no puede ser ilustrado
• Después de que el elemento calefactor (calentador) se ha apagado, no sabemos cuándo la temperatura
caerá por debajo de la temperatura deseada nuevamente. Aquí, se supone que esto sucede después del
El nivel de líquido ha caído por debajo del nivel 2.

4.6 Diseño basado en el estado


Hemos visto que los diagramas de flujo y los diagramas de secuencia se pueden usar en la planificación y
etapa de desarrollo para ilustrar esquemáticamente un problema. Más tarde, y en base a tal dia-
gramos, desarrollaremos códigos de programas estructurales para sistemas secuenciales.
A pesar de hacer diagramas de flujo útiles, diagramas de secuencia y diagramas de estado,
que pronto estudiaremos, está asociado con una cierta cantidad de trabajo, este esfuerzo es
compensado rápidamente por un desarrollo más rápido del código del programa. En otras palabras, el
el tiempo total de desarrollo es más corto si uno dedica un poco de tiempo a planificar la estructura del programa
Ture. Lo más probable es la cantidad de errores en el código que deben detectarse y corregirse.
También será más pequeño.

Página 3
114 Controladores lógicos programables

El uso de diagramas de flujo no se limita a los sistemas que tienen una naturaleza marcadamente secuencial, sino que
no son tan adecuados cuando hay múltiples rutas desde cualquier estado. En algunos casos, el
el sistema que se va a controlar se puede describir con un conjunto de estados únicos y distintos sin
habiendo cualquier proceso secuencial dominante en el sistema. En tales casos, puede ser más
Práctico para utilizar diagramas de estado .
Los diagramas de estado se usan típicamente para describir estados en el desarrollo del estado finito
maquinas . Por definición, esta es una "máquina 13 " que siempre está en uno de un número especificado de
estados únicos y donde las transiciones a otros estados se basan en estados instantáneos a lo largo
con funciones combinatorias de señales de entrada y variables internas. ¿Qué estado viene después?
en otras palabras, es el resultado de eventos controlados por el usuario (por ejemplo, presionar un botón) y / o el
resultado de cálculos internos.
Hay dos variantes de máquinas de estado finito: el modelo Moore y el modelo Mealy . los
El modelo de Moore, que está más extendido y que utilizaremos, se basa en el
idea de que las acciones que se realizarán están asociadas con estados. En otras palabras, cambios
de la señal de salida depende solo del estado que está activo en un momento dado. En una comida
máquina, las señales de salida dependen directamente de las señales de entrada también.

4.6.1 ¿Por qué usar diagramas de estado?


Un uso generalizado de la técnica del diagrama de estado se encuentra en el desarrollo de interfaces de usuario. Un usuario
La interfaz normalmente se basa en varias opciones de usuario que resultan en la activación de varios
segmentos de programa, donde cada segmento es un estado en un diagrama de estado. La ejecución del programa
El segmento puede conducir a otro segmento del programa o a la anticipación de un nuevo evento controlado por el usuario.
Sin embargo, aquí nos centraremos en el uso de diagramas de estado como técnica de diseño para más adelante.
desarrollo de código de programa para controlar procesos. En el capítulo sobre diseño secuencial,
vimos que el flujo del proceso podría dividirse en un conjunto de estados definidos y que la transición
de un estado a otro depende de los valores de una o más señales o variables. Ambos
Estas condiciones aparecerán claramente en un diagrama de estado.
Además de que los diagramas de estado son útiles para desarrollar algoritmos concretos para el control, el
La técnica también se puede utilizar para planificar la estructura del código y las aplicaciones. A medida que aumenta la complejidad,
también lo hace la necesidad de técnicas estructuradas para la planificación y el diseño. Todos los que trabajan en
el desarrollo de software conoce el concepto del diagrama de estado, que es una parte importante de
Lenguaje unificado de modelado UML). UML es una especificación de requisitos y modelado
lenguaje para el desarrollo de software.

4.6.2 Diagramas de estado


Por lo tanto, el diagrama de estado se usa para ilustrar estados, para mostrar cómo los estados se suceden,
y para mostrar qué condiciones deben cumplirse para que un sistema pase de un estado a
otro. Estas condiciones se llaman transiciones . También es común que los nombres de los estados reflejen
algo sobre las acciones que se realizarán en los estados individuales. En otras palabras, el

 El concepto de máquina es algo engañoso en estos días, pero tuvo su origen en técnicas digitales en las que
13

Las máquinas de pie, basadas en hardware ensamblado a partir de componentes digitales, se desarrollaron con esta técnica.
Hoy en día, la técnica se utiliza para el desarrollo de códigos de programa y algoritmos.

Página 4
Diseño estructurado 115

Trans_AB

Estado Estado
UNA si Trans_BC

Trans_DA Trans_CB Estado


Trans_EA Trans_DB
C

Estado Estado
mi re
Trans_DE

Figura 4.19 Ejemplo de un diagrama de estado genérico

El diagrama de estado proporciona la misma información que un diagrama de flujo, excepto que un diagrama de estado es
más rápido de elaborar, más compacto y también más utilizable para sistemas no secuenciales.
El estado inicial, que está marcado aquí con contornos dobles, es el estado en el que el sistema
comienza cuando se enciende la alimentación (se coloca en MARCHA). A menudo, este será un estado inactivo donde no
se realizan acciones (quizás con la excepción de iniciar o restablecer variables). los
el control (la máquina de estado finito, el programa PLC, etc.) permanece en este estado y espera un inicio
señal de un operador, por ejemplo.
Lo que los otros estados describen y contienen depende del proceso que el diagrama es
hecho para. Estas pueden ser acciones que se están realizando, como arrancar una bomba o abrir
la válvula. Tampoco puede ser nada , entendiendo que el sistema simplemente está esperando
cierto tiempo o para una señal de un sensor, por ejemplo.
Las transiciones serán expresiones lógicas donde las señales de entrada pueden estar involucradas, probablemente en
combinación con variables internas. En el código de programa completado, solo la transición
Las pruebas que vienen directamente después del paso activo se prueban. Relacionado con el diagrama de la figura 4.19,
esto significa, por ejemplo, que no es significativo cuando la transición Trans_DA se satisface como
siempre que el sistema no se encuentre en el estado D.

Ejemplo 4.22 Cinta transportadora

La figura 4.20 muestra un diagrama de estado para el control de la cinta transportadora en una instalación de envasado. los
la instalación debe funcionar de la siguiente manera:
• Las mercancías
el pistón que la
empujará caen sobre lahacia
mercancía cinta una
transportadora
estación deson detectadas
empaque. por una
El pistón fotocélula.
tiene Luego
un retorno un neumático
por resorte y
está controlado por un sensor para que sepamos cuándo se extiende. (Supongamos que vuelve
sin entrar en conflicto con un nuevo elemento en el cinturón).
• Cuando se han sacado 100 artículos del cinturón, el cinturón debe detenerse. El operador empaca el
100 artículos y luego comienza el cinturón nuevamente.
• También hay una función de parada incorporada, así como una función de alarma que se activa si hay más
transcurren más de 10 segundos antes de que llegue el siguiente elemento a la fotocélula.

Página 5
116 Controladores lógicos programables

comienzo
Tiempo> 10 s

Listo correr
transportador
Detener
Alarma

Empujar y Confirmar
contador <100

Empujar y Célula fotoeléctrica


contador = 100

Contar hasta
Largarse

Figura 4.20 Diagrama de estado para una instalación de empaque

En el diagrama anterior, estamos usando pseudocódigo, es decir, palabras y oraciones comunes, para
indicar transiciones y estados. Para reducir aún más el trabajo en la programación que
Luego, puede ser sensato utilizar nombres de estado válidos y códigos individuales en texto estructurado .
Esto se hace en el siguiente ejemplo.
También tenga en cuenta que las condiciones de transición están claramente marcadas así en el diagrama.

Ejemplo 4.23 Proceso de mezcla

En la Figura 4.8, dibujamos un diagrama de flujo para el proceso de mezcla, y en la Figura 4.16, dibujamos una secuencia
diagrama para el mismo proceso. La figura 4.21 muestra un diagrama de estado para el proceso. Vemos que el
El flujo en las secuencias está claramente marcado por flechas que muestran las transiciones entre los estados.
Hemos usado otras formulaciones aquí en el diagrama de flujo, tanto en nombres de estados como en
condiciones para la transición (pruebas y elecciones). Esto se ha hecho deliberadamente para venir
un paso más cerca de un programa para controlar este proceso. Además, los diagramas de flujo son más
a menudo se usa en una fase anterior, donde es natural usar más pseudocódigo.
Las transiciones (marcadas así ) y los nombres de estado que se utilizan en el diagrama a continuación pueden
probablemente se implementará directamente en la mayoría de los sistemas porque son nombres válidos bajo IEC
61131-3 estándar. 14

4.6.2.1 Tablas estatales


En lugar
tabla de utilizar
de estados . Launmisma
diagrama de estado,
información quese aparece
puede estructurar el sistema
en el diagrama puedeenpresentarse
forma de tabla
en el configurando un
mesa. Una estructura común para tales tablas es escribir un estado ahora en la columna más alejada
a la izquierda y un posible estado siguiente como la fila superior de la tabla. Las transiciones luego indicadas en
las líneas divisorias entre el estado actual actual y el posible estado siguiente. Una tabla basada en
El diagrama de estado en la Figura 4.20 se muestra en la Tabla 4.4 a continuación.

14 Los  nombres (para variables y objetos) comenzarán a continuación con un carácter y no contendrán espacios.
El subrayado es permisible ya que se usa aquí en Mix_Drain, por ejemplo.

Página 6
Diseño estructurado 117

LT2
comienzo LLENAR

Mezcla_
remover
Listo

LT3

Mezcla_
NO
Desagüe desagüe
LT1

NO LT2

Figura 4.21 Diagrama de estado para el proceso de mezcla en la página

Tabla 4.4 Ejemplo de tabla de estado

Siguiente estado / Listo Corre cinturón Alarma Empujar


Ahora estado

Listo comienzo
Corre cinturón Detener Tiempo> 10 s Célula fotoeléctrica
Alarma Reconocer
Empujar Pistón y Pistón y
contador = 100 contador <100

4.6.2.2 Diagrama macro

Como se mencionó anteriormente, los diagramas de estado pueden usarse ventajosamente como ayudas para estructurar
Grandes aplicaciones de programas. En este caso, los estados individuales pueden describir (consistir en) principales
operaciones que a su vez están controladas por sus propias unidades de programa en el PLC.
Entonces los estados individuales en el diagrama son una especie de macropaso . Ver Figura 4.22. Cuando
la transición está satisfecha, se llama a otro programa. También se puede hacer un diagrama de estado
eso ilustra lo que sucederá dentro de cada individuo.
4.6.3 Ejemplo: proceso por lotes
En la figura 4.18, dibujamos un diagrama de secuencia para un proceso por lotes. Ahora dibujaremos un estado
diagrama para el sistema donde se ha agregado un nuevo botón de parada adicional, Stop2, y el
Se especifica la siguiente condición adicional:

• Cuando la instalación ha comenzado 10 veces, o si se presiona Stop1, la secuencia se completará


antes de que la instalación se detenga.
• Si se presiona Stop2, la instalación se cerrará inmediatamente.

Página 7
118 Controladores lógicos programables

comienzo

Lote_
Listo
programa

Enjuague Mezcla
terminado terminado

Lavar_ Tapping_
Tocando
and_rinse programa
terminado

Figura 4.22 Diagrama de estado a nivel macro

La primera especificación adicional también implica que el diagrama debe contener ramas alternativas para
que hay dos caminos posibles para continuar después de que el tanque esté vacío. Si Stop1 ha sido activado,
o si se han completado 10 secuencias, el programa pasa a su estado "Listo". Si no, el
El estado "Fill_A" se activa nuevamente. Ver Figura 4.23.
Observe también el manejo de la parada inmediata cuando Stop2 está activado. Esto se resuelve aquí
insertando Stop2 en todas las transiciones hasta el cierre de la secuencia.
El PLC activará y desactivará los estados en orden y, con la implementación correcta
del diagrama en forma de código, esto tendrá lugar sin que ninguna de las salidas sea
cambiado en absoluto hasta que el estado Listo se active nuevamente.

4.6.4 Ejemplo: proceso de nivel


Se utilizará un PLC para controlar el nivel de líquido en el tanque. El tanque está provisto de un
cantidad variable de líquido (el control de la corriente de fluido en el tanque no es parte de la tarea). Dos
Las bombas de sumidero, P1 y P2, evitarán que el tanque se llene. Las bombas se controlan con
La ayuda de señales de tres monitores de nivel, B1, B2 y B3, que dan una señal lógica alta
cuando están cubiertos por líquido. Ver Figura 4.24. 15
El sistema funcionará de la siguiente manera:
• Cuando el nivel sube por encima de B2, una de las bombas arrancará y luego se detendrá nuevamente cuando
el nivel cae por debajo de B1.
• Las bombas arrancarán alternativamente para que P1 y P2 comiencen una a la vez. El cambio en
qué bomba arrancará no tendrá lugar hasta que el nivel haya caído por debajo de B1 y luego haya
subir a B2 de nuevo.
• Si el nivel sube por encima de B3, ambas bombas funcionarán hasta que el nivel vuelva a estar por debajo de B1.
• Si B3 está encendido por más de tres minutos, se encenderá una lámpara de advertencia.

15  El ejemplo fue creado por el profesor asistente Inge Vivås, Bergen University College.

Página 8
Diseño estructurado 119

(* Iniciar agitador *)
(* Arranque del calentador *)
(NO S2)
O Stop2 (NO S3)
Fill_B
O Stop2

(* Aumentar contador *) Fill_A


Calefacción

comienzo Temp> 85
O Stop2
S1 Y (Contador <10)
Y NO
(Stop1 O Stop2)

Espere (* Temporizador activo *)


(*Reiniciar contador*) Listo

Stop2 OR Tiempo> 30 s
Drenaje1 O Stop2
S1 Y
(Contador = 10 O Stop1) Drenaje2
(* Detener el calentador *)
S2 O Stop2

(* Detener el agitador *)

Figura 4.23 Diagrama de estado para el proceso por lotes. Las acciones que se realizarán en los pasos son
escrito como (* comentarios *). Las transiciones están escritas en código ST

Agua en
B1 – B3 son monitores de nivel
que dan un "1" cuando el
el nivel está por encima del sensor

B3
P2 Agua fuera
B2
P1
B1

Figura 4.24 Tanque de fluido con bombas (Reproducido con permiso de Inge Vivås)

La instalación también tiene un botón de inicio, un botón de parada y un botón de reinicio que desactiva la alarma.
La figura 4.25 muestra un diagrama de estado hecho para corresponder con la descripción del sistema anterior. En
Para hacer la transición al código del programa lo más simple posible, los nombres de estado utilizados aquí
son nombres de estado permitidos bajo el estándar. Por la misma razón, el código descriptivo también
sido utilizado para las transiciones entre estados.

Página 9
120 Controladores lógicos programables

(RE B2) Y
NO P1_Último
comienzo Run1

Listo Ocioso (* Ejecute la bomba P1 *)


Detener (* Establecer P1_Último *)
(FE B1) o B3
O pare

(FE B1) B3 Y (RE B2) Y P1_Último


O pare Sin parar

(FE B1) o B3
O pare Run2
Run12
(* Ejecute la bomba P2 *)
(* Restablecer P1_Último *)
(* Ejecute ambas bombas *)
(* Encienda la lámpara si contition activ> 3min *)
(* Apaga la lámpara con Reset *)

Figura 4.25 Diagrama de estado para el proceso de nivel

Como en el ejemplo anterior, las acciones e instrucciones que se deben realizar en el


los estados individuales se dan en forma de comentarios.
P1_Last es una variable booleana que se inserta en el código para realizar un seguimiento de qué bomba
se activó por última vez. Cuando se inicia la instalación, esta variable es FALSA. Cuando el nivel entonces
excede B2, la bomba P1 arrancará (porque la transición RE B2 Y NO P1_ Última del
El estado inactivo se convierte en VERDADERO). La variable P1_Last luego toma el valor VERDADERO para que el siguiente
Cuando el nivel sube por encima de B2, la bomba P2 arrancará.

Sobre las transiciones

RE significa "flanco ascendente" e indica que las condiciones en las que está presente RE B2 solo pueden
estar satisfecho si la señal B2 cambia de estado de 0 a 1. FE significa "flanco descendente" y se utiliza
aquí para detectar cuándo la señal B1 cambia de estado de 1 a 0.
Una alternativa a escribir RE y FE para indicar dicha detección de flanco es usar flechas como
como ↑ B2 y ↓ B1.
La transición del estado Idle al estado Run12 quizás parezca un poco extraña. Aquí,
"NO PARAR" se incluye como parte de la condición. Esto se incluye para garantizar que los dos
Las posiciones del mismo estado quieren ser VERDADERAS simultáneamente. Aquí está el escenario:

• Suponga que el nivel se eleva por encima de B3. Entonces se activa el estado Run12.
• Si se presiona Stop, el estado Run12 se desactiva y el estado Inactivo se activa nuevamente.
• Si B3 continúa emitiendo una señal, sin embargo, Around12 se activará de nuevo simultáneamente como
el estado Listo está activado. Evitamos esto mediante el uso de " B3 AND NOT Stop " como transición a Run12.

Uno siempre tiene esos problemas cuando el diagrama tiene ramas alternativas , es decir, cuando hay
Hay varias formas posibles de salir de uno del mismo estado. Cada forma posible tiene su propia transición,
y es un requisito absoluto que solo se pueda satisfacer una de estas transiciones (se convierte en

Página 10
Diseño estructurado 121

un VERDADERO lógico) en cualquier momento. Dicho de una manera más elegante, las transiciones deben ser mutuamente
exclusivo . Si tales transiciones no son mutuamente excluyentes, puede suceder que dos o más alternativas
las rutas se activan simultáneamente y luego el programa no funcionará satisfactoriamente.
El estado inactivo tiene muchas conexiones, y el requisito de exclusividad mutua naturalmente
se aplica a todas las transiciones fuera de inactividad. Si estudiamos esta transición, veremos que el requisito
se cumple: el uso de RE en B2 en las otras dos transiciones conduce automáticamente a que no
siendo cualquier conflicto con la transición Stop. (Esto es válido siempre que el nivel no
alcanza B2 precisamente en el mismo escaneo cuando Stop está activado. Para estar seguros, podemos
incluir NO parar en estas transiciones.)
Las mismas dos transiciones también se excluyen entre sí cuando se incluye "P1_Last" en uno de
ellos y "NOT P1_Last" en el otro.
Una estructura alternativa que elimina el problema es incluir conectores específicos para
condición de transición Deténgase de los tres estados Run1, Run2 y Run12 y diríjase a Ready
estado. Sin embargo, esto creará una estructura innecesariamente desordenada.

Sobre la elección de estados

La elección de los estados se realiza principalmente en función de las fases físicas de los procesos.
Parece natural incluir tres estados para hacer funcionar las bombas y un estado donde ninguno de los
Las bombas funcionan (estado inactivo). Aquí no se ha realizado ninguna evaluación real de ingeniería del programa.
Si tuviéramos que hacer eso, es tentador incluir un estado para la activación de la lámpara de advertencia. Esta
tendría que originarse en el estado Run12. Al hacer eso, nos volveríamos algo más simples
codificación de las acciones asociadas con Run12 y podemos, mediante la implementación en SFC, usar un
temporizador incorporado. La figura 4.26 muestra una sección del diagrama donde se ha realizado este cambio.

( Nota : aquí se usa la sintaxis correcta para referirse a un objeto de temporizador incorporado).

4.6.5 Ejemplo: instalación de embalaje para manzanas


Figura 4.27 bosquejo de una instalación para empacar manzanas en cajas.

• Cuando se presiona Start, la cinta transportadora 1, que transporta las cajas, comienza a moverse.
La correa funciona hasta que un sensor capacitivo emite una señal que indica que una caja vacía tiene
ven a la estación de empaque. Luego comienza la cinta transportadora 2.

NO B3 O
Reiniciar

Alarma
Run12

(* Lámpara encendida *)
(* Ejecute ambas bombas *) B3 Y (* Ejecute ambas bombas *)
Run12.T> t # 3m

Figura 4.26 Estado extra alternativo

También podría gustarte