0% encontró este documento útil (0 votos)
214 vistas19 páginas

Guía de Máquinas de Estados en CODESYS

Este documento describe tres problemas de automatización resueltos mediante máquinas de estados implementadas en CODESYS. El primero automatiza un reactor químico, el segundo controla la entrada de una nave, y el tercero gestiona el cambio de agujas para un túnel ferroviario. En cada caso se diseña la máquina de estados y se programa en CODESYS usando bloques de programa o lenguaje estructurado.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
214 vistas19 páginas

Guía de Máquinas de Estados en CODESYS

Este documento describe tres problemas de automatización resueltos mediante máquinas de estados implementadas en CODESYS. El primero automatiza un reactor químico, el segundo controla la entrada de una nave, y el tercero gestiona el cambio de agujas para un túnel ferroviario. En cada caso se diseña la máquina de estados y se programa en CODESYS usando bloques de programa o lenguaje estructurado.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

IMPLEMENTACIÓN DE MAQUINAS DE ESTADOS EN CODESYS

Diego Fernando Herrera Rodriguez – 20202583009


Universidad Distrital Francisco José de caldas, Facultad Tecnológica

Ingeniería en control y automatización – Automática III

Resumen: Se proporciona una guía de la cual se desarrollan los puntos 1, 2 y 3, realizando un diseño mediante maquinas de estados e implementando
estos en la plataforma de programación de PLCs CODESYS, haciendo uso para el punto 1 lenguaje de programación en bloques, y los puntos 2 y 3
lenguaje estructurado.
1. Problema 1:
Se quiere automatizar el reactor químico de la figura. Además de las válvulas, el sistema lleva un pulsador de arranque y otro de parada, y una
lámpara para indicar funcionando. Su funcionamiento es el siguiente:

• Al pulsar el botón de arranque, se introduce reactivo alcalino hasta alcanzar el nivel H2. A partir de aquí, se vierte reactivo ácido hasta alcanzar
el nivel H3. Mientras se introducen los componentes de la mezcla, la válvula de escape permanece abierta. A continuación, se cierra esta válvula
y comienza el proceso de calentamiento de la mezcla hasta que el sensor de temperatura marca el máximo. Mientras se calienta se agita la
mezcla en una sola dirección. Una vez alcanzada la máxima temperatura, se interrumpe el calentamiento y se abre la válvula de escape y la de
salida normal. Cuando el nivel en el tanque baja hasta H1, se cierra la válvula de salida, y se inicia un nuevo ciclo. En
todo momento la lámpara de funcionando permanece encendida. Si al pulsar el botón de arranque, el nivel de la mezcla supera H1, primero se
vacía el depósito a través de la válvula de salida defectuosa, hasta dejarlo en el nivel H1.
• Si se pulsa el botón de parada, el reactor sigue los pasos del proceso como si fuera normal hasta finalizar la etapa de vaciado. En vez de iniciar
un nuevo ciclo va a situación de parado.
• Si en algún momento se activa el sensor de máxima presión, se abre la válvula de escape, se vacía el depósito a través de la salida defectuosa y
se va a la situación de parado.
Solución:

In DENOT Out DENOT


Start START V ácido VALC
H1 SH1 V alcalino VACI
H2 SH2 V escape VESC
H3 SH3 Vs Defectuosa VSN
SM Temp SMT Vs Normal VSD
SM Press SMP Agitador MIX
Resistencia RES
Lampara LMP

VALC = 1 RES = 1
OFF START = 1 SH2 = 1 SH3 = 1
VESC = 1 VACI = 1 VESC = 0
LMP = 0 MIX= 1
LMP = 1

SMT = 1

RES = 0
SH1 = 0
VESC = 1
MIX = 0
VSN = 1
En la implementación del código en CODESYS se declaran las siguientes variables y se generan los siguientes bloques:
Además, se realiza la siguiente interfaz con el fin de visualizar el funcionamiento de la máquina de estados implementada:
2. Problema 2:
La empresa ControlPLC ha recibido el encargo de automatizar la entrada de una nave de seguridad. Esta entrada, que es única, tiene dos
puertas: Puerta1 y Puerta2, con una cámara intermedia. La Puerta1 permite el acceso desde la calle a la cámara intermedia; y la puerta 2
permite el acceso desde la cámara intermedia al interior de la nave. Cada puerta está dotada de 2 sensores para indicar si está subida o bajada
(Subida1, Bajada1, Subida2, Bajada2) y de un motor que puede subir o bajar la puerta (M1S, M1B, M2S, M2B). Además, cada puerta tiene
asociado un sensor de posición (SensorP1, SensorP2) que se activa cuando un coche o camión está cruzando la puerta. Junto a la entrada hay
situado un lector de tarjetas. Este lector tiene dos salidas (TC y TI): una genera un 1 lógico durante 5 segundos cuando la tarjeta es correcta
(TC) y la otra genera un 1 lógico cuando la salida es incorrecta (TI), también durante 5 segundos. La secuencia de funcionamiento de la
entrada es la siguiente:

• El conductor del coche llega a la entrada, introduce su tarjeta en el lector de tarjetas y la retira. Independientemente de si la tarjeta es
correcta o incorrecta, comienza a abrirse la puerta 1.
• Una vez que el vehículo ha cruzado la puerta 1 (está en la cámara intermedia), comienza a bajar dicha puerta.
• Si la tarjeta es incorrecta, una vez bajada la puerta1, suena la alarma (ALARMA): los cacos están en la trampa. Para desactivar la alarma
y abrir las puertas hay que introducir una tarjeta correcta en el lector de tarjetas. Si nuevamente se vuelve a introducir la tarjeta correcta se
bajan las puertas.
• Si la tarjeta es correcta, comienza a abrirse la puerta 2. Cuando cruza el vehículo esta puerta, se cierra.
• Si el vehículo tarda más de 20 segundos en atravesar alguna de las puertas, también suena la alarma. Para desactivarla se procede de
igual forma que en el caso de tarjeta incorrecta: se introduce la tarjeta correcta para desactivar la alarma y abrir las puertas, y una segunda
introducción de la tarjeta correcta baja las puertas.
• Cuando se inicializa el sistema se cierran las puertas si no estaban cerradas.
Solución:

In denot Out denot


Subida 1 S1 M1S M1S
Bajada1 B1 M1B M1B
Subida 2 S2 M2S M2S
Bajada2 B2 M2B M2B
Sensor P1 SP1 TC TC
Sensor P2 SP2 TI TI

AL=1

TIME S1 = 1 B1 = 1
START TR = 1 B1 = 1 M1S=1 M1S=0 SP1 = 1 M1B=1 M1B=0
5S

M2S=1

TIME
AL=1 S2 = 1
> 20S

M2B=0 B1= 1 M2B=1 SP2= 1 M2S=0


En la implementación del código en CODESYS se declaran las siguientes variables y se generan las siguientes líneas de código:
3. Problema 3:
La empresa ControlPLC ha ampliado su negocio al mundo ferroviario. Ha recibido un pedido para automatizar un cambio de agujas para un
túnel. Si los trenes son demasiado altos se desvían por una vía auxiliar AUX sin túnel, en vez de utilizar la principal PRIN (con túnel).
Datos de la instalación:

• Posición 20 km. A 20 km. de la boca del túnel se han situado dos sensores de posición: el primero, STREN20, se activa en el momento que
inicia el paso un tren y permanece activo mientras el tren está pasando; el segundo, SAEXCE se activa si mientras está pasando el tren se
detecta exceso de altura. Permanece activo mientras dura el exceso de altura. En esta posición hay además un semáforo, SEMA20.
• Posición 10 km. A 10 km. de la boca del túnel está colocado el sensor de posición
STREN10 que se activa mientras un tren cruza esa posición. También hay colocado otro
semáforo SEMA10.
• Posición cambio de agujas. A 5 km. de la boca del túnel está situado el cambio de agujas. Mediante dos señales MAUX y MPRIN se
controla el motor que realiza el cambio de agujas. Activando MAUX se cambia a la vía auxiliar y activando MPRIN, a la vía principal.
Hay dos finales de carrera, uno en cada vía, SFAUX y SFPRIN para indicar si uno de los cambios se ha realizado.
• Posición 1 km. A 1 km. del cambio de agujas, tanto en la vía principal como en la auxiliar se han colocado dos sensores de posición SPRIN
y SAUX. Mientras un tren cruza una de esas posiciones, se activa el sensor correspondiente. El sistema tiene dos modos de funcionamiento:
manual y automático. Mediante dos pulsadores, MANUAL y AUTOMATICO se selecciona uno de los modos. El modo MANUAL funciona
de la siguiente manera:
• El cambio de agujas se debe corresponder con la vía auxiliar. Si al seleccionar MANUAL no es así, se hace el cambio de agujas
correspondiente, si se puede.
• Si el cambio de agujas es correcto, los dos semáforos permanecen abiertos.
• Cuando arranca el sistema, el modo por defecto es el MANUAL. En el modo AUTOMATICO funciona de la siguiente manera:
• El cambio de agujas se debe corresponder con la vía principal. Si al pulsar AUTOMATICO no es así, se hace el cambio de agujas
correspondiente, si se puede.
• Si al pasar un tren por la posición 20 km. se detecta que es alto, se cierra el semáforo de la posición 10 km. y se inicia el cambio a vía
auxiliar. Una vez que el cambio ha sido realizado, se abre el semáforo de la posición 10 km. Cuando el tren rebasa la posición 1 km. en la vía
auxiliar, se vuelve a hacer el cambio a la vía principal. Si el tren detectado en la posición 20 km. es normal circulará por la vía principal sin
parar siempre que el cambio de agujas sea correcto.
• Siempre que un tren es detectado en la posición 20 km., se cierra el semáforo de la posición 20 km. y no se abre hasta que el tren no haya
sobrepasado la posición 1 km. en la vía principal o en la auxiliar. En cualquier caso, mientras se realiza el cambio de agujas los semáforos de
20 km. y 10 km. están cerrados. Si durante el modo AUTOMATICO se selecciona el modo MANUAL, o viceversa, habrá que esperar a que
la vía quede despejada para hacer el cambio de agujas si es necesario e ir al modo seleccionado.
• Si en cualquiera de los casos se detecta que un tren se salta alguno de los dos semáforos, se activa la señal de ALARMA y se activa la señal
de radio-control FRENAR para que frene de forma automática el tren. En cualquiera de los casos el tren necesita 1 km. para poder frenar. El
sistema salta a modo MANUAL, los semáforos permanecen cerrados, y se selecciona la vía auxiliar. La alarma y la señal de FRENAR se
desactivan cada vez que se pulsa MANUAL. Los semáforos permanecen cerrados mientras no salga el tren por la vía auxiliar.
• Si pasado 10 minutos desde que el tren fue detectado en la posición 20 km., todavía no ha cruzado ni SAUX ni SPRIN, el sistema de control
activa la señal de tren PARADO. Ésta permanece activa hasta que no cruce. El control salta a modo MANUAL si ya no lo estaba,
permaneciendo los semáforos cerrados y sin realizar ningún cambio de aguja.
Solución:

In DENOT Out DENOT


STREN20 ST20 SEMA20 S20
SAEXCE SEX SEMA10 S10
STREN10 ST10 MAUX MA
SFAUX SFA MPRIN MP
SFPRIN SFP
SAUX SA
SPRIN SP
MANUAL MAN
AUTOMATICO AUT
TREN EXCESO TCE
TREN SIN EXC TSE

LMAN S10=1
SFP = 1 MA=1 SFA = 1
=1
S20=1
START

MAN
S10=1
LAUT= SFA = 1 SFP = 1 ST20 = 1 SFP = 1 S20=0 SA= 1
MP=1 MP=0 S20=1
1 MP=1

SEX= 1

S10=0

MA=1

SFA= 1

MA=1 S10=1
SA= 1
MP=1
En la implementación del código en CODESYS se declaran las siguientes variables y se generan las siguientes líneas de código:
4. Análisis y resultados:

Según los desarrollado inicialmente en la materia se pueden establecer varios puntos importantes, ya que cada lenguaje de programación tienen
formas medianamente similares de implementar las máquinas de estado finitas cómo son los bloques SR (Set Reset) en lenguaje FDB en
representación de cada estado del diseño o mediante el uso de un Case e IFs anidados en lenguaje ST que representan cada estado y/o las
decisiones que representan en el recorrido del proceso, además de Fors, whiles u otras estructuras cíclicas. Así mismo se puede observar que cada
problema de los postulados puede ser solucionados mediante máquinas de estados finitas, pues estos ejercicios cuentan con partes síncronas y
combinacionales que nos dan ciertos casos especiales en el problema que nos sugieren parámetros diferentes aparte de la estructura
combinacional en la implementación en el código en CODESYS.
La forma de implementación es muy sencilla ya que cada estado depende de una entrada y así mismo este tiene un valor de salida que conformará
un esquema completo de los estados y variables que hacen parte del sistema, es conveniente usarlas ya que estas son intuitivas y fáciles de
entender, además tienen una ventaja bastante grande y es que abstraen convenientemente detalles secundarios que no son necesarios para el
análisis del sistema a un alto nivel y se centran en aspectos claves del mismo además aportan un componente visual que facilita el análisis y
diseño del sistema. Estas maquinas de estado no solo se pueden ver desde una perspectiva estrictamente informática ya que son universalmente
aplicables sin embargo en programación minimiza grandemente la tendencia a escribir código innecesario y confuso y puede ayudar a reducir la
cantidad de variable globales necesarias, aumentando al mismo tiempo la confiabilidad del sistema.

5. conclusiones:

• Se puede evidenciar que las maquinas de estado son una herramienta útil para diseñar secuencias en procesos ya que se sigue una lógica en su
diseño que hace fácil la solución de un problema y su posterior implementación en plataformas de programación.

• Los lenguajes que pueden ser utilizados para desarrollar un programa dependerán de la aplicación que tengan estos, ya que por ejemplo para
grandes flujos de información suele ser utilizado el FBD o Diagrama de Bloques Funcionales.

• El diseño mediante máquinas de estado optimiza el código de manera que el número de variables será el necesario y los casos de cada uno de
los estados no tendrán excesos de código.
Ejercicios máquinas de estados realizados en clase
Diego Fernando Herrera Rodriguez - 20202583009
Universidad Distrital Francisco José de Caldas – Facultad tecnológica
Ingeniería en control y automatización – Automática III
1. Alarma

RST=1 LUZ=0
LUZ=1
SRN=0 SRN=0

RST=1 RST=1

LUZ=1 TIM=10s
PUE=1 SRN=1
IP SRN=0

LUZ=1
SRN=0

Para la solución se implementa la máquina de estados en lenguaje Ladder:


2. Lavadora

STRT=1 AG=1 HLV=1 AG=0 TIM=10 AG=1 TIM=15 AG=1


IP JB=1 JB=0 s ENJ=1 s CFG=1
MT=1 MT=0

LLV=1

END=1
FP

Para la solución se implementa la máquina de estados en lenguaje Ladder:

También podría gustarte