1. Programación estructurada sobre Controladores Programables
Programación estructurada sobre un PLC
Objetivos:
• Discutir tres métodos estructurados para implementar un esquema de control
• Generar un diagrama de estados para un problema de control dado.
• Diseñar una red de Petri para un problema de control dado.
• Convertir una red de Petri en una diagrama secuencial.
• Ventajas y desventajas de la programación estructurada y no-estructurada
Se pretende ver como desarrollar un control secuencial usando métodos estructurados
en lugar del de prueba y error. Construir un diagrama de estados o una red de Petri
ayuda al análisis del funcionamiento total de un control y permite dividir un control
complejo en partes menores, segmentos mas manejables. La depuración de
programas estructurados es mucho mas facil, debido a que ellos están organizados y
que el diagrama de estados y la red de Petri proveen ayuda visual.
Diagrama de estados
La lógica escalera a menudo es escrita en forma no estructurada lo que se hace dificil
de analizar y corregir. Esto puede ser remediado mediante un simple enfoque
estructural llamado diagrama de estados. Un diagrama de estados es una
representación pictórica, un tipo especial de diagrama de flujo, de un proceso de
control secuencial que muestra los posibles caminos que el proceso puede tomar y las
condiciones booleanas necesarias para pasar de un estado al otro.
•
•
•
•
El primer paso en este enfoque a la programación estructurada es preparar una
descripción de lo que se necesita hacer.
El segundo paso es trasladar esta descripción a un diagrama de estados,
determinando los estados únicos a traves de los cuales el proceso avanza.
Cualquier cambio que se de en las condiciones de salida necesita ser mostrado en
un nuevo estado.
El tercer paso es conectar estos estados con líneas y flechas para indicar las
direcciones de cambio deseado.
Finalmente, se agregan las condiciones lógicas, escritas en forma booleana, que
causan un cambio de un estado a otro.
Ejemplo 1: “llave –secuencial-”
Descripción: Diseñar una “llave –secuencial-” que operará un dispositivo por 15
segundos despues de que tres pulsadores han sido presionados en la secuencia
correcta. Si se presiona una secuencia incorrecta un aviso de error deberá ser
activado para prevenir un nuevo intento antes de 10 segundos, luego de los cuales se
permite un nuevo intento. Si el aviso de error es activado mas de dos veces la llave
permanecerá bloqueada hasta que un pulsador, para tal fin, lo libere.
El diagrama de estados para este bloqueo secuencial es dado por la figura 1.
Diseño de Sistemas Lógicos Secuenciales
1/8
2. Programación estructurada sobre Controladores Programables
Esquema de estados
Estado 1:
Habilitar
Estado 2:
Listo,
intento 1
Estado 3:
intento 2
I:00
I:01 + I:02
I:00 + I:02
Estado 6:
Error
T1*C1+I:03
T2
I:01
I:00+ I:01
Estado 5:
Operar
Estado 4:
intento 3
I:02
Figura 1: Diagrama de estados para el ejemplo
“Llave –secuencial-”
Designación
I:00
I:01
I:02
I:03
T1
T2
C1
Dispositivo
Pulsador 1
Pulsador 2
Pulsador 3
Pulsador 4
Temporizador
Temporizador
Contador
Función
Primera combinación
Segunda combinación
Tercera combinación
Reset
Retardo 10 seg.
Retardo 15 seg.
Error
Regla para la construcción de diagramas de estado: solo un estado puede ser
activado a la vez.
Esta regla es asegurada exigiendo que, para habilitar un estado, los restantes estados
estén inhabilitados. De otra manera podria resultar en un serio conflicto entre estados,
inseguro para el personal y las maquinaria.
El control secuencial para la llave descripta en el ejemplo 1 se implementará
utilizando el método de diagrama de estados. El programa se escribe para cualquiera
de lo PLCs del Laboratorio.
La estructura en este control resulta facil de seguir, depurar y mantener. La parte mas
pesada de diseñar es la generación del diagrama de estado. Una vez que él es
diseñado, el resto es sencillo. Usted podría implementar este mismo control con unos
pocos relés, pero, dado que la memoria del PLC no es cara, el costo para un programa
estructurado es mínimo. Las ventajas de un programa estructurado sobre uno no
estructurado hacen que sea una excelente forma de implementar un control.
Todos los estados deben ser implementados de a uno por vez. Proponemos seguir un
formato general para programar el esquema en escalera correspondiente a la “Llave –
secuencial-“.
Diseño de Sistemas Lógicos Secuenciales
2/8
3. Programación estructurada sobre Controladores Programables
Formato general
•
•
•
Definir un sector de programa para cada estado.
En cada sector
• Un primer escalón con las condiciones necesarias para entrar al estado.
• Un segundo escalón con las condiciones requeridas para salir del estado. Las
condiciones lógicas son las listadas sobre las líneas de conexión de estados
en el diagrama de estados.
• Un número de escalones entre el segundo y el último escalón donde se
programen las acciones a cumplir de acuerdo con los requerimientos de cada
estado en particular.
• Un último escalón que actúa deshabilitando el estado.
La programación debe asegurar que no se pueda entrar a dos estados a la vez.
Saltar a
FIN DE ZONA
SALIDA LÓGICA
Condiciones necesarias para
entrar al estado
Condiciones requeridas para salir
del estado
Contactos en
serie y paralelo
Programa de acciones a cumplir
de acuerdo con los
requerimientos de cada estado en
Deshabilita el estado
FIN DE ZONA
Diseño de Sistemas Lógicos Secuenciales
3/8
4. Programación estructurada sobre Controladores Programables
Ejemplo 2: Dos bombas.
Descripción: Un tanque de agua tiene tres sensores, para detectar tres diferentes
niveles de agua: Lleno, Bajo y Vacío. Hay dos bombas para llenar el tanque: P1 y P2.
Cuando el control automático es habilitado podría suceder que:
1. Un tanque, inicialmente vacío, requiere que arranquen las dos bombas,
hasta que se llena.
2. Un tanque, inicialmente lleno, o con un nivel de agua entre lleno y bajo,
mantiene las dos bombas apagadas.
3. Una condición inicial abajo del nivel bajo, pero no vacío, arranca una de las
bombas, hasta que el tanque se llena.
Si el tanque se vacía mientras una bomba esta encendida, la otra bomba se arranca y
ambas permanecen encendidas hasta que el tanque se llena.
Las bombas son alternadas en cada ciclo de llenado.
Construimos el diagrama de estado.
Símbolos utilizados en el diagrama de estado
Sensor de Tanque vacío
LSLL
Sensor de Tanque lleno
LSH
Sensor de bajo nivel
LSL
Relé de cambio de bomba RC
Bomba 1
B1
Bomba 2
B2
Nota: Los sensores producen un contacto cerrado cuando el agua los toca.
___
___
LSLL X LSH X RC
2
P1 ⇐ 0
P2 ⇐ 0
___
LSH + LSL X LSH
1
ARRANQUE
___
LSLL
___
LSL X LSH X RC
___
LSH
3
P1 ⇐ 1
P2 ⇐ 1
___
LSLL
5
P1 ⇐ 0
P2 ⇐ 1
RC ⇐ 0
___
LSLL
___
LSLL X LSL
4
P1 ⇐ 1
P2 ⇐ 0
RC ⇐ 1
LSH
Figura 1: Diagrama de estados para el problema de
las dos bombas
Diseño de Sistemas Lógicos Secuenciales
4/8
LSH
5. Programación estructurada sobre Controladores Programables
El método de diagramas de estado solo es aplicable si un solo estado es activado por
vez. Veremos otro método para manejar operaciones en paralelo: Redes de Petri.
Redes de Petri
Las Redes de Petri fueron empleadas inicialmente en programación de
computadoras como un método estructurado de diseñar programas, en los cuales,
procesos en paralelo deben ser efectuados simultaneamente y cada proceso en
paralelo ha de ser completado en orden a continuar sobre la siguiente porción de
programa. Un diagrama Petri es una representación pictórica de un proceso de control
que requiere ramas en paralelo y procesamiento simultaneo.
El muestra los posibles caminos que el proceso puede tomar, las condiciones
Booleanas necesarias para pasar de un estado al otro y donde se requiere
convergencia para continuar.
Un ejemplo de multiples operaciones simultaneas es un proceso de ensamblaje
automatizado que recibe dos plaquetas de circuitos impresos diferentes en las que
deben montarse las partes, soldar y completar procesos varios antes de que ellas
avancen hasta donde deben conectarse con una plaqueta madre. Solo despues que
las tres plaquetas han sido completadas y conectadas pueden avanzar a una nueva
ubicación donde serán testeadas automaticamente.
Una Rede de Petri de este proceso puede ser implementada sobre cualquier
PLC usando un diagrama de estado estructurado para cada estado. Solo el estado
activo, puede comunicarse con el procesador.
Cartas de función secuencial
Un proceso puede ser programado en un PLC de una manera estructurada
usando un diagrama de estado para cada estado y registros para mantener las
condiciones y activar y desactivar estados. Sin embargo si un lenguaje de
programación estructurada no está disponible, esta toma una gran carga de tiempo y
programación.
Hay PLCs que tienen entre sus opciones lenguajes de programación
estructurada que permiten implementar Petri networks. Estas cartas secuenciales o
SFC (Sequential Funcion Charts) están hechas para implementar Petri networks. En
estos no debemos preocuparnos por el control de la programación, dado que está
completamente automatizado por el SFC. El programa genera la estructura necesaria
para inmplementar un diagrama de estado, se debe poner la logica necesaria para
cada estado.
Una ventaja del SFC es que la exploración -el SCAN- resulta mas eficiente. En
lugar de recorrer completamente la lógica del programa de control, en SFC, solo la
lógica para los estados activos es SCANEADA y el resto es pasado por alto.
La figura muestra el diagrama de Petri implementado usando SFC.
Diseño de Sistemas Lógicos Secuenciales
5/8
6. Programación estructurada sobre Controladores Programables
COMENZAR
PB1
UBICAR PCB1
SOBRE LA
MESA
UBICAR PCB2
SOBRE LA
MESA
LS1
MONTAR
PARTES
LS2
LS3
MONTAR
PARTES
M1
MONTAR
CONECTORES
M2
CORTAR Y
SOLDAR
APLICAR
MASCARA DE
SOLDAR
S1
AM1
AJUSTAR
POTES
CORTAR Y
SOLDAR
AP1+ S2+ M3
ENSAMBLAR
PCB 1, 2, 3
AS1
FIN
Figura 10 - Ejemplo Petri Network
Montaje y ensamble de placas impresas
Diseño de Sistemas Lógicos Secuenciales
6/8
UBICAR LA
PLACA MADRE
SOBRE LA MESA
7. Programación estructurada sobre Controladores Programables
INICIO
ERROR
LISTO
INTENTO 2
INTENTO 3
OPERAR
ERROR
ERROR
ERROR
FIN
Ejemplo
Carta de Función Secuencial
para la “llave - Secuencial
Diseño de Sistemas Lógicos Secuenciales
7/8
8. Programación estructurada sobre Controladores Programables
Resumen
Hay muchas ventajas en realizar programas de control estructurados por lo que esta
justificado el tiempo que toma estudiar alguna de sus técnicas. Las dos ventajas obias
son dividir un control complejo en unidades manejables, mas pequeñas y realizar un
control mas facil de mantener. Otra ventaja es que nos obliga a documentar que es lo
que ha sido hecho tal que otros lo puedan comprender. El método de prueba y error
nos permite hacer el trabajo, pero a menudo resulta laborioso, antieconómico y sin
documentación, tal que una próxima persona deberá repatir el proceso consumiendo
nuevamente el mismo tiempo.
Ejercicios:
1. Hacer un diagrama de estado para el siguiente problema de control: Un operador
de una máquina requiere, por seguridad, mantener ambas manos lejos de la
máquina mientras ella trabaja. Para asegurar esto dos pulsadores deben se
actuados simultaneamente para operarla, a la ves que estarán suificientementa
apartados para que esto no pueda ser hecho con una sola mano. Luego de pulsar
ambas botoneras, la maquina interrumpirá el funcionamiento y no operará hasta
que ambos botones sean liberados y pulsados simultaneamente otra vez.
2. Para los problemas ejemplo y el ejercicio anterior, realizar: los diagramas de
estado y los programas estructurados correspondientes, para un determinado PLC.
Implementarlo y simular su comportamiento.
3. Enumerar ventajas y desventajas de utilizar diagramas de estado para el diseño de
un sistemas de control y de la programación estructurada?.
4. Cuales son las características de un PLC que hacen posible implementar el control
a partir de diagramas de estado?.
5. Como se podrían utilizar los diagramas de estado para diseñar un control con reles
electromecánicos en lugar de un PLC?.
Diseño de Sistemas Lógicos Secuenciales
8/8