Sunteți pe pagina 1din 302

UNIVERSIDAD DE OVIEDO

D.I.E.E.C.S
rea de Ingeniera de Sistemas y Automtica

El Autmata Programable M340

Problemas

Gijn, Agosto de 2016

Jorge Alonso Gonzlez


Ivn Machn Gonzlez
Universidad de Oviedo
2 - Problemas M340 ISA
Universidad de Oviedo Problemas M340 - 3
ISA

SUMARIO
Funcines lgicas: AND y OR
Sistemas combinacionales. Concepto de estado de seal. Control por nivel.
Pr-0101 Luz de Museo mediante interruptores
Recomendaciones importantes a tener en cuenta a la hora de programar
Introduccin del programa
Creacin de la pantalla de operador
Simulacin del programa

Sistemas secuenciales. Control por flanco. Funciones de memoria.


Variables de tipo ebool
Pr-0102 Conmutacin de una luz mediante un pulsador
Otra forma de introducir las variables
Funcines lgicas de memoria biestable SR y RS
Funcin XOR
Interfaces de Entrada y Salida
Pr-0103 Luz de Museo mediante pulsadores

Funciones de temporizacin
Funcines de temporizacin: TON, TOF y TP
Pr-0201 Luz de museo con temporizacin.
Como introducir un Bloque de Funcin en el lenguaje ST
Exportar e importar pantallas de operador
Seleccin del valor tiempo actual de un temporizador como variable de control
Pr-0202 Semforo simple
Cmo insertar una imagen en la pantalla de operador
Pr-0203 Semforo coche-peatn con intermitencia
Pr-0204 Arranque estrella-tringulo (Ejercicio para resolver)
Pr-0205 Puerta autmatica (Ejercicio para resolver)
Pr-0206 Motor CC

Funciones de comparacin
Funciones de comparacin EQ, NE, LE, LT, GE, GT
Construccin de un oscilador con comparadores
Pr-0301 Semforo coche-peatn con intermitencia
Crear y direccionar varias pantallas de operador
Pr-0302 Semforo completo con peticin de paso

Funciones de contador
Pr-0401 Acceso sala comercial fotoclulas
Cmo cambiar el valor actual de un contador
Pr-0402 Control de un contador

GRAFCET
Pr-0501 Portn.
Mtodo para insertar un objeto de la librera de pantalla de operador
Universidad de Oviedo
4 - Problemas M340 ISA

Pr-0502 Garaje 2 plantas (marca suelo, semforo)


Pr-0503 Garaje 2 plantas (barreras, lazos sensores, semforo)
Pr-0504 Limpiaparabrisas de coche
Pr-0505 Control de la mezcla de dos lquidos
Pr-0506 Ejemplo de control de un GRAFCET.

Funciones fundamentales para controlar los SFC


INITCHART, CLEARCHART, FREEZCHART, SETSTEP, RESETSTEP

Subrutinas y puesta en condiciones iniciales


Pr-0600 Portn con puesta en CI
Pr-0601 Control de 2 cilindros (1 CSE y 1 CDE)
Como mostrar un texto en la pantalla de operador en funcin de una variable
Pr-0602 Garaje 2 plantas (barreras, lazos sensores)
Pr-0603 Garaje (S. Coches, s. Peatones)
Pr-0604 Clasificador de piezas
Pr-0605 Control de silo y vagn

Automatizacin de cintas
GRAFCETs coordinados
Pr-0701 Cinta alimentadora a cinta de salida
Como forzar el valor de una entrada o salida. Cmo modificar el valor de una variable
Pr-0702 Tolva a cinta alimentadora giratoria y 3 cintas de salida
Pr-0703 2 Cintas alimentadoras a tolva y cinta de salida (Ejercicio para resolver)

Interrupciones
Pr-0801 Regulacin de coches en la calle
Simulacin de los eventos
Funcines de desplazamiento y rotacin: SHL, SHR, ROR y ROL
Pr-0802 Desplazamientos de bits e interrupciones (Ejercicio para resolver)
Pr-0803 Garaje (S. Coches, portn con pulsador) (Ejercicio para resolver)

Creacin de un Bloque de Funcin de Usuario (DFB)


Ejemplo Arranque y paro de un motor

Problemas de automatizacin variados


Pr-0901 Arranque tres lmparas
Pr-0902 Depsito mezclador
Pr-0903 Control de 2 bombas y su desgaste
Pr-0904 Proceso electrolisis
Pr-0905 Control de un tnel de lavado de coches
Pr-0906 Control de un molino
Pr-0907 Paso a nivel
Pr-0908 Control de una compuerta
Pr-0909 Control de un garaje con luz
Pr-0910 Control de un ascensor de 4 plantas (Ejercicio para resolver)
Pr-0911 Manipulador de cubos con cara metlica (Ejercicio para resolver en el laboratorio)
Pr-0912 Manipulador de fichas opacas o transparentes (Ejercicio para resolver en el laboratorio)
Pr-0913 Pesado preciso de sustancias
Universidad de Oviedo Problemas M340 - 5
ISA

GEMMA

Escalado de una seal analgica de entrada


Ejemplo Escalado y tratamiento de una seal analgica de temperatura
Como introducir un valor analgico mediante un indicador de escala
Como introducir un grfico de tendencias

Descripcin general de la planta piloto educacional "Depsitos"


Enunciado

Anexos
Anexo A Desactivacin de Aero en W7
Anexo B Error de token
Anexo C Conexin del PC con el PLC via ethernet
Anexo E Como generar la documentacin del proyecto
Anexo F Tipos de Bloques

Bibliografa
Universidad de Oviedo
6 - Problemas M340 ISA

Notaciones
En todos los problemas expuestos se seguirn las siguientes notaciones

Ix_Nombre Entrada booleana del bornero del PLC [Ix_Pulsador]


Iw_Nombre Entrada anlogica del bornero del PLC [Iw_Temperatura]
Qx_Nombre Salida booleana fsica del bornero del PLC [Qx_MotTolva]
Qw_Nombre Salida anlogica del bornero del PLC [Qw_ValvulaA]
Mx_Nombre Memoria booleana utilizada en el programa [Mx_Flanco]
MxP_Nombre Memoria booleana del panel de operador [MxP_FCS]
Mi_Nombre Nombre de una variable de tipo entero [Mi_Contador]
Mdi_Nombre Nombre de una variable de tipo doble entero [Mdi_NumObjetos]
Mw_Nombre Nombre de una variable de tipo word [Mw_Potenciometro]
Mdw_Nombre Nombre de una variable de tipo dobleword [Mdw_Valor]
Mr_Nombre Nombre de una variable de tipo real [Mr_Precio]
Mt_Nombre Nombre de una variable tipo time [Mt_TiempoRojo]
T_Nombre Nombre de un temporizador [T_Verde]
S_Nombre Nombre de una etapa en un GRAFCET [S_Abrir]
EtapaNmero " " [Etapa0]
Tran_EtapaIni_EtapaFinal Nombre de una transicin en un GRAFCET [Tran_3_6]
Tran_N " " [Tran_4]
Universidad de Oviedo Problemas M340 - 7
ISA

Funciones lgicas AND y OR


Funcin AND
La funcin AND realiza la combinacin lgica de las entradas y hace la funcin AND asignando el resultado a
la salida. Los tipos de datos para todos los valores de entrada y de salida deben ser idnticos.
El nmero de entradas puede aumentarse hasta un mximo de 32.
EN y ENO pueden configurarse como parmetros adicionales.

Representacin en FBD
IN1 IN2 AND
0 0 0
0 1 0
1 0 0
1 1 1

Representacin en ST
Resultado := AND (Valor_1, Valor_2) ;

Funcin OR
"La funcin OR realiza la combinacin lgica de las entradas y hace la funcin OR asignando el resultado a
la salida. Los tipos de datos de todos los valores de entrada y el del valor de salida deben ser iguales.
Se puede aumentar el nmero de entradas como mximo a 32.
Como parmetros adicionales se pueden configurar EN y ENO.

Representacin en FBD
IN1 IN2 AND
0 0 0
0 1 1
1 0 1
1 1 1
Representacin en ST
Resultado := OR (Valor_1, Valor_2) ;
Universidad de Oviedo
8 - Problemas M340 ISA

Sistemas combinacionales. Concepto de estado de seal.


Control por nivel
Un sistema combinacional es aquel que las salidas dependen exclusivamente de una funcin determinada
de las entradas en un momento dado.

Problema 1.1 Luz de museo con interruptores


Activacin y desactivacin de la iluminacin de un local, mediante el accionamiento de tres interruptores
de configuracin normalmente abiertos.
Como aplicacin del enunciado, se puede suponer una sala de un museo, en la cual, se quiere que la
iluminacin no est activada cuando la sala se encuentre vaca. Para ello en las tres puertas de acceso que
tiene la sala figura el siguiente letrero:

Cuando acceda a la sala y sta se encuentre vaca accione el interruptor,


que tiene en la puerta por la que entra, para encender la iluminacin.

Cuando abandone la sala y no quede persona alguna en el interior,


accione el interruptor que tiene la puerta por la que sale.

PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto BMX DDM3202K de 16 entradas PNP y de 16 salidas PNP.

S2

Los interruptores S1, S2 y S3 se consideran NA.


LUZ

S1 S3
Universidad de Oviedo Problemas M340 - 9
ISA

Esquema de mando

Esquema de fuerza
Universidad de Oviedo
10 - Problemas M340 ISA

Tabla de variables

Smbolo en Direccin
Etiqueta Tipo Comentarios
los planos en PLC
Ix_Sensor0 S0 %I0.1.0 EBOOL Interruptor 0

Ix_Sensor1 S1 %I0.1.1 EBOOL Interruptor 1

Ix_Sensor2 S2 %I0.1.2 EBOOL Interruptor 2

Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0

Qx_Luz H1 %Q0.1.16 EBOOL Luz

MxP_Sensor0 BOOL Marca del interruptor 0 en la pantalla

MxP_Sensor1 BOOL Marca del interruptor 1 en la pantalla

MxP_Sensor2 BOOL Marca del interruptor 2 en la pantalla

Mx_Sensor0 BOOL Marca del interruptor 0 en el programa

Mx_Sensor1 BOOL Marca del interruptor 1 en el programa

Mx_Sensor2 BOOL Marca del interruptor 2 en el programa

Este es un problema eminentemente combinacional. La salida depende exclusivamente del estado que
presenten en ese instante las entradas.

Del enunciado del problema, deducimos la siguiente tabla de activaciones. En ella indicamos como debe de
estar la salida cuando se accionen los interruptores de entrada.
De las 8 combinaciones posibles, slo 4 activan la salida

Tabla de activaciones

ENTRADAS SALIDAS

S1 S2 S3 LUZ
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1

Y por tanto, teniendo en cuenta que un interruptor NA, cuando est activo su estado de seal es 1 -le llega
Universidad de Oviedo Problemas M340 - 11
ISA

tensin a la borna del autmata-, y cuando no est activo su estado de seal es 0. Tenemos que la tabla de
estado de la seal que necesitamos para el programa de mando es la siguiente:

Tabla de estados

ENTRADAS SALIDAS

S1 S2 S3 LUZ

0 0 1 1
0 1 0 1

1 0 0 1

1 1 1 1

Si el interruptor S3 fuese NC la tabla de estados cambiara -el NC es dual del NA- y sera la siguiente:

Tabla de estados

ENTRADAS SALIDAS

S1 S2 S3 LUZ

0 0 0 1
0 1 1 1

1 0 1 1

1 1 0 1

Recomendaciones importantes a tener en cuenta a la hora de


programar
Vamos a programar siempre de la misma forma. Suponemos que temos un conmutador en el armario o
bastidor de mando (Ix_LocDis), con el que indicamos si queremos un control local, a travs de los
elementos de campo conectados a las bornas del Autmata Programable (en el futuro AP) o un control a
distancia, a travs de los distintos elementos que programemos en las pantallas de operador.
De forma tal, que si no trabajamos con el AP, podremos simular el programa de control en nuestro
computador ya que la variable Ix_LocDis valdr 0 y por tanto sern operativas todas las rdenes que demos
desde la pantalla de operador. Estas variables empezarn por MtipoP_Nombre, la P, indica que es una
variable suministrada desde la pantalla de Operador.
Las variables que utilizaremos en el programa de control sern por tanto Mtipo_Nombre. Donde tipo viene
definido por las notaciones establecidas en la pgina 7. Por tanto, en el programa de control nunca
utilizaremos variables Ix_Nombre.
Nota:
Cuando hagamos un programa para un control de verdad, habr variables que no se debern programar de
Universidad de Oviedo
12 - Problemas M340 ISA

esta forma, pues quien manda la informacin exclusivamente sern los elementos de campo y no la
pantalla de operador.

Introduccin del programa


Se selecciona la opcin Fichero / Nuevo. En la ventana que aparece se selecciona el modelo de AP y su tipo
de CPU. En nuestro caso, seleccionamos un Autmata de la gama Modicon M340 y CPU BMX P34 2020.

Despus hacemos un doble clic en la opcin Bus PLC de la carpeta Configuracin.

En la ventana que aparece, se puede observar el bastidor, la fuente de alimentacin FA (CPS2000) y la CPU
(P34 2020) del Automata escogido. Hay que tener cuidado y elegir correctamente la versin del firmware,
asegurarse que sea la que soporta nuestro AP -en nuestro caso 02.50.
Se hace un doble clic en el mdulo 1 y luego en el 2 para indicar que Interface de entrada/salida
deseamos. Si quisiramos cambiar el tipo de bastidor haramos clic sobre el nmero cero del Rack o en el
mismo Rack en gris situado a la izquierda de la FA.
Universidad de Oviedo Problemas M340 - 13
ISA

Para el primer problema elegiremos, por ejemplo, un mdulo de Entradas/Salidas binarias y tipo BMX
DDM 3202K. De esta forma queda configurado el hardware del AP.

Luego introduciremos los nombres de las variables de nuestro programa haciendo clic en la opcin
"Variables elementales" de la carpeta "Variables e instancias FB". Procederemos a configurarlas todas
especificndo el tipo de datos asociado.

La seccin de programa la introduciremos clicando el botn derecho encima de la palabra Seccines de la


subcarpeta de tareas MAST de la carpeta Programa. En la ventana que surge indicaremos el Nombre que
daremos a nuestra seccin de cdigo y el Lenguaje que emplearemos.
Universidad de Oviedo
14 - Problemas M340 ISA

Mediante el uso de los iconos de la barra de herramientas nueva que aparece, iremos introduciendo las
instrucciones del programa.

Programa en LD - (pr0101b)
Este programa lo hemos estructurado en dos secciones:
IniciaVariables, escrito en lenguaje LD
ControlLuz, escrito en lenguaje LD

Seccin "IniciaVariables" en LD

Seccin "ControlLuz" en LD
Universidad de Oviedo Problemas M340 - 15
ISA

Creacin de la Pantalla de Operador


Se crea con la opcin Pantalla de operador, botn derecho del ratn, Nueva pantalla teclear p.e.
Pantalla0. Se procede a disearla aadindole todo lo que necesitemos representar.

La opcin de introducir un interruptor o un pulsador, se hace mediante la 11 opcin de la barra IOSEditor.

En la lista desplegable Variable dentro de la pestaa Control se escribe o se elige la variable que queremos
poner en "1" o en "0" cuando pulsamos con el ratn en el icono de la pantalla.

Marcando o no la casilla "Con rentencin" obtenemos la posibilidad de que el botn de comando se


comporte como un interruptor o como un pulsador.
Universidad de Oviedo
16 - Problemas M340 ISA

El texto indicativo de que interruptor se trata, lo obtenemos con la opcin 7 de la barra IOSEditor.

Se puede poner el texto en negrita, cursiva, subrayado, maysculas. Elegir la alineacin, el color, tamao,
tipo de fuente, color de lnea, relleno, etc, etc.

Para mostrar la luz, hacemos un crculo con la herramienta de dibujo. Lo rellenamos de verde y le ponemos
un aspa cruzada. Seleccionamos todo el dibujo y copiamos y pegamos cambiando el relleno de este ltimo
por otro color para indicar que la luz est apagada.

Luego agrupamos cada una de las luces abarcndolas con una caja de seleccin y con el botn derecho
indicamos agrupar.

Posteriormente indicaremos que es un objeto animado y especificamos que la luz verde se muestre cuando
la variable Qx_Luz vale 1.
Universidad de Oviedo Problemas M340 - 17
ISA

Por ltimo, situamos la luz verde clara delante de la oscura haciendo uso del icono primer plano

Configuracin de la Pantalla de Operador


Es conveniente que cuando trabajemos en una pantalla no salgan las barras de desplazamiento lateral ni
vertical. La pantalla de operador debe de estar diseada para que se adapte a la resolucin de nuestro
monitor. Para ello, configuraremos la resolucin con la que trabajamos en el men Herramientas |
Opciones. Elegiremos el valor deseado con las flechas que aparecen al lado del valor de Ancho y Alto.
Las resoluciones ms tpicas de los monitores Ancho x Alto que utilizamos son

1024 x 768 | 1366 x 728 | 1920 x 1080

Para trabajar en pantalla completa, elegiremos Ver | Pantalla completa, que equivale a pulsar las teclas
Ctrl + F8
Universidad de Oviedo
18 - Problemas M340 ISA

Simulacin del programa


Para simular el programa lo primero que deberemos hacer es ir al men Generar y clicar la opcin
Regenerar todo el proyecto.Luego, iremos al men PLC y estableceremos la Modalidad de simulacin.

Posteriormente indicaremos que que queremos Conectar con el PLC, en nuestro caso con el simulador.

A continuacin clicaremos Transferir proyecto a PLC, en nuestro caso al simulador.

Cuando finalice ejecutaremos el programa con el comando Ejecutar (poner en RUN) del men PLC.
Universidad de Oviedo Problemas M340 - 19
ISA

Por ltimo, seleccionaremos Habilitar modificacin de variables, en el men Servicios para habilitar la
posibilidad de introducir y modificar valores de la pantalla de Operador.

Programa mixto (ST y LD) - (pr0101c)


Este programa lo hemos estructurado en dos secciones:
IniciaVariables, escrito en lenguaje ST
ControlLuz, escrito en lenguaje LD

Seccin "IniciaVariables" en ST
Mx_Sensor0 := (Ix_Sensor0 and Ix_LocDis) or (MxP_Sensor0 and not Ix_LocDis);
Mx_Sensor1 := (Ix_Sensor1 and Ix_LocDis) or (MxP_Sensor1 and not Ix_LocDis);
Mx_Sensor2 := (Ix_Sensor2 and Ix_LocDis) or (MxP_Sensor2 and not Ix_LocDis);

Seccin "ControlLuz" en LD
Universidad de Oviedo
20 - Problemas M340 ISA

Programa mixto (ST y FBD) - (pr0101d)


Este programa lo hemos estructurado en dos secciones:
IniciaVariables, escrito en lenguaje ST
ControlLuz, escrito en lenguaje FBD

Seccin "IniciaVariables" en ST
Mx_Sensor0 := (Ix_Sensor0 and Ix_LocDis) or (MxP_Sensor0 and not Ix_LocDis);
Mx_Sensor1 := (Ix_Sensor1 and Ix_LocDis) or (MxP_Sensor1 and not Ix_LocDis);
Mx_Sensor2 := (Ix_Sensor2 and Ix_LocDis) or (MxP_Sensor2 and not Ix_LocDis);

Seccin "ControlLuz" en FBD


Universidad de Oviedo Problemas M340 - 21
ISA

Sistemas secuenciales. Control por flanco. Funciones de


memoria.
Un sistema secuencial es aquel cuya salida no depende solamente de las variables de excitacin externas o
entradas, sino tambin del estado anterior o estado interno.

Funcin Set
La funcin SET realiza la puesta a 1 de forma memorizada del bit asociado.

Representacin en ST SET Salida


0 No cambia
Set (Qx_Luz) ; 1 1

Representacin en FBD
El bloque de funcin SET, lo obtenemos pulsando sobre Asistente de entrada FFB, de la barra de iconos
FBD-Editor.

Del conjunto de Librerias/Familias, desplegaremos <Conjunto de librerias V6.0> y dentro de sta, la


carpeta Base Lib, a continuacin buscaremos nuestra opcin en la subcarpeta Logic.
Universidad de Oviedo
22 - Problemas M340 ISA

(*Si queremos que nos salga la patilla de conexin EN -enable- en los bloques de programa SET y RESET,
deberemos habilitar la casilla correspondiente Mostrar EN/ENO *)

Funcin Reset
La funcin RESET realiza la puesta a 0 del bit asociado.

Representacin en ST

Reset (Qx_Luz) ;
RESET Salida
0 No cambia
1 0

Funcines lgicas de memoria biestable SR y RS

Bloque de funcin de memoria biestable SR con SET prioritario.


Se evalan las combinaciones lgicas que hubiese en las entradas S1 y R y luego se procesa la funcin.
La salida Q1 ser "1" cuando la entrada S1 sea "1". Permanece en este estado de forma
memorizada incluso si la entrada S1 pasa a valer "0".
La salida Q1 no pasar a "0" hasta que la entrada R sea "1".
Si las entradas S1 y R son "1" a la vez, la entrada dominante S1 har que la salida Q1 sea "1".
El estado inicial de Q1 durante la primera llamada del bloque de funcin es "0".
Como parmetros adicionales se pueden configurar EN y ENO.

SET RESET Salida


0 0 No cambia
0 1 0
1 0 1
1 1 1
Universidad de Oviedo Problemas M340 - 23
ISA

Bloque de funcin de memoria biestable RS con RESET prioritario.


Se evalan las combinaciones lgicas que hubiese en las entradas S y R1 y luego se procesa la funcin.
La salida Q1 ser "1" cuando la entrada S sea "1". Permanece en este estado de forma memorizada
incluso si la entrada S pasa a valer "0".
La salida Q1 no pasar a "0" hasta que la entrada R1 sea "1".
Si las entradas S y R1 son "1" a la vez, la entrada dominante R1 har que la salida Q1 sea "0".
El estado inicial de Q1 durante la primera llamada del bloque de funcin es "0".
Como parmetros adicionales se pueden configurar EN y ENO.

SET RESET Salida


0 0 No cambia
0 1 0
1 0 1
1 1 0

Funcin XOR
Realiza la funcin XOR entre dos entradas.
Los tipos de datos de todos los valores de entrada y el del valor de salida deben ser iguales.
El nmero de entradas podra ser como mximo 32.
Se podran configurar los parametros adicionales EN y ENO.

Representacin en FBD Ent1 Ent2 Salida


0 0 0
0 1 1
1 0 1
1 1 0

Representacin en ST

Resultado := XOR (Valor_1, Valor_2) ;

Variables de tipo EBOOL


La variable ebool es tambin una variable binaria igual que una de tipo
bool, contiene el valor FALSE (=0) o TRUE (=1), pero tambin incluye
informacin relativa a la gestin de los flancos ascendentes o
descendentes y al forzado.
Este tipo ocupa 1 byte en la memoria para almacenarlo.

Todas las variables de entrada y salida, y todas aquellas de las cuales


queramos evaluar un flanco (bien sea de subida o de bajada), deben ser
declaradas como ebool, si no, dara un error.
Universidad de Oviedo
24 - Problemas M340 ISA

Problema 1.2 Conmutacin de una luz mediante un pulsador


Realizar un programa para controlar una luz que deber conmutar su estado cada vez que se accione un
pulsador.
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.

Tabla de variables
Smbolo
en Direccin
Etiqueta Tipo Comentarios
los en PLC
planos
Ix_Pulsador S0 %I0.1.0 EBOOL Pulsador conectado al autmata

Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0

Qx_Luz H1 %Q0.1.16 EBOOL Luz

Mx_Flanco BOOL Marca del flanco ascendente del pulsador

MxP_Pulsador BOOL Marca utilizada en la PO por el pulsador

Mx_Pulsador EBOOL Marca utilizada en el programa

Introduccin de variables de E / S
Un mtodo sera abrir el editor de variables elementales,
e ir introduciendo una a una especificando su direccin
fsica %I0.1.X o %Q0.1.X.

Introducirlas de esta forma es un poco tedioso, por lo


que propondremos otro mtodo alternativo.

Se proceder a clicar dos veces sobre el mdulo de


hardware BMX DDM 3202K.

En la pantalla que aparece se selecciona el nombre del


mdulo, en este caso BMX DDM 3202K.

En la nueva pantalla, seleccionaremos la pestaa Objetos de E/S


Universidad de Oviedo Problemas M340 - 25
ISA

En ella activaremos las opciones %I y %Q.

A continuacin pulsaremos sobre el botn Actualizar cuadrcula.


La ventana se transforma y nos aparecen todas las direcciones fsicas de entradas y salidas del mdulo.
Ahora podremos introducir el nombre de nuestras variables asociadas a las direcciones fsicas con la
ventaja de que vemos exactamente que direciones son de entrada y cuales de salida.
Universidad de Oviedo
26 - Problemas M340 ISA

Programa con secciones mixtas ST y LD - (pr0102a)


Este es un tpico problema secuencial. La salida depende de la entrada actual y del estado de una variable
en el ciclo anterior (en este caso, Qx_Luz).

Seccin"IniciaVariables" en ST
(* Control local o a distancia*)
Mx_Pulsador := (Ix_Pulsador and Ix_LocDis) or (MxP_Pulsador and not Ix_LocDis);

Seccin "Control_de_la_luz" en LD
(*Si cada vez que presionamos el pulsador la luz, sta debe conmutar, est claro que no podremos utilizar
un control por nivel. Cuando pulsamos, por muy rpido que lo hagamos, el autmata lee la entrada miles
de veces antes de que soltemos el pulsador y en cada ciclo de programa estar conmutando la luz. Esto no
es lo que pretendemos.
Por ello debemos programar la deteccin del flanco acendente del pulsador.
Cuando pulsemos, ser detectado por el AP y pondr una memoria en 1 slamente durante un ciclo de
programa.
Al ciclo siguiente el propio autmata lo borrar*)

(*Por tanto, cuando detectemos el flanco y la luz estuviese apagada, procederemos a encenderla mediante
un SET -segunda red-. De esta forma permanecer encendida aunque la orden desaparezca.

A continuacin se debe borrar el flanco para que no siga activo en ese ciclo de programa. Si no lo
borrasemos, la luz se apagara en la ltima instruccin. La luz no se activara nunca pues lo nico que
pusimos a 1 fue una memoria en la tabla de asignacin de salidas. Luego se borr -en la tercera red-, con lo
que cuando se transfiere la imagen de las salidas al interfaz de salida, lo que en esos momentos habra sera
un 0 y por tanto la luz no se activara nunca.

En la ltima instruccin, si tenemos el flanco y la luz estuviese encendida, la apagaremos resetendola.


No es necesario borrar el flanco pues el propio AP lo borra. Recordemos que un flanco slo est activo
como mximo un ciclo de programa. Si lo borrsemos, no pasara nada, simplemente ejecutaramos una
instruccin de ms*)
Universidad de Oviedo Problemas M340 - 27
ISA

Programa con secciones mixtas ST y FBD (pr0102b)


Seccin"IniciaVariables" en ST
(* Control local o a distancia*)
Mx_Pulsador := (Ix_Pulsador and Ix_LocDis) or (MxP_Pulsador
and not Ix_LocDis);

Seccin "Control_de_la_luz" en FBD

Programa en lenguaje estructurado (pr0102c)

Seccin "Control_de_la_luz" en ST
(* Control local o a distancia*)
Mx_Pulsador := (Ix_Pulsador and Ix_LocDis) or (MxP_Pulsador and
not Ix_LocDis);

(*Generacin del flanco y utilizacin*)


Mx_Flanco:= RE (Mx_Pulsador);
if Mx_Flanco and not Qx_luz then
SET (Qx_luz);
RESET (Mx_Flanco);
end_if;

if Mx_Flanco and Qx_luz then


RESET (Qx_luz);
end_if;

Pantalla de operador
Universidad de Oviedo
28 - Problemas M340 ISA

Programa en lenguaje ST y FBD con funcin SR (pr0102d)


Seccin"IniciaVariables" en ST
(* Control local o a distancia*)
Mx_Pulsador := (Ix_Pulsador and Ix_LocDis) or (MxP_Pulsador and not
Ix_LocDis);

Seccin "Control_de_la_luz" en FBD

Programa en lenguaje ST y FBD con funcin XOR (pr0102e)


Seccin"IniciaVariables" en ST
(* Control local o a distancia*)
Mx_Pulsador := (Ix_Pulsador and Ix_LocDis) or (MxP_Pulsador and not
Ix_LocDis);

Seccin "Control_de_la_luz" en FBD


Universidad de Oviedo Problemas M340 - 29
ISA

Interfaces de entrada y salida


Interfaces de entrada PNP BMX DDI 1602
Se dice que un interface de entrada es PNP, cuando para leer un estado de seal 1, a la borna del Autmata
Programable (AP) le tiene que llegar un potencial positivo atravs del elemento de campo.

Cuando tenemos un sensor de 3 hilos, no podemos observar directamente si es PNP o NPN. Tienen dos
terminales conectados al positivo y al negativo de la fuente de alimentacin y el tercero, la carga "LOAD",
est conectado a la borna del autmata. Esto es as bien sea PNP o NPN.
Pero si observamos los contactos de los interruptores, pulsadores, etc. vemos que cuando se accionan,
introducen 24v DC a las bornas del AP. De esta forma comprobamos fehacientemente que el interface de
entrada es PNP.

El mdulo BMX DDI 1602 es un mdulo binario de 24 VCC


conectado a travs de un bloque de terminales de 20 pins.
Es un mdulo de lgica positiva PNP (o comn positivo): los
16 canales de entrada reciben corriente de los sensores.
Universidad de Oviedo
30 - Problemas M340 ISA

Interfaces de entrada de alterna PNP NPN BMX DAI 1602


Por el contrario, en un interface NPN, para leer un estado de seal 1, a la borna del autmata programable
le llega un potencial negativo atravs del elemento de campo.

El mdulo BMX DAI 1602 es un mdulo binario de 24 VCA conectado a travs de un bloque de terminales
de 20 pins. Este mdulo tiene 16 canales de entrada que funcionan con corriente alterna.
Este mdulo tambin se puede utilizar con 24 VCC, con lgica positiva o negativa.
Universidad de Oviedo Problemas M340 - 31
ISA

Interfaces mixtos de entradas PNP/salidas de rel BMX DDM 16025


El mdulo BMX DDM 16025 es un mdulo binario de 24 VCC conectado a travs de un bloque de terminales
de 20 pins. Es un mdulo de lgica positiva PNP: los 8 canales de entrada reciben corriente de los sensores
(comn positivo). Las 8 salidas de rel aisladas funcionan con corriente continua (24 VCC) o con corriente
alterna (de 24 a 240 VCA)
Universidad de Oviedo
32 - Problemas M340 ISA

Interfaces de salida estticos NPN BMX DDO 1612


El mdulo BMX DDO 1612 es un mdulo binario de 24 VCC conectado a travs de un bloque de terminales
de 20 pins. Es un mdulo de lgica negativa NPN (o comn positivo): sus 16 canales de salida reciben
corriente de los preactuadores.
Universidad de Oviedo Problemas M340 - 33
ISA

Interfaces de salidas estticas PNP BMX DDO 1602


El mdulo BMX DDO 1602 es un mdulo binario de 24 VCC conectado a travs de un bloque de terminales
de 20 pins. Es un mdulo de lgica positiva PNP (o comn negativo): los 16 canales de salida proporcionan
corriente a los preactuadores.
Universidad de Oviedo
34 - Problemas M340 ISA

Interfaces de salidas por rel BMX DRA 1605


El mdulo BMX DRA 1605 es un mdulo binario de 24 VCC o de 24 a 240 VCA conectado a travs de un
bloque de terminales de 20 pins. Los 16 canales de salida de rel no aislados funcionan con corriente
alterna o con corriente continua.
Universidad de Oviedo Problemas M340 - 35
ISA

Interfaces de salidas triac BMX DAO 1605


El mdulo BMX DAO 1605 es un mdulo binario de 100 a 240 VCA conectado a travs de un bloque de
terminales de 20 pins. Sus 16 canales de salida triac funcionan con corriente alterna.
Universidad de Oviedo
36 - Problemas M340 ISA

Interfaces mixtos de entradas/salidas estticas PNP BMX DDM 3202K


El mdulo BMX DDM 3202 K es un mdulo binario de 24 VCC conectado a travs de un conector de 40 pins.
Es un mdulo de lgica positiva PNP: los 16 canales de entrada reciben corriente de los sensores (comn
positivo) y los 16 canales de salida proporcionan corriente a los preactuadores (comn negativo) PNP.
Universidad de Oviedo Problemas M340 - 37
ISA

Problema 1.3 Luz de museo mediante pulsadores


Activacin y desactivacin de la iluminacin de un local, mediante el accionamiento de tres pulsadores de
configuracin normalmente abiertos.
Como aplicacin del enunciado, se puede suponer una sala de un museo, en la cual, se quiere que la
iluminacin no est activada cuando la sala se encuentre vaca. Para ello en las tres puertas de acceso que
tiene la sala figura el siguiente letrero:

Cuando acceda a la sala y sta se encuentre vaca accione el pulsador,


que tiene en la puerta por la que entra, para encender la iluminacin.

Cuando abandone la sala y no quede persona alguna en el interior,


accione el pulsador que tiene la puerta por la que sale.

PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.

S2

Los pulsadores S1, S2 y S3 se consideran NA.


LUZ

S1 S3

Este programa lo hemos estructurado en una sla seccin:


Control_de_la_luz, escrito en lenguaje ST
Universidad de Oviedo
38 - Problemas M340 ISA

Tabla de variables

Smbolo Direccin
Etiqueta Tipo Comentarios
planos en PLC
Ix_Sensor0 S0 %I0.1.0 EBOOL Interruptor 0

Ix_Sensor1 S1 %I0.1.1 EBOOL Interruptor 1

Ix_Sensor2 S2 %I0.1.2 EBOOL Interruptor 2

Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0

Qx_Luz H1 %Q0.1.16 EBOOL Luz

MxP_Sensor0 BOOL Marca del interruptor 0 en la pantalla

MxP_Sensor1 BOOL Marca del interruptor 1 en la pantalla

MxP_Sensor2 BOOL Marca del interruptor 2 en la pantalla

Mx_Sensor0 EBOOL Marca del interruptor 0 en el programa

Mx_Sensor1 EBOOL Marca del interruptor 1 en el programa

Mx_Sensor2 EBOOL Marca del interruptor 2 en el programa

Mx_Flanco BOOL Marca de flanco

Programa en lenguaje estructurado ST - (pr0103)


Seccin "Control_de_la_luz"
(*Inicia variables*)
Mx_Sensor0 := (Ix_Sensor0 and Ix_LocDis) or (MxP_Sensor0 and not Ix_LocDis);
Mx_Sensor1 := (Ix_Sensor1 and Ix_LocDis) or (MxP_Sensor1 and not Ix_LocDis);
Mx_Sensor2 := (Ix_Sensor2 and Ix_LocDis) or (MxP_Sensor2 and not Ix_LocDis);

(*Control de la luz*)
Mx_Flanco:= RE (Mx_Sensor0) or RE (Mx_Sensor1) or RE (Mx_Sensor2);
*RE Rising Edge - Flanco ascendente, FE Falling Edge - Flanco descendente*

if Mx_Flanco and not Qx_Luz then


set (Qx_Luz);
reset (Mx_Flanco);
end_if;

if Mx_Flanco and Qx_Luz then


reset (Qx_Luz);
end_if;

Pantalla de operador
Universidad de Oviedo Problemas M340 - 39
ISA

Funciones de temporizacin
Funcin TON de retraso en la conexin

Representacin del retardo de conexin TON:

(1) Si IN se convierte en "1", se inicia el tiempo interno (ET).


(2) Si el tiempo interno alcanza el valor de PT, Q se convierte en "1".
(3) Si IN se convierte en "0", Q se convierte en "0" y se detiene/restablece el tiempo interno.
(4) Si IN se convierte en "0" antes de que el tiempo interno haya alcanzado el valor de PT, se
detiene/restablece el tiempo interno, sin que Q se haya convertido en "1".

Representacin en lenguaje ST
TON_Instance (IN := (*BOOL*),
PT := (*TIME*),
Q => (*BOOL*),
ET => (*TIME*));
Universidad de Oviedo
40 - Problemas M340 ISA

Funcin TOF de retraso en la desconexin

Representacin del retardo de conexin TOF:

(1) Si IN se convierte en "1", Q se convierte en "1".


(2) Si IN se convierte en "0", se inicia el tiempo interno (ET).
(3) Si el tiempo interno alcanza el valor de PT, Q se convierte en "0".
(4) Si IN se convierte en "1", se convierte Q en "1" y se detiene/restablece el tiempo interno.
(5) Si IN se convierte en "1" antes de que el tiempo interno haya alcanzado el valor de PT, se
detiene/restablece el tiempo interno, sin que Q se haya convertido en "0".

Representacin en lenguaje ST
TOF_Instance (IN := (*BOOL*),
PT := (*TIME*),
Q => (*BOOL*),
ET => (*TIME*));
Universidad de Oviedo Problemas M340 - 41
ISA

Funcin TP de impulso monoestable

Representacin del retardo de conexin TP:

(1) Si IN se convierte en "1", Q se convierte en "1" y se inicia el tiempo interno (ET).


(2) Si el tiempo interno alcanza el valor de PT, Q se convierte en "0" (independientemente de IN).
(3) El tiempo interno se detiene/restablece, si IN se convierte en "0".
(4) Si el tiempo interno an no ha alcanzado el valor de PT, un ciclo en IN no tendr influencia sobre el
tiempo interno.
(5) Si el tiempo interno ha alcanzado el valor de PT y si IN es "0", se detiene/restablece el tiempo interno y
Q se convierte en "0".

Representacin en lenguaje ST
TP_Instance (IN := (*BOOL*),
PT := (*TIME*),
Q => (*BOOL*),
ET => (*TIME*));
Universidad de Oviedo
42 - Problemas M340 ISA

Cmo introducir un Bloque de Funcin en el lenguaje ST

(*Para introducir la orden anterior, lo ms cmodo es utilizar el asistente de entrada FFB

Desplegamos el Conjunto de librerias V6.0 y luego seleccionamos Timers & Counters. En la parte derecha
elegimos el bloque deseado, en nuestro caso TOF
Universidad de Oviedo Problemas M340 - 43
ISA

aparece otra ventana, donde le indicaremos el nombre elegido para nuestra funcin, p.e.
Temporizador_10s

aparece en el cdigo un texto que podremos modificar en funcin de nuestra necesidad, para ello,
sustituiremos los comentarios por las seales adecuadas

Temporizador_10s (IN := Mx_OrdenEncendido,


PT := t#10s,
Q=> Qx_Luz);
Universidad de Oviedo
44 - Problemas M340 ISA

Problema 2.1 Luz de museo con temporizador


Resolver el problema 1.1 luz de museo- para que cuando se d la orden de apagado, espere 10 segundos
antes de hacerla efectiva.
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.

Tabla de variables

Smbolo
en Direccin
Etiqueta Tipo Comentarios
los en PLC
planos
Ix_Sensor0 S0 %I0.1.0 EBOOL Interruptor 0

Ix_Sensor1 S1 %I0.1.1 EBOOL Interruptor 1

Ix_Sensor2 S2 %I0.1.2 EBOOL Interruptor 2

Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0

Qx_Luz H1 %Q0.1.16 EBOOL Luz

MxP_Sensor0 BOOL Marca del interruptor 0 en la pantalla

MxP_Sensor1 BOOL Marca del interruptor 1 en la pantalla

MxP_Sensor2 BOOL Marca del interruptor 2 en la pantalla

Mx_Sensor0 EBOOL Marca del interruptor 0 en el programa

Mx_Sensor1 EBOOL Marca del interruptor 1 en el programa

Mx_Sensor2 EBOOL Marca del interruptor 2 en el programa

Mx_OrdenEncendido BOOL Marca para ver cuando est activa la orden


Universidad de Oviedo Problemas M340 - 45
ISA

Programa en ST - (pr0201b)
(*IniciaVariables*)
Mx_Sensor0 := (Ix_Sensor0 and Ix_LocDis) or (MxP_Sensor0 and not Ix_LocDis);
Mx_Sensor1 := (Ix_Sensor1 and Ix_LocDis) or (MxP_Sensor1 and not Ix_LocDis);
Mx_Sensor2 := (Ix_Sensor2 and Ix_LocDis) or (MxP_Sensor2 and not Ix_LocDis);

(*Control de la luz*)
(* Cuando demos la orden de encender la luz al activar un interruptor estando la luz apagada, se deber
activar la luz y permanecer en ese estado hasta que se de la orden de apagado. Una vez que esto suceda,
deber permanecer encendida todavia 10 segundos ms y luego apagarse automticamente.
Si se activase un interruptor en ese intervalo, la luz deber permanecer encendida esperando de nuevo la
activacin de un interruptor para comenzar el proceso de apagarla.
La funcin de temporizacin adecuada para este proceso es la TOF*)

Mx_OrdenEncendido:= (Mx_Sensor0 and not Mx_Sensor1 and not Mx_Sensor2) or (not Mx_Sensor0 and
Mx_Sensor1 and not Mx_Sensor2)or (not Mx_Sensor0 and not Mx_Sensor1 and Mx_Sensor2)or
(Mx_Sensor0 and Mx_Sensor1 and Mx_Sensor2) ;

Temporizador_10s (IN := Mx_OrdenEncendido,


PT := t#10s,
Q=> Qx_Luz);

(*Tambien podramos haber utilizado la salida del temporizador de la siguiente forma


Qx_Luz:= Temporizador_10s.Q ; *)
Universidad de Oviedo
46 - Problemas M340 ISA

Programa en lenguaje FBD - (pr0201a)


Universidad de Oviedo Problemas M340 - 47
ISA

Cmo exportar e importar pantallas de operador


Para construir esta pantalla de operador podremos aprovechar la hecha en el problema 0101. Para ello en
dicho problema nos situamos encima de la carpeta que pone pantalla de operador y pulsando el botn
derecho seleccionamos "exportar pantalla" asignndole un nombre.

Luego en nuestro problema, nos pondremos encima de la carpeta de pantalla de operador y


seleccionaremos importar pantalla. Le diremos donde la hemos almacenado y seleccionaremos la que
deseamos. Luego aadiremos todo lo que necesitemos o modificamos lo que necesitemos.

Pantalla de operador
Universidad de Oviedo
48 - Problemas M340 ISA

El tiempo temporizado antes de la desconexin de la luz (t10s_TOFF.ET), lo podemos visualizar con la


opcin "Campo de entrada" (dcima opcin de la barra IOSEditor).

Seleccin del valor tiempo actual de un temporizador como


variable de control
O bien se escribe directamente en el campo variable p.e. "t10s_TOFF.ET", o bien se clica en el botn de los
tres puntos. Una vez hecho esto, se selecciona "Bloque de funciones" y se despliega la carpeta de salidas de
la funcin TOF "t10s_TOFF", a continuacin se selecciona la salida ET y se acepta.
Universidad de Oviedo Problemas M340 - 49
ISA

Problema 2.2 Semforo simple


Realizar el control luminoso de un semforo que siga la secuencia continua de 30 segundos en verde, 5
segundos mbar, 25 segundos rojo mientras est presente una seal de comienzo de ciclo (arranque).
La secuencia que van a seguir los temporizadores ser:

Lverde

0 30 t (s)
LAmbar

30 35 t (s)
LRoja

35 60 t (s)
Arranque

T_verde.ET

T_verde.Q

T_ambar.ET

T_ambar.Q

T_rojo.ET

T_rojo.Q

PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo
50 - Problemas M340 ISA

Tabla de variables

Smbolo
en Direccin
Etiqueta Tipo Comentarios
los en PLC
planos
Ix_Arranque S1 %I0.1.0 EBOOL Interruptor de arranque del sistema

Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0

Qx_LVerde H1 %Q0.1.16 EBOOL Luz verde

Qx_LAmbar H2 %Q0.1.17 EBOOL Luz mbar

Qx_LRoja H3 %Q0.1.18 EBOOL Luz roja

MxP_Arranque BOOL Marca del interruptor de arranque en la pantalla

Mx_Arranque EBOOL Marca del interruptor de arranque en el programa

Programa en lenguaje FBD - (pr0202)


Universidad de Oviedo Problemas M340 - 51
ISA

Pantalla de operador
Universidad de Oviedo
52 - Problemas M340 ISA

Cmo insertar una imagen en la pantalla de operador


Para insertar una imagen, pulsaremos sobre el 8 icono de la barra IOSEditor "imagen"

Nos saldr una pantalla en la cal elegiremos la imagen del directorio apropiado. La imagen deber estar en
formato JPG o BMP, no admite otros tipos.

Si queremos que las imgenes insertadas se vean en otro computador diferente con el que estamos
trabajando, debemos seleccionarlas una vez insertadas, y a continuacin hacer click con el botn derecho,
seleccionar "propiedades" y elegir la pestaa "imagen", despus deberemos activar una opcin que pone
"Imagen copiada en el espacio actual".
Universidad de Oviedo Problemas M340 - 53
ISA

Problema 2.3 Semforo coche-peatn con intermitencia


Obtencin de una red semafrica mediante funciones de temporizacin con la siguiente secuencia:

Automviles
Verde

20 t (s)
f=2Hz
Ambar

3 2 t (s)
Rojo

25 t (s)

Peatones
Verde f=2Hz

2 18 3 2 t (s)
Rojo

27
t (s)
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.

Tabla de variables

Smbolo
Direccin
Etiqueta en Tipo Comentarios
en PLC
los planos
Ix_Arranque S1 %I0.1.0 EBOOL Interruptor de arranque del sistema

Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0

Qx_LVerdeCo H1 %Q0.1.16 EBOOL Luz verde coches

Qx_LAmbarCo H2 %Q0.1.17 EBOOL Luz mbar coches

Qx_LRojaCo H3 %Q0.1.18 EBOOL Luz roja coches

Qx_LRojaPe H4 %Q0.1.19 EBOOL Luz roja peatones

Qx_LVerdePe H5 %Q0.1.20 EBOOL Luz verde peatones

MxP_Arranque BOOL Marca del interruptor de arranque en la pantalla

Mx_Arranque EBOOL Marca del interruptor de arranque en el programa


Universidad de Oviedo
54 - Problemas M340 ISA

Programa en lenguaje FBD - (pr0203)


Universidad de Oviedo Problemas M340 - 55
ISA
Universidad de Oviedo
56 - Problemas M340 ISA

Pantalla de operador
Universidad de Oviedo Problemas M340 - 57
ISA

Problema 2.4 Arranque estrella - tringulo


Se deber controlar el arranque de un motor en configuracin estrella-tringulo. Para pasar de estrella a
tringulo se esperaran 5 segundos. Cuando el sistema est parado, estar encendida una luz roja, cuando
los motores estn funcionando, se enceder una luz verde. Se indicar mediante una luz fija mbar si ha
habido un defecto de sobrecorriente en el motor. En ese caso, nos deberemos de asegurar que el motor
parar mediante software y hardware.
Se pide:
Programa de mando.
Esquema de fuerza con todas las protecciones necesarias.
Esquema de mando.

PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM16025.
Las entradas irn alimentadas a 24 VDC y las salidas a 220 VCA. El rearme del trmico ser manual. Existir
un contacto de precorte.

Tabla de variables

Smbolo
Direccin
Etiqueta en Tipo Comentarios
en PLC
los planos
Ix_Emergencia S1 %I0.1.0 EBOOL Seta de emergencia

Ix_Marcha S2 %I0.1.1 EBOOL Pulsador para arrancar el motor

Ix_Paro S3 %I0.1.2 EBOOL Pulsador de paro

Ix_Termico S4 %I0.1.3 EBOOL Contacto NA del trmico

Ix_LocDis S15 %I0.1.7 EBOOL Conmutador Local=1 Distancia=0

Qx_Km1 KM1 %Q0.1.16 EBOOL Contactor del centro de la estrella

Contactor que alimenta a las fases U1, V1, W1 del


Qx_Km2 KM2 %Q0.1.17 EBOOL
motor

Qx_Km3 KM3 %Q0.1.18 EBOOL Contactor para pasar a triangulo

Qx_Lverde L1 %Q0.1.19 EBOOL Luz verde

Qx_Lroja L2 %Q0.1.20 EBOOL Luz roja

Qx_Lambar L3 %Q0.1.21 EBOOL Luz mbar


Universidad de Oviedo
58 - Problemas M340 ISA

Esquema de fuerza
L1
L2
L3
5
1
3

-F1
6
2
4

1
3
3

1
3

5
1

-KM2 -KM3 -KM1


2
4
6
2
4
6

2
4
6
1
3
5

-F2
U1 2

W1 6
V1 4

M
3
W2
U2
V2

Esquema de mando
Universidad de Oviedo Problemas M340 - 59
ISA

Problema 2.5 Puerta automtica


Mediante un autmata, se desea controlar la puerta automtica de un supermercado. El sistema deber
abrir dicha puerta de forma automtica cuando alguien entre o salga. La deteccin se realiza mediante 2
detectores de ultrasonidos, uno para entrar y otro para salir. Una vez abierta la puerta y pasados 5
segundos sin detectar ninguna persona, la puerta se deber cerrar automticamente. Cuando est
cerrando, si se detecta una persona, deber parar y abrir de nuevo la puerta. Existe una seta de emergencia
NC que abrir la puerta permanentemente mientras est activada. Inicialmente la puerta deber estar
cerrada.
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM16025.

Tabla de variables

Smbolo
Direccin
Etiqueta en Tipo Comentarios
en PLC
los planos
Ix_DetEntrada B1 %I0.1.0 EBOOL Detector de la entrada

Ix_DetSalida B2 %I0.1.1 EBOOL Detector de la salida

Ix_FCA S1 %I0.1.2 EBOOL Final de carrera de puerta abierta

Ix_FCC S2 %I0.1.3 EBOOL Final de carrera de puerta cerrada

Ix_Seta S3 %I0.1.4 EBOOL Seta de emergencia NC

Ix_LocDis S15 %I0.1.7 EBOOL Conmutador Local=1 Distancia=0

Qx_Abrir KM1 %Q0.1.16 EBOOL Activa el contactor para que abra la puerta

Qx_Cerrar KM2 %Q0.1.17 EBOOL Activa el contactor para que cierre la puerta

Se pide.
Programa de control.
Esquema de mando y de fuerza con todas las protecciones necesarias.
Universidad de Oviedo
60 - Problemas M340 ISA

Esquema de fuerza y de mando


Universidad de Oviedo Problemas M340 - 61
ISA

Problema 2.6 Motor CC


Mediante un autmata, se desea controlar la puesta en marcha, parada y sentido de giro de un motor de
corriente continua. Los dispositivos de mando S0, S1 y S2 son pulsadores NA. El motor se pondr en
funcionamiento si se pulsan S0 y S1 simultneamente de forma seguida durante ms de dos segundos. El
paro del motor se producir en el momento en el que se pulse exclusivamente S0 de forma seguida durante
ms de dos segundos o exclusivamente S1 de forma seguida durante ms de dos segundos. Un contactor
KM0 se encarga de la marcha/parada del motor.
El pulsador S2 se emplear para invertir el sentido de giro que el motor tuviera en ese momento de ser
pulsado. Por motivos de seguridad se require desconectar el motor durante 500ms mientras se realiza la
maniobra de inversin de giro. La conmutacin del cambio de sentido de giro se lleva a cabo usando un rel
de contactos conmutados K1. La conmutacin de K1 se producir 200ms despus de solicitar la inversin de
giro mediante pulsacin de S2.
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM16025.

Tabla de variables

Programa en lenguaje estructurado ST - (pr0206)


Seccin "Preliminar "
(*Inicia variables*)
Mx_S0:= (Ix_S0 and Ix_LocDist) or (MxP_S0 and not Ix_LocDist);
Mx_S1:= (Ix_S1 and Ix_LocDist) or (MxP_S1 and not Ix_LocDist);
Mx_S2:= (Ix_S2 and Ix_LocDist) or (MxP_S2 and not Ix_LocDist);

MxP_LRoja:= Qx_KM0 and Qx_KM1;


MxP_LVerde:= Qx_KM0 and not Qx_KM1;
Universidad de Oviedo
62 - Problemas M340 ISA

Seccin "Control "


T_Parada (IN := Mx_S0 xor Mx_S1, PT := t#2s); (* tipo TON *)
(*Si se desea realizar la funcin XOR usando OR y AND el cdigo sera:
Temp_Parada (IN := (Mx_S0 and not Mx_S1) or (not Mx_S0 and Mx_S1), PT := t#2s); *)

(* Temporiza un pulso de 500ms cuando se pulsa S2, TP, PT=500ms *)


T_Parada_Inversion (IN := Mx_S2, PT := t#500ms); (* tipo TP *)

(* Temporiza un pulso de 200ms cuando se pulsa S2, TP, PT=200ms *)


T_Inversion (IN := Mx_S2, PT := t#200ms); (* tipo TP *)

(*Como se va a detectar un flanco de bajada de la salida de los temporizadores es necesario crear una
variable intermedia tipo EBOOL*)
Mx_T_Parada_Inversion:=(T_Parada_Inversion.Q);
Mx_T_Inversion:=(T_Inversion.Q);

(*El motor debe ponerse en marcha si se ha pulsado durante ms de dos segundos S0 y S1,
o tambin si ya se encontraba en marcha y par para invertir el giro debe seguir en marcha*)
if T_Marcha.Q or (FE(Mx_T_Parada_Inversion) and Mx_Marcha) then
set(Qx_KM0); set(Mx_Marcha);
end_if;

(*El motor debe pararse si se ha pulsado durante ms de dos segundos exclusivamente S0 o S1*)
if T_Parada.Q then
reset(Qx_KM0); reset(Mx_Marcha);
end_if;

(*El motor debe pararse si se va a proceder a una inversin de giro. Obsrvese que la marca Mx_Marcha
continuar a 1 para comprobar que el motor debe volver a arrancar en cuanto se produzca un flanco de
bajada en Mx_Temp_Parada_Inversion *)
if T_Parada_Inversion.Q then
reset(Qx_KM0);
end_if;

(*Cuando se produzca un flanco de bajada en el temporizador Temp_Inversion y si el motor se encuentra


en estado de Marcha se produce la conmutacin de K1*)
if (FE(Mx_T_Inversion) and Mx_Marcha) then
Qx_KM1:=not Qx_KM1;
end_if;

(*Cronograma del temporizador tipo TP *)


Universidad de Oviedo Problemas M340 - 63
ISA

Pantalla de operador

Detalle de los elementos que componen la Pantalla de Operador


Universidad de Oviedo
64 - Problemas M340 ISA

Funciones de comparacin EQ, NE, LE, LT, GE, GT


La funcin comprueba los valores de entradas sucesivas respecto a una secuencia. Si el resultado de la
comparacin es cierto, la salida de la funcin ser un 1 lgico (true), si no ser un 0 lgico (false).
Los tipos de datos de todos los valores de entrada deben ser iguales. Se puede aumentar el nmero de
entradas como mximo a 31. Al comparar variables de los tipos de datos BOOL, BYTE, WORD, DWORD, INT,
DINT, UINT, UDINT, REAL, TIME, DATE, DT y TOD, se compararn los valores entre s.
Si se trata de variables de tipo STRING, se compararn segn el orden alfabtico; cuanto ms atrs en el
alfabeto se encuentre un valor, ms alta ser su expresin.

Frmula
OUT = 1, cuando (IN1 IN2) & (IN2 IN3) & .. & (IN(n-1) INn)

Representacin en lenguaje ST
Result := EQ (Value1, Value2) ; igual
Result := NE (Value1, Value2) ; no igual
Result := LE (Value1, Value2) ; menor o igual
Result := LT (Value1, Value2) ; menor que
Result := GE (Value1, Value2) ; mayor o igual
Result := GT (Value1, Value2) ; mayor que

Representacin en lenguaje FBD


Universidad de Oviedo Problemas M340 - 65
ISA

Construccin de un oscilador con comparadores


Lo primero que debemos plantearnos es a que frecuencia lo queremos. Si es de 1Hz, no hay problema.
Existe un bit del sistema, el bit %S6, que oscila a esa frecuencia. Lo mismo que el %S4 que tiene una
frecuencia de 100Hz, el %S5 de 10Hz y el %S7 que tiene un periodo de 1 minuto.
Si queremos otra frecuencia diferente, por ejemplo 2Hz, sabemos que el periodo es el inverso de la
frecuencia, por tanto,
1 1
= = = 0,5 = 500
2
deberemos generar una seal que tenga de periodo 500 ms y est 250 ms en "1" y 250 ms en "0" de forma
continua mientras lo demandemos con una seal de control.

Para ello lanzaremos un temporizador de 500ms con retraso a la conexin y activado con la seal "Control".

Cuando el valor actual del temporizacin llegue al valor de preseleccin, 500ms, el valor actual quedar fijo
y la salida binaria T_Osc2HZ.Q pasar a valer "1" lgico.
Mediante un comparador podemos saber si estamos dentro de los primeros 250ms del ciclo cuando la
seal de control est activa y con ello poner a "1" la salida Mx_Osc2HZ.
Universidad de Oviedo
66 - Problemas M340 ISA

Ahora bien, debemos lanzar de nuevo el temporizador para generar otro ciclo. Lo vamos a hacer
arrancando el temporizador cuando est la seal de control a "1" y la salida binaria del temporizador est
en "0". Eso sucede cuando arranca. Luego cuando la salida binaria, T_Osc2Hz.q pase a "1", la entrada del
temporizador caer a "0" y su salida tambin. Al ciclo siguiente vuelve a ser cierta la condicn de arranque
y se produce un nuevo ciclo. Funciona as inienterrumpidamente hasta que la seal de control pase a "0".
Universidad de Oviedo Problemas M340 - 67
ISA

Problema 3.1 Semforo con comparadores


Obtencin de una red semafrica mediante un temporizador y funciones de comparacin con la siguiente
secuencia:

Automviles

Verde

20 t (s)
f=2Hz
Ambar

3 2 t (s)
Rojo

25 t (s)

Peatones

Verde f=2Hz

2 18 3 2 t (s)
Rojo

27
t (s)
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.

Tabla de variables

Smbolo
Direccin
Etiqueta en Tipo Comentarios
en PLC
los planos
Ix_Arranque S1 %I0.1.0 EBOOL Interruptor de arranque del sistema

Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0

Qx_LVerdeCo H1 %Q0.1.16 EBOOL Luz verde coches

Qx_LAmbarCo H2 %Q0.1.17 EBOOL Luz mbar coches

Qx_LRojaCo H3 %Q0.1.18 EBOOL Luz roja coches


Universidad de Oviedo
68 - Problemas M340 ISA

Qx_LRojaPe H4 %Q0.1.19 EBOOL Luz roja peatones

Qx_LVerdePe H5 %Q0.1.20 EBOOL Luz verde peatones

MxP_Arranque BOOL Marca del interruptor de arranque en la pantalla

Mx_Arranque EBOOL Marca del interruptor de arranque en el programa

Cronograma

Programa en ST - (pr0301)
(*Inicia variables*)
Mx_Arranque := (Ix_Arranque and Ix_LocDist) or(MxP_Arranque and not Ix_LocDist);

(* Temporiza el ciclo completo de la red semafrica, TON, PT=50s *)


t_ciclo (IN := Mx_Arranque AND NOT t_ciclo.Q,
PT := t#50s);

(* Salidas de los semforos*)


Qx_LVerdeCo := Mx_Arranque AND t_ciclo.ET <= t#20s;
Qx_LAmbarCo := (t_ciclo.ET > t#20s AND t_ciclo.ET <= t#23s) OR (t_ciclo.ET > t#23s AND t_ciclo.ET <= t#25s
AND Mx_Osc2Hz);
Qx_LRojaCo := t_ciclo.ET > t#25s AND t_ciclo.ET <= t#50s;

Qx_LRojaPe := (Mx_Arranque AND t_ciclo.ET <= t#27s) OR (t_ciclo.ET > t#48s AND t_ciclo.ET <= t#50s);
Universidad de Oviedo Problemas M340 - 69
ISA

Qx_LVerdePe := (t_ciclo.ET > t#27s AND t_ciclo.ET <= t#45s) OR (t_ciclo.ET > t#45s AND t_ciclo.ET <= t#48s
AND Mx_Osc2Hz);

(* Se programa el oscilador de 2 Hz *)
Si queremos que la frecuencia sea de 2 Hz, el periodo ser T=1 / f = 1 / 2 = 0,5 s 500ms

t_Oscilador (IN := Mx_Arranque AND NOT t_Oscilador.Q,


PT := t#500ms); (* tipo TON *)

Mx_Osc2Hz := Mx_Arranque AND t_Oscilador.ET <= t#250ms;

Crear y direccionar varias pantallas de operador


En este ejercicio vamos a implementar 2 pantallas de operador. En la primera estaremos viendo el
semforo con el tiemo transcurrido del ciclo. En la segunda, veremos el cronograma y el tiempo
transcurrido del ciclo. En ambas pantallas, habr un botn que nos permitir cambiar de una a otra.

Una vez creadas dos pantallas y asignadas un nombre es ms fcil identificar un nombre que un nmero-
podemos saltar a otra pantalla desde la que estemos, insertando un control.
Para ello iremos a la barra IOSEditor y pulsamos sobre el noveno icono, Examinar pantalla.

Al clicar en nuestra pantalla y arrastrar, saldr un botn con el nombre de la otra pantalla. Con el botn
derecho del ratn seleccionamos propiedades. El campo Valor, nos permitir seleccionar la pantalla
deseada de las que tengamos creadas.
Universidad de Oviedo
70 - Problemas M340 ISA

En el campo Nombre, saldr automticamente el nombre que le hubiesemos asignado previamente.


Universidad de Oviedo Problemas M340 - 71
ISA

Problema 3.2 Semforo completo con peticin de paso


Disear un circuito de control para un semforo, que ser utilizado por los peatones de manera espordica.
La luz verde, que controla el paso de coches, se hallar normalmente activada, debiendo solicitar el peatn,
mediante un pulsador, el permiso de paso.
Cuando el peatn solicita permiso de paso, accionando el pulsador, se pone en marcha una secuencia de
activacin y desactivacin de las diferentes luces que componen el semforo, como indica la figura.
La secuencia temporal tiene como valores de tiempos los indicados a continuacin:

Coches

Verde

4 39 t (s)
P.P.

t (s)
f=2Hz
Ambar

4 5 t (s)
Rojo

30 t (s)

68

Peatones

Verde f=2Hz

2 22 4 2 t (s)
Rojo

t (s)
Luz
Espere
t (s)
Una vez activado el pulsador de peatones, la luz verde de coches debe permanecer activada cuatro
segundos ms, desactivndose una vez transcurridos stos y activando la luz mbar.
La luz mbar debe permanecer activada, durante cuatro segundos, con luz fija, y cinco segundos, con luz
parpadeante. Transcurridos estos nueve segundos se desactivar y se proceder a la activacin de la luz
roja de coches.
La luz roja de coches permanecer activada durante treinta segundos.
La luz verde de peatones, se activar dos segundos despus de haberlo hecho la luz roja de coches,
Universidad de Oviedo
72 - Problemas M340 ISA

permaneciendo activada, durante veintids segundos, con luz fija, y, cuatro segundos, con luz parpadeante.
Concluido este tiempo, se desactivar y pasar a activarse la luz roja de peatones.
La luz roja de peatones se desactivar, cuando se active la luz verde de peatones.
La luz roja de coches se desactivar dos segundos despus de haberlo hecho la luz verde de peatones,
momento en el que se activar la luz verde de coches.
La frecuencia de oscilacin es de 2 Hz, tanto en la luz mbar de coches como en la luz verde de peatones.
Si se efectuara una demanda de paso, cuando est en marcha el cumplimiento de una peticin anterior, se
tendr en cuenta, activndose la luz de ESPERE si es pertinente, pero no se admitir la misma hasta que no
llegue a su fin la secuencia anterior, debiendo transcurrir entre dos demandas un mnimo de sesenta y ocho
segundos, (peticin memorizada).
Un cuadro luminoso, rojo, situado cerca del pulsador, con el texto, ESPERE, debe activarse, cuando se haya
hecho una solicitud de paso y no se pueda pasar, desactivndose cuando empiece a ser atendida la
demanda por darse las condiciones de paso peatonal.

PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.

Tabla de variables

Smbolo
Direccin
Etiqueta en Tipo Comentarios
en PLC
los planos
Ix_Pulsador S1 %I0.1.0 EBOOL Inicio de ciclo

Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0

Qx_LVerdeCo H1 %Q0.1.16 EBOOL Luz verde coches

Qx_LAmbarCo H2 %Q0.1.17 EBOOL Luz mbar coches

Qx_LRojaCo H3 %Q0.1.18 EBOOL Luz roja coches

Qx_LRojaPe H4 %Q0.1.19 EBOOL Luz roja peatones

Qx_LVerdePe H5 %Q0.1.20 EBOOL Luz verde peatones

Qx_LEspere H6 %Q0.1.21 EBOOL Luz de espere

MxP_Pulsador BOOL Marca del pulsador de arranque en la pantalla

Mx_Pulsador EBOOL Marca del pulsador de arranque en el programa

Mx_IniCiclo

Mx_PeticionPaso

Mx_Oscilador2hz
Universidad de Oviedo Problemas M340 - 73
ISA

Programa en ST - (pr0302)
Seccin "Control"
Cuando se activa el pulsador de peatones se memoriza la peticin, comenzando el ciclo y no permite que se
reinicie hasta que no termine el ciclo anterior. Cuando se permite pasar al peatn, luz verde, se borra la
peticin, pero si hay otra peticin cuando la luz roja de peatones est encendida, se vuelve a memorizar
para atenderla cuando termine el ciclo en curso.

(*Generacin de seales*)
Mx_Pulsador := (Ix_Pulsador and Ix_LocDist) or(MxP_Pulsador and not Ix_LocDist);

IF Mx_Pulsador THEN
SET (Mx_PeticionPaso);
ELSIF NOT Qx_LrojaPe THEN (*cuando se apaga la luz roja de los peatones reseteamos la PP*)
RESET (Mx_PeticionPaso);
END_IF;

IF Mx_PeticionPaso AND NOT t_Ciclo.Q THEN


(* NOT t_Ciclo.Q es fundamental para una vez que termin un ciclo, y haya caido la entrada que arranca
el temporizador de ciclo, vuelva a arrancar al ciclo siguiente si hubiese demanda *)
SET (Mx_IniCiclo);
ELSIF t_Ciclo.Q THEN
(* Al finalizar el ciclo, salida Q=1, se desactiva la entrada y por tanto cae el temporizador*)
RESET (Mx_IniCiclo);
END_IF;

(* Temporiza el ciclo completo de 68 segundos de la red semafrica y crea los bit de control*)
t_Ciclo (IN := Mx_IniCiclo,
PT := t#68s);

(* Salidas de los semforos*)


Qx_LVerdeCo := Not Mx_IniCiclo or t_Ciclo.ET <= t#4s or t_Ciclo.ET > t#43s;
Qx_LAmbarCo := (t_Ciclo.ET > t#4s AND t_Ciclo.ET <= t#8s) OR (t_Ciclo.ET > t#8s AND t_Ciclo.ET <= t#13s
AND Mx_Osc2Hz);
Qx_LRojaCo := t_Ciclo.ET > t#13s AND t_Ciclo.ET <= t#43s;

Qx_LRojaPe := Not Mx_IniCiclo or t_Ciclo.ET <= t#15s OR t_Ciclo.ET > t#41s;


Qx_LVerdePe := (t_Ciclo.ET > t#15s AND t_Ciclo.ET <= t#37s) OR (t_Ciclo.ET > t#37s AND t_Ciclo.ET <= t#41s
AND Mx_Osc2Hz);

Qx_LEspere:=Mx_PeticionPaso;

(* Se programa el oscilador de 2 Hz, T=500 ms *)


t_Oscilador (IN := Mx_IniCiclo AND NOT t_Oscilador.Q,
PT := t#500ms);

Mx_Osc2Hz := Mx_IniCiclo AND t_Oscilador.ET <= t#250ms;


Universidad de Oviedo
74 - Problemas M340 ISA

Pantalla de operador
Universidad de Oviedo Problemas M340 - 75
ISA

Funciones de contador

Contador ascendente
Los bloques de funcin se utilizan para el conteo progresivo.
En caso de seal "1" en la entrada R se asigna el valor "0" a la salida CV. Con cada paso de "0" a "1" en la
entrada CU, el valor de CV aumenta en 1. Si CV PV, la salida Q se convierte en "1".
Como parmetros adicionales se pueden configurar EN y ENO.
Nota: El contador slo funciona hasta alcanzar los valores mximos del tipo de datos utilizado. No se
produce ningn desborde.

Representacin en lenguaje FBD

Representacin en lenguaje ST
CTU_Instance (CU := (*BOOL*),
R := (*BOOL*),
PV := (*INT*),
Q => (*BOOL*),
CV => (*INT*));
Universidad de Oviedo
76 - Problemas M340 ISA

Contador descendente
Los bloques de funcin se utilizan para el conteo regresivo.
En caso de seal "1" en la entrada LD se asigna el valor de la entrada PV a la salida CV. Con cada paso de "0"
a "1" en la entrada CD se reduce el valor de CV en 1. Si CV 0, la salida Q se convierte en "1".
Como parmetros adicionales se pueden configurar EN y ENO.
Nota: El contador slo funciona hasta alcanzar los valores mnimos del tipo de datos utilizado. No se
produce ningn desborde.

Representacin en lenguaje FBD

Representacin en lenguaje ST
CTD_Instance (CD := (*BOOL*),
R := (*BOOL*),
PV := (*INT*),
Q => (*BOOL*),
CV => (*INT*));
Universidad de Oviedo Problemas M340 - 77
ISA

Contador ascendente-descendente
Los bloques de funcin se utilizan para el conteo progresivo y regresivo.
En caso de seal "1" en la entrada R se asigna el valor "0" a la salida CV. En caso de seal "1" en la entrada
LD se asigna el valor de la entrada PV a la salida CV. Con cada paso de "0" a "1" en la entrada CU, el valor de
CV aumenta en 1. Con cada paso de "0" a "1" en la entrada CD se reduce el valor de CV en 1.
En caso de seal simultnea "1" en la entrada R y LD, la entrada R resulta ser dominante.
Si CV PV, la salida QU se establece en "1". Si CV 0, la salida QD se convierte en "1".
Como parmetros adicionales se pueden configurar EN y ENO.
Nota: El contador slo funciona hasta alcanzar los valores mnimos (contador regresivo) o los valores
mximos (contador progresivo) del tipo de datos utilizado. No se produce ningn desborde.

Representacin en lenguaje FBD

Representacin en lenguaje ST
CTUD_Instance (CU := (*BOOL*),
CD := (*BOOL*),
R := (*BOOL*),
LD := (*BOOL*),
PV := (*INT*),
QU => (*BOOL*),
QD => (*BOOL*),
CV => (*INT*));
Universidad de Oviedo
78 - Problemas M340 ISA

Problema 4.1 Control de acceso a sala comercial


Se desea controlar el acceso, de manera automtica, a una sala comercial con una capacidad de cien plazas
de asiento. Admitiendo diez personas ms de las autorizadas, que tendran que permanecer de pie.

AB

SALA DE
Entrar
100
Salir
R PLAZAS

A
V AB

Disponemos de dos barreras luminosas a la entrada de la sala, "A" y "B", situadas de tal forma que al entrar
una persona en la sala, interrumpa primero la barrera "A" y luego la "B". La distancia fsica entre ellas es la
mnima, de manera que siempre se interrumpirn tambin simultneamente durante la entrada. De forma
semejante sucede cuando una persona sale de la sala. Primero interrumpir la barrera "B" y despus la "A".
Cuando en la sala tenemos menos de cien personas lo indicaremos activando la luz verde situada en la
entrada . Si se diera el caso de que en un momento determinado hubiera ms de cien personas y menos de
ciento diez, deber activarse la luz azul situada en la entrada. En el momento que entrara la persona ciento
diez ser la luz roja la que activaramos.
Dispondremos de un pulsador de reset para inicializar el contador a 0 en cualquier momento.

PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo Problemas M340 - 79
ISA

Tabla de variables

Smbolo
Direccin
Etiqueta en Tipo Comentarios
en PLC
los planos
Ix_RearmaCont S1 %I0.1.0 EBOOL Rearma el contador a 0

Ix_SensorA S2 %I0.1.1 EBOOL Entrada del sensor A

Ix_SensorB S3 %I0.1.2 EBOOL Entrada del sensor B

Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0

Qx_LVerde H1 %Q0.1.16 EBOOL Luz verde

Qx_LAzul H2 %Q0.1.17 EBOOL Luz azul

Qx_LRoja H3 %Q0.1.18 EBOOL Luz roja

MxP_RearmaCont BOOL

Mx_RearmaCont BOOL

MxP_SensorA BOOL

Mx_SensorA EBOOL

MxP_SensorB BOOL

Mx_SensorB EBOOL

Funcionamiento
El sensor nos dar una seal de dos canales A y B desfasados como se ve en la imagen

Canal A

Canal B

Cuando la persona entra, se interrumpe el sensor A y luego el B. La seal del flanco ascendente del B
cuando el sensor A est dando un 1, la utilizaremos para contar una persona el mvil va de izquierda a
derecha.
Cuando la persona sale, se interrumpe el sensor B y luego el A. La seal del flanco descendente del B
cuando el sensor A est dando un 1, la utilizaremos para descontar una persona el mvil va de derecha a
izquierda.
Universidad de Oviedo
80 - Problemas M340 ISA

Programa en ST - (pr0401b)

(*Generacin de seales*)
Mx_RearmaCont := (Ix_RearmaCont and Ix_LocDis) or(MxP_RearmaCont and not Ix_LocDis);
Mx_SensorA := (Ix_SensorA and Ix_LocDis) or(MxP_SensorA and not Ix_LocDis);
Mx_SensorB := (Ix_SensorB and Ix_LocDis) or(MxP_SensorB and not Ix_LocDis);

(* Programamos el contador *)
Mx_Entra:=Mx_SensorA AND RE (Mx_SensorB);
Mx_Sale:=Mx_SensorA AND FE (Mx_SensorB);

Contador (R:=Mx_RearmaCont, CU:=Mx_Entra, CD:=Mx_Sale, PV:=200);

(* Programamos las salidas *)


Qx_LVerde := Contador.CV < 100;
Qx_LAzul := Contador.CV >= 100 and Contador.CV < 110;
Qx_LRoja := Contador.CV >= 110;

Pantalla de operador
Universidad de Oviedo Problemas M340 - 81
ISA

Programa en FBD - (pr0401a)


Cmo cambiar el valor actual de un contador
Para cambiar el valor actual, lo seleccionamos con el cursor y tecleamos el valor deseado.
Universidad de Oviedo Problemas M340 - 83
ISA

Problema 4.2 Control de un contador reversible

Realizar un programa para que mediante dos pulsadores podamos modificar el contenido de un contador
reversible (C0).
Mediante el pulsador "Incrementa" podemos incrementar el contador de unidad en unidad en cada
pulsacin. Si queremos aumentar de manera ms rpida el contenido del contador debemos mantener
pulsado durante ms de dos segundos, momento en el cual el contador se modificar a una velociadad de
cuatro unidades por segundo.
Con el pulsador "Decrementa" se realiza el decremento de forma similar al modo anterior.
Si se pulsan los dos pulsadores a la vez, se reiniciar el valor actual del contador a 0.

PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.

Tabla de variables

Smbolo
Direccin
Etiqueta en Tipo Comentarios
en PLC
los planos
Ix_Incrementa S1 %I0.1.0 EBOOL Pulsador para incrementar el contador

Ix_Decrementa S2 %I0.1.1 EBOOL Pulsador para decrementar el contador

Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0

MxP_Incrementa BOOL

Mx_Incrementa BOOL

MxP_Decrementa BOOL

Mx_Decrementa BOOL

Programa en ST - (pr0402)

(*Inicia variables*)
Mx_Incrementa := (Ix_Incrementa and Ix_LocDis) or(MxP_Incrementa and not Ix_LocDis);
Mx_Decrementa := (Ix_Decrementa and Ix_LocDis) or(MxP_Decrementa and not Ix_LocDis);

(* Programamos el contador *)
Mx_Inc:=Mx_Incrementa AND not Mx_Osc4hz;
Mx_Dec:=Mx_Decrementa AND not Mx_Osc4hz;
Mx_Res:=Mx_Incrementa and Mx_Decrementa;

Contador (R:=Mx_Res, CU:=Mx_Inc, CD:=Mx_Dec, PV:=1000);


Universidad de Oviedo
84 - Problemas M340 ISA

(* Programamos el oscilador de 4 Hz *)
t_Temp_2S (IN:=Mx_Incrementa or Mx_Decrementa, PT:=t#2s);
t_Temp_Osc4HZ (IN:=t_Temp_2S.Q and not t_Temp_Osc4HZ.Q, PT:=t#250ms);
Mx_Osc4hz:= t_Temp_Osc2HZ.ET >t#125ms;

Pantalla de operador
Universidad de Oviedo Problemas M340 - 85
ISA

GRAFCET - SFC

Problema 5.1 Portn mediante GRAFCET


Disear el circuito lgico que realice la apertura y cierre de un portn de los tres modos siguientes:

a) Cuando se acciona el pulsador "P" y est cerrado, ha de iniciar la maniobra de apertura y no


interrumpir sta, hasta que el portn accione el final de carrera "A" (ABIERTO).

Cuando se acciona el pulsador "P" y est abierto, ha de iniciar la maniobra de cierre y no interrumpir
sta hasta que el portn accione el final de carrera "C" (CERRADO).

b) Manteniendo la maniobra base, expuesta en el apartado, "a)", en el caso de q ue se produjera, durante


la maniobra de apertura, el accionamiento del pulsador "P", el portn debe pararse, permaneciendo en
este estado hasta que se produzca de nuevo el accionamiento del pulsador, "P", momento en el cual
debe proceder a la maniobra de cierre.

De forma anloga, si, durante la maniobra de cierre, se acciona el pulsador "P", el portn debe
pararse, permaneciendo en este estado hasta que se produzca un nuevo accionamiento del pulsador
"P", momento en el cual debe proceder a la maniobra de apertura.

c) Efectuar las modificaciones adecuadas respecto al desarrollo obtenido en el apartado b, para que, una
vez dada la orden de parada al portn, ste no permanezca en este estado indefinidamente, sino que,
una vez transcurridos diez segundos, reanude la marcha que tena en el momento en que se haba
parado. Si, antes de transcurridos los diez segundos, se acciona el pulsador "P", el portn debe
deshacer la maniobra previa. El portn estar abierto un mximo de 30 segundos.

PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.

El pulsador y los finales de carrera, se


consideran normalmente abiertos.
Universidad de Oviedo
86 - Problemas M340 ISA

Tablas de variables

Smbolo
Direccin
Etiqueta en Tipo Comentarios
en PLC
los planos
Ix_Pulsador S1 %I0.1.0 EBOOL Pulsador para abrir el portn

Ix_Fca S2 %I0.1.1 EBOOL Final de carrera de abierto el portn

Ix_Fcc S3 %I0.1.2 EBOOL Final de carrera de cerrado el portn

Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0

Qx_Abrir KM1 %Q0.1.16 EBOOL Orden de abrir el portn

Qx_Cerrar KM2 %Q0.1.17 EBOOL Orden de cerrar el portn

MxP_Pulsador BOOL

Mx_Pulsador EBOOL

Mx_FlancoPul BOOL

MxP_Fca BOOL

Mx_Fca BOOL

MxP_Fcc BOOL

Mx_Fcc BOOL

Pantalla de operador y variables asociadas (apartado a)

Qx_Cerrar Punto rojo


Qx_Abrir Punto verde
MxP_FCA FCA
MxP_FCC FCC
MxP_Pulsador Pulsador
S_Abierto.x Portn abierto
S_Cerrado.x Portn cerrado
S_Cerrar.x Portn cerrando
S_Abrir.x Portn abriendo
Universidad de Oviedo Problemas M340 - 87
ISA

Apartado a por GRAFCET - (pr0501a_G)


Este programa lo hemos estructurado en tres secciones:
IniciaVariables, escrito en lenguaje ST
Control, escrito en lenguaje SFC
Salidas, escrito en lenguaje ST

En este caso el control lo podemos hacer por nivel o por flanco.

Seccin en ST "IniciaVariables"
Mx_Pulsador := (Ix_Pulsador and Ix_LocDis) or(MxP_Pulsador and not Ix_LocDis);
Mx_Fca := (Ix_Fca and Ix_LocDis) or(MxP_Fca and not Ix_LocDis);
Mx_Fcc := (Ix_Fcc and Ix_LocDis) or(MxP_Fcc and not Ix_LocDis);

(*Inicializacin de la pantalla de operador*)


(* El bit %S13, es un bit que est en 1 el primer ciclo de programa y luego automaticmente se pone a 0,
en este caso lo utilizamos para que inicialmente est cerrado el portn en la pantalla de operador *)
If %S13 then
set (MxP_Fcc);
end_if;

Seccin en SFC "Chart"


S_Cerrado

Introduciremos el chart empleando los iconos apropiados, estos aparecen


cuando indicamos que deseamos una seccin en cdigo SFC.
Mx_Pulsador

Qx_Abrir
S_Abrir

Mx_Fca

S_Abierto

Mx_Pulsador

Qx_Cerrar
S_Cerrar

Mx_Fcc

Para introducir una etapa inicial, introduciremos una etapa normal y clicaremos en la casilla de verificacin
que indica "Paso inicial".
Universidad de Oviedo
88 - Problemas M340 ISA

Las acciones asociadas a las etapas las programamos en la seccin de salidas. Haremos esto de esta forma y
no emplearemos los descriptores asociados a las etapas, por ergonomia. Si no, para ver las acciones
asociadas deberamos entrar en cada etapa y abrir la ventana correspondiente.

Las acciones asociadas las indicaremos mediante un comentario en el GRAFCET p.e.

Las receptividades asociadas a las transiciones, si son variables sencillas, las introduciremos en la ventana
que aparece cuando clicamos en el smbolo de transicin.
Universidad de Oviedo Problemas M340 - 89
ISA

Si son variables ms complejas lo mejor es asignar a la receptividad una variable p.e. "Tran_2_3" indicando
en el nombre de la variable, de que etapa salimos, y a que etapa vamos. Como valor de esa variable le
asignamos la receptividad necesaria.
Por ejemplo ver el GRAFCET del problema 5.2, pgina 73
Tran_0_4:= Mx_Sensor2 and not Mx_Sensor1;
Tran_3_0:= Mx_SensorSal and not Mx_Sensor2;
Tran_5_6:=Etapa5.t > t#3s;

Seccin en ST "Salidas"
Qx_Abrir := S_Abrir.x;
Qx_Cerrar := S_Cerrar.x;

Apartado a sin GRAFCET - (pr0501a_sG)


(* Generacin de las memorias que se utilizan en el programa *)

Mx_Pulsador := (Ix_Pulsador and Ix_LocDis) or(MxP_Pulsador and not Ix_LocDis);


Mx_Fca := (Ix_Fca and Ix_LocDis) or(MxP_Fca and not Ix_LocDis);
Mx_Fcc := (Ix_Fcc and Ix_LocDis) or(MxP_Fcc and not Ix_LocDis);

(* Control del portn *)


if Mx_Fcc and Mx_Pulsador then
set (Qx_Abrir);
end_if;

if Mx_Fca or Qx_Cerrar then


reset (Qx_Abrir);
end_if;
if Mx_Fca and Mx_pulsador then
set (Qx_cerrar);
end_if;

if Mx_Fcc or Qx_Abrir then


reset (Qx_Cerrar);
end_if;
Universidad de Oviedo
90 - Problemas M340 ISA

Apartado b por GRAFCET - (pr0501b_G)


S_Cerrado
El control lo deberemos hacer obligatoriamente por flanco.

Seccin en ST IniciaVariables
Mx_FlancoPul
(* Generacin de las memorias que se utilizan en el programa *)
Mx_Pulsador:= (Ix_Pulsador and Ix_LocDis) or(MxP_Pulsador and not Ix_LocDis); QX_Abrir

Mx_Fca := (Ix_Fca and Ix_LocDis) or(MxP_Fca and not Ix_LocDis); S_Abrir

Mx_Fcc := (Ix_Fcc and Ix_LocDis) or(MxP_Fcc and not Ix_LocDis);

Mx_FlancoPul:= re (Mx_Pulsador);
Mx_Fca Mx_FlancoPul

(*Inicializacin de la pantalla de operador*)


if %S13 then S_Abierto S_ParadoAbr

MxP_Fcc:=True;
end_if;

Mx_FlancoPul Mx_FlancoPul
Seccin en SFC (GRAFCET) "Chart"
Qx_Cerrar
S_Cerrar

Mx_Fcc Mx_FlancoPul
Seccin en ST "Salidas"
Qx_Abrir:=S_Abrir.x;
S_ParadoCer
Qx_Cerrar:=S_Cerrar.x;

Mx_FlancoPul

Pantalla de operador y variables asociadas (apartado b)


S_Abrir

Qx_Cerrar Punto rojo


Qx_Abrir Punto verde
MxP_FCA FCA
MxP_FCC FCC
MxP_Pulsador Pulsador
S_Abierto.x Portn abierto
S_Cerrado.x Portn cerrado
S_Cerrar.x Portn cerrando
S_Abrir.x Portn abriendo
S_ParadoCer.x Parado cerrando
S_ParadoAbr.x Parado abriendo
Universidad de Oviedo Problemas M340 - 91
ISA

Apartado B sin GRAFCET - (pr0501b_sG)


(* Generacin de las memorias que se utilizan en el programa *)
Mx_Pulsador := (Ix_Pulsador and Ix_LocDis) or(MxP_Pulsador and not Ix_LocDis);
Mx_Fca := (Ix_Fca and Ix_LocDis) or(MxP_Fca and not Ix_LocDis);
Mx_Fcc := (Ix_Fcc and Ix_LocDis) or(MxP_Fcc and not Ix_LocDis);
Mx_FlancoPul:= Re(Mx_Pulsador);

(*Variables utilizadas en la pantalla de operador*)


(*Inicializacin de la pantalla de operador*)
if %S13 then
MxP_Fcc:=True;
end_if;
MxP_1:=Mx_Fca and not Qx_Cerrar;
MxP_2:=Mx_Fcc and not Qx_Abrir;

(* Control del portn *)


if Mx_FlancoPul and (Mx_Fcc or Mx_ParadoCerrando) then
set (Qx_Abrir);
reset (Mx_ParadoCerrando);
reset(Mx_FlancoPul);
end_if;

if Mx_FlancoPul and Qx_Abrir then


Mx_ParaAbrir:=true;
set (Mx_ParadoAbriendo);
reset (Mx_FlancoPul);
end_if;

if Mx_Fca or Mx_ParaAbrir then


reset (Qx_Abrir);
Mx_ParaAbrir:=false;
end_if;

if Mx_FlancoPul and (Mx_Fca or Mx_ParadoAbriendo) then


set (Qx_Cerrar);
reset (Mx_ParadoAbriendo);
reset (Mx_FlancoPul);
end_if;

if Mx_FlancoPul and Qx_Cerrar then


Mx_ParaCerrar:=true;
set(Mx_ParadoCerrando);
end_if;

if Mx_Fcc or Mx_ParaCerrar then


reset (Qx_Cerrar);
Mx_ParaCerrar:=False;
end_if;
Universidad de Oviedo
92 - Problemas M340 ISA

Apartado C por GRAFCET - (pr0501c_G)


Seccin IniciaVariables
(* Generacin de las memorias que se utilizan en el programa *)
Mx_Pulsador := (Ix_Pulsador and Ix_LocDis) or(MxP_Pulsador and not Ix_LocDis);
Mx_Fca := (Ix_Fca and Ix_LocDis) or(MxP_Fca and not Ix_LocDis);
Mx_Fcc := (Ix_Fcc and Ix_LocDis) or(MxP_Fcc and not Ix_LocDis);
Mx_FlancoPul:= re (Mx_Pulsador);

T_ParadoAbr:=S_ParadoAbr.t > t#10s;


T_ParadoCer:=S_ParadoCer.t > t#10s;
T_Abierto:=S_Abierto.t > t#30s or Mx_FlancoPul;

(*Inicializacin de la pantalla de operador*)


if %S13 then
MxP_Fcc:=True;
end_if;

Seccin "Salidas"
Qx_Abrir:=S_Abrir.x;
Qx_Cerrar:=S_Cerrar.x;
Universidad de Oviedo Problemas M340 - 93
ISA

Seccin en SFC "Chart"

Apartado C sin GRAFCET


Se propone al alumno que realice este apartado por si mismo.
Universidad de Oviedo
94 - Problemas M340 ISA

Mtodo para insertar un objeto de la librera de pantalla de


operador

Seleccionaremos en "Herraminentas" la opcin "Libreria de pantallas de


operador". Saldr una ventana con los distintos objetos grficos agrupados
en carpetas, Accionadores, Autmatas, Depuracin, Fluidos, Mquinas,
Paneles frontales Regulacin, Smbolos, Smbolos homologados, Tendencias
Regulacin y Visualizadores.
Cuando se selecciona una carpeta, aparece en la parte de abajo una
ventana con los objetos que contiene para darnos una idea de que hay.

Si abrimos la carpeta y clicamos dos veces en el


apartado que nos interese, p.e. motores.
Aparecer una ventana donde podremos
seleccionar el objeto que nos interese, copiarlo al
portapapeles y luego pegarlo en nuestra pantalla
de operador.

Algunas de estas librerias tienen objetos dinmicos. Estos objetos, cuando los peguemos en
nuestra pantalla de operador y una vez desagrupados, podremos acceder a las propiedades de
alguna parte grfica que estar animada en funcin de una variable. Una vez hecho esto,
podremos modificar los
parmetros segn nos convenga.
Universidad de Oviedo Problemas M340 - 95
ISA

Problema 5.2 Salida de plantas con semforos


La figura representa el esquema de salida de un aparcamiento pblico, por el que son evacuados los
vehculos situados en dos plantas.
La regulacin de la salida se efectuar mediante la apertura de los semforos, SF1 o SF2, segn proceda.
Dos lazos sensores, S1 o S2, efectan la demanda de salida, confirmando el lazo, S3 el final de la maniobra
de salida del vehculo en curso.
Dos o ms demandas, consecutivas, de una misma planta, slo sern atendidas cuando no existan
demandas en la otra. Si esto ocurriera, debe concederse la salida alternativamente a un vehculo de cada
planta.
N.B.: En ningn caso puede haber ms de un vehculo entre los sensores, S1, S2 y S3.
Inicialmente el sistema tendr activas las dos luces rojas de los semforos de las plantas.

Secuencia de paso
a) Cuando un vehculo se superpone a un lazo sensor solicita la salida. El semforo correspondiente se
abrir, si no hay otro vehculo saliendo.
b) El semforo correspondiente se mantendr abierto durante tres segundos, contados desde el momento
en que el automvil abandone el lazo sensor. Tras este lapso de tiempo el semforo se cerrar.

PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.

SF1

PLANTA 1 S1

S3 SALIDA

PLANTA 2 S2

SF2
Universidad de Oviedo
96 - Problemas M340 ISA

Tablas de variables

Programa en ST y SFC - (pr0502)


Este programa lo hemos estructurado en cuatro secciones:
IniciaVariables, escrito en lenguaje ST
Control, escrito en lenguaje SFC
Salidas, escrito en lenguaje ST
Transiciones, escrito en lenguaje ST

Seccin IniciaVariables
(* Generacin de las memorias que se utilizan en el programa *)
Mx_Sensor1 := (Ix_Sensor1 and Ix_LocDis) or(MxP_Sensor1 and not Ix_LocDis);
Mx_Sensor2 := (Ix_Sensor2 and Ix_LocDis) or(MxP_Sensor2 and not Ix_LocDis);
Mx_SensorSal := (Ix_SensorSal and Ix_LocDis) or(MxP_SensorSal and not Ix_LocDis);

Seccin Salidas
Qx_P1Rojo:= NOT Qx_P1Verde;
Qx_P1Verde:= Etapa1.x OR Etapa2.x;
Qx_P2Rojo:= NOT Qx_P2Verde;
Qx_P2Verde:= Etapa4.x OR Etapa5.x;
Universidad de Oviedo Problemas M340 - 97
ISA

Seccin "Control" en SFC


Qx_P1 Rojo
Qx_P2 Rojo
Etapa0

Tran_0_4
Mx_Sensor2
and not
Mx_Sensor1 Tran_0_4 Mx_Sensor1

Qx_P1 Verde
Qx_P2 Rojo
Etapa1

Qx_P1 Rojo
Qx_P2 Verde
Etapa4
NOT Mx_Sensor1

Qx_P1 Verde
Qx_P2 Rojo
Etapa2
NOT Mx_Sensor2

Tran_2_3 Qx_P1 Rojo


Etapa2.t > t#3s Qx_P2 Verde
Etapa5
Tran_2_3

Qx_P1 Rojo Tran_5_6


Qx_P2 Rojo Etapa5.t > t#3s
Etapa3
Tran_5_6

Tran_3_0 Qx_P1 Rojo


Mx_SensorSal Qx_P2 Rojo
Etapa6
and not
Mx_Sensor2 Tran_3_0 Tran_3_4

Tran_3_4
Mx_SensorSal
and
Mx_Sensor2 Mx_SensorSal

Seccin "Transiciones"
Crear secciones de transiciones y despus abrir cada una de ellas para ver el cdigo o pegarlo en word, es
bastante incmodo. Por ello, lo que vamos a hacer es asignarle a cada transicin una variable y a esta le
asignaremos la receptividad adecuada.

Tran_0_4:= Mx_Sensor2 and not Mx_Sensor1;


Tran_2_3:= Etapa2.t > t#3s;
Tran_3_0:= Mx_SensorSal and not Mx_Sensor2;
Tran_3_4:= Mx_SensorSal and Mx_Sensor2;
Tran_5_6:=Etapa5.t > t#3s;
Universidad de Oviedo
98 - Problemas M340 ISA

Pantalla de Operador
Universidad de Oviedo Problemas M340 - 99
ISA

Problema 5.3 Salida de plantas con semforo y sensor de


abandono de planta
Disear el sistema de mando y control para la salida automatizada de vehculos de un estacionamiento
pblico, el cual consta de dos plantas.
La regulacin de la salida se efectuar mediante semforos situados como indica la figura. Disponemos de
cinco lazos sensores para recabar la informacin externa necesaria.
Mediante el accionamiento de los lazos S1E S2E efectuaremos la demanda de salida. Los lazos S1S y S2S
nos indicarn que el vehculo ha rebasado el semforo, mientras que el lazo SSal nos confirmar que el
vehculo ha salido del estacionamiento.
La salida del vehculo debe efectuarse de forma tal que se evacue un vehculo de cada planta, para evitar
esperas en una de las plantas respecto a la otra.
La secuencia de los semforos debe ser la siguiente:
Cuando un vehculo accede a un lazo sensor realiza la peticin de salida, el semforo correspondiente se
situar en verde, el vehculo rebasar dicho semforo, y al accionar el lazo correspondiente el semforo se
situar de nuevo en rojo, para evitar que otro vehculo lo siga, quedando bloqueado hasta que el vehculo
accione el lazo SSal indicando que ha salido.

PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.

F1

S1E
PLANTA 1 S1
S

SSal

F2
S
S2
S2E
PLANTA 2
Universidad de Oviedo
100 - Problemas M340 ISA

Tablas de variables

Programa en ST y SFC - (pr0503)


Seccin IniciaVariables
(* Generacin de las memorias que se utilizan en el programa *)
Mx_Sensor1E := (Ix_Sensor1E and Ix_LocDis) or(MxP_Sensor1E and not Ix_LocDis);
Mx_Sensor1S := (Ix_Sensor1S and Ix_LocDis) or(MxP_Sensor1S and not Ix_LocDis);
Mx_Sensor2E := (Ix_Sensor2E and Ix_LocDis) or(MxP_Sensor2E and not Ix_LocDis);
Mx_Sensor2S := (Ix_Sensor2S and Ix_LocDis) or(MxP_Sensor2S and not Ix_LocDis);
Mx_SensorSal := (Ix_SensorSal and Ix_LocDis) or(MxP_SensorSal and not Ix_LocDis);

Seccin Transiciones
Tran_2_0:= Mx_SensorSal and not Mx_Sensor2E;
Tran_0_3:= Mx_Sensor2E and not Mx_Sensor1E;
Tran_2_3:= Mx_SensorSal and Mx_Sensor2E;

Seccin Salidas
Qx_P1Roja:= not Qx_P1Verde;
Qx_P1Verde:= Etapa1.x;
Qx_P2Roja:= not Qx_P2Verde;
Qx_P2Verde:= Etapa3.x;
Universidad de Oviedo Problemas M340 - 101
ISA

Seccin en SFC "Control"

Pantalla de Operador
Universidad de Oviedo
102 - Problemas M340 ISA

Problema 5.4 Control de limpiaparabrisas


Se desea automatizar el limpiaparabrisas de un vehculo cuyas partes constituyentes son las siguientes:
1. Un selector de movimiento de tres posiciones (Stop, Barrido Continuo y Barrido Retardado) que permite
seleccionar entre dos posibles modos de funcionamiento ms abajo detallados o reposo (no hace nada).
2. Un selector de tiempo de 3 posiciones (ST5, ST2 y ST1) empleado para seleccionar la pausa de
funcionamiento del sistema cuando el selector de movimiento anterior est en la posicin Barrido
Retardado.
3. Un detector de lluvia (DetLluvia).
4. Dos finales de carrera (FCI y FCD) para conocer cundo el limpia llega a cada uno de los extremos de su
carrera. (Para determinar cul es la parte izquierda y cul la derecha se supone que miramos el limpia
desde dentro del vehculo).
5. Un motor de corriente continua que mediante dos contactores (KMIzq y KMDer) permite desplazar las
escobillas del limpia a izquierda y derecha respectivamente.

El modo de funcionamiento del sistema es el que se describe a continuacin.


1. Cuando el selector de movimiento se encuentre en la posicin Barrido Continuo, el limpia debe
comenzar a moverse hacia la izquierda hasta que alcance la posicin FCI. En este momento comenzar a
moverse hacia la derecha hasta alcanzar la posicin FCD. Estar hacindolo de foma ininterrumpida hasta
que se seleccione otro modo.
2. Cuando el selector de movimiento se encuentre en la posicin Barrido Retardado, el limpia describir
ciclos de barrido temporizados. Es decir, describir movimientos izquierda-derecha, detenindose un cierto
periodo de tiempo en la posicin marcada por FCD.
3. El tiempo que el limpia permanecer en la posicin FCD vendr indicado por el selector de tiempo de tres
posiciones. ST5: 5 segundos; ST2: 2 segundos; ST1: 1 segundos.
4. Transcurridos 2,5 segundos desde el momento en que comience a llover, y si el usuario no ha
seleccionado manualmente ninguno de los dos posibles modos de funcionamiento, el limpia debe
comenzar a describir ciclos de barrido temporizados, segn la pausa indicada por el selector de tiempo.
Ambos selectores pueden ser cambiados de posicin en cualquier momento. Sin embargo, en caso de que
ese cambio se produzca en medio de un ciclo de barrido, este no tendr efecto hasta que no se haya
finalizado ese ciclo.

PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo Problemas M340 - 103
ISA

Tablas de variables

Programa en ST y SFC (GRAFCET) - (pr0504)


Seccin IniciaVariables
(* Generacin de las memorias que se utilizan en el programa *)
Mx_BarrCont := (Ix_BarrCont and Ix_LocDis) or(MxP_BarrCont and not Ix_LocDis);
Mx_BarrRet := (Ix_BarrRet and Ix_LocDis) or(MxP_BarrRet and not Ix_LocDis);
Mx_DetLluvia := (Ix_DetLluvia and Ix_LocDis) or(MxP_DetLluvia and not Ix_LocDis);
Mx_FCI := (Ix_FCI and Ix_LocDis) or(MxP_FCI and not Ix_LocDis);
Mx_FCD := (Ix_FCD and Ix_LocDis) or(MxP_FCD and not Ix_LocDis);
Mx_ST5 := (Ix_ST5 and Ix_LocDis) or(MxP_ST5 and not Ix_LocDis);
Mx_ST2 := (Ix_ST2 and Ix_LocDis) or(MxP_ST2 and not Ix_LocDis);
Mx_ST1 := (Ix_ST1 and Ix_LocDis) or(MxP_ST1 and not Ix_LocDis);
Universidad de Oviedo
104 - Problemas M340 ISA

Mx_Flanco_DLL := RE(Mx_DetLluvia);

(*Inicializacin de la pantalla de operador*)


If %S13 then
set (MxP_ST5); set (MxP_FCD);
end_if;

(* Generacin de ALGUNAS de las memorias que se utilizan en la pantalla de operador*)


Mx_NoFC := not Mx_FCI and not Mx_FCD;
Mx_FCD_KMI := Mx_FCD and Qx_MotIzq;
Mx_FCI_KMD := Mx_FCI and Qx_MotDer;
Mx_NoFC_KMD := Mx_NoFC and Qx_MotDer;
Mx_NoFC_KMI := Mx_NoFC and Qx_MotIzq;

Seccin Transiciones
Tran_1 := S_Paro1.t >= t#5s and Mx_ST5 or S_Paro1.t >= t#2s and Mx_ST2 or S_Paro1.t >= t#1s and
Mx_ST1;
Tran_2 := Mx_Flanco_DLL and not Mx_BarrCont and not Mx_BarrRet;
Tran_3 := S_Paro2.t > t#2.5s or Mx_BarrRet;
Tran_4 := Mx_DetLluvia and not Mx_Flanco_DLL and not Mx_BarrCont and not Mx_BarrRet;

Seccin Salidas
Qx_MotIzq := S_IzdaBCont.x or S_IzdaBRet.x;
Qx_MotDer := S_DchaBCont.x or S_DchaBRet.x;

Pantalla de Operador
Universidad de Oviedo Problemas M340 - 105
ISA

Seccin GRAFCET
Universidad de Oviedo
106 - Problemas M340 ISA

Problema 5.5 Control de la mezcla de dos lquidos


Se trata de automatizar un reactor agitado en el que dos compuestos A y B reaccionan para dar un nuevo
compuesto C. El proceso es el siguiente:

El sistema est en reposo cuando est vaco, todas las vlvulas estn cerradas y el agitador est
apagado
El ciclo comienza con un pulsador de arranque. En ese momento, se abre la vlvula A y el reactor
comienza a llenarse con el primer componente.
Cuando el nivel del primer componente llega al detector de nivel N1, se interrumpe el suministro
del componente A y se inicia el suministro del componente B junto con la activacin del motor del
agitador.
Cuando la mezcla alcanza el nivel N2 se interrumpe el suministro del componente B, se mantiene el
agitador y se abre la vlvula de paso del calentador. El sistema permanecer en este estado
durante 5 minutos.
Una vez completados los 5 minutos, se cierra la vlvula de paso del calentador, se apaga el agitador
y se inicia el vaciado del depsito.

Cuando el depsito est vaco, se vuelve al estado de reposo.

PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo Problemas M340 - 107
ISA

Tablas de variables

Programa en ST y GRAFCET - (pr0505)


Seccin en ST "IniciaVariables"
(*Inicia variables*)
Mx_N0 := (Ix_N0 and Ix_LocDis) or (MxP_N0 and not Ix_LocDis);
Mx_N1 := (Ix_N1 and Ix_LocDis) or (MxP_N1 and not Ix_LocDis);
Mx_N2 := (Ix_N2 and Ix_LocDis) or (MxP_N2 and not Ix_LocDis);
Mx_Marcha := (Ix_Marcha and Ix_LocDis) or (MxP_Marcha and not Ix_LocDis);

Tran3_4:= Etapa3.t >=t#15s;


Universidad de Oviedo
108 - Problemas M340 ISA

Seccin en SFC "Control"

Seccin en ST "Salidas"
Qx_AbrirA:=Etapa1.x;
Qx_AbrirB:=Etapa2.x;
Qx_Calentar:=Etapa3.x;
Qx_Vaciar:=Etapa4.x;
Qx_Motor:=Etapa2.x or Etapa3.x;
Universidad de Oviedo Problemas M340 - 109
ISA

Seccin en ST "Simulacin"
(* Esta parte del programa es necesaria para la correcta visualizacin de la simulacin de la planta *)

(* ArrancaOscilador. Usamos un temporizador"T1", introducido como bloque DFB de tipo TON *)


T1 (IN := Qx_motor and not T1.Q,
PT := t#500ms);

Mx_Osc1:=T1.ET>T#250ms;

Mx_N3:= Etapa1.x AND Mx_N0;


Mx_N4:= Etapa2.x AND Mx_N1;
Mx_N5:= Etapa2.x AND Etapa2.t>=t#2s;
Mx_N6:= Etapa3.x or Mx_N2;
Mx_N7:= Etapa4.x And Not Mx_N2 and Mx_N1 and Mx_N0;
Mx_N8:= Etapa4.x And Not Mx_N2 and Not Mx_N1 and Mx_N0;

Detalle de los elementos que componen la Pantalla de Operador


Universidad de Oviedo
110 - Problemas M340 ISA

Funciones fundamentales para controlar los SFC


CLEARCHART: Desactivacin de todas las etapas
Mx_GrafcetBorrado:= CLEARCHART (NombreGrafcet, Mx_BorraGrafcet);
Cuando el parmetro de entrada booleano Mx_BorraGrafcet sea 1, se detiene la secuencia y se desactivan
todas las etapas de la seccin SFC denominada NombreGrafcet. Mientras que el valor de ese booleano
Mx_BorraGrafcet permanezca a 1, la secuencia no se podr iniciar mediante las funciones INITCHART o
SETSTEP.
Este estado de inactividad total de la secuencia se mostrar por medio de una seal 1 en el parmetro
booleano de salida Mx_GrafcetBorrado. Este valor se podr usar para proceder a realizar el proceso de
rearme (llamada a subrutina de puesta en Condiciones Iniciales, activacin de una etapa de rearme,
activacin de una seccin SFC de rearme, etc).
La seccin SFC NombreGrafcet permanecer en este estado de inactividad total de todas sus etapas aun
cuando la entrada Mx_BorraGrafcet vuelva a 0.
Sin embargo, si la entrada Mx_BorraGrafcet es 0, entonces, ya se podr ejecutar INITCHART o SETSTEP
para iniciar la secuencia del SFC. La ejecucin de INITCHART o SETSTEP pondr el valor de
Mx_GrafcetBorrado a 0.

INITCHART: Desactivacin de todas las etapas e inicio de secuencia


Mx_GrafcetIniciado := INITCHART (NombreGrafcet, Mx_IniciaGrafcet) ;
Si el parmetro de entrada tipo BOOL IniciaGrafcet es igual a 1, la secuencia de la seccin SFC denominada
NombreGrafcet se detiene, se desactivan todas las etapas y se activa su etapa inicial. Mientras el valor de
Mx_IniciaGrafcet sea 1, la secuencia se mantendr paralizada en la etapa inicial estando nicamente activa
esta etapa inicial de la seccin NombreGrafcet. Se observa que la etapa inicial aparece resaltada en color
verde pero su tiempo de activacin indica cero segundos.
Cuando el valor del booleano de entrada IniciaGrafcet pase de 1 a 0, entonces adems de seguir activa la
etapa inicial se activar la secuencia normal de la seccin SFC NombreGrafcet. Se puede observar que el
tiempo de activacin de la etapa ya ha comenzado.
INITCHART tiene como parmetro de salida el booleano Mx_GrafcetIniciado cuyo valor ser 1 cuando
Mx_IniciaGrafcet pase de 0 a 1, permaneciendo Mx_GrafcetIniciado igual a 1 hasta que no se produzca el
paso de Mx_IniciaGrafcet de 1 a 0 devolviendo la funcin INITCHART en ese momento un 0 en
Mx_GrafcetIniciado.

FREEZECHART: Congelacin de una secuencia


Mx_GrafcetCongelado := FREEZECHART (NombreGrafcet, Mx_CongelaGrafcet) ;
Cuando el valor del booleano de entrada Mx_CongelaGrafcet sea 1, se inmoviliza el estado actual de la
secuencia de la seccin SFC con nombre NombreGrafcet. Se dejarn de evaluar los estados de las
transiciones. De esta forma, ya no ser posible avanzar en la secuencia, aunque la condicin de transicin
de la transicin "activa" sea verdadera.
Cuando el valor del booleano de entrada Mx_CongelaGrafcet sea 0, se libera la secuencia de la seccin SFC
con nombre NombreGrafcet. Se volvern a evaluar los estados de las transiciones. De esta forma, ya ser
posible avanzar en la secuencia, cuando la receptividad de la transicin "activa" sea verdadera.
El bit de salida Mx_GrafcetCongelado muestra en todo momento el estado actual de la secuencia, su valor
es 1 cuando se ha inmovilizado la secuencia y ser 0 si la secuencia no se encuentra inmovilizada.
Se observa que el Chart del SFC se encuentra con color cian cuando la secuencia se encuentra inmovilizada,
y que la salida asociada a la etapa en la que est parado PERMANECE ACTIVA.
Universidad de Oviedo Problemas M340 - 111
ISA

SETSTEP: Activacin de una etapa especfica de la secuencia


SETSTEP (NombreEtapa);
La funcin SETSTEP tiene como nico argumento de entrada el nombre NombreEtapa de una etapa de una
seccin SFC. El procedimiento activa la etapa especificada como NombreEtapa. Adems la etapa o etapas
que se encontraban ya previamente activas no se vern afectadas por este procedimiento.

Dado que la etapa NombreEtapa permanece activada mientras el procedimiento SETSTEP se est
ejecutando, deber tomarse una de las siguientes medidas para impedir un establecimiento o activacin
permanente de la etapa:
Llamada condicional del procedimiento SETSTEP a travs de la entrada EN, en los lenguajes de
programacin FBD y LD.
Llamada condicional del procedimiento SETSTEP a travs, por ejemplo, de la instruccin IF en el
lenguaje de programacin ST.
Utilizacin de reconocimiento de flancos (RE) en la entrada.

NOTA: El procedimiento slo se puede ajustar en la modalidad de servicio "Multi-Token" (ver apndice B).

RESETSTEP: Desactivacin de una etapa especfica de la secuencia


RESETSTEP (NombreEtapa);
La funcin RESETSTEP tiene como nico argumento de entrada el nombre NombreEtapa de una etapa de
una seccin SFC. El procedimiento desactiva ("restablece") la etapa especificada como NombreEtapa.
Adems la etapa o etapas que se encontraban ya previamente activas no se vern afectadas por este
procedimiento.

Dado que la etapa NombreEtapa permanece desactivada mientras el procedimiento RESETSTEP se est
ejecutando (el procedimiento se ejecuta de forma cclica), deber tomarse una de las siguientes medidas
para impedir que la etapa se desactive permanentemente:
Llamada condicional del procedimiento RESETSTEP a travs de la entrada EN, en los lenguajes de
programacin FBD y LD.
Llamada condicional del procedimiento SETSTEP a travs, por ejemplo, de la instruccin IF en el
lenguaje de programacin ST.
Utilizacin de reconocimiento de flancos (R_TRIG) en la entrada.

Si se desactiva ("restablece") el ltimo/nico paso de la secuencia, sta slo se podr volver a iniciar a
travs del bloque de funciones SFCCNTRL (entrada INIT), la funcin INITCHART, el procedimiento SETSTEP u
otro comando de activacin de pasos (desde el exterior).

NOTA: El procedimiento slo se puede ajustar en la modalidad de servicio "Multi-Token" (ver apndice B).
Universidad de Oviedo
112 - Problemas M340 ISA

Problema 5.6 Ejemplo de control de un GRAFCET


Preliminar
if %S13 then
set(MxP_Paro); (* para que con el primer ciclo de programa, el interruptor se comporte como NC *)
end_if;

Mx_PonCI := CLEARCHART (Prueba,RE(MxP_Rearme));


(*con el flanco del pulsador de Rearme, borramos todas las etapas activas del GRAFCET prueba y se pone
automticamente a 1 la variable Mx_PonCI*)

if Mx_PonCI then
(*con Mx_PonCI a 1, ejecutamos la subrutina para poner al sistema en Condiciones Iniciales*)
Reset (Qx_LuzRoja);
IniciaSistema();
end_if;

if Mx_PuestoEnCI then
Mx_IniciaChart:= INITCHART (Prueba,false);
(*ahora permite evolucionar el GRAFCET porque el bit de control es 0*)
reset (Mx_EnParo);
reset (Mx_PuestoEnCI); (*borramos esta memoria para que no se vuelva a ejecutar ste cdigo*)
end_if;

Mx_IniciaChart:= INITCHART (Prueba,MxP_INITCHART); (*Observemos como con el MxP_INITCHART a 1 se


inicializa el GRAFCET borrando todas las etapas que estuviesen activas, se pone a 1 el bit Mx_IniciaChart y
no permite evolucionar el GRAFCET hasta que el bit de control MxP_Sensor5 no sea 0*)

if not MxP_Paro then


set (Mx_EnParo);
MX_Freeze:= Freezechart(Prueba,true);
(*con esta instruccin congelamos el GRAFCET. Observar que la salida asignada a una etapa permanece
activa. Esto nos puede interesar o no. Recordar: pinza sujetando una pieza | motor *)
end_if;

if MxP_Marcha then
reset (Mx_EnParo);
MX_Freeze:= Freezechart(Prueba,false);
(*con esta instruccin descongelamos el GRAFCET. Ahora ya puede evolucionar *)
end_if;

Salidas
If Etapa0.x then
reset (Qx_LuzRoja);
end_if;

Qx_LuzVerde:= Etapa1.x Or Etapa2.x;

If Etapa1.x then
set (Qx_LuzRoja);
end_if;
Universidad de Oviedo Problemas M340 - 113
ISA

Subrutina IniciaSistema
(*Mientras que Mx_PonCI est en 1, ejecutamos la subrutina para poner al sistema en CI
Se pondra al sistema en CI p.e. bajariamos una barrera, calentaramos un lquido, etc.
Cuando el sistema est en CI una serie de variables estarn a 1 informandonos de ello, vamos a suponer
que es cuando MxP_IniciaSisEnSR est a 1*)

If MxP_IniciaSisEnSR then
Mx_IniciaChart:= INITCHART (Prueba,true);

(*cuando ya est en CI, se borra automticamente todo el GRAFCET, lo sita en la etapa inicial como activa
pero no la permite evolucionar hasta que el bit de control sea 0 y borra automaticamente el bit
Mx_PonCI*)
set (Mx_PuestoEnCI);
end_if;

GRAFCET Prueba y Pantalla de operador


Universidad de Oviedo
114 - Problemas M340 ISA

Subrutinas y puesta en condiciones iniciales

Problema 6.0 Portn con puesta en CI

Disear el esquema de mando, el esquema de fuerza y el programa de control que realice la apertura y
cierre de un portn del modo siguiente:
Inicialmente el portn podr estar abierto, cerrado o en una posicin intermedia.
Cuando se pulse el Rearme el portn proceder a ponerse en CI, esto es, se cerrar y a partir de esa
situacin podr evolucionar normalmente.

Cuando se acciona el pulsador y est cerrado, ha de iniciar la maniobra de apertura y no


interrumpir sta, hasta que el portn accione el final de carrera "FCA" (ABIERTO).

Cuando se acciona el pulsador y est abierto, ha de iniciar la maniobra de cierre y no interrumpir


sta hasta que el portn accione el final de carrera "FCC" (CERRADO).

PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo Problemas M340 - 115
ISA

Tablas de variables

Programa en ST y GRAFCET - (pr0600)

Este programa lo hemos estructurado en cinco secciones:


IniciaVariables, escrito en lenguaje ST
Preliminar, escrito en lenguaje ST
Control, escrito en lenguaje SFC
Salidas, escrito en lenguaje ST
Subrutina"Sr_CerrarPortn" escrito en lenguaje ST

Seccin "IniciaVariables"
(*Inicializacin de la pantalla de operador*)
If %S13 then
set(MxP_Paro); (*Ponemos el Pulsador de Paro inicialmente cerrado en la pantalla*)
end_if;
Universidad de Oviedo
116 - Problemas M340 ISA

(* Generacin de las memorias que se utilizan en el programa *)


Mx_Pulsador := (Ix_Pulsador and Ix_LocDis) or(MxP_Pulsador and not Ix_LocDis);
Mx_Paro := (Ix_Paro and Ix_LocDis) or(MxP_Paro and not Ix_LocDis);
Mx_Rearme := (Ix_Rearme and Ix_LocDis) or(MxP_Rearme and not Ix_LocDis);
Mx_FCA := (Ix_FCA and Ix_LocDis) or(MxP_FCA and not Ix_LocDis);
Mx_FCC := (Ix_FCC and Ix_LocDis) or(MxP_FCC and not Ix_LocDis);

Seccin "Preliminar"
Mx_PonCI:= CLEARCHART (Control, RE(Mx_Rearme));
(*con el flanco del pulsador de Rearme, borramos todas las etapas activas del GRAFCET Control y se pone
automticamente a 1 la variable Mx_PonCI*)

If Mx_PonCI then
Sr_CerrarPorton();
end_if;

If Mx_PuestoCI and not Mx_Rearme then


setstep (Etapa1); (*Si cuando se activase el Rearme estuviese ya en Condiciones Iniciales, esta
instruccin no se ejecutara si no impusiesemos la condicin que no est activo el rearme. Recordar que
cuando est activo CLEARCHART no se ejecuta ni INITCHART ni SETSTEP *)
reset (Mx_EnParo);
reset (Mx_PuestoCI);
End_if;

if not Mx_Paro then


set (Mx_EnParo);
end_if;

If Mx_EnParo then
Mx_Congelado:= FREEZECHART(Control, true);
ELSE Mx_Congelado:= FREEZECHART(Control, false);
end_if;

If Mx_Pulsador then
reset (Mx_EnParo);
end_if;
Universidad de Oviedo Problemas M340 - 117
ISA

Seccin GRAFCET "Control"

Etapa0

Introducir "False" como


nombre de variable

False

(*Portn
Cerrado*)
Etapa1

Mx_Pulsador

Qx_Abrir

Etapa2

Mx_FCA

Etapa3

Mx_Pulsador

Qx_Cerrar

Etapa4

Mx_FCC

Seccin "Salidas"
Qx_Abrir:= ((Etapa2.x and not Mx_EnParo) or Mx_Abrir) and not Qx_Cerrar;
Qx_Cerrar:= ((Etapa4.x and not Mx_EnParo) or Mx_Cerrar) and not Qx_Abrir;
Universidad de Oviedo
118 - Problemas M340 ISA

Subrutina Sr_CerrarPortn
If not Mx_FCC then
reset (Mx_Abrir);
set (Mx_Cerrar);
ELSE Reset (Mx_Cerrar);
end_if;

If Mx_FCC then
set(Mx_PuestoCI);
Reset (Mx_PonCI);
end_if;

Pantalla de Operador
Universidad de Oviedo Problemas M340 - 119
ISA

Problema 6.1 Control de 2 cilindros.


Un sistema automtico consta de:
1 cilindro de doble efecto con electrovlvula de potencia biestable servopilotada y detector de
posicin a1.
1 cilindro de simple efecto con vstago recogido con electrovlvula de potencia monoestable
servopilotada y detectores de posicin b0 y b1.
Pulsadores de Rearme (NA), Marcha (NA) y Paro (NC).
Una luz verde y otra roja.
Inicialmente el sistema estar parado con la luz verde apagada y la luz roja en intermitencia de 2 Hz.
Cuando se active el pulsador de REARME, el CSE se pondr con el vstago recogido y el CDE con vstago
sacado y se encender la luz verde a 2 Hz y se apagar la luz roja.
Desde esta posicin inicial, cuando se active el pulsador de marcha se proceder a hacer una secuencia
B+, A-, A+, B- ininterrumpidamente hasta que se active el pulsador de paro estando la luz verde encendida
y la roja apagada.
Cuando se active el pulsador de paro se mantendr la configuracin que tuviese y no podr volver a
arrancar hasta que se active el pulsador de Marcha, la luz roja estar encendida y la luz verde apagada.
Se pide:
1. Esquema de mando
2. Esquema de fuerza
3. Tabla de variables
4. Programa de mando

PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM16025.
Las entradas irn alimentadas a 24 VDC y las salidas a 220 VCA.

Esquema de fuerza
a1 b0 b1

A- A+ B+

Seta de emergencia
0
Universidad de Oviedo
120 - Problemas M340 ISA

Esquema de mando
Universidad de Oviedo Problemas M340 - 121
ISA

Tablas de variables

Programa en ST y GRAFCET - (pr0601)


Seccin "IniciaVariables"
(*Inicializacin y gestin de la pantalla de operador*)
If %S13 then
set (MxP_Paro);
set (MxP_B0);
end_if;

If RE(Mx_Rearme) then
reset (MxP_B1);
set (MxP_B0);
end_if;

(* Generacin de las memorias que se utilizan en el programa *)


Mx_A1 := (Ix_A1 and Ix_LocDis) or (MxP_A1 and not Ix_LocDis);
Mx_B0 := (Ix_B0 and Ix_LocDis) or (MxP_B0 and not Ix_LocDis);
Mx_B1 := (Ix_B1 and Ix_LocDis) or (MxP_B1 and not Ix_LocDis);
Mx_Marcha := (Ix_Marcha and Ix_LocDis) or (MxP_Marcha and not Ix_LocDis);
Mx_Paro := (Ix_Paro and Ix_LocDis) or (MxP_Paro and not Ix_LocDis);
Mx_Rearme := (Ix_Rearme and Ix_LocDis) or (MxP_Rearme and not Ix_LocDis);
Universidad de Oviedo
122 - Problemas M340 ISA

Seccin "Preliminar"
Mx_PonCI := CLEARCHART (Control, Re(Mx_Rearme));
(* con el flanco ascendente del pulsador de rearme, reseteamos el GRAFCET de control y ponemos a 1 la
variable Mx_PonCI. En el mismo ciclo de scan que est activa la orden CLEARCHART, no se puede hacer
una posible inicializacin del CHART, ni ninguna orden SETSTEP *)

if Mx_PonCI then
setstep (Etapa1);
(* Esta instruccin se ejecuta en el ciclo siguiente al que se ejecuta la anterior, el autmata
activa la etapa1 y borra automticamente la variable Mx_PonCi *)
end_if;

if not Mx_Paro then


set (Mx_EnParada); (*Activar Luz Roja*)
end_if;

if Mx_EnParada then
SequenceFreezed := FREEZECHART (Control,true);
(*Congela el Grafcet dejando activa la etapa en la que estaba y por tanto las salidas asociadas*)
else SequenceFreezed := FREEZECHART (Control,false); (* Descongela el Grafcet *)
end_if;

if Mx_Marcha then
reset (Mx_EnParada);
end_if;

Seccin "Salidas"
Qx_Bmas:= Etapa2.x or Etapa3.x or Etapa4.x;
Qx_Amas:= Etapa4.x or Etapa1.x;
Qx_Amenos:= Etapa3.x;
Qx_Lroja:= (Etapa0.x and Mx_Osc2hz) or Mx_EnParada;
Qx_Lverde:= ((Etapa1.x and Mx_Osc2hz) or Etapa2.x or Etapa3.x or Etapa4.x or Etapa5.x) and not
Mx_EnParada;

(* Se programa el oscilador de 2 Hz, T=500 ms TON *)


t_Oscilador (IN := NOT t_Oscilador.Q, PT := t#500ms);
Mx_Osc2Hz := t_Oscilador.ET <= t#250ms;

Seccin "Transicines"
Tran_3_4:= Etapa3.T >= t#5s;
Tran_1_2:= Mx_Marcha and Mx_A1 and Mx_B0;
Universidad de Oviedo Problemas M340 - 123
ISA

Seccin GRAFCET
(* Sistema parado *)
Luz Verde apagada
Etapa0
Luz Roja 2 Hz

false

(* Sistema parado *)
Luz Verde 2Hz
Etapa1
A+

Tran_1_2
Mx_Marcha
and Mx_A1
and Mx_B0 Tran_1_2

B+
LVerde
Etapa2

Mx_B1

B+
A-
Etapa3
LVerde

Tran_3_4
Etapa3.T>=
t#5s
Tran_3_4

B+
A+
Etapa4
LVerde

Mx_A1

(*Recoje el cilindro B*)


LVerde
Etapa5

Mx_B0
Universidad de Oviedo
124 - Problemas M340 ISA

Pantalla de Operador
Universidad de Oviedo Problemas M340 - 125
ISA

Como mostrar un texto en la pantalla de operador en funcin de


una variable
El texto se puede animar y hacer que surja cuando interese un mensaje. Este mensaje estar asociado a un
nmero de mensaje. Para introducirlo, iremos y clicaremos con el botn derecho en "pantallas de
operador". En la pantalla que sale seleccionaremos "Lista de mensajes" y la abriremos. Posteriormente
introduciremos todos aquellos que nos interesen.

Cuando queramos sacar uno en la pantalla de operador, introduciremos un texto haciendo uso del icono
correspondiente de la barra IOSEditor.

Podremos animarlo para que surja cuando se active una determinada variable dentro de la pestaa
"Animacin". Posteriormente elegiremos el mensaje en la pestaa "Tipo de animacin".
Universidad de Oviedo
126 - Problemas M340 ISA

Problema 6.2 Control de plantas con barrera. Puesta en CI con


subrutina
En la figura se representa el esquema de la salida de un aparcamiento pblico, por el cual, son evacuados
los vehculos situados en dos plantas.

B1
S1S
PLANTA 1

S1E SALIDA

PLANTA 2 S3

S2S
B2
S2E

La regulacin de la salida se efectuar mediante la apertura de las barreras B1 o B2 segn proceda.


Tenemos en la misma dos lazos sensores S1E y S2E mediante los cuales se efectuar la demanda de salida y
un tercer lazo sensor S3, que nos confirmar la salida del vehculo en curso. Otros dos lazos S1S y S2S nos
informarn cuando se ha sobrepasado las barreras respectivas.
La salida de los vehculos debe efectuarse de forma tal que se evacue un vehculo de cada planta, para
evitar esperas en una de las plantas respecto a la otra.
La secuencia de apertura debe realizarse de la forma siguiente:
Se realiza la peticin de salida cuando un vehculo accede a un lazo sensor, abrindose la barrera
correspondiente, si no hay otro vehculo saliendo.
Cuando el vehculo en curso corresponda a la misma planta que el que hace la peticin de salida, la
barrera no debe de abrirse, a no ser que en la otra planta no haya una peticin de salida.
Nota: Disponemos de un pulsador (Rearme) para llevar al sistema a las condiciones iniciales en las cuales
las barreras debern estar cerradas.

PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Cuando cierre la barrera despus de pasar un coche, no sabemos si se activa primer el FCC o el
sensor que nos indica que rebas la barrera.
Universidad de Oviedo Problemas M340 - 127
ISA

Tablas de variables
Universidad de Oviedo
128 - Problemas M340 ISA

Programa en ST y SFC - (pr0602)


Seccin "Preliminar"
(* Generacin de las memorias que se utilizan en el programa *)
Mx_Fca_b1 := (Ix_Fca_b1 and Ix_LocDis) or(MxP_Fca_b1 and not Ix_LocDis);
Mx_Fca_b2 := (Ix_Fca_b2 and Ix_LocDis) or(MxP_Fca_b2 and not Ix_LocDis);
Mx_Fcc_b1 := (Ix_Fcc_b1 and Ix_LocDis) or(MxP_Fcc_b1 and not Ix_LocDis);
Mx_Fcc_b2 := (Ix_Fcc_b2 and Ix_LocDis) or(MxP_Fcc_b2 and not Ix_LocDis);
Mx_S1E := (Ix_S1E and Ix_LocDis) or(MxP_S1E and not Ix_LocDis);
Mx_S1S := (Ix_S1S and Ix_LocDis) or(MxP_S1S and not Ix_LocDis);
Mx_S2E := (Ix_S2E and Ix_LocDis) or(MxP_S2E and not Ix_LocDis);
Mx_S2S := (Ix_S2S and Ix_LocDis) or(MxP_S2S and not Ix_LocDis);
Mx_SSal := (Ix_SSal and Ix_LocDis) or(MxP_SSal and not Ix_LocDis);
Mx_Rearme := (Ix_Rearme and Ix_LocDis) or(MxP_Rearme and not Ix_LocDis);

(* Control del rearme*)


Mx_PonCI := CLEARCHART (Control, Re(Mx_Rearme)); (*con el flanco del pulsador de Rearme, borramos
todas las etapas activas del GRAFCET Control y se pone automticamente a 1 la variable Mx_PonCI*)

IF Mx_Rearme THEN
RESET (Mx_PEv);
END_IF;
Universidad de Oviedo Problemas M340 - 129
ISA

IF Mx_PonCI THEN
Sr_CerrarBarreras(); (* Se ejecuta la subrutina que cierra las barreras *)
END_IF;

(*Si estuvisemos en lenguaje FBD, deberamos pulsar sobre el 5 icono de la barra FBD-Editor, saldra el
smbolo de la figura que rellenaramos con el valor adecuado *)

IF Mx_PuestoCI and not Mx_Rearme THEN


Mx_Initstate:= Initchart (Control, true); (* se inicializa el GRAFCET borrando todas las etapas que
estuviesen activas, se pone a 1 el bit Mx_Initstate y borra automticamente el bit Mx_PonCI *)
RESET (Mx_PuestoCI); (*para que no se ejecute mas este grupo de instrucciones*)
SET (Mx_PEv);
END_IF;

Subrutina Sr_CerrarBarreras
IF NOT Mx_Fcc_b1 THEN
SET (Mx_Cerrar_b1);
ELSE
RESET (Mx_Cerrar_b1);
END_IF;

IF NOT Mx_Fcc_b2 THEN


SET (Mx_Cerrar_b2);
ELSE
RESET (Mx_Cerrar_b2);
END_IF;

IF Mx_Fcc_b1 AND Mx_Fcc_b2 THEN


RESET (Mx_PonCI); (* no sera necesario, la instruccin INITCHART la borrara automticamente*)
SET (Mx_PuestoCI);
END_IF;

Seccin "Transiciones"
Tran_0_8:= Mx_S2E and Mx_PEv and not Mx_S1E;
Tran_0_1:= Mx_S1E and Mx_PEv;

Seccin "Salidas"
Qx_Abrir_b1 := Etapa1.x;
Qx_Cerrar_b1 := Etapa3.x or Mx_cerrar_b1;
Qx_Abrir_b2 := Etapa8.x;
Qx_Cerrar_b2 := Etapa10.x or Mx_cerrar_b2;
Universidad de Oviedo
130 - Problemas M340 ISA

SFC (GRAFCET)

Etapa0

Tran_0_1 Tran_0_8
Mx_S1E and Mx_S2E and
Mx_PEv Mx_PEv and
Tran_0_1 Tran_0_8 not Mx_S1E

Abrir B1 Abrir B2
Etapa1 Etapa8

Mx_Fca_b1 Mx_Fca_b2

Etapa2 Etapa9

Mx_S1S Mx_S2S

Etapa 3 Etapa 10
Cerrar B1 Cerrar B2
Etapa3 Etapa4 Etapa10 Etapa11

Mx_Fcc_b1 Mx_SSal Mx_Fcc_b2 Mx_SSal

Etapa5 Etapa6 Etapa12 Etapa13

true true

Etapa7

NOT Mx_S2E Mx_S2E


Universidad de Oviedo Problemas M340 - 131
ISA

Pantalla de Operador

Seccin "Control_Pantalla"
(* Generacin de las memorias que se utilizan en la pantalla de operador*)
(* Este trozo de cdigo slo es til para hacer la animacin agradable, no para controlar el proceso *)
Mx_NoFC_b1 := not Mx_Fca_b1 and not Mx_Fcc_b1;
Mx_NoFC_b2 := not Mx_Fca_b2 and not Mx_Fcc_b2;

Mx_Fcc_b1_abriendo := Mx_Fcc_b1 and Qx_Abrir_b1;


Mx_Fca_b1_cerrando := Mx_Fca_b1 and Qx_Cerrar_b1;
Mx_Fcc_b2_abriendo := Mx_Fcc_b2 and Qx_Abrir_b2;
Mx_Fca_b2_cerrando := Mx_Fca_b2 and Qx_Cerrar_b2;
Mx_NoFC_b1_abriendo := Mx_NoFC_b1 and Qx_Abrir_b1;
Mx_NoFC_b1_cerrando := Mx_NoFC_b1 and Qx_Cerrar_b1;
Mx_NoFC_b2_abriendo := Mx_NoFC_b2 and Qx_Abrir_b2;
Mx_NoFC_b2_cerrando := Mx_NoFC_b2 and Qx_Cerrar_b2;

IF Mx_Rearme THEN
SET (Mx_coches12_entrada);
RESET (Mx_coches12_salida);
SET (Mx_coches34_entrada);
RESET (Mx_coches34_salida);
END_IF;
Universidad de Oviedo
132 - Problemas M340 ISA

Mx_Flanco_1E := FE(Mx_S1E);

IF Mx_Flanco_1E THEN
IF Mx_coches12_entrada and not Mx_coches12_salida THEN
RESET (Mx_coches12_entrada);
SET (Mx_coches12_salida);
RESET (Mx_Flanco_1E);
END_IF;
END_IF;

Mx_coche1_1E := Mx_S1E and Mx_coches12_entrada;


Mx_coche2_1E := Mx_S1E and not Mx_coches12_entrada;
Mx_Flecha_b1 := Mx_S1E and Mx_Fca_b1 and not Mx_coches12_S and not Etapa4.x;
Mx_coche1_1S := not Mx_Flecha_b1 and Etapa2.x and Mx_coches12_salida;
Mx_coche2_1S := not Mx_Flecha_b1 and Etapa2.x and not Mx_coches12_salida;
Mx_coches12_S := not Mx_Flecha_b1 and Etapa2.x;
Mx_coche1_S := Etapa4.x and Mx_coches12_salida;
Mx_coche2_S := Etapa4.x and not Mx_coches12_salida;
Mx_Flanco_2E := FE(Mx_S2E);

IF Mx_Flanco_2E THEN
IF Mx_coches34_entrada and not Mx_coches34_salida THEN
RESET (Mx_coches34_entrada);
SET (Mx_coches34_salida);
RESET (Mx_Flanco_2E);
END_IF;
END_IF;

IF Mx_Flanco_2E THEN
IF not Mx_coches34_entrada and Mx_coches34_salida THEN
SET (Mx_coches34_entrada);
RESET (Mx_coches34_salida);
RESET (Mx_Flanco_2E);
END_IF;
END_IF;

Mx_coche3_1E := Mx_S2E and Mx_coches34_entrada;


Mx_coche4_1E := Mx_S2E and not Mx_coches34_entrada;
Mx_Flecha_b2 := Mx_S2E and Mx_Fca_b2 and not Mx_coches34_S and not Etapa11.x;
Mx_coche3_1S := not Mx_Flecha_b2 and Etapa9.x and Mx_coches34_salida;
Mx_coche4_1S := not Mx_Flecha_b2 and Etapa9.x and not Mx_coches34_salida;
Mx_coches34_S := not Mx_Flecha_b2 and Etapa9.x;
Mx_coche3_S := Etapa11.x and Mx_coches34_salida;
Mx_coche4_S := Etapa11.x and not Mx_coches34_salida;
Universidad de Oviedo Problemas M340 - 133
ISA

Problema 6.3 Control de acceso a garaje con semforos


Un garaje pblico de 100 plazas de capacidad, tiene un acceso a travs de una acera de uso peatonal. Para
evitar conflictos, se opt por una regulacin automtica de entrada y salida de vehculos, de forma tal, que
cuando uno quiera entrar o salir, la red semafrica instalada al efecto adopte la disposicin conveniente. En
la figura vemos esta red, disponiendo sta, de un semforo que controla el paso de peatones, otro que
controla la entrada de vehculos, y un tercero que controla la salida de estos del interior del garaje.

.
S.E
S.P.

DA
RA
EN
TR E NT
AD
A
SE
G SEC
FCA

100 PLAZAS

FCC SS
A C
ALID SA
LID
S
A
G
SS

S.S.

a) Para que un vehculo pueda entrar tiene que tener plaza de aparcamiento, lo cual, se indicar
mediante la activacin del foco azul (salida = "1" ). El nmero de plazas de que dispone el
aparcamiento es de cien. Adems no tienen que tener permiso de paso los peatones.
La demanda de entrada se hace mediante el lazo "SEC". Cuando ste se active, caben las opciones
siguientes:
Si "SE" se halla en verde, el vehculo entrar y contabilizar en uno ms el nmero de vehculos
estacionados en el interior del garaje cuando active el lazo sensor "SEG".
Si "SE" se halla en rojo, debido a que se encuentra saliendo otro vehculo, deber esperar a que el
vehculo que sale active el lazo sensor de salida "SSC". A partir de este momento se har efectiva la
demanda de entrada.
Si cuando se produce la demanda de entrada el semforo de peatones se halla en verde, el vehculo
que ha efectuado la demanda de entrada, debe permanecer en espera hasta que las condiciones le
Universidad de Oviedo
134 - Problemas M340 ISA

permitan entrar.
b) La demanda de salida se hace mediante el lazo sensor "SSG". Cuando ste se active, caben las opciones
siguientes:
Si "SS" se halla en verde, saldr y descontar en uno el nmero de vehculos estacionados en el interior
del garaje cuando se active el lazo sensor "SSC".
Si "SS" se halla en rojo, debido a que se encuentra entrando otro vehculo, deber esperar a que el
vehculo que entra active el lazo sensor de entrada "SEG". A partir de este momento se har efectiva la
demanda de salida.
Si cuando se produce la demanda de salida el semforo de peatones se halla en verde, el vehculo que
ha efectuado la demanda de salida, debe permanecer en espera hasta que las condiciones le permitan
salir.
c) ANTE UNA DEMANDA DE ENTRADA Y SALIDA SIMULTNEA , LA SALIDA ES SIEMPRE PRIORITARIA.
d) El portn se abrir ante una demanda de entrada o de salida, cuando ste accione el final de carrera
de apertura "C", activar la luz verde del semforo que corresponda con la demanda de apertura
solicitada. A su vez el cierre del mismo se llevar a efecto una vez se active el lazo sensor
correspondiente, segn corresponda a una entrada (SEG) o una salida (SSC).
Si se halla en verde el semforo de peatones el portn debe permanecer cerrado como medida de
seguridad.
e) El paso de peatones lo regula el semforo "SP", ste se rige por una secuencia fija de 20 s.. en verde y
40 s.. en rojo. Este semforo, controla a su vez a los otros dos, ya que tienen que sincronizarse con l.
Se dispondr de un pulsador para resetear el sistema y llevarlo a las Condiciones Iniciales con el portn
cerrado.

PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.

Cronograma

Semforo de Peatones

Qx_SPVerde

20 60

seg.
Qx_SPRojo

40

Mx_PA

24 54 seg.
Universidad de Oviedo Problemas M340 - 135
ISA

Tablas de variables
Universidad de Oviedo
136 - Problemas M340 ISA

Programa en ST y GRAFCET - (pr0603)


Seccin en SFC (GRAFCET)
SE Rojo
SS Rojo
Etapa0

Tran_0_1 Tran_0_6
Mx_SSGaraje and Mx_PA not Mx_SSGaraje and
Mx_SECalle and Mx_PA and
Tran0_1 Tran0_6 Contador.CV < 100

SE Rojo SE Rojo
SS Rojo SS Rojo
Etapa1 Etapa6
Abrir Abrir

Mx_FCA Mx_FCA

SE Rojo SE Verde
SS Verde SS Rojo
Etapa2 Etapa7

NOT Mx_SSGaraje NOT Mx_SECalle

SE Rojo SE Rojo
SS Rojo SS Rojo
Etapa3 Etapa8

Mx_SSCalle Mx_SEGaraje

SE Rojo SE Rojo
SS Rojo SS Rojo
Etapa4 Etapa9
Dec Contador Inc Contador

Tran4_2 Tran4_5 Tran4_7 Tran9_2 Tran9_5 Tran9_7

Tran4_2 SE Rojo
Mx_SSGaraje and SS Rojo
Etapa5
Mx_PA Cerrar

Tran9_2 Tran9_5 Tran9_7


Mx_SSGaraje and (not Mx_SECalle and not not Mx_SSGaraje and
Mx_PA Mx_SSGaraje) or Mx_SECalle and Mx_PA and
Mx_FCC not Mx_PA Contador.CV < 100

Tran4_5 Tran4_7
(not Mx_SEntCalle and Mx_SEntCalle and
not Mx_SSalGaraje) or Mx_PermApertura and
not Mx_PermApertura not Mx_SSalGaraje

Seccin "Transiciones"
Tran0_1:= Mx_SSGaraje and Mx_PermApertura;
Tran4_2:= Mx_SSGaraje and Mx_PermApertura;
Tran4_5:= (not Mx_SECalle and not Mx_SSGaraje) or not Mx_PermApertura;
Tran4_7:= Mx_SECalle and Mx_PermApertura and not Mx_SSGaraje;
Tran0_6:= not Mx_SSGaraje and Mx_SECalle and Mx_PermApertura and Contador.CV < 100;
Tran9_2:= Mx_SSGaraje and Mx_PermApertura;
Tran9_5:= (not Mx_SECalle and not Mx_SSGaraje) or not Mx_PermApertura;
Tran9_7:= not Mx_SSGaraje and Mx_SECalle and Mx_PermApertura and Contador.CV < 100;
Universidad de Oviedo Problemas M340 - 137
ISA

Preliminar
(*Generacin de seales*)
Mx_FCA := (Ix_FCA and Ix_LocDist) or(MxP_FCA and not Ix_LocDist);
Mx_FCC := (Ix_FCC and Ix_LocDist) or(MxP_FCC and not Ix_LocDist);
Mx_Rearme := (Ix_Rearrme and Ix_LocDist) or(MxP_Rearme and not Ix_LocDist);
Mx_SECalle := (Ix_SECalle and Ix_LocDist) or(MxP_SECalle and not Ix_SECalle);
Mx_SSCalle := (Ix_SSCalle and Ix_LocDist) or(MxP_SSCalle and not Ix_SSCalle);
Mx_SEGaraje := (Ix_SEGaraje and Ix_LocDist) or(MxP_SEGaraje and not Ix_SEGaraje);
Mx_SSGaraje := (Ix_SSGaraje and Ix_LocDist) or(MxP_SSGaraje and not Ix_SSGaraje);

IF %S13 THEN (* S13 Se pone a 1 en el primer ciclo de programa, y slo en el primero, despus de STOP
cuando el autmata pasa a RUN *)
ClearState := CLEARCHART (Control,true); (* Anula el grafcet *)
END_IF;

Mx_PonCI := CLEARCHART (Control, RE (Mx_Rearme)); (* Anula el grafcet *)

IF RE (Mx_Rearme) THEN
RESET (Mx_IniCiclo);
END_IF;

IF Mx_PonCI THEN
Sr0 (); (* ejecuta la subrutina que pone en condiciones iniciales *)
END_IF;

IF Mx_PuestoCI AND NOT Mx_Rearme THEN


RESET (Mx_PuestoCI);
InitState := INITCHART (Control, true); (* activa la etapa inicial y resetea el resto de etapas*)
SET (Mx_IniCiclo);
END_IF;

Posterior
(*Portn*)
Qx_Abrir:= Etapa1.x OR Etapa6.x;
Qx_Cerrar:= Etapa5.x OR Mx_Cerrar;

(*Semforo de peatones*)
Qx_SPVerde:= Mx_IniCiclo AND t_Temporizador.ET <= t#20s;
Qx_SPRojo:= Mx_IniCiclo AND NOT Qx_SPVerde;

(*Semforo de entrada*)
Qx_SEVerde:= Etapa7.x;
Qx_SERojo:= NOT Qx_SEVerde;
Qx_SEAzul:= Contador.CV <100;

(*Semforo de salida*)
Qx_SSVerde:= Etapa2.x;
Qx_SSRojo:= NOT Qx_SSVerde;

(*Contador*)
Contador (CU := Mx_SEGaraje,
Universidad de Oviedo
138 - Problemas M340 ISA

CD := Mx_SSCalle,
R := Mx_Rearme);

(*Arranca temporizador de ciclo tipo TON*)


t_Temporizador (IN := MX_IniCiclo AND NOT t_Temporizador.Q,
PT := t#60s);

(* Permiso de apertura del portn*)


Mx_PermApertura:= t_Temporizador.ET >= t#24s AND t_Temporizador.ET <= t#54s;

(* Marca generada para saber cuando se est moviendo el portn en la pantalla de operador *)
Mx_PortonMoviendose:= Etapa1.x or Etapa5.x or Etapa6.x ;

Subrutina "Sr0"
IF NOT Mx_FCC THEN
SET (Mx_cerrar);
ELSE RESET (Mx_Cerrar);
END_IF;

IF Mx_FCC THEN
SET (Mx_PuestoCI);
RESET (Mx_PonCI);
END_IF;

Pantalla de Operador
Universidad de Oviedo Problemas M340 - 139
ISA

Problema 6.4 Manipulador 2 ejes con cilindros


Se desea automatizar un dispositivo clasificador de piezas con un autmata Modicon M340. El mdulo de
entradas es NPN y el de salida PNP. El sistema consta de un cilindro sin vstago B en cuyo cursor est
acoplado otro cilindro A de simple efecto y una pequea plataforma.
El cilindro B, est gobernado por una electrovlvula servopilotada de potencia biestable 5/2. El cilindro A
est gobernado por una electrovlvula servopilotada de potencia monoestable 3/2.
Inicialmente el sistema estar parado con una luz roja y otra verde encendindose alternativamente a 1
Hz.
Cuando se pulse Rearme, el sistema ser llevado a condiciones iniciales: cilindro B en la posicin inferior,
cilindro A recogido. En ese instante quedar encendida la luz verde de forma permanente. Cuando se pulse
Marcha el sistema estar en disposicin de clasificar las piezas.
Las piezas pueden ser de dos tipos: metlicas o de plstico.
La alimentacin de las piezas se realiza mediante una rampa central y van cayendo una a una cuando el
cilindro A (CSE) est en la posicin inferior b0, retraido a0, y no hay pieza en la plataforma (ni el sensor
inductivo ni el capacitivo detectan).
Cuando una pieza cae en la plataforma, un sensor detecta la presencia de esta y el otro distingue si es
metlica o no. A continuacin se procede a la clasificacin de las piezas en dos bandejas:
La bandeja inferior es para las piezas de plstico (el cilindro A avanza hasta a1, espera 1s y
retrocede hasta a0).
La bandeja superior es para las metlicas (el cilindro B sube, arrastrando al A hasta b1, el A
avanza entonces hasta a1 espera 1s, retrocede hasta a0, y el B baja, arrastrando al A hasta b0).

Terminado el ciclo, caer una nueva pieza en la bandeja, repitiendose el proceso.


Paro: Cuando se active el pulsador de Paro (NC), se proceder a inmovilizar el sistema apagndose la la luz
Verde y encendindose la luz Roja. Se saldr de esta situacin cuando se pulse de nuevo Marcha. En ese
momento, el sistema continuar en el mismo punto en el que estaba.

SE PIDE: Esquema de mando y de fuerza con todos los elementos necesarios y el programa de control.
Universidad de Oviedo
140 - Problemas M340 ISA

Tabla de variables
Universidad de Oviedo Problemas M340 - 141
ISA

Programa en ST y GRAFCET - (pr0604)


Seccin "Preliminar"
(* Marcas necesarias para animar la pantalla de operador*)
if %S13 then
set (MxP_Paro); set (MxP_b1); set (MxP_a0);
end_If;

MxP_b0a0:=S_Inicio.x or S_Espera.x or S_Identifica.x or S_Amas_1.x or S_Bmas.x and not MxP_enmedio;


MxP_b0a0Plastico:= MxP_b0a0 and Mx_S_Capacitivo ;
MxP_b0a0Metal:= MxP_b0a0 and Mx_S_Inductivo and Mx_S_Capacitivo;
MxP_b0a1:=S_Retardo_2.x or S_Amenos_1.x;

MxP_b1a0Metal:= MxP_b1a0 and S_Amas_2.x;


MxP_b1a1Metal:= MxP_b1a1 and (S_Retardo_3.x or S_Amenos_2.x);

MxP_b1a0:=S_Amas_2.x or S_Bmenos.x and not MxP_enmedio;


MxP_b1a1:=S_Retardo_3.x or S_Amenos_2.x;
MxP_subiendo:=Qx_Bmas and not Mx_b0;
MxP_bajando:=Qx_Bmenos and not Mx_b1;
MxP_enmedio:=MxP_subiendo or MxP_bajando;

If S_Identifica.t > t#2s and not Mx_S_Inductivo then


set (MxP_PiezaPlastico);
else set(MxP_PiezaMetal);
end_if;

If S_Espera.x then
reset (MxP_PiezaPlastico);
reset(MxP_PiezaMetal);
end_if;

If S_Amas_2.x then
reset (MxP_S_Capacitivo); reset (MxP_S_Inductivo);
end_if;

If S_Retardo_2.x then
reset (MxP_S_Capacitivo);
end_if;

(* Marcas usadas en el control Local / Distancia *)


Mx_a0:= (Ix_a0 and Ix_Local_Dist) or (MxP_a0 and not Ix_Local_Dist);
Mx_a1:= (Ix_a1 and Ix_Local_Dist) or (MxP_a1 and not Ix_Local_Dist);
Universidad de Oviedo
142 - Problemas M340 ISA

Mx_b0:= (Ix_b0 and Ix_Local_Dist) or (MxP_b0 and not Ix_Local_Dist);


Mx_b1:= (Ix_b1 and Ix_Local_Dist) or (MxP_b1 and not Ix_Local_Dist);
Mx_S_Capacitivo:= (Ix_S_Capacitivo and Ix_Local_Dist) or (MxP_S_Capacitivo and not Ix_Local_Dist);
Mx_S_Inductivo:= (Ix_S_Inductivo and Ix_Local_Dist) or (MxP_S_Inductivo and not Ix_Local_Dist);
Mx_Rearme:= (Ix_Rearme and Ix_Local_Dist) or (MxP_Rearme and not Ix_Local_Dist);
Mx_Paro:= (Ix_Paro and Ix_Local_Dist) or (MxP_Paro and not Ix_Local_Dist);
Mx_Marcha:= (Ix_Marcha and Ix_Local_Dist) or (MxP_Marcha and not Ix_Local_Dist);

(* Condicin de Rearme *)
Mx_PonCI := clearchart (Control, RE(Mx_Rearme)); (* con el flanco ascendente del pulsador de rearme,
reseteamos el GRAFCET de control y ponemos a 1 la variable Mx_PonCI *)

if Mx_PonCI and not Mx_Rearme then


Sr_Inicializa(); (* ejecutamos la subrutina de inicializar *)
end_if;

if Mx_PuestoCi then
setstep (S_Inicio); (* ponemos el GRAFCET de control en la etapa S_Inicio y el AP borra
automaticamente la variable Mx_PonCI *)
reset (Mx_PuestoCi);
end_if;

if not Mx_Paro then


set(Mx_EnParada);
end_if;

if Mx_EnParada then
Mx_ParoGrafcet := freezechart (Control,true); (* Congela el Grafcet, dejando activa la etapa en la
que queda congelado *)
else Mx_ParoGrafcet := freezechart (Control,false);
end_if;

if Mx_Marcha then
reset (Mx_EnParada);
end_if;

Seccin "Transiciones"
Tran1:= Mx_Marcha and Mx_a0 and Mx_b0;
Tran2:= S_Identifica.t > t#3s and not Mx_S_Inductivo;
Tran3:= S_Retardo_2.t > t#1s;
Tran4:= S_Identifica.t > t#3s and Mx_S_Inductivo;
Tran5:= S_Retardo_3.t > t#1s;

Seccin "Salidas"
Qx_Amas:= S_Amas_1.x or S_Amas_2.x or S_Retardo_2.x or S_Retardo_3.x;
Qx_Bmas:= S_Bmas.x;
Qx_Bmenos:= S_Bmenos.x or (S_inicio.x and not Mx_S_Capacitivo and not Mx_bo) or Mx_Bmenos; (*La
segunda condicn se debe al rearme y se debe asegurar la ausencia de pieza*);
Qx_L_Roja:= (S_Rearme.x and %S6) or Mx_EnParada;
Qx_L_Verde:= ((S_Rearme.x and not %S6) or (not S_Rearme.x and not Mx_PonCi) and not Mx_EnParada);
Universidad de Oviedo Problemas M340 - 143
ISA

Subrutina "Sr_Inicializa"
(* Durante el rearme se debe asegurar la ausencia de pieza*)
if not Mx_b0 and not Mx_S_Capacitivo then
set (Mx_Bmenos);
else reset (Mx_Bmenos);
end_if;

if not Mx_a0 then


reset (Qx_Amas);
end_if;

if Mx_b0 and Mx_a0 then


set (Mx_PuestoCi);
reset (Mx_PonCi);
end_if;

Pantalla de Operador
Universidad de Oviedo
144 - Problemas M340 ISA

Grafcet de mando
Luz Roja y Verde a 1Hz alternativamente
Esperamos la pulsacin de REARME
S_Rearme

false

Luz Verde
Los cilindros estn en sus posiciones iniciales
S_Inicio

Tran1 En espera de detectar la presencia de una pieza


Mx_Marcha and Mx_a0 and
Mx_b0;
Tran1

S_Espera

Mx_S_Capacitivo

Siendo Mx_Sensor_Cap = 1, se procede a identificar la pieza;


- Si Mx_Sensor_Ind = 1 entonces la pieza es metlica
S_Identifica
- Si Mx_Sensor_Ind = 0 entonces la pieza es de plstico

Tran2 Plstico Tran4 Metal


S_Identifica.t > t#3s and S_Identifica.t > t#3s and
not Mx_Sensor_Ind Mx_Sensor_Ind
Tran2 Tran4

Sacar el vstago A Elevar plataforma (B+)


S_Amas_1 S_Bmas

Mx_a1 Mx_b1

Temporizacin de 1 segundo Sacar el vstago A


manteniendo la presurizacin
S_Retardo_2 S_Amas_2
en el cilindro A (A+)

Tran 3
S_Retardo_2.t > t#1s;

Tran3 Mx_a1

Recoger el vstago A Temporizacin de 1 segundo


manteniendo la presurizacin
S_Amenos_1 S_Retardo_3
en el cilindro A (A+)

Tran5
S_Retardo_3.t > t#1s;

Mx_a0 Tran5

Recoger el vstago A
S_Espera S_Amenos_2

Mx_a0

Retraccin del vstago B (B-)


S_Bmenos

Mx_b0

S_Espera
Universidad de Oviedo Problemas M340 - 145
ISA

Problema 6.5 Control de un silo y vagoneta


La imagen muestra un vagn cisterna que transportar un material suministrado por un silo hacia una zona
de descarga. El vagn debe estar inicialmente en la parte izquierda de la figura indicada por el final de
carrera FC_INICIO (NC). En ese lugar se dispone de un sensor capaz de pesar el vagn y de generar la seal
VACIO si el vagn est vaco o la seal LLENO si el peso del vagn es el mximo permitido. Se desea
automatizar el proceso mediante el PLC M340 de Schneider.

Cuando se establezca el modo RUN en el PLC, el sistema deber estar parado con la luz verde y la luz roja
en intermitencia de 1 Hz alternadamente.
Para ir a CI, cuando se active el pulsador de REARME, el vagn se llevar a la zona de descarga -derecha-
indicndolo un FC_DESCARGA (NC). Se descargar (durante 5 minutos) y volver a la posicin de inicio.
Durante este proceso de rearme, se encender la luz verde a 1 Hz y se apagar la luz roja.
Alcanzada mediante este procedimiento la posicin inicial, cuando se active el pulsador de MARCHA, la luz
verde lucir de forma fija y se llevar a cabo el proceso que se describe a continuacin:
Se proceder a abrir el silo mediante la apertura de la vlvula V_SILO, permitiendo la descarga de material
y llevando a cabo el llenado del vagn. Solamente ser posible la apertura de V_SILO si el vagn se
encuentra en la posicin de inicio totalmente descargado y se ha procedido a accionar el pulsador
MARCHA.
Si el llenado del vagn no se completa en menos de 10 minutos debe procederse al cierre de la vlvula del
silo y el vagn deber llevarse a la zona de descarga. En esta zona de descarga, el vagn verter su
contenido abriendo la vlvula V_VAGON durante 5 minutos. Transcurridos estos 5 minutos, el vagn
deber retroceder a la posicin inicial.
Si se ha realizado el llenado del vagn en menos de 10 minutos, este deber avanzar hacia la zona de
descarga. De idntica forma a la descrita anteriormente, verter su contenido durante 5 minutos y volver
a la posicin inicial.
Cuando se active el pulsador de PARO (NC) se mantendr la configuracin que tuviese y no podr volver a
arrancar hasta que se active el pulsador de MARCHA, la luz roja estar encendida y la luz verde apagada.

SE PIDE: Esquema de mando y de fuerza con todos los elementos necesarios y el programa de control.
Universidad de Oviedo
146 - Problemas M340 ISA

Tabla de variables
Universidad de Oviedo Problemas M340 - 147
ISA

Programa en ST y GRAFCET - (pr0605)


Seccin "Preliminar"
(* Marcas necesarias para la pantalla de operador *)
if %s13 then
set (MxP_Paro); set (MxP_FCInicio); set (MxP_FCDescarga);
end_If;

(* Marcas usadas en el control Local / Distancia *)


Mx_Marcha:= (Ix_Marcha and Ix_LocDist) or (MxP_Marcha and not Ix_LocDist);
Mx_Paro:= (Ix_Paro and Ix_LocDist) or (MxP_Paro and not Ix_LocDist);
Mx_Rearme:= (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist);
Mx_Lleno:= (Ix_Lleno and Ix_LocDist) or (MxP_Lleno and not Ix_LocDist);
Mx_Vacio:= (Ix_Vacio and Ix_LocDist) or (MxP_Vacio and not Ix_LocDist);
Mx_FCInicio:= (Ix_FCInicio and Ix_LocDist) or (MxP_FCInicio and not Ix_LocDist);
Mx_FCDescarga:= (Ix_FCDescarga and Ix_LocDist) or (MxP_FCDescarga and not Ix_LocDist);

(* Condicin de Rearme *)
Mx_PonCI := clearchart (Control, RE(Mx_Rearme)); (*con el flanco ascendente del pulsador de rearme,
desactivamos el GRAFCET denominado Control y ponemos a 1 la variable Mx_PonCI*)
Mx_PonCI := clearchart (Rearme, RE(Mx_Rearme)); (*con el flanco ascendente del pulsador de rearme,
desactivamos el GRAFCET denominado Rearme y ponemos a 1 la variable Mx_PonCI*)

if Mx_PonCI and not Mx_Rearme then


setstep(Etapa11);
reset (Mx_EnParada);
end_if;

if Mx_PuestoCI then (*se activa el GRAFCET principal de Control en la etapa 1 que corresponde al estado
de condiciones iniciales y se liberan las acciones de salida*)
setstep(Etapa1); (*se borra automaticamente la variable Mx_PonCi*)
reset(Mx_PuestoCI);
end_if;

if not Mx_Paro then


set(Mx_EnParada);
end_if;

if Mx_EnParada then
Mx_ParoGrafcet := freezechart (Control,true);
(* Congela el Grafcet, dejando activa la etapa en la que queda congelado *)
else Mx_ParoGrafcet := freezechart (Control,false);
end_if;

if Mx_Marcha then
reset (Mx_EnParada);
end_if;
Universidad de Oviedo
148 - Problemas M340 ISA

Seccin "Transiciones"
Tran_1_2 := Mx_Marcha and not Mx_FCInicio and Mx_Vacio;
Tran_2_3 := Mx_Lleno or Etapa2.t>t#10s;
Tran_4_5 := Etapa4.t>t#10s;
Tran_12_13 := Etapa12.t>t#10s;

Seccin "Salidas"
Qx_LRoja := (Etapa0.x and %S6) or Mx_EnParada; (*El bit S6, es un bit del sistema que oscila a 1 Hz *)
Qx_LVerde := (((Etapa0.x and not %S6) or (Etapa1.x or Etapa2.x or Etapa3.x or Etapa4.x or Etapa5.x)) and
not Mx_EnParada) or ((Etapa11.x or Etapa12.x or Etapa13.x or Etapa14.x) and %S6);
Qx_VSilo := Etapa2.x and not Mx_EnParada;
Qx_Avance := (Etapa3.x or Etapa11.x) and not Mx_EnParada;
Qx_VVagon := (Etapa4.x or Etapa12.x) and not Mx_EnParada;
Qx_Retroceso := (Etapa5.x or Etapa13.x) and not Mx_EnParada;
Mx_PuestoCI := Etapa14.x;

Pantalla de Operador
Universidad de Oviedo Problemas M340 - 149
ISA

Grafcet de rearme Grafcet de control

Etapa10

false

Qx_Avance
Qx_LVerde 1Hz
Etapa11

Not
Mx_FCDescarga

NOT Mx_FCDescarga

Qx_VVagn
Qx_LVerde 1Hz
Etapa12

Etapa12.t>5m

Tran_12_13

Qx_Retroceso
Qx_LVerde 1Hz
Etapa13

Not
Mx_FCInicio

NOT Mx_FCInicio

Mx_PuestoCI
Etapa14

Etapa1.x
Universidad de Oviedo
150 - Problemas M340 ISA

Seccin "ControlPantalla"
(* Marcas necesarias para gestionar la pantalla *)
MxP_Inicio_Avance:=not Mx_FCInicio and (Etapa3.x or Etapa11.x);
MxP_Inicio:=(Etapa1.x or Etapa2.x) and not MxP_Inicio_VagonSemiLleno and not MxP_Inicio_VagonLleno ;

MxP_Cargando1:=Etapa2.x and Etapa2.t<t#5s;

if Mx_Vacio and Etapa2.x then


reset(MxP_VagonLleno);
reset (MxP_VagonSemiLleno);
end_if;

if Etapa2.t>t#5s and not MxP_VagonLleno then


set (MxP_VagonSemiLleno);
end_if;

if Mx_Lleno and Etapa2.x and Etapa2.t<t#10s then


set (MxP_VagonLleno);
reset (MxP_VagonSemiLleno);
end_if;

if Etapa2.t>t#10s and not MxP_VagonLleno then


set (MxP_VagonSemiLleno);
end_if;

MxP_Inicio_VagonSemiLleno:=(not Mx_FCInicio and Etapa2.x and MxP_VagonSemiLleno) or (not


Mx_FCInicio and Etapa11.x);
MxP_Inicio_VagonLleno:=not Mx_FCInicio and Etapa2.x and MxP_VagonLleno;
MxP_Inicio_Avance_VagonLleno:=not Mx_FCInicio and Etapa3.x and MxP_VagonLleno;
MxP_Inicio_Avance_VagonSemiLleno:=not Mx_FCInicio and Etapa3.x and MxP_VagonSemiLleno;
MxP_AvanceLleno:=Etapa3.x and MxP_VagonLleno and Mx_FCInicio;
MxP_AvanceSemiLleno:= ((Etapa3.x and MxP_VagonSemiLleno) or (Etapa11.x)) and Mx_FCInicio;

MxP_Descargando1:=(Etapa4.x and Etapa4.t<t#2.5s) and MxP_VagonLleno;


MxP_Descargando2:=(Etapa4.x and Etapa4.t>t#2.5s) or Etapa12.x or (Etapa4.x and MxP_VagonSemiLleno);
MXP_Retroceso:= Mx_FCDescarga and (Etapa5.x or Etapa13.x);
MxP_Descargado_Retroceso:=not Mx_FCDescarga and (Etapa5.x or Etapa13.x);

if Etapa4.x then
MtP_TiempoDescarga:=Etapa4.t;
end_if;

if Etapa12.x then
MtP_TiempoDescarga:=Etapa12.t;
end_if;

if Etapa2.x then
MtP_TiempoLlenado:=Etapa2.t;
end_if;
Universidad de Oviedo Problemas M340 - 151
ISA

GRAFCETs Coordinados
CONTROL SUBPROCESO1 SUBPROCESO2

Cuando se quiere automatizar un proceso complejo, en vez de hacer un nico GRAFCET de control es
preferible dividir la tarea en subprocesos. Se estableceran unos GRAFCETs que controlen esos subprocesos
de forma que acten de forma coordinada cuando se lo indique un GRAFCET de control.
En el caso superior, el subproceso1, comenzar cuando el GRAFCET de control se encuentre con su etapa2
activa. Cuando se active denuevo la etapa inicial nmero 10, el GRAFCET de control seguir evolucionado
normalmente y pasar a activar la etapa3.
Cuando se active la etapa4, comenzar a ejecutarse el subproceso2 hasta que vuelva a activarse la etapa
inicial 20. En ese momento, el GRAFCET de control abandonar la etapa4 y activar la etapa5.
Otra forma de hacerlo con una etapa final en los subprocesos que no haga ninguna accin sera:
Universidad de Oviedo
152 - Problemas M340 ISA

Problema 7.1 Control de 2 cintas


Disear el circuito de mando para el control de dos cintas de una instalacin.
CI : Inicialmente las dos cintas estarn desconectadas y las lmparas de desconexin LDesC1 y LDesC2
estarn encendidas y el resto apagadas.
Cuando se pulse PCon se conectar la cinta 1 y la cinta 2 de forma automtica, quedando encendidas las
lmparas de conexin LConC1 y LConC2 y apagadas el resto.
DESCONEXIN: Despus de accionar el pulsador de desconexin PDes:
La cinta 1 debe permanecer en rgimen de descarga durante 20 segundos, activndose
intermitentemente a 2 Hz una lmpara mbar LDescargaC1, estando las de conexin y desconexin
apagadas. Cuando acabe el proceso de descarga slo quedar encendida la lmpara LDesC1.
La cinta 2 permanecer en rgimen de descarga durante 40 segundos, activndose intermitentemente
a 2 Hz una lmpara mbar LDescargaC2, estando las de conexin y desconexin apagadas. Cuando
acabe el proceso de descarga slo quedar encendida la lmpara LDesC2.
EMERGENCIA: Mediante un pulsador de emergencia (NC) parar tanto la cinta 2 como la 1, quedando
encendida permanentemente las lmparas de descarga 1 y 2 y apagadas las dems.
VIGILANCIA: Unas vigilancias de cintas sealizan el movimiento de las mismas, no debiendo bajar las ruedas
motrices de una velocidad w = 2 rad/s. Estas seales no se evaluarn durante la fase de arranque, que
dura 5 segundos.
Si en marcha normal desaparece la seal de vigilancia de la cinta 1, hay que parar inmediatamente dicha
cinta, dejando funcionar en rgimen de descarga la cinta 2. Para avisar de la avera la lmpara LDesC1 de la
cinta 1 se encender parpadeando a una frecuencia de 2 Hz y el resto apagadas.
Si el fallo se produce en la cinta 2, deber pararse inmediatamente las dos cintas. Avisando de la avera,
mediante el encendido de la lmpara de desconexin LDesC2 con una frecuencia de parpadeo de 2 Hz y el
resto apagadas.
Retorno CI: Para retornar a las condiciones iniciales se pulsar PRearme.

PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo Problemas M340 - 153
ISA

Programa en ST y GRAFCET - (pr0701)


Tabla de variables
Universidad de Oviedo
154 - Problemas M340 ISA

Grafcet de mando

Grafcets de las cintas:


Universidad de Oviedo Problemas M340 - 155
ISA

Preliminar
(*Inicializacin de la pantalla de operador*)
If %S13 then
set(MxP_Emergencia); set(MxP_Vig_C1); set(MxP_Vig_C2); set (MxP_Desc);
end_if;

(* Marcas para el control Local / Distancia *)


Mx_Con := (Ix_Con and Ix_LocDist) or (MxP_Con and not Ix_LocDist);
Mx_Desc := (Ix_Desc and Ix_LocDist) or (MxP_Desc and not Ix_LocDist);
Mx_Emergencia := (Ix_Emerg and Ix_LocDist) or (MxP_Emergencia and not Ix_LocDist);
Mx_Rearme := (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist);
Mx_Vig_C1 := (Ix_Vig_C1 and Ix_LocDist) or (MxP_Vig_C1 and not Ix_LocDist);
Mx_Vig_C2 := (Ix_Vig_C2 and Ix_LocDist) or (MxP_Vig_C2 and not Ix_LocDist);

if not Mx_Emergencia Then (* Borra Grafcets*)


Mx_ClearState := CLEARCHART (Mando, true) ;
Mx_ClearState := CLEARCHART (Cinta_C1, true) ;
Mx_ClearState := CLEARCHART (Cinta_C2, true) ;
set (Mx_EnEmergencia);
end_if;

if Mx_Av_C1 then (* Borra el GRAFCET de la C1 y pone el GRAFCET de mando en descarga de C2 *)


Resetstep(Etapa11); Resetstep(Etapa12);
Resetstep(Etapa1); Resetstep(Etapa2); setstep(Etapa3);
end_if;

if RE (Mx_Av_C2) then (* Borra todos los Grafcets*)


Mx_ClearState := CLEARCHART (Mando, true) ;
Mx_ClearState := CLEARCHART (Cinta_C1, true) ;
Mx_ClearState := CLEARCHART (Cinta_C2, true) ;
end_if;

if Mx_Rearme then (* INITCHART Activa las etapas iniciales y resetea el resto de etapas *)
Mx_InitState := INITCHART (Mando, true) ;
Mx_InitState := INITCHART (Cinta_C1, true) ;
Mx_InitState := INITCHART (Cinta_C2, true) ;
reset (Mx_Av_C1) ; reset (Mx_Av_C2); reset (Mx_EnEmergencia);
end_if;

Seccin "Salidas"
Qx_Mot_C1 := Etapa11.x or Etapa12.x;
Qx_Mot_C2 := Etapa21.x or Etapa22.x;

Qx_Lcon_C1 := Etapa11.x;
Qx_Lcon_C2 := Etapa21.x;

Qx_Ldes_C1:= Etapa10.x or (Mx_Av_C1 and Mx_Osc2Hz);


Qx_Ldes_C2:= Etapa20.x or (Mx_Av_C2 and Mx_Osc2Hz);

Qx_Ldescg_C1:= Mx_EnEmergencia or (Etapa12.x and Mx_Osc2Hz);


Universidad de Oviedo
156 - Problemas M340 ISA

Qx_Ldescg_C2:= Mx_EnEmergencia or (Etapa22.x and Mx_Osc2Hz);

(* Generacin de la marca del oscilador de 2Hz TON *)


T_Osc2Hz (IN:= not T_Osc2Hz.Q, PT:= t#500ms) ;

Mx_Osc2Hz := T_Osc2Hz.ET > t#250ms;

(* Generacin de las marcas de averias *)


T_Inh_vig (IN:= Qx_Mot_C2, PT:= t#5s); (* TON *)

T_Ave_C1 (IN:= not Mx_Vig_C1 and Qx_Mot_c1 and T_Inh_vig.Q, PT:= t#1s); (* TON *)

if T_Ave_C1.q then
set(Mx_Av_C1);
end_if;

T_Ave_C2 (IN:= not Mx_Vig_C2 and Qx_Mot_c2 and T_Inh_vig.Q, PT:= t#1s); (* TON *)

if T_Ave_C2.q then
set(Mx_Av_C2);
end_if;

Pantalla de Operador
Universidad de Oviedo Problemas M340 - 157
ISA

Como forzar el valor de una entrada o salida o modificar el valor


de una variable
Podremos hacerlo creando una tabla de animacin o sobre el propio cdigo del programa cuando se est
ejecutando.

Sobre el programa, nos situaremos encima de la variable que queramos forzar y clicaremos con el botn
derecho. En la ventana que aparece indicaremos Forzar valor | Forzar a 1 Forzar a 0

Tambin podremos cancelar el forzado.

Para trabajar con una tabla de animacin, primeramente crearemos la tabla. Para ello, iremos a la carpeta
Tablas de animacin, clicaremos con el botn derecho y en la pantalla que se despliega seleccionaremos
Nueva tabla de animacin.

Indicaremos el nombre de las variables de entrada / salida y de memoria que queramos visualizar.
Posteriormente pulsaremos sobre el comando Forzar E/S o Modificacin de variables.
Universidad de Oviedo
158 - Problemas M340 ISA

En las ventanas que aparecen podremos seleccionar los iconos correspondientes para forzar a 1 a 0.
Tambin podremos modificar el valor binario a 1 a 0 como vemos en las siguientes figuras.
Universidad de Oviedo Problemas M340 - 159
ISA

Problema 7.2 Tolva a cinta alimentadora giratoria y 3 cintas de


salida
Disear el programa que realiza el control y mando del sistema descrito a continuacin.
Descripcin General
El sistema de la figura representa un nudo de distribucin para el transporte del material procedente de
una tolva por medio de 4 cintas.
La cinta 0 est situada sobre una plataforma giratoria que es accionada por medio del motor MG,
permitindonos situarla enfrente de cualquiera de las otras tres, para la evacuacin del material en el
sentido deseado.
Seleccin de la posicin de la cinta 0
La seleccin de la posicin para la cinta 0 la realizamos mediante un pulsador "Selec". Utilizamos en el
sinptico tres lmparas LS1, LS2 y LS3, las cuales reflejan la posicin de la cinta 0. El giro lo efectuar por
accionamiento del motor MG.
La posicin queda definida mediante tres finales de carrera FC1, FC2 y FC3.
La seleccin debe quedar inhabilitada mientras el sistema se encuentre activo.
Movimiento de las cintas
Todas las cintas tienen una lmpara que indica la conexin y otra la desconexin, un motor que acciona la
banda deslizante y llevan una vigilancia de cinta para detectar si la velocidad del motor baja del valor 2
rad/s.
La puesta en marcha se realizar con la secuencia siguiente:
Tiene que estar seleccionada la posicin adecuada.

Accionamos el pulsador de Marcha con lo cual la cinta 0 gira hasta situarse en la posicin
seleccionada (esto se define por el accionamiento del final de carrera correspondiente a la posicin
seleccionada).

Al alcanzar la posicin seleccionada se pone en movimiento la cinta 0 por medio de la activacin del
motor M0, y de manera simultnea lo harn la cinta correspondiente (activando los motores M1, M2 o
M3).
La tolva debe de abrirse 5 segundos despus de la activacin del motor M0 correspondiente a la cinta 0.
La parada se realiza accionando el pulsador de "Paro", momento en el cual se procede al cierre de la tolva.
As mismo, la cinta 0 debe seguir 20 segundos en periodo de descarga, y la cinta correspondiente 20
segundos ms que la 0 para su descarga.
Alarmas
Todas las cintas tienen una vigilancia que se activar cuando su velocidad baje del nivel especificado,
produciendo la parada automtica de la cinta objeto de alarma, siguiendo en proceso de descarga la otra si
procede. Dicha avera se reflejar en el sinptico mediante el parpadeo a 2 Hz de la lmpara de
desconexin correspondiente a la cinta averiada, quedando activadas las lmparas de conexin de las
cintas que estaban trabajando. El acuse de recibo de la avera se realizar accionando el pulsador de parada
"Paro".
La vigilancia no se tendr en cuenta durante los 5 segundos de la fase de arranque de las cintas.

Tolva
La tolva se abre y cierra mediante el motor MTol y los finales de carrera FCTolAb y FCTolCe.
Universidad de Oviedo
160 - Problemas M340 ISA

PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.

TOLVA

FCTolAb FCTolCe
MTolAb
MTolCe
CINTA 0
CINTA 2

FC1 FC3

CINTA 1 MGDer MGIzq CINTA 3


MG
M1 M3
CINTA 0

M0

FC2
CINTA 2

M2

Selec Marcha Paro

LS1 LS2 LS3

LCON

LDES
Universidad de Oviedo Problemas M340 - 161
ISA

Tabla de variables
Universidad de Oviedo
162 - Problemas M340 ISA

Programa en ST y GRAFCET - (pr0702)


Instancias de bloques elementales:
Todos los temporizadores usados son del tipo TON.

Seccin Preliminar:
(*Inicializacin de la pantalla de operador*)
If %S13 then
set(MxP_Paro); set(MxP_Vig_C0); set(MxP_Vig_C1); set(MxP_Vig_C2); set(MxP_Vig_C3);
set(MxP_FC1); set(MxP_FC_Tol_Ce);
end_if;

(*Marcas para el control Local-Distancia*)


Mx_Selec := (MxP_Selec and not Ix_LocDist) or (Ix_Selec and Ix_LocDist);
Mx_Marcha := (MxP_Marcha and not Ix_LocDist) or (Ix_Marcha and Ix_LocDist);
Mx_Paro := (MxP_Paro and not Ix_LocDist) or (Ix_Paro and Ix_LocDist);
Mx_FC1 := (MxP_FC1 and not Ix_LocDist) or (Ix_FC1 and Ix_LocDist);
Mx_FC2 := (MxP_FC2 and not Ix_LocDist) or (Ix_FC2 and Ix_LocDist);
Mx_FC3 := (MxP_FC3 and not Ix_LocDist) or (Ix_FC3 and Ix_LocDist);
Mx_FC_Tol_Ab := (MxP_FC_Tol_Ab and not Ix_LocDist) or (Ix_FC_Tol_Ab and Ix_LocDist);
Mx_FC_Tol_Ce := (MxP_FC_Tol_Ce and not Ix_LocDist) or (Ix_FC_Tol_Ce and Ix_LocDist);
Mx_Vig_C0 := (MxP_Vig_C0 and not Ix_LocDist) or (Ix_Vig_C0 and Ix_LocDist);
Mx_Vig_C1 := (MxP_Vig_C1 and not Ix_LocDist) or (Ix_Vig_C1 and Ix_LocDist);
Mx_Vig_C2 := (MxP_Vig_C2 and not Ix_LocDist) or (Ix_Vig_C2 and Ix_LocDist);
Mx_Vig_C3 := (MxP_Vig_C3 and not Ix_LocDist) or (Ix_Vig_C3 and Ix_LocDist);
Universidad de Oviedo Problemas M340 - 163
ISA

(*Generacin de la marca del oscilador de 2Hz*)


T_Osc2Hz (IN:= not Temp_Osc2Hz.Q, PT:= t#500ms) ;
Mx_Osc2Hz := T_Osc2Hz.ET > t#250ms;

(*Temporizadores de avisos*)
T_Inh_Vig (IN:= S_Conect.x or S_Descarg.x or S_Desc_123.x, PT:= t#5s) ;

T_Ave_c0 (IN:= not Mx_Vig_C0 and Qx_Mot_C0 and T_Inh_Vig.Q, PT:= t#1s) ;

T_Ave_c123 (IN:= ((not Mx_Vig_C1 and Qx_Mot_C1) or (not Mx_Vig_C2 and Qx_Mot_C2) or
(not Mx_Vig_C3 and Qx_Mot_C3)) and T_Inh_Vig.Q, PT:= t#1s) ;

(*Marca de avera en la cinta 0*)


If T_Ave_c0.Q then
SET(Mx_Ave_C0);
end_if;

(*Marca de avera en la cinta secundaria*)


If T_Ave_c123.Q then
SET(Mx_Ave_C123);
end_if;
(*Marca para parar el giro del motor*)
Mx_Para_Giro := (Mx_FC1 and Qx_LS1) or (Mx_FC2 and Qx_LS2) or (Mx_FC3 and Qx_LS3);

(*Si existe avera en la cinta 0 se debe parar la cinta 0 poner el sistema de mando a descarga de la cinta
secundaria*)
IF Mx_Ave_C0 THEN
resetstep (S_c0_ON);resetstep (S_c0_Des); (* borra grafcet de C0, parando C0 *)
set (Mx_Av_C0);
(* pone el mando en descarga de Cn *)
resetstep (S_Conect); resetstep (S_Descarg); setstep (S_Desc_123); END_IF;

Mx_Flanco_Ave_C123 := RE (Mx_Ave_C123);

(* Al aparecer la avera se desactiva el grafcet de la tolva (una nica vez al ser por flanco) *)
Mx_SFC_Tolva_OFF := CLEARCHART (Tolva, Mx_Flanco_Ave_C123) ;

(*Si se produce la anulacion del SFC de la tolva, cerramos la tolva por seguridad habilitndose el SFC de la
tolva otra vez al ciclo siguiente de resetearla*)
IF Mx_SFC_Tolva_OFF THEN
setstep (S_Tolva_Cerrar); (* Cierra la tolva y pone a 0 el bit Mx_SFC_Tolva_OFF *)
END_IF;
Universidad de Oviedo
164 - Problemas M340 ISA

(*Habiendo avera en la cinta secundaria, se desactivan el resto de SFCs despus que se haber cerrado la
tolva. La marca Mx_dummy no es usada en esta aplicacin*)
if FE (Mx_SFC_Tolva_OFF) then
Mx_Dummy := CLEARCHART (Mando, true) ;
Mx_Dummy := CLEARCHART (Seleccion_Cinta, true) ;
Mx_Dummy := CLEARCHART (Posicionar_Cinta_Alimentadora, true) ;
Mx_Dummy := CLEARCHART (Cintas, true) ;
end_if;

(*Se localiza la cinta secundaria averiada*)


IF Mx_Flanco_Ave_C123 THEN
IF Qx_LS1 THEN
SET (Mx_Av_C1);
ELSIF Qx_LS2 THEN
SET (Mx_Av_C2);
ELSE SET (Mx_Av_C3);
END_IF;
END_IF;

(*Cuando se repara el sistema se vuelve a las CI con el pulsador de paro*)


IF (Mx_Ave_C0 OR Mx_Ave_C123) AND NOT Mx_Paro THEN
(* Activamos las etapas iniciales *)
Mx_Dummy := INITCHART (Mando, true) ;
Mx_Dummy := INITCHART (Seleccion_Cinta, true) ;
Mx_Dummy := INITCHART (Posicionar_Cinta_Alimentadora, true) ;
Mx_Dummy := INITCHART (Tolva, true) ;
Mx_Dummy := INITCHART (Cintas, true) ;
(*Reseteamos las marcas de avera*)
RESET (Mx_Av_C0); RESET (Mx_Ave_C0);
RESET (Mx_Av_C1); RESET (Mx_Ave_C123);
RESET (Mx_Av_C2);
RESET (Mx_Av_C3);
END_IF;

(*Marcas empleadas en la pantalla*)


MxP_C0_C1 := Mx_FC1 and Qx_Mot_C0;
MxP_C0_C2 := Mx_FC2 and Qx_Mot_C0;
MxP_C0_C3 := Mx_FC3 and Qx_Mot_C0;
Universidad de Oviedo Problemas M340 - 165
ISA

Grafcets de mando y de seleccin de cinta

(* Seleccin de cinta de
evacuacin *) S_Sel_ini
S_Selec

T_Tran2
RE (Mx_Selec) and S_Selec.x

T_Tran2
Mx_Marcha
(* Seleccin Cinta 1 *)
(* Posicionar la cinta
alimentadora (Cinta 0) *) S_Sel_Ls1
S_Pos LS1

T_Tran3
RE (Mx_Selec) and S_Selec.x

T_Tran3
S_Pos_Fin.x
(* Seleccin Cinta 2 *)
(* Conectar Cintas y Abrir Tolva
*) S_Sel_Ls2
S_Conect LS2

T_Tran4
RE (Mx_Selec) and S_Selec.x

T_Tran4
NOT Mx_Paro
(* Seleccin Cinta 3 *)
(* Descargar cinta 0 y Cerrar
Tolva *) S_Sel_Ls3
S_Descarg LS3

T_Tran5
RE (Mx_Selec) and S_Selec.x

T_Tran5
NOT Qx_Mot_C0

(* Descargar cinta secundaria *)


S_Desc_123

T_Tran1
not Qx_Mot_c1 and not
Qx_Mot_c2 and not Qx_Mot_c2
T_Tran1
Universidad de Oviedo
166 - Problemas M340 ISA

Grafcet de posicionamiento de la cinta alimentadora

S_Pos_0

S_Pos.x

S_Pos_1

T_Tran6 T_Tran7
Mx_FC1 and (Qx_Ls2 or Qx_Ls3) Mx_FC3 and (Qx_Ls1 or Qx_Ls2)
or (Mx_FC2 and Qx_Ls3) or (Mx_FC2 and Qx_Ls1)
T_Tran6 T_Tran7 Mx_Para_Giro

S_Pos_Izda S_Pos_Dcha
(* activa el (* activa el
motor de giro a S_Pos_Izda S_Pos_Dcha motor de giro a
izquierda *) derecha *)

Mx_Para_Giro Mx_Para_Giro

S_Pos_Fin

S_Conect.x

Grafcets de movimiento de las cintas


(* C0 parada*) (* C1 parada *) (* C2 parada *) (* C3 parada *)
S_c0_ini S_c1_ini S_c2_ini S_c3_ini
Ldes 0 LUZ en Ldes 1 Ldes 2 Ldes 3

S_Conect.x T_Tran12 T_Tran14 T_Tran16

(* C0 en (* C1 en (* C2 en (* C3 en
movimiento *) movimiento *) movimiento *) movimiento *)
S_c0_ON S_c1_ON S_c2_ON S_c3_ON
Qx_Mot_c0 Qx_Mot_c1 Qx_Mot_c2 Qx_Mot_c3
Lcon 0 Lcon 1 LUZ en Lcon 2 Lcon 3

S_Descarg.x S_Desc_123.x S_Desc_123.x S_Desc_123.x

(* C0 en (* C1 en (* C2 en (* C3 en
descarga *) descarga *) descarga *) descarga *)
S_c0_Des S_c1_Des S_c2_Des S_c3_des
Qx_Mot_c0 Qx_Mot_c1 Qx_Mot_c2 Qx_Mot_c3
Ldes 0 Ldes 1 Ldes 2 Ldes 3

T_Tran11 T_Tran13 T_Tran15 T_Tran17


S_c0_Des.t > S_c1_Des.t > S_c2_Des.t > S_c3_des.t >
t#20s t#20s t#20s t#20s
T_Tran11 T_Tran13 T_Tran15 T_Tran17
Universidad de Oviedo Problemas M340 - 167
ISA

Grafcet del control de la tolva

S_Tolva_ini

T_Tran8
S_Conect.x and S_Conect.t >
t#5s
T_Tran8

(* Abre la tolva *)
Qx_Mtol_ab
S_Tolva_Abrir

T_Tran9
Mx_Fc_tol_ab or Mx_Ave_c0 or
Mx_Ave_c123
T_Tran9

(* La tolva se encuentra abierta


*)
S_Tolva_Abierto

T_Tran10
S_Descarg.x or Mx_Ave_c0 or
Mx_Ave_c123
T_Tran10

(* Cierra la tolva *)
Qx_Mtol_ce
S_Tolva_Cerrar

Mx_FC_Tol_Ce

Seccin "Transiciones
T_Tran1:=not Qx_Mot_c1 and not Qx_Mot_c2 and not Qx_Mot_c3;
T_Tran2:=RE (Mx_Selec) and S_Selec.x;
T_Tran3:=RE (Mx_Selec) and S_Selec.x;
T_Tran4:=RE (Mx_Selec) and S_Selec.x;
T_Tran5:=RE (Mx_Selec) and S_Selec.x;
T_Tran6:=Mx_FC1 and (Qx_Ls2 or Qx_Ls3) or (Mx_FC2 and Qx_Ls3);
T_Tran7:=Mx_FC3 and (Qx_Ls1 or Qx_Ls2) or (Mx_FC2 and Qx_Ls1);
T_Tran8:=S_Conect.x and S_Conect.t > t#5s;
T_Tran9:=Mx_Fc_tol_ab or Mx_Ave_c0 or Mx_Ave_c123;
T_Tran10:=S_Descarg.x or Mx_Ave_c0 or Mx_Ave_c123;
T_Tran11:=S_c0_Des.t > t#20s;
T_Tran12:=S_Conect.x and Qx_Ls1;
T_Tran13:=S_c1_Des.t > t#20s;
T_Tran14:=S_Conect.x and Qx_Ls2;
T_Tran15:=S_c2_Des.t > t#20s;
T_Tran16:=S_Conect.x and Qx_Ls3;
T_Tran17:=S_c3_des.t > t#20s;
Universidad de Oviedo
168 - Problemas M340 ISA

Seccin Salidas:
Qx_Mg_izda := S_Pos_Izda.x;
Qx_Mg_dcha := S_Pos_Dcha.x;

Qx_Mot_c0 := S_c0_ON.x or S_c0_Des.x;


Qx_Mot_c1 := S_c1_ON.x or S_c1_Des.x;
Qx_Mot_c2 := S_c2_ON.x or S_c2_Des.x;
Qx_Mot_c3 := S_c3_ON.x or S_c3_des.x;

Qx_Mtol_ab := S_Tolva_Abrir.x;
Qx_Mtol_ce := S_Tolva_Cerrar.x;

Qx_Ls1 := S_Sel_Ls1.x;
Qx_Ls2 := S_Sel_Ls2.x;
Qx_Ls3 := S_Sel_Ls3.x;

Qx_Lcon_c0 := S_c0_ON.x or Mx_Av_c0;


Qx_Lcon_c1 := S_c1_ON.x or Mx_Av_c1;
Qx_Lcon_c2 := S_c2_ON.x or Mx_Av_c2;
Qx_Lcon_c3 := S_c3_ON.x or Mx_Av_c3;

Qx_Ldes_c0 := S_c0_ini.x or S_c0_Des.x or Mx_Av_c0 and Mx_Osc2Hz;


Qx_Ldes_c1:= S_c1_ini.x or S_c1_Des.x or Mx_Av_c1 and Mx_Osc2Hz;
Qx_Ldes_c2 := S_c2_ini.x or S_c2_Des.x or Mx_Av_c2 and Mx_Osc2Hz;
Qx_Ldes_c3 := S_c3_ini.x or S_c3_des.x or Mx_Av_c3 and Mx_Osc2Hz;

Pantalla de Operador
Universidad de Oviedo Problemas M340 - 169
ISA

Problema 7.3 Dos cintas alimentadoras a tolva y cinta de salida


Disear el circuito de mando para el control de tres cintas transportadoras de la instalacin indicada en la
figura.

PConC1 PConC2 Pdes PEmer Rearme

LConC1 LConC2 LDescgC3 LAveraC1

LDesC1 LDesC2 LAveraC2

LDescgC1 LDescgC2 LAveraC3

Cinta 1 Cinta 2

M M

Cinta 3

Las cintas 1 y 2 debern conectarse y desconectarse, cada una, mediante dos pulsadores manuales
(conexin NA, desconexin NC).
El estado de marcha se indicar con tres lmparas: LCon, LDes y LDescg.
Las cintas 1 y 2 no deben suministrar material a la vez. La cinta 3 ha de ponerse en marcha
simultneamente con la 1 la 2.
Condiciones Iniciales: Inicialmente las tres cintas estarn desconectadas y las lmparas de desconexin 1 y
2 estarn encendidas y el resto apagadas.
Conexin: Cuando se accione el pulsador de conexin 1 o 2 se encender la lmpara de conexin y se
apagar la de desconexin correspondiente.
Desconexin: Una vez accionado el pulsador de desconexin, las cintas 1 2 debern seguir en
funcionamiento 20 segundos ms, la cinta 3 debe permanecer en funcionamiento durante 40 segundos
ms que las anteriores, quedando luego en reposo. Con esto se persigue el vaciado del material que
transportan las cintas.
El periodo de descarga se visualizar mediante el encendido de las lmparas de descarga correspondientes
(LDescgC1 o LDescgC2 y LDescgC3), estando el resto apagadas.
Vigilancia: El control del giro en las ruedas motrices se efectuar mediante una vigilancia de cintas. Se
considera que la frecuencia de llegada de los impulsos no debe ser inferior a 10 Hz, para un funcionamiento
en rgimen normal de velocidad. Durante los tres primeros segundos no debern evaluarse los impulsos
procedentes de las vigilancias de las cintas, ya que no ha habido tiempo para alcanzar la velocidad de
rgimen.
Si estando en funcionamiento normal desaparece la seal de vigilancia de la cinta 1 2, hay que parar
inmediatamente dicha cinta, dejando funcionar en vaciado la cinta 3 segn la secuencia establecida
Universidad de Oviedo
170 - Problemas M340 ISA

previamente. Para avisar de la existencia de avera, haremos que la lmpara de avera correspondiente
parpadee a una frecuencia de 1 Hz, permaneciendo encendida la de conexin.
Si durante el periodo de descarga de la cinta alimentadora:
Desaparece su seal de vigilancia, hay que parar inmediatamente dicha cinta, dejando funcionar en
vaciado la cinta 3 segn la secuencia establecida previamente. Para avisar de la existencia de
avera, haremos que la lmpara de avera correspondiente parpadee a una frecuencia de 1 Hz,
permaneciendo encendida la de descarga.
Desaparece la seal de vigilancia de la cinta 3, hay que parar inmediatamente todas las cintas. La
avera producida se indicar mediante el parpadeo de la lmpara de avera de C3 a una frecuencia
de 1 Hz, permaneciendo encendida la de descarga de la cinta alimentadora.
Si estando en funcionamiento normal desaparece la seal de vigilancia de la cinta 3, hay que parar
inmediatamente todas las cintas. La avera producida se indicar mediante el parpadeo de la lmpara de
avera de C3 a una frecuencia de 1 Hz, permaneciendo encendida la de conexin de la cinta alimentadora.
Si durante el periodo de descarga de la cinta 3 desaparece la seal de vigilancia, hay que parar
inmediatamente la cinta. La avera producida se indicar mediante el parpadeo de su lmpara de avera a
una frecuencia de 1 Hz, permaneciendo encendida la de descarga.
La vigilancia se har en funcionamiento normal y en el periodo de descarga.
Emergencia: Si se activa el tirador de emergencia, debern parar todas las cintas quedando encendidas las
3 lmparas de descarga y el resto apagadas, hasta volver a las CI mediante el accionamiento de un pulsador
de retorno a las Condiciones Iniciales.
Retorno a las CI: Se acusar recibo del aviso de avera accionando el pulsador de Rearme, momento en el
cual se volver a las condiciones iniciales.

Salidas:
Entradas:
Lmpara Conexin para cinta 1
Pulsador Conexin para cinta 1
Lmpara Desconexin para cinta 1
Pulsador Conexin para cinta 2
Lmpara Descarga para cinta 1
Pulsador Desconexin para cinta 1
Lmpara Conexin para cinta 2
Pulsador Desconexin para cinta 2
Lmpara Desconexin para cinta 2
Pulsador de Emergencia
Lmpara Descarga para cinta 2
Pulsador de Rearme
Lmpara Descarga para cinta 3
Vigilancia de cinta 1
Lmpara de Avera en C1
Vigilancia de cinta 2
Lmpara de Avera en C2
Vigilancia de cinta 3
Lmpara de Avera en C3
Motor para cinta 1
Motor para cinta 2
Motor para cinta 3

PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo Problemas M340 - 171
ISA

Interrupciones

Problema 8.1 Control de trfico en 2 carriles


Disear el programa de control de un autmata programable que realice el enunciado siguiente:

Un semforo ha de regir el paso de vehculos, pero ste estar sujeto a una variacin en su temporizacin,
segn el nmero de vehculos que se encuentren en cola de espera. La calle, como se puede apreciar en el

S1 S2

S3 S4

dibujo, est dividida en dos carriles con sus respectivos sensores (S1, S2) y (S3, S4).
Cuando en uno cualquiera de los carriles se encuentran 20 o ms vehculos la temporizacin ha de ser la
siguiente:
verde: 30 s mbar: 5 s fijo y 3 s a 2 Hz rojo: 15 s
Cuando tengamos menos de 20 vehculos en ambos carriles la temporizacin ha de ser la siguiente:
verde: 20 s mbar: 5 s fijo y 3 s a 2 Hz rojo: 20 s
El valor de la cuenta efectiva para efectuar el cambio de la secuencia de la temporizacin es la que realiza
desde el momento en que el semforo se pone en rojo hasta un instante antes de producirse el cambio a
verde.

Nota:
Se supone que los carriles son de direccin nica y no se puede cambiar de uno a otro. Los
vehculos que circulan son solamente automviles.
Los sensores irn asociados a entradas de interrupcin

PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000, mdulo mixto de entradas salidas BMX DDM3202K y mdulo de contaje BMX
EHC 0800.
Universidad de Oviedo
172 - Problemas M340 ISA

Tabla de variables

Configuracion del mdulo BMX EHC 0800

En el mdulo BMX EHC 0800, se selecciona Contador 0 y abajo se despliega la lista asociada a Funcin. Se
elige "Modo de conteo de eventos". Luego en la pestaa de Configuracin, donde pone la ficha de Evento
se selecciona Valor "Habilitar". En la etiqueta Nmero de evento, aparece el nmero de programa de
Evento asociado que se ejecutar cuando se detecte el paso de 0 a 1 en la entrada asociada a contador 0.
Universidad de Oviedo Problemas M340 - 173
ISA

Programa en FBD - (pr0801a)


Seccin "Control" en FBD

Llamada a la funcin que asigna los tiempos de la luz verde y roja al final de cada ciclo o justo en el inicio de la ejecucin

.1
FBI_0 2 .2
1 OR 3
R_TRIG SR_CALL
%S13 IN1 OUT EN ENO
Tciclo.Q CLK Q IN2 Asignar_Tiempos SR_NAME

Temporizador para el ciclo de la secuencia semafrica

TCICLO
4
TON

Tciclo.Q IN Q
Mt_Verde+t#8s+Mt_Rojo PT ET

Oscilador de 2Hz

TEMP_OSC2HZ
5 .3
TON 6
GT_TIME
Temp_Osc2Hz.Q IN Q
t#500ms PT ET IN1 OUT Mx_Oscilador_2hz
t#250ms IN2

Asignacin de salidas

.5
7
LT_TIME

Tciclo.ET IN1 OUT Qx_LVerde


Mt_Verde IN2

.7
8
GT_TIME

Tciclo.ET .4
IN1 OUT
10
Mt_Verde IN2 AND

IN1 OUT
.8
IN2
9
LT_TIME

Tciclo.ET .12
IN1 OUT
14
Mt_Verde+t#5s IN2 OR

IN1 OUT Qx_LAmbar


.10
IN2
11
GT_TIME

Tciclo.ET .9
IN1 OUT
13
Mt_Verde+t#5s IN2 AND

IN1 OUT
.11
IN2
12
LT_TIME Mx_Oscilador_2hz IN3

Tciclo.ET IN1 OUT


Mt_Verde+t#8s IN2

.6
15
GT_TIME

Tciclo.ET IN1 OUT Qx_LRoja


Mt_Verde+t#8s IN2
Universidad de Oviedo
174 - Problemas M340 ISA

Subrutina "Asignar_Tiempos" en FBD


.1
1
GT_INT

Mw_NcochesC0 IN1 OUT


20 .3
IN2
3 .4
OR 4
MOVE
IN1 OUT EN ENO
.2 IN2 t#30s IN OUT Mt_Verde
2
GT_INT

Mw_NcochesC1 IN1 OUT


20 IN2 .5
5
MOVE
EN ENO
t#15s IN OUT Mt_Rojo

.6
6
LE

Mw_NcochesC0 IN1 OUT


20 IN2
.8
8 .9
AND 9
MOVE
IN1 OUT EN ENO
IN2 t#20s IN OUT Mt_Verde
.7
7
LE
Mw_NcochesC1 IN1 OUT
20 .10
IN2
10
MOVE
EN ENO
t#20s IN OUT Mt_Rojo

Evento 0
INC (Mw_NcochesC0);

Evento 1
DEC (Mw_NcochesC0);

Evento 2
INC (Mw_NcochesC1);

Evento 3
DEC (Mw_NcochesC1);
Universidad de Oviedo Problemas M340 - 175
ISA

Pantalla de operador

Programa en ST - (pr0801b)
Seccin "Control"
Mx_FinCiclo:=Tciclo.Q;

IF %S13 OR RE(Mx_FinCiclo) THEN


Asignar_Tiempos();
END_IF;

(*Temporizador*)
Tciclo (IN:=not Tciclo.Q, PT:=Mt_Verde + t#8s + Mt_Rojo) ;

(*Generacin de la marca del oscilador de 2Hz*)


Temp_Osc2Hz (IN:= not Temp_Osc2Hz.Q, PT:= t#500ms) ;
Mx_Oscilador_2hz := Temp_Osc2Hz.ET > t#250ms;

(*Salidas*)
Qx_LVerde:= Tciclo.ET < Mt_Verde;
Qx_LAmbar:= Tciclo.ET>Mt_Verde and Tciclo.ET<Mt_Verde + t#5s or Tciclo.ET > Mt_Verde + t#5s and
Tciclo.ET<Mt_Verde + t#8s and Mx_Oscilador_2hz;
Qx_LRoja:= Tciclo.ET > Mt_Verde + t#8s;

Subrutina "Asignar_Tiempos"
IF (Mw_NcochesC0>20) OR (Mw_NcochesC1>20) THEN
Mt_Verde:=t#30s;
Mt_Rojo:=t#15s;
ELSE
Mt_Verde:=t#20s;
Mt_Rojo:=t#20s;
END_IF;
Universidad de Oviedo
176 - Problemas M340 ISA

Evento 0
INC(Mw_NcochesC0);

Evento 1
DEC(Mw_NcochesC0);

Evento 2
INC(Mw_NcochesC1);

Evento 3
DEC(Mw_NcochesC1);

Simulacion de los eventos (interrupciones)


Para simular los eventos, haremos click con el botn derecho en el icono de simulacin (a la derecha en la
barra de tareas de windows). Se desplegar una ventana donde eligiremos "Simulator panel...".
A continuacin haremos click en el botn amarillo de Eventos.

Nos saldr otra pantalla, donde haciendo click en el evento


que deseemos, se simular la entrada de evento.
Universidad de Oviedo Problemas M340 - 177
ISA

Funciones de desplazamiento y rotacin


Funcin SHL (desplazamiento a la izquierda)
"La funcin desplaza la muestra de bits en la entrada IN en n bits (el valor de la entrada N) hacia la
izquierda.
En esta operacin se utiliza el bit del sistema %S17 como bit CARRY, es decir, el estado del bit desplazado se
ubica aqu. Desde la derecha se rellena con ceros.
Los tipos de datos de la entrada IN y de la salida OUT deben ser iguales.
Como parmetros adicionales se pueden configurar EN y ENO"

Representacin en FBD

Representacin en ST
ShiftedPattern := SHL (IntputPattern, Number) ;

Funcin SHR (desplazamiento a la derecha)


"La funcin desplaza la muestra de bits en la entrada IN en n bits (el valor de la entrada N) hacia la derecha.
En esta operacin se utiliza el bit del sistema %S17 como bit CARRY, es decir, el estado del bit desplazado se
ubica aqu. Desde la izquierda se rellena con ceros.
Caso especial: Si en el dilogo Herramientas / Ajustes del proyecto / Extensiones de lenguaje est activada
la opcin permitir INT/DINT en lugar de ANY_BIT y se utilizan en la entrada IN los tipos de datos INT o DINT,
se rellenar con ceros desde la izquierda , donde el bit 0 ser el de mayor valor. Si el bit de mayor valor es 1,
se rellenar con unos. El bit de mayor valor contiene el bit de signo en los tipos de datos INT y DINT.
Mediante este funcionamiento se asegura que el signo no se pierda durante el desplazamiento. Si no se
tiene en cuenta el signo y se rellena siempre con ceros, se puede utilizar en los controles de Premium la
funcin SHRZ_*** de la biblioteca obsoleta.
Los tipos de datos de la entrada In y de la salida OUT deben ser iguales.
Como parmetros adicionales se pueden configurar EN y ENO"

Representacin en FBD

Representacin en ST
ShiftedPattern := SHR (IntputPattern, Number) ;
Universidad de Oviedo
178 - Problemas M340 ISA

Funcin ROR (rotacin a la derecha)


"La funcin gira la muestra de bits en la entrada In en n bits (el valor de la entrada Number) hacia la
derecha en forma de crculo.
En esta operacin se utiliza el bit del sistema %S17 como bit CARRY, es decir, el estado del bit desplazado se
ubica aqu.
Los tipos de datos de la entrada IN y de la salida OUT deben ser iguales.
Como parmetros adicionales se pueden configurar EN y ENO"

Representacin en FBD

Representacin en ST
ShiftedPattern := ROR (IntputPattern, Number) ;

Funcin ROL (rotacin a la izquierda)


"La funcin gira la muestra de bits en la entrada In en n bits (el valor de la entrada Number) hacia la
izquierda en forma de crculo.
En esta operacin se utiliza el bit del sistema %S17 como bit CARRY, es decir, el estado del bit desplazado se
ubica aqu.
Los tipos de datos de la entrada IN y de la salida OUT deben ser iguales.
Como parmetros adicionales se pueden configurar EN y ENO"

Representacin en FBD

Representacin en ST
ShiftedPattern := ROL (IntputPattern, Number) ;
Universidad de Oviedo Problemas M340 - 179
ISA

Tipos de Datos
Las variables pueden almacenar diferentes tipos de datos:

BOOL Es una variable que puede ser 1 (TRUE) 0 (FALSE).

EBOOL La variable ebool, como ya dijimos, es tambin una variable binaria igual que una de tipo bool,
contiene el valor FALSE (=0) o TRUE (=1), pero tambin incluye cuando se almacena, informacin
relativa a la gestin de los flancos ascendentes o descendentes y al forzado.

WORD Representa una cadena de 16 bits, significando una longitud de datos de 16 bits

INT Representa un valor entero. El rango de valores es de -32768 hasta 32767

UINT Representa un valor entero sin signo. El rango de valores es de 0 hasta 65535

REAL Representa un valor decimal. El rango de valores es de -3.40e+38 a 3.40e+38

Las constantes son unas variables del tipo INT, DINT o REAL direccionadas en el campo constante (%K ), o
variables usadas en direcciones directas (%KW, %KD, o % KF). Sus contenidos no pueden modificarse por el
programa durante la ejecucin.

Se pueden entrar valores literales como:

Base 2 (binario) 2#1111111111111111


Base 8 (octal) 8#177777
Base 10 (decimal) 65535 (10# no se necesita)
Base 16 ( hex) 16#FFFF
Tiempo t#5s o time#5s
Universidad de Oviedo
180 - Problemas M340 ISA

Problema 8.2 Desplazamientos de bits e interrupciones


Con este problema se pretende que el alumno se familiarice con el concepto de Interrupcin. Muy
habitual, en los sistemas que precisan en un momento dado detener la secuencia que se est ejecutando,
para pasar, a realizar otra secuencia distinta durante un tiempo, y una vez transcurrido ste, volver
a la rutina habitual. Tambin manejaremos otro tipo de conceptos, como son: Deplazamiento de bits,
tanto a la izquierda como a la derecha; Subrutinas; Palabra de Constante ; y dems componentes.

Secuencia normal del programa


Se deber iniciar el Bit 0.1.16 del mdulo mixto con el valor 1 lgico (activada). A continuacin se ir
desplazando la activacin al bit siguiente (Bit 0.1.17) y la desactivacin del anterior (Bit 0.1.16) en cada
segundo, y as sucesivamente hasta alcanzar el Bit 0.1.23, momento en el cual se invierte el
proceso.

Interrupcin 0
Si durante la ejecucin de la secuencia anterior , se produce una demanda de interrupcin
procedente del canal 0 del mdulo BMX EHC 0800 ( Evt0 ), esta secuencia debe pararse, y ejecutarse
en su lugar, la secuencia siguiente: los ocho bits de salida, deben pasar alternativamente de 11111111
a 00000000 durante 1 segundo ocho veces. Ejecutado esto, se debe volver a la secuencia habitual,
retomndola desde donde la haba dejado.

Interrupcin 1
Si durante la ejecucin de la secuencia anterior , se producen una demanda de interrupcin
procedente del canal 1 del mdulo BMX EHC 0800 ( Evt1 ), esta secuencia debe pararse, y ejecutarse
en su lugar la secuencia siguiente: Los cuatro bits del nibble bajo de la salida %Q0.1.16 ... %Q0.1.19
= 1 1 1 1 se deben situar a 1 lgico ( activados ) y los otros cuatro del nibble alto %Q0.1.20 ...
%Q0.1.23 = 0 0 0 0 se deben situar a 0 lgico ( desactivados ). Estos se alternarn 1 segundo durante
ocho veces. Ejecutado esto, se debe volver a la secuencia habitual, retomndola desde donde la haba
dejado.

Prioridades
La secuencia generada por la demanda de interrupcin 1 tiene prioridad sobre la demanda de interrupcin
procedente de la interrupcin 0. Esto es, si se est realizando la secuencia demandada por el Evt0 y
se produce la demanda del Evt1, debe pararse la primera y realizarse la segunda. Una vez terminada la
ejecucin de la secuencia del Evt1, se debe retomar la ejecucin de la demanda del Evt0, desde el estado
en que se haba procedido a su interrupcin. Si estando ejecutndose la demanda de interrupcin
procedente del Evt1, se produce una demanda del Evt0, sta ser atendida, una vez se haya terminado de
atender la demanda del evento Evt1.

Tarea maestra
La tarea maestra la dividimos en tres secciones: En la primera, establecemos las condiciones iniciales, para
el comienzo de la secuencia de desplazamiento. En la segunda, hacemos las llamadas a subrutina que
proceda, segn la secuencia que se deba realizar. En la tercera, tratamos las salidas para que reflejen los
valores segn la secuencia a realizar.

Seccion inicio
Utilizamos la palabra de marca Mw_PalBase, para realizar sobre los ocho bits bajos (Mw_PalBase.0
.... Mw_PalBase.7), las cuatro secuencias pedidas en esta aplicacin. Con la entrada %I0.1.2
(Ix_Arranque) daremos la orden para que comience la realizacin de la secuencia de inicio, se
Universidad de Oviedo Problemas M340 - 181
ISA

define la recepcin de dicha orden con el flanco ascendente de Ix_Arranque. Situamos en la


Mw_PalBase el valor de comienzo, el cual, lo introducimos desde la palabra constante Mw_ValorInicio.
Simultneamente activamos el bit de marca Mx_DesDerIzq para que la subrutina a realizar sea el
desplazamiento del bit_X hacia la izquierda. Como oscilador utilizaremos el bit de sistema %S6, el
cual funciona como una base de tiempo de 1 sg. lo asignaremos al bit de marca Mx_S6, para poder
trabajar sin las trabas que tienen los bits de sistema. Mediante la entrada %I1.7 pondremos a cero
el valor de los bits de marca: Mx_DesADer, Mx_DesAIzq, Mx_OscUnosCeros y Mx_OscNibbles.

PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0400, fuente de
alimentacin BMX CPS 2000, mdulo mixto de entradas salidas BMX DDM3202K y mdulo de contaje
BMX EHC 0800.

Tabla de variables

En el mdulo BMX EHC 0800, se selecciona Contador 0 y abajo se despliega la lista asociada a Funcin. Se
elige "Modo de conteo de eventos". Luego en la pestaa de Configuracin, donde pone la ficha de Evento
se selecciona Valor "Habilitar". En la etiqueta Nmero de evento, aparece el nmero de programa de
Evento asociado que se ejecutar cuando se detecte el paso de 0 a 1 en la entrada asociada a contador 0.
Universidad de Oviedo
182 - Problemas M340 ISA

Programa en ST - (pr0802)
Seccin "SecuenciaNormal"
(*Inicializamos variables*)
Mx_Arranque := (Ix_Arranque and Ix_LocDist) or (MxP_Arranque and not Ix_LocDist);
Mx_PuestaCero := (Ix_PuestaCero and Ix_LocDist) or (MxP_PuestaCero and not Ix_LocDist);
IF %S13 THEN
Mw_PalBase:=Mw_ValorInicio; (*cargamos el valor de inicio en la palabra base 16#0001*)
END_IF;

IF RE(Mx_Arranque) AND NOT Mx_DesADer THEN


SET (Mx_DesAIzq); (*damos la orden de marcha*)
END_IF;

(*asignamos una memoria al oscilador del sistema para poder evaluar el flanco*)
Mx_Osc1Hz:=%S6;

(*borramos todos los bits de marca de secuencia*)


IF Mx_PuestaCero THEN
RESET (Mx_DesADer);RESET (Mx_DesAIzq);
RESET (Mx_OscUnosCeros); RESET (Mx_OscNibbles);
END_IF;

(*desplazamiento de bits a la izquierda*)


IF Mx_DesAIzq THEN
Sr0_DesAIzq();
END_IF;

(*desplazamiento de bits a la derecha*)


IF Mx_DesADer THEN
Sr1_DesADer();
END_IF;

(*Si se produce el Evt0, pone los ocho bits de salida 00000000 <=> 11111111 cuatro veces*)
IF Mx_OscUnosCeros THEN
Sr2_OscUnosCerosEvt0();
END_IF;

(*Si se produce el Evt1, activa alternativamente el nibble bajo y alto


de salida 11110000 <=> 00001111 cuatro veces*)
IF Mx_OscNibbles THEN
Sr3_OscNibblesEvt1();
END_IF;
Universidad de Oviedo Problemas M340 - 183
ISA

Seccin "Salidas"
(*las salidas las condicionamos a que est activa la orden de arranque (Ix_Arranque).
Asignamos los ocho bits bajos de la palabra de marca Mw_PalBase: Mw_PalBase.0 ... Mw_PalBase.7
a los bits de salida %Q0.1.16 .... %Q0.1.23*)

Qx_L16:= Mw_PalBase.0 AND Mx_Arranque;


Qx_L17:= Mw_PalBase.1 AND Mx_Arranque;
Qx_L18:= Mw_PalBase.2 AND Mx_Arranque;
Qx_L19:= Mw_PalBase.3 AND Mx_Arranque;
Qx_L20:= Mw_PalBase.4 AND Mx_Arranque;
Qx_L21:= Mw_PalBase.5 AND Mx_Arranque;
Qx_L22:= Mw_PalBase.6 AND Mx_Arranque;
Qx_L23:= Mw_PalBase.7 AND Mx_Arranque;

Subrutina "Sr0_DesAIzq"
(* Sr0_DesAIzq Esta subrutina es la encargada de ir activando los 8 bits de salida %Q2.16 .... %Q2.23, de
derecha a izquierda con un intervalo de tiempo de un segundo. Para que se realice esta subrutina, tiene
que estar activo el bit de marca Mx_DesAIzq, circunstancia que se dar, en el inicio del programa o cuando
finalice la subrutina Sr1. Como base de tiempos usamos el bit de marca %S6 (1Hz).
El desplazamiento lo hacemos por flanco ascendente, de esta forma tenemos la certeza de que se dar
una sola orden en cada segundo. Cuando activamos el bit %Q0.1.23, pondremos a cero el bit de marca
Mx_DesAIzq. Para ello usaremos el flanco negativo de %S6, y a la vez, activaremos el bit Mx_DesADer, para
que se ejecute la subrutina Sr1 *)

(*desplazamiento a la izquierda del bit activado*)


IF Mx_DesAIzq AND RE (Mx_Osc1Hz) AND Mx_Arranque THEN
Mw_PalBase := SHL (Mw_PalBase,1);
END_IF;
(*comprobamos que el bit7="1"*)
IF (Mw_PalBase=16#0080) AND FE (Mx_Osc1Hz) THEN
RESET (Mx_DesAIzq); SET (Mx_DesADer);
END_IF;

Subrutina "Sr1_DesADer"
(* Sr1DesADer Esta subrutina es la encargada de ir activando los bits de salida %Q0.1.16 .. %Q0.1.23 de
izquierda a derecha con un intervalo de tiempo de un segundo. Para que se realice esta subrutina, tiene
que estar activo el bit Mx_DesADer, circunstancia que se dar, cuando finalice la subrutina Sr0.
Como base de tiempos usamos el bit %S6 (1Hz). El desplazamiento lo hacemos por flanco ascendente, de
esta forma tenemos la certeza de que se der una sola orden en cada segundo. Cuando activamos el bit
%Q0.1.16, pondremos a cero el bit Mx_DesADer. Para ello usaremos el flanco negativo de %M6, y a la vez,
activaremos y activaremos el bit Mx_DesAIzq, para que se ejecute la subrutina Sr0 *)

(*desplazamiento a la derecha del bit activado*)


IF Mx_DesADer AND RE (Mx_Osc1Hz) AND Mx_Arranque THEN
Mw_PalBase:=SHR(Mw_PalBase,1);
END_IF;
Universidad de Oviedo
184 - Problemas M340 ISA

(*comprobamos que el bit0="1"*)


IF (Mw_PalBase=16#0001) AND FE (Mx_Osc1Hz) THEN
RESET (Mx_DesADer); SET (Mx_DesAIzq);
END_IF;

Subrutina "Sr2_OscUnosCerosEvt0"
(* Sr2_OscUnosCerosEvt0 Esta subrutina es la encargada de ir activando y desactivando los bits de salida
%Q0.1.16 ... %Q0.1.23 cada segundo, as durante ocho veces. Para que se realice esta subrutina, tiene que
estar activo el bit de marca Mx_OscUnosCeros, circunstancia que se dar, cuando tenga lugar un flanco
ascendente en la entrada %I0.1.0(Evt0 ),teniendo en cuenta que esta es una demanda de interrupcin, de
menor prioridad que la producida por el Evt1. En caso de que se est ejecutando esta ltima, debe esperar
a su trmino para ejecutarse.
Como base de tiempos usamos el bit Mx_Osc1Hz(1sg). El cambio de estado se produce por nivel. Para
control de cuenta utilizamos la palabra Mi_ContOscUnosCeros, la cual incrementaremos cada segundo,
mediante el flanco ascendente en el bit de marca Mx_Osc1Hz.
Comparando con el valor #9 determinaremos si hemos alcanzado las ocho oscilaciones deseadas, momento
en el cual ponemos a cero el bit Mx_OscUnosCeros, restituimos en la palabra de marca Mw_PalBase el
valor que tena cuando se produjo la demanda de interrupcin, valor contenido en la palabra de marca
Mw_Secuencia. Reseteamos la palabra Mi_ContOscUnosCeros y por ltimo, mediante los bit
Mx_MemADer o Mx_MemAIzq, indicamos la subrutina a seguir ejecutando*)

IF Mx_OscUnosCeros AND Mx_Osc1Hz THEN


Mw_PalBase:=16#00FF; (*oscilacin de 00000000 <=> 11111111 ocho veces*)
END_IF;

IF Mx_OscUnosCeros AND(NOT Mx_Osc1Hz)THEN


Mw_PalBase:=16#0000;
END_IF;

IF RE (Mx_Osc1Hz) THEN
INC (Mi_ContOscUnosCeros);
END_IF;

IF Mi_ContOscUnosCeros=9 THEN
RESET (Mx_OscUnosCeros);
END_IF;

(*restituimos valores*)
IF Mi_ContOscUnosCeros=9 AND Mx_MemADer THEN
Mi_ContOscUnosCeros:=0; Mw_PalBase:=Mw_Secuencia;
SET (Mx_DesADer); RESET (Mx_MemADer);

END_IF;
Universidad de Oviedo Problemas M340 - 185
ISA

IF Mi_ContOscUnosCeros=9 AND Mx_MemAIzq THEN


Mi_ContOscUnosCeros:=0; Mw_PalBase:=Mw_Secuencia;
SET (Mx_DesAIzq); RESET (Mx_MemAIzq);
END_IF;

Subrutina "Sr3_OscNibblesEvt1"
(* Sr3_OscNibblesEvt1
En esta subrutina haremos que el contenido del grupo de cuatro bits de salida %Q0.1.16 ... %Q0.1.19
(nibble bajo), y el contenido del grupo de cuatro bits tambin de salida %Q0.1.20 ... %Q0.1.23 (nibble alto),
se intercambien pasando alternativamente de 0000->1111 y de 1111->0000, as durante ocho veces.
Para que esta subrutina se ejecute, tiene que estar activo el bit de marca Mx_OscNibbles, circunstancia
que se dar cuando tenga lugar un flanco ascedente en la entrada %I0.1.1 (Evt1). Como sta es una
demanda de interrupcin de mayor prioridad, tiene que parar la ejecucin de cualquier otra parte del
programa, y proceder a la ejecucin inmediata de esta subrutina.
Para control de cuenta utilizamos la palabra de marca Mi_ContOscNibbles, la cual incrementaremos cada
segundo, mediante el flanco ascendente en el bit de marca Mx_Osc1Hz. Comparando con el valor #9
determinaremos si hemos alcanzado las ocho oscilaciones deseadas, momento en el cual ponemos a cero
la palabra de marca Mx_OscNibbles. Definimos a que secuencia debemos retornar, en funcin del
momento de la demanda de interrupcin. Restituimos a la palabra de marca Mw_PalBase, el valor que
tena cuando se produjo la demanda de interrupcin, valor contenido en las palabras de marca
Mw_Secuencia o Mw_SecuenciaEvt0.

(*oscilacin de 11110000 <=> 00001111 ocho veces*)


IF Mx_OscNibbles AND Mx_Osc1Hz THEN
Mw_PalBase:=16#0F;
END_IF;

IF Mx_OscNibbles AND (NOT Mx_Osc1Hz) THEN


Mw_PalBase:=16#F0;
END_IF;

IF RE (Mx_Osc1Hz) THEN
INC (Mi_ContOscNibbles);
END_IF;

(*restituimos valores*)
IF Mi_ContOscNibbles=9 THEN
RESET (Mx_OscNibbles);
END_IF;

(*restituimos bits de marcas*)


IF Mi_ContOscNibbles=9 AND Mx_MemADer AND NOT Mx_MemAIzq AND NOT Mx_MemEvt0 THEN
SET (Mx_DesADer); RESET (Mx_MemADer);
Mw_PalBase:=Mw_Secuencia; Mi_ContOscNibbles:=0;
END_IF;

IF Mi_ContOscNibbles=9 AND Mx_MemAIzq AND NOT Mx_MemADer AND NOT Mx_MemEvt0 THEN
Mi_ContOscNibbles:=0; Mw_PalBase:=Mw_Secuencia;
SET (Mx_DesAIzq); RESET (Mx_MemAIzq);
END_IF;
Universidad de Oviedo
186 - Problemas M340 ISA

IF Mi_ContOscNibbles=9 AND Mx_MemEvt0 THEN


Mi_ContOscNibbles:=0; Mw_PalBase:=Mw_SecuenciaEvt0;
SET (Mx_OscUnosCeros); RESET (Mx_MemEvt0);
END_IF;

Evt 0 - Interrupcin por la entrada %I0.1.0


(* Evt0_Oscila unos y ceros. Cuando activamos este suceso pretendemos que se realice una secuencia
determinada, en concreto, la asociada a la marca Mx_OscUnosCeros. Pero como se considera en el
anunciado, que esta secuencia es la menos prioritaria, de las dos que pueden darse bajo demanda de
interrupcin. En el supuesto de que se est ejecutando la secuencia asociada con Mx_OscNibbles,
debemos definir un nuevo bit de marca Mx_MemEvt0, que nos permita esperar a la terminacin de la
ejecucin de la secuencia asociada a Mx_OscNibbles. Si no hay otra demanda de interrupcin y estamos en
la secuencia normal, salvaguardaremos el valor de la palabra base Mw_PalBase en la palabra
Mw_Secuencia, para cuando retornemos nuevamente a la secuencia normal.
A continuacin salvaguardamos el bit de marca presente, asociado con la secuencia en curso. *)

(*definimos ejecucin o espera*)


IF Mx_OscNibbles THEN
SET (Mx_MemEvt0);
ELSE SET (Mx_OscUnosCeros);
END_IF;

(*salvaguardamos los bits de marca*)


IF Mx_DesADer AND Mx_OscUnosCeros THEN
Mw_Secuencia:=Mw_PalBase;
SET (Mx_MemADer); RESET (Mx_DesADer);
END_IF;

IF Mx_DesAIzq AND Mx_OscUnosCeros THEN


Mw_Secuencia:=Mw_PalBase;
SET (Mx_MemAIzq); RESET (Mx_DesAIzq);
END_IF;

Evt 1 - Interrupcin por la entrada %I0.1.1


(*Evt1_Oscila Nibbles. Este evento es prioritario, por tanto, debe ejecutarse inmediatamente la secuencia
asociada, esto es, activamos el bit de marca Mx_OscNibbles = 1 y desactivamos los dems.
Salvaguardaremos la palabra base Mw_PalBase, en las palabras Mw_Secuencia o Mw_SecuenciaEvt0 segn
proceda. Por ltimo, salvaguarderemos el bit de marca de la secuencia en ejecucin *)

(*Demanda de mxima prioridad*)


IF Mx_DesADer THEN
Mw_Secuencia:=Mw_PalBase;
SET (Mx_OscNibbles);
SET (Mx_MemADer); RESET (Mx_DesADer);
END_IF;IF Mx_DesAIzq THEN
Universidad de Oviedo Problemas M340 - 187
ISA

Mw_Secuencia:=Mw_PalBase;
SET (Mx_OscNibbles);
SET (Mx_MemAIzq); RESET (Mx_DesAIzq);
END_IF;

IF Mx_OscUnosCeros THEN
Mw_SecuenciaEvt0:=Mw_PalBase;
SET (Mx_OscNibbles);
SET (Mx_MemEvt0); RESET (Mx_OscUnosCeros);
END_IF;

Pantalla de operador
Universidad de Oviedo
188 - Problemas M340 ISA

Problema 8.3 Control de acceso de entrada a garaje y pulsador


Un garaje dispone de treinta plazas de aparcamiento. El acceso al mismo se realiza travs de una entrada y
salida comn, estando sta cerrada mediante un portn elevadizo.
La entrada-salida de vehculos se controla mediante dos semforos; uno de entrada, SE, y otro de salida, SS.
Para que un vehculo pueda entrar debe disponer de aparcamiento, lo que indicaremos mediante la
activacin del foco azul.

.
S.E

Se2 Se1
D A
EN T RA
TR
ADA EN

FCA FCC

30 PLAZAS
P
IDA SA
S AL LID
A

Ss2

Ss1 S.S.

La demanda de entrada se hace mediante la activacin del lazo sensor E1, momento en el cual se pueden
dar las opciones siguientes:
1. No est vehculo alguno en proceso de salida, y tenga plaza de aparcamiento. Proceder en este
caso al inicio de la maniobra de entrada, contabilizndose sta al accionar el lazo sensor E2.
2. Si encuentra otro vehculo en proceso de salida, deber entonces el semforo de entrada
permanecer en rojo, hasta que el vehculo haya salido, pudiendo a continuacin proceder al inicio
de la maniobra de entrada.
La demanda de salida se hace mediante la activacin del lazo sensor S1, momento en el que se pueden dar
las opciones siguientes:
1. No est vehculo alguno en proceso de entrada. Proceder en este caso al inicio de la maniobra de
salida, contabilizndose sta al accionar el lazo sensor S2.
Universidad de Oviedo Problemas M340 - 189
ISA

2. Si encuentra otro vehculo en proceso de entrada, deber entonces el semforo de salida permanecer
en rojo, hasta que el vehculo haya entrado, pudiendo a continuacin proceder al inicio de la maniobra
de salida.
Tanto el semforo de entrada como de salida, deben cambiar de verde a rojo, una vez que el vehculo
abandone tanto el lazo sensor, (E1), como el, (S1).
Ante demandas simultneas de entrada y salida, tiene prioridad la salida. Si se produce una cola de
vehculos deber permitirse una salida y entrada alternada para evitar demasiada espera por parte de los
vehculos que deseen entrar.
El portn es controlado de manera automtica por los sensores de entrada y de salida, (E1) y (S1), para su
apertura. Y los sensores, (E2) y (S2), para su cierre.
Mientras haya una demanda de salida o de entrada, en curso, el portn deber permanecer abierto. As
mismo, es necesario que el portn se encuentre abierto para que los semforos, tanto de entrada, como de
salida, cambien de rojo a verde.
Disponemos de un pulsador, (P), que nos permite la apertura y cierre manual del portn, en todo momento
(si est abierto lo cerrar y si est cerrado lo abrir). Se dispondr, as mismo, de un pulsador para resetear
el sistema y llevarlo a las condiciones Iniciales con el portn cerrado.

PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo
190 - Problemas M340 ISA

Cmo crear un Bloque de Funcin de Usuario (DFB)


Un bloque de funcin de usuario DFB (Derived Function Block) es un bloque de programa que define el
funcionamiento completo de una parte del proyecto. El bloque se crea de forma que contenga la
programacin requerida en secciones de programacin.
El resultado de la creacin de un DFB es un bloque de funcin en el que el usuario puede definir el nmero
de entradas y de salidas necesarias y el comportamiento interno del mismo.

Ejemplo.
Se ha de crear un bloque motor con las caractersticas siguientes:
- El motor tiene 2 sentidos de giro (izquierda y derecha).
- Fsicamente, el pulsador de PARO es normalmente cerrado por seguridad de mquina.
- Se ha de definir tiempos de funcionamiento.
- El motor se pondr en marcha a la izquierda o a la derecha cuando se ponga active la orden de Marcha.

Primeramente, se debe acudir al explorador de proyectos y abrir la ventana de Editor de datos en la


pestaa de Tipos de DFB. Se puede llegar de diversas formas, por ejemplo, doble clic en Tipos de FB
derivados en el explorador de proyectos. A continuacin se debe introducir el nombre del bloque DFB en la
posicin indicada.

Introducir el nombre del bloque DFB


Universidad de Oviedo Problemas M340 - 191
ISA

En este momento ya podemos introducir las variables de entrada y salida que vayamos a utilizar. En el
campo secciones editaremos el programa del bloque DFB.

Creacin de la seccin DFB (Solucin implementada con el editor FBD)


Universidad de Oviedo
192 - Problemas M340 ISA

Por otra parte, se deben introducir como siempre las variables del programa principal (Explorador de
proyectos Variable e Instancias FB).

En la seccin del programa principal insertaremos el bloque DFB creado. Por ejemplo, aqu se inserta el
bloque DFB_MOTOR en la seccin FBD denominada Control. Para ello se debe editar la seccin Control
y pulsar el botn derecho del ratn. Se despliega la ventana que se muestra en la figura y despus
seleccionamos Asistente de entrada FFB. Posteriormente buscamos el bloque creado de manera similar
a seleccionar bloques de funciones elementales.
Universidad de Oviedo Problemas M340 - 193
ISA

Una vez insertado el bloque de funcin derivado debemos compilar el proyecto para que se puedan ver las
entradas y salidas del bloque. A continuacin conectaremos las entradas y salidas del bloque a nuestras
variables del programa principal. El aspecto que quedara se muestra en la figura siguiente.

Al transferir el proyecto al PLC y ejecutarlo, se puede visualizar la seccin de programacin de la instancia


de la DFB haciendo clic con el botn derecho del ratn y seleccionando Detallar.
Universidad de Oviedo
194 - Problemas M340 ISA

De esa forma se puede observar la seccin indicada segn la siguiente figura:


Universidad de Oviedo Problemas M340 - 195
ISA

Problema 9.1 Control de 3 lmparas


Efectuar el encendido de tres lmparas de forma secuencial con un nico pulsador. En cada activacin del
pulsador se proceder al encendido de una lmpara y apagado de la anterior.
Se impondr una limitacin al accionamiento del pulsador, de forma tal, que si se efectuasen cuatro
pulsaciones consecutivas en un tiempo inferior a 12 segundos, se inhibir el efecto del pulsador durante un
tiempo de 60 segundos. En este supuesto se mantendr encendida la ltima lmpara activada.

L1

L2

L3

PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.

Tabla de variables
Universidad de Oviedo
196 - Problemas M340 ISA

0. Cronograma de activacin y desactivacin


de las lmparas segn una secuencia.

Programa con FBDs - (pr0901a)


Seccin "Preliminar"
Mx_Pulsador:= (Ix_Pulsador and Ix_LocDist) or (MxP_Pulsador and not Ix_LocDist);

Seccin Control (en FBD)

.4 .1
1 2
RE AND

Mx_Pulsador IN OUT IN1 OUT Mx_Impulso


T_BloqueoPulsador.Q IN2
.4 .1
1 2
Universidad de Oviedo RE AND Problemas M340 - 197
ISA
Mx_Pulsador IN OUT IN1 OUT Mx_Impulso
T_BloqueoPulsador.Q IN2

Slo se ejecuta cuando ya est contando 12 segundos el temporizador de la alarma 1

.2 .5 .6
3 4 5
AND AND AND

Mx_Impulso IN1 OUT Mx_AlarmLuz1 Mx_Impulso IN1 OUT Mx_AlarmLuz2 Mx_Impulso IN1 OUT Mx_AlarmLuz3
T_Alarm1.Q IN2 T_Alarm2.Q IN2 T_Alarm3.Q IN2
Qx_Luz1 IN3 Qx_Luz1 IN3 Qx_Luz1 IN3
Qx_Luz2 IN4 Qx_Luz2 IN4 Qx_Luz2 IN4
Qx_Luz3 IN5 Qx_Luz3 IN5 Qx_Luz3 IN5

.7 T_BloqueoPu...
6 7
OR TP

Mx_AlarmLuz1 IN1 OUT IN Q


Mx_AlarmLuz2 IN2 t#60s PT ET
Mx_AlarmLuz3 IN3

Slo se ejecuta cuando no est contando los 12 segundos el temporizador de la alarma 1

.8
8
AND

Mx_Impulso IN1 OUT


Qx_Luz1 IN2 .10
Qx_Luz2 .9 11 .12
IN3 AND
Qx_Luz3 10 12
IN4 OR SET
T_Alarm1.Q IN1 OUT EN ENO
IN1 OUT IN2 OUT Qx_Luz1
.3 IN2
9
AND .13 .11
Mx_Impulso 13 14
IN1 OUT RESET RESET
Qx_Luz1 IN2 EN ENO EN ENO
Qx_Luz2 IN3 OUT Mx_Impulso OUT Qx_Luz3
Qx_Luz3 IN4

T_Alarm1
15
TP

Qx_Luz1 IN Q
t#12s PT ET

.14
16 .19
AND 17
SET
Mx_Impulso IN1 OUT EN ENO
Qx_Luz1 IN2 OUT Qx_Luz2
Qx_Luz2 IN3
Qx_Luz3 IN4
T_Alarm2.Q IN5 .20 .18
18 19
RESET RESET
EN ENO EN ENO
OUT Mx_Impulso OUT Qx_Luz1

T_Alarm2
20
TP

Qx_Luz2 IN Q
t#12s PT ET

.15
21 .17 .16
AND 22 23
SET RESET
Mx_Impulso IN1 OUT EN ENO EN ENO
Qx_Luz1 IN2 OUT Qx_Luz3 OUT Qx_Luz2
Qx_Luz2 IN3
Qx_Luz3 IN4
T_Alarm3.Q IN5

T_Alarm3
24
TP

Qx_Luz3 IN Q
t#12s PT ET
Universidad de Oviedo
198 - Problemas M340 ISA

Programa en ST - (pr0901b)
Seccin "Control" (en ST)
Mx_Impulso:= RE(Mx_Pulsador) and not T_Bloqueo_Pulsador.Q;

Mx_Alarm_luz1 := Mx_Impulso and T_alarm1.Q and not Qx_Luz1 and not Qx_Luz2 and Qx_Luz3;
Mx_Alarm_luz2 := Mx_Impulso and T_alarm2.Q and Qx_Luz1 and not Qx_Luz2 and not Qx_Luz3;
Mx_Alarm_luz3 := Mx_Impulso and T_alarm3.Q and not Qx_Luz1 and Qx_Luz2 and not Qx_Luz3;

T_BLOQUEO_PULSADOR (IN:= Mx_Alarm_luz1 or Mx_Alarm_luz2 or Mx_Alarm_luz3, PT:=t#60s);

IF (Mx_Impulso and not Qx_Luz1 and not Qx_Luz2 and not Qx_Luz3 or Mx_Impulso and not Qx_Luz1 and
not Qx_Luz2 and Qx_Luz3) and not T_alarm1.Q then
SET (Qx_Luz1);
RESET (Qx_Luz3);
RESET (Mx_Impulso);
END_IF;

T_ALARM1 (IN:= Qx_Luz1, PT:= t#12s); (*Temporizador tipo TP*)

IF Mx_Impulso and Qx_Luz1 and not Qx_Luz2 and not Qx_Luz3 and not T_alarm2.Q then
SET (Qx_Luz2);
RESET (Qx_Luz1);
RESET (Mx_Impulso);
END_IF;

T_ALARM2 (IN:= Qx_Luz2, PT:= t#12s); (*Temporizador tipo TP*)

IF Mx_Impulso and not Qx_Luz1 and Qx_Luz2 and not Qx_Luz3 and not T_alarm3.Q then
SET (Qx_Luz3);
RESET (Qx_Luz2);
END_IF;

T_ALARM3 (IN:= Qx_Luz3, PT:= t#12s); (*Temporizador tipo TP*)


Pantalla de explotacin
Universidad de Oviedo Problemas M340 - 199
ISA

Programa mixto ST y SFC - (pr0901c)


Seccin "Preliminar"
Mx_Pulsador:= (Ix_Pulsador and Ix_LocDist) or (MxP_Pulsador and not Ix_LocDist);

Mx_Impulso:= RE(Mx_Pulsador);

T_Alarm1 (IN:= Etapa1.x, PT:= t#12s); (* tipo TP*)

T_Alarm2 (IN:= Etapa2.x, PT:= t#12s); (* tipo TP*)

T_Alarm3 (IN:= Etapa3.x, PT:= t#12s); (* tipo TP*)

Seccin "Salidas"
Qx_Luz1:=Etapa1.x or Etapa4.x;
Qx_Luz2:=Etapa2.x or Etapa5.x;
Qx_Luz3:=Etapa3.x or Etapa6.x;

Seccin "Transicines"
Tran_1_2:=Mx_Impulso and not T_Alarm2.Q;
Tran_1_4:=Mx_Impulso and T_Alarm2.Q;
Tran_2_3:=Mx_Impulso and not T_Alarm3.Q;
Tran_2_5:=Mx_Impulso and T_Alarm3.Q;
Tran_3_1:=Mx_Impulso and not T_Alarm1.Q;
Tran_3_6:=Mx_Impulso and T_Alarm1.Q;
Tran_4_2:=Mx_Impulso and Etapa4.t >=t#20s;
Tran_5_3:=Mx_Impulso and Etapa5.t >=t#20s;
Tran_6_1:=Mx_Impulso and Etapa6.t >=t#20s;
Universidad de Oviedo
200 - Problemas M340 ISA

Seccin SFC "Control"


Etapa0

Mx_Impulso

L1
12s TP1
Etapa1

Mx_Impulso and Mx_Impulso and T_Alarm2.Q


not T_Alarm2.Q

Tran_1_2 Tran_1_4

L1
Etapa4

Mx_Impulso and
Etapa4.t >=t#20s

Tran_4_2

L2
12s TP2
Etapa2

Mx_Impulso and Mx_Impulso and T_Alarm3.Q


not T_Alarm3.Q

Tran_2_3 Tran_2_5

L2
Etapa5

Mx_Impulso and
Etapa5.t >=t#20s

Tran_5_3

L3
12s TP3
Etapa3

Mx_Impulso and Mx_Impulso and T_Alarm1.Q


not T_Alarm1.Q

Tran_3_1 Tran_3_6

L3
Etapa6

Mx_Impulso and
Etapa6.t >=t#20s

Tran_6_1
Universidad de Oviedo Problemas M340 - 201
ISA

Problema 9.2 Control de la mezcla en un depsito


Disear el programa lgico que efecte el control de la mezcla realizada en el depsito destinado al efecto,
cuyo esquema mostramos en la figura. En el mismo mezclaremos lquidos procedentes de un grifo " A " y
otro " B ", en las proporciones que definimos a continuacin.
A B

5:0 S5

4:1 S4

3:2 S3
P_ejecucin H
2:3 S2

1:4 S1

0:5 S0
C

{ (A:B) } = { (5:0), (4:1), (3:2), (2:3), (1:4), (0:5), (ninguna) }

La eleccin de la mezcla se realizar de manera secuencial, mediante el accionamiento del pulsador,


"P_mezcla". Se conocer la mezcla por la iluminacin del cajetn, asociado con la misma, en el panel de
mandos.
Mediante el accionamiento del pulsador P_ejecucin se efectuar la orden de ejecucin de la mezcla
seleccionada, siendo necesario para que esto se realice que el mezclador se encuentre completamente
vaco y la servovlvula C cerrada.
Durante la ejecucin de la mezcla el pulsador P_ejecucin debe quedar inhibido hasta que el mezclador
se encuentre vaco.
Cuando se haya dado la orden de ejecucin, sta comenzar abriendo el grifo," A ", y permaneciendo
abierto hasta que el depsito alcance el nivel que corresponda con el primer dgito de la mezcla
establecida, momento en el que deber procederse al cierre del grifo, " A ", y a la apertura del grifo, " B ",
permaneciendo ste abierto hasta que el depsito se incremente en las partes correspondientes para
formar la mezcla pedida. Momento en el cual se proceder al cierre del grifo, " B ".
La mezcla quedara concluida en este momento, pero quiz no fuera todo lo homognea que sera de
desear; para corregir esto se dispone de un homogeneizador, " H ", el cual deber funcionar durante 30
segundos, a partir del momento en que se cierra el grifo, " B ".
Concluida la homogeneizacin de la mezcla, se evacuar por el grifo, " C ", procedindose a la apertura del
mismo, una vez transcurridos los treinta segundos de homogeneizacin. Vaciado el depsito, se proceder
al cierre del grifo, " C ".
Los sensores de nivel S0 ..... S5 se sitan a "1", cuando la mezcla alcanza el nivel respectivo. Entenderemos
por tanto que cuando el sensor de nivel S0 = "1", el depsito se encuentra vaco, mientras que si S5 = "1",
el depsito se encuentra lleno.
PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
Universidad de Oviedo
202 - Problemas M340 ISA

alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM 3202K.
Universidad de Oviedo Problemas M340 - 203
ISA

Tabla de variables
Universidad de Oviedo
204 - Problemas M340 ISA

Programa mixto ST y FBD (pr0902a)


Preliminar
(*Inicializacin de la pantalla de operador*)
If %S13 then
set(MxP_Sensor0);set(MxP_F_ce_EVC);set(MxP_F_ce_EVA);set(MxP_F_ce_EVB);
end_if;
(*Marcas para el control Local-Distancia*)
Mx_PMezcla:= (Ix_PMezcla and Ix_LocDist) or (MxP_PMezcla and not Ix_LocDist);
Mx_PEjecucion:= (Ix_PEjecucion and Ix_LocDist) or (MxP_PEjecucion and not Ix_LocDist);
Mx_F_ab_EVA:= (Ix_F_ab_EVA and Ix_LocDist) or (MxP_F_ab_EVA and not Ix_LocDist);
Mx_F_ce_EVA:= (Ix_F_ce_EVA and Ix_LocDist) or (MxP_F_ce_EVA and not Ix_LocDist);
Mx_F_ab_EVB:= (Ix_F_ab_EVB and Ix_LocDist) or (MxP_F_ab_EVB and not Ix_LocDist);
Mx_F_ce_EVB:= (Ix_F_ce_EVB and Ix_LocDist) or (MxP_F_ce_EVB and not Ix_LocDist);
Mx_F_ab_EVC:= (Ix_F_ab_EVC and Ix_LocDist) or (MxP_F_ab_EVC and not Ix_LocDist);
Mx_F_ce_EVC:= (Ix_F_ce_EVC and Ix_LocDist) or (MxP_F_ce_EVC and not Ix_LocDist);
Mx_Sensor0:= (Ix_Sensor0 and Ix_LocDist) or (MxP_Sensor0 and not Ix_LocDist);
Mx_Sensor1:= (Ix_Sensor1 and Ix_LocDist) or (MxP_Sensor1 and not Ix_LocDist);
Mx_Sensor2:= (Ix_Sensor2 and Ix_LocDist) or (MxP_Sensor2 and not Ix_LocDist);
Mx_Sensor3:= (Ix_Sensor3 and Ix_LocDist) or (MxP_Sensor3 and not Ix_LocDist);
Mx_Sensor4:= (Ix_Sensor4 and Ix_LocDist) or (MxP_Sensor4 and not Ix_LocDist);
Mx_Sensor5:= (Ix_Sensor5 and Ix_LocDist) or (MxP_Sensor5 and not Ix_LocDist);

(* Marcas utilizadas en la pantalla *)


if not MxP_Sensor0 then
MxP_Contenido:=0;
else
MxP_Contenido:=6;
end_if;
if MxP_Sensor1 then
MxP_Contenido:=25;
end_if;
if MxP_Sensor2 then
MxP_Contenido:=42;
end_if;
if MxP_Sensor3 then
MxP_Contenido:=62;
end_if;
if MxP_Sensor4 then
MxP_Contenido:=80;
end_if;
if MxP_Sensor5 then
MxP_Contenido:=100;
end_if;
Universidad de Oviedo Problemas M340 - 205
ISA

Seleccin
Universidad de Oviedo
206 - Problemas M340 ISA

Llenado
Universidad de Oviedo Problemas M340 - 207
ISA
Universidad de Oviedo
208 - Problemas M340 ISA

Vaciado
Universidad de Oviedo Problemas M340 - 209
ISA

Pantalla de explotacin
Universidad de Oviedo
210 - Problemas M340 ISA

Programa mixto ST y SFC (pr0902b)

Preliminar
Mx_PMezcla:= (Ix_PMezcla and Ix_LocDist) or (MxP_PMezcla and not Ix_LocDist);
Mx_PEjecucion:= (Ix_PEjecucion and Ix_LocDist) or (MxP_PEjecucion and not Ix_LocDist);
Mx_F_ab_EVA:= (Ix_F_ab_EVA and Ix_LocDist) or (MxP_F_ab_EVA and not Ix_LocDist);
Mx_F_ce_EVA:= (Ix_F_ce_EVA and Ix_LocDist) or (MxP_F_ce_EVA and not Ix_LocDist);
Mx_F_ab_EVB:= (Ix_F_ab_EVB and Ix_LocDist) or (MxP_F_ab_EVB and not Ix_LocDist);
Mx_F_ce_EVB:= (Ix_F_ce_EVB and Ix_LocDist) or (MxP_F_ce_EVB and not Ix_LocDist);
Mx_F_ab_EVC:= (Ix_F_ab_EVC and Ix_LocDist) or (MxP_F_ab_EVC and not Ix_LocDist);
Mx_F_ce_EVC:= (Ix_F_ce_EVC and Ix_LocDist) or (MxP_F_ce_EVC and not Ix_LocDist);
Mx_Sensor0:= (Ix_Sensor0 and Ix_LocDist) or (MxP_Sensor0 and not Ix_LocDist);
Mx_Sensor1:= (Ix_Sensor1 and Ix_LocDist) or (MxP_Sensor1 and not Ix_LocDist);
Mx_Sensor2:= (Ix_Sensor2 and Ix_LocDist) or (MxP_Sensor2 and not Ix_LocDist);
Mx_Sensor3:= (Ix_Sensor3 and Ix_LocDist) or (MxP_Sensor3 and not Ix_LocDist);
Mx_Sensor4:= (Ix_Sensor4 and Ix_LocDist) or (MxP_Sensor4 and not Ix_LocDist);
Mx_Sensor5:= (Ix_Sensor5 and Ix_LocDist) or (MxP_Sensor5 and not Ix_LocDist);

Mx_Flanco := RE (Mx_PMezcla);

(*Inhibicin de la seleccin*)
Mx_Seleccion_Parada:=freezechart(Seleccion,not S_Dep_vacio.x);

(*Marcas de pantalla*)
if S_Homogen.x then
MtP_Tiempo_Homogen:= S_Homogen.t;
else
MtP_Tiempo_Homogen:= t#0s;
end_if;

MxP_Abierta_EVA:=S_A_abierta.x;
MxP_Abierta_EVB:=S_B_abierta.x;
MxP_Abierta_EVC:=S_C_abierta.x;
Universidad de Oviedo Problemas M340 - 211
ISA

Chart Seleccion
Universidad de Oviedo
212 - Problemas M340 ISA

Chart Control
Universidad de Oviedo Problemas M340 - 213
ISA

Transicin Tran1
(*Se supone en este caso que si el depsito est vaco el sensor 0 est a 0*)
Mx_Pejecucion and not S_Ninguna.x and not Mx_Sensor0 and Mx_F_ce_EVC

Transicin Tran2
(*En este caso los sensores se podrn a 1 cuando el nivel de agua sea el mismo o superior*)
S_Mezcla0.x and Mx_Sensor5 or S_Mezcla1.x and Mx_Sensor4 or S_Mezcla2.x and Mx_Sensor3 or
S_Mezcla3.x and Mx_Sensor2 or S_Mezcla4.x and Mx_Sensor5 or S_Mezcla5.x and Mx_Sensor0

Transicin Tran3
S_Homogen.t>t#30s or Mx_Mezcla0 or Mx_Mezcla5

Salidas
Mx_Mezcla0:=S_Mezcla0.x;
Mx_Mezcla1:=S_Mezcla1.x;
Mx_Mezcla2:=S_Mezcla2.x;
Mx_Mezcla3:=S_Mezcla3.x;
Mx_Mezcla4:=S_Mezcla4.x;
Mx_Mezcla5:=S_Mezcla5.x;

Qx_Abrir_EVA:=S_abrir_A.x;
Qx_Abrir_EVB:=S_abrir_B.x;
Qx_Abrir_EVC:=S_abrir_C.x;
Qx_Cerrar_EVA:=S_cerrar_A.x;
Qx_Cerrar_EVB:=S_cerrar_B.x;
Qx_Cerrar_EVC:=S_cerrar_C.x;
Qx_Homogen:= S_Homogen.x;

En este ejercicio, podrn estar activos ms de un sensor de nivel a la vez. Estarn activos, cuando el lquido
est en ese nivel o superior. Inicialmente el Sensor 0 estar desactivado.
Universidad de Oviedo
214 - Problemas M340 ISA

Problema 9.3 Control de 2 bombas y su desgaste


Una estacin de bombeo consta de dos bombas B1 y B2, las cuales deben funcionar de manera alternada
para evitar un desgaste excesivo de una respecto de otra.
El depsito que recoge los lquidos a evacuar est dotado de dos sensores de nivel, uno para determinar el
nivel mnimo (Nmin) y otro para determinar el nivel mximo (Nmax).
CONDICIONES INICIALES. El sistema parte de la condicin de Paro: las bombas deben estar paradas y la luz
de paro activada.
ARRANQUE DE LAS BOMBAS. El sistema tiene dos modos de trabajo:
Marcha automtica, el arranque debe producirse de manera automtica cuando se activa el sensor de nivel
mximo. Funcionar la bomba que menos tiempo de uso tenga.
Forzado manual tambin podremos hacer, mediante un pulsador que, estando el sistema parado, o
desactivadas las bombas en Marcha automtica, arranque la bomba que le corresponda, funcionando stas
hasta el vaciado del depsito y quedando luego en la situacion de partida. Durante el forzado manual, se
activar, adems de la luz que estuviese, la de forzado manual.
Si una vez arrancado la bomba correspondiente, el nivel mximo permanece 5 minutos sin desactivarse,
debe entrar en funcionamiento la otra bomba hasta que se desactive el sensor de nivel mximo.
PARADA DE LAS BOMBAS. La parada debe producirse cuando se activa el sensor de nivel mnimo
quedando en el modo de trabajo que estuviese.
Mediante un pulsador de Paro, tambin podremos hacer que las bombas en funcionamiento se paren
volviendo el sistema a las condiciones iniciales.
SECUENCIA DE BOMBEO. Cada bomba no debe funcionar ms de quince minutos seguidos .
SEALIZACIN. Deber existir una lmpara para indicar la condicin de Paro, Marcha automtica o Forzado
manual.
Entradas:
MarAut Nmin
Nmax
ForMan MarAut
Paro ForMan
N.Mx Paro
MarAut
B1 B2 Salidas:
ForMan B1
Paro B2
LMarAut
N.Mn LParo
LForMan

Nota: El diseo se ha hecho de forma tal que el depsito se puede evacuar siempre con una sla bomba.

El sensor de nivel mximo da un 1 lgico, cuando el agua est en ese nivel o superior.
El sensor de nivel mnimo da un 1 lgico, cuando el agua est en ese nivel o inferior.

PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM 3202K.
Universidad de Oviedo Problemas M340 - 215
ISA

Tabla de variables

Instancias de bloques elementales:

Programa mixto ST y FBD - (pr0903a)


Preliminar:
(*Inicializacin de la pantalla de operador*)
If %S13 then
set(MxP_Paro);
end_if;
Universidad de Oviedo
216 - Problemas M340 ISA

Mx_ForMan:= (Ix_ForMan and Ix_LocDist) or (MxP_ForMan and not Ix_LocDist);


Mx_MarAut:= (Ix_MarAut and Ix_LocDist) or (MxP_MarAut and not Ix_LocDist);
Mx_Paro:= (Ix_Paro and Ix_LocDist) or (MxP_Paro and not Ix_LocDist);
Mx_Nmin:= (Ix_Nmin and Ix_LocDist) or (MxP_Nmin and not Ix_LocDist);
Mx_Nmax:= (Ix_Nmax and Ix_LocDist) or (MxP_Nmax and not Ix_LocDist);

(*Memorias para la pantalla de operador*)


MxP_NivelMedio:= not Mx_Nmin and not Mx_Nmax;
MxP_Bomba:= Qx_B1 or Qx_B2;

Seccin "Estado-Marcha"
Universidad de Oviedo Problemas M340 - 217
ISA

Seccin "ControlDesgaste"
Universidad de Oviedo
218 - Problemas M340 ISA

Seccin "ControlActivacin"
Activa las bombas al cabo de 5 minutos con el sensor de nivel mximo a 1

.2 t_Act2Bombas
1 2
AND TON
Mx_Nmax IN1 OUT IN Q
Mx_EnParo IN2 t#10s PT ET

A los 15 minutos de funcionamiento, para una bomba y arranca la otra (* Ponemos 100 veces menos el tiempo
del preciso para poder simularlo
cmodamente *)

.1 t_ParaB1ActB2
3 4
AND TON
Qx_B1 IN1 OUT IN Q
Qx_B2 IN2 t#20s PT ET

.3 t_ParaB2ActB1
5 6
AND TON

Qx_B2 IN1 OUT IN Q


Qx_B1 IN2 t#20s PT ET

Se programan todas las condiciones que hacen parar y arrancar las distintas bombas

.8
10 .9
OR 11
SET
t_ParaB2ActB1.Q IN1 OUT EN ENO
IN2 OUT Mx_Act_B1

.5
9
.6 .7 AND
7 8 Mx_TocaB1
AND OR IN1 OUT
Qx_B2 IN2
Mx_Nmax IN1 OUT IN1 OUT IN3
Mx_EnMarAut IN2 Mx_EnForMan IN2

.14
15 .15
OR 16
SET
t_ParaB1ActB2.Q IN1 OUT EN ENO
IN2 OUT Mx_Act_B2
.11
14
.12 .13 AND
12 13 Mx_TocaB2
AND OR IN1 OUT
Qx_B1 IN2
Mx_Nmax IN1 OUT IN1 OUT IN3
Mx_EnMarAut IN2 Mx_EnForMan IN2

.16
17 .17
OR 18
RESET
Mx_Nmin IN1 OUT EN ENO
t_ParaB1ActB2.Q IN2 OUT Mx_Act_B1
Mx_EnParo IN3

.18
19 .19
OR 20
RESET
Mx_Nmin IN1 OUT EN ENO
t_ParaB2ActB1.Q IN2 OUT Mx_Act_B2
Mx_EnParo IN3
Universidad de Oviedo Problemas M340 - 219
ISA

Seccin "Salidas"

Pantalla de explotacin:
Universidad de Oviedo
220 - Problemas M340 ISA

Programa mixto ST y SFC - (pr0903b)


Seccin "Preliminar"
(*Inicializacin de la pantalla de operador*)
If %S13 then
set(MxP_PParo);
end_if;
(*Marcas para el control Local-Distancia*)
Mx_ForMan:= (Ix_ForMan and Ix_LocDist) or (MxP_ForMan and not Ix_LocDist);
Mx_MarAut:= (Ix_MarAut and Ix_LocDist) or (MxP_MarAut and not Ix_LocDist);
Mx_Paro:= (Ix_Paro and Ix_LocDist) or (MxP_Paro and not Ix_LocDist);
Mx_Nmin:= (Ix_Nmin and Ix_LocDist) or (MxP_Nmin and not Ix_LocDist);
Mx_Nmax:= (Ix_Nmax and Ix_LocDist) or (MxP_Nmax and not Ix_LocDist);

(*Parada. Mx_Paro estar a 1 mientras este pulsado el pulsador de Paro.


En esas condiciones quedar fija la etapa S_Paro y las transiciones inhabilitadas*)
Mx_EnParo:= initchart (Control,not Mx_Paro);

(*Una vez que se ha dejado de pulsar el pulsador de Paro, la etapa de Paro sigue activa pero las
transiciones (pulsar Marcha o ForMan) pueden hacer evolucionar el Grafcet*)

(*Control del desgaste*)


(*si el valor del contador es superior a 1000 se debe usar la bomba 2. En caso contrario, la bomba 1
debe ser utilizada*)
CONTADOR (CU:= Qx_B1 and %S6 and not Qx_B2,
CD:= Qx_B2 and %S6 and not Qx_B1,
LD:= %S13,
PV:=1000,
QU=>Mx_TocaB2);

Mx_TocaB1:= not Mx_TocaB2;

(*Marcas para la pantalla de operador*)


MxP_NivelMedio:= not Mx_Nmin and not Mx_Nmax;
MxP_Bomba:= Qx_B1 or Qx_B2;
MtP_B1_ON:=S_ActB1.t;
MtP_B2_ON:=S_ActB2.t;

if Mx_Nmax and not S_Paro.x and S_ActB1.x then


MtP_Nmax:= S_ActB1.t;
elsif Mx_Nmax and not S_Paro.x and S_ActB2.x then
MtP_Nmax:=S_ActB2.t;
end_if;
Universidad de Oviedo Problemas M340 - 221
ISA

if not Mx_Nmax then


MtP_Nmax:=t#0s;
end_if;

Seccin "Transiciones
Tran1:=Mx_Nmax or Mx_ForMan;
Tran2:=Mx_Nmax and S_ActB1.t>t#10s;
Tran3:=S_ActB1.t>t#15s;
Tran4:=S_ActB2.t>t#15s;
Tran5:=Mx_Nmax and S_ActB2.t>t#10s;

Seccin "Salidas"
if S_Paro.x then
reset (Mx_EnMarAut);
reset (Mx_EnForMan);
end_if;

if S_IniMarcha.x then
reset (Mx_EnForMan);
set (Mx_EnMarAut);
end_if;

if S_IniForMan.x and Mx_ForMan then


set (Mx_EnForMan);
end_if;

Qx_B1:= S_ActB1.x or S_ActB1yB2.x;


Qx_B2:= S_ActB2.x or S_ActB1yB2.x;
Qx_LParo:= S_Paro.x;
Qx_LForMan:= Mx_EnForMan;
Qx_LMarAut:= Mx_EnMarAut and not Mx_EnForMan;
Universidad de Oviedo
222 - Problemas M340 ISA

Seccin "Chart"
Situacin de parada.
Se ponen a 0 las marcas de
S_Paro
marcha automtica y forzado
manual

Mx_MarAut Mx_ForMan

Accin memorizada:
Se pone a 1 la marca que indica la marcha
S_IniMarcha
automtica y se pone a 0 la marca de forzado
manual

Tran1
Mx_Nmax or Mx_PForMan

Tran1

Accin memorizada condicionada:


Se pone a 1 la marca que indica el forzado
S_IniForMan
manual si el pulsador de Forzado Manual se
encuentra pulsado

Mx_TocaB1 Mx_TocaB2

Qx_B1 Qx_B2
S_ActB1 S_ActB2

Mx_Nmin Tran2 Tran3 Tran4 Tran5 Mx_Nmin

S_IniMarcha S_IniMarcha

Tran2 Tran4
Mx_Nmax and S_act_B2.t>t#15m
S_act_B1.t>t#5m

Tran3 Tran5
S_act_B1.t>t#15m Mx_Nmax and
S_act_B2.t>t#5m

Qx_B1
Qx_B2
S_ActB1yB2

not Mx_Nmax

S_IniForMan
Universidad de Oviedo Problemas M340 - 223
ISA

Problema 9.4 Proceso de electrlisis


El proceso que se quiere automatizar consiste en el procedimiento para el tratamiento de superficies, con
el fin de hacerlas resistentes a la oxidacin.
El sistema constar de tres baos:
Uno para el desengrasado de las piezas.
Otro para el aclarado de las piezas.
Un tercero donde se les dar el bao electroltico.
La gra introducir la jaula portadora de las piezas a tratar en cada uno de los baos, comenzando por el de
desengrasado, a continuacin en el de aclarado y por ltimo les dar el bao electroltico; en este ltimo, la
gra debe permanecer 5 segundos para conseguir una uniformidad de las piezas tratadas.
El ciclo se inicia al presionar el pulsador de marcha; la primera accin a realizar es la subida de la gra;
cuando toca el final de carrera FC2, la gra comenzar a avanzar, hasta llegar al FC4, en dicho punto la gra
desciende; una vez que toca el FC1, la gra vuelve a ascender, hasta tocar de nuevo el FC2, momento en el
cual la gra vuelve a avanzar, hasta alcanzar la posicin de FC5, momento en el cual se repiten los
movimientos de descenso y ascenso de la gra; cuando la gra est de nuevo arriba avanza hasta FC6;
vuelve a bajar y cuando toca FC1, se conecta el proceso de electrlisis. Cuando ha pasado el tiempo fijado,
se desconecta el proceso de electrlisis, y la gra comienza a ascender hasta que toca FC2, Al llegar a este
punto, la gra inicia el movimiento de retroceso, hasta llegar al FC3, momento en el cual volver a
descender hasta activar el FC1.

FC3 FC4 FC5 FC6

M1: Motor de desplazamiento a izquierda o derecha de la jaula

FC2

M2: Motor de subida o bajada de la jaula

FC1 Depsito de Depsito de Depsito


desengrase aclarado electroltico

Jaula

PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM 3202K.
Universidad de Oviedo
224 - Problemas M340 ISA

Tabla de variables
Universidad de Oviedo Problemas M340 - 225
ISA

Instancias de bloques elementales:

Programa en FBD ( pr0904a )


Seccin "Preliminar"
(*Marcas para la pantalla de operador*)
If %S13 then
set (MxP_FC3); set (MxP_Fc1);
end_if;

MtP_tiempo_Electrolisis:=t_Electrolisis.ET;
MxP_FC1_FC3:=Mx_FC1 and Mx_FC3;
MxP_FC1_FC4:=Mx_FC1 and Mx_FC4;
MxP_FC1_FC5:=Mx_FC1 and Mx_FC5;
MxP_FC1_FC6:=Mx_FC1 and Mx_FC6;
MxP_FC1_FC3_sub:= Mx_FC1 and Mx_FC3 and Qx_mot_subir;
MxP_FC1_FC4_sub:= Mx_FC1 and Mx_FC4 and Qx_mot_subir;
MxP_FC1_FC5_sub:= Mx_FC1 and Mx_FC5 and Qx_mot_subir;
MxP_FC1_FC6_sub:= Mx_FC1 and Mx_FC6 and Qx_mot_subir;
Universidad de Oviedo
226 - Problemas M340 ISA

MxP_FC2_FC3:=Mx_FC2 and Mx_FC3;


MxP_FC2_FC4:=Mx_FC2 and Mx_FC4;
MxP_FC2_FC5:=Mx_FC2 and Mx_FC5;
MxP_FC2_FC6:=Mx_FC2 and Mx_FC6;
MxP_FC2_FC3_baj:= Mx_FC2 and Mx_FC3 and Qx_mot_bajar;
MxP_FC2_FC4_baj:= Mx_FC2 and Mx_FC4 and Qx_mot_bajar;
MxP_FC2_FC5_baj:= Mx_FC2 and Mx_FC5 and Qx_mot_bajar;
MxP_FC2_FC6_baj:= Mx_FC2 and Mx_FC6 and Qx_mot_bajar;

MxP_FC2_FC3_dcha:= Mx_FC2 and Mx_FC3 and Qx_mot_dcha;


MxP_FC2_FC4_dcha:= Mx_FC2 and Mx_FC4 and Qx_mot_dcha;
MxP_FC2_FC5_dcha:= Mx_FC2 and Mx_FC5 and Qx_mot_dcha;
MxP_FC2_FC4_izda:= Mx_FC2 and Mx_FC4 and Qx_mot_izda;
MxP_FC2_FC5_izda:= Mx_FC2 and Mx_FC5 and Qx_mot_izda;
MxP_FC2_FC6_izda:= Mx_FC2 and Mx_FC6 and Qx_mot_izda;

MxP_NoFC1FC2_FC3:= not Mx_FC1 and not Mx_FC2 and Mx_FC3;


MxP_NoFC1FC2_FC3_sub:= not Mx_FC1 and not Mx_FC2 and Mx_FC3 and Qx_mot_subir;
MxP_NoFC1FC2_FC3_baj:= not Mx_FC1 and not Mx_FC2 and Mx_FC3 and Qx_mot_bajar;
MxP_NoFC1FC2_FC4:= not Mx_FC1 and not Mx_FC2 and Mx_FC4;
MxP_NoFC1FC2_FC4_sub:= not Mx_FC1 and not Mx_FC2 and Mx_FC4 and Qx_mot_subir;
MxP_NoFC1FC2_FC4_baj:= not Mx_FC1 and not Mx_FC2 and Mx_FC4 and Qx_mot_bajar;
MxP_NoFC1FC2_FC5:= not Mx_FC1 and not Mx_FC2 and Mx_FC5;
MxP_NoFC1FC2_FC5_sub:= not Mx_FC1 and not Mx_FC2 and Mx_FC5 and Qx_mot_subir;
MxP_NoFC1FC2_FC5_baj:= not Mx_FC1 and not Mx_FC2 and Mx_FC5 and Qx_mot_bajar;
MxP_NoFC1FC2_FC6:= not Mx_FC1 and not Mx_FC2 and Mx_FC6;
MxP_NoFC1FC2_FC6_sub:= not Mx_FC1 and not Mx_FC2 and Mx_FC6 and Qx_mot_subir;
MxP_NoFC1FC2_FC6_baj:= not Mx_FC1 and not Mx_FC2 and Mx_FC6 and Qx_mot_bajar;

if MxP_FC2_FC3_dcha or MxP_FC2_FC4_izda then


set (MxP_T1);
end_if;

if MxP_FC2_FC3_baj or MxP_FC2_FC4_dcha then


reset (MxP_T1);
end_if;

if MxP_FC2_FC4_dcha or MxP_FC2_FC5_izda then


set (MxP_T2);
end_if;

if MxP_FC2_FC4_izda or MxP_FC2_FC5_dcha then


reset (MxP_T2);
Universidad de Oviedo Problemas M340 - 227
ISA

end_if;

if MxP_FC2_FC6_izda or MxP_FC2_FC5_dcha then


set (MxP_T3);
end_if;

if MxP_FC2_FC6_baj or MxP_FC2_FC5_izda then


reset (MxP_T3);
end_if;

MxP_NoFC3FC4_dcha:= MxP_T1 and Qx_mot_dcha and not MxP_FC2_FC3 and not MxP_FC2_FC4;
MxP_NoFC4FC5_dcha:= MxP_T2 and Qx_mot_dcha and not MxP_FC2_FC4 and not MxP_FC2_FC5;
MxP_NoFC5FC6_dcha:= MxP_T3 and Qx_mot_dcha and not MxP_FC2_FC5 and not MxP_FC2_FC6;
MxP_NoFC3FC4_izda:= MxP_T1 and Qx_mot_izda and not MxP_FC2_FC3 and not MxP_FC2_FC4;
MxP_NoFC4FC5_izda:= MxP_T2 and Qx_mot_izda and not MxP_FC2_FC4 and not MxP_FC2_FC5;
MxP_NoFC5FC6_izda:= MxP_T3 and Qx_mot_izda and not MxP_FC2_FC5 and not MxP_FC2_FC6;
MxP_NoFC3FC4:= MxP_NoFC3FC4_dcha or MxP_NoFC3FC4_izda;
MxP_NoFC4FC5:= MxP_NoFC4FC5_dcha or MxP_NoFC4FC5_izda;
MxP_NoFC5FC6:= MxP_NoFC5FC6_dcha or MxP_NoFC5FC6_izda;

(* Inicia variables*)
Mx_Marcha:= (Ix_Marcha and Ix_LocDist) or (MxP_Marcha and not Ix_LocDist);
Mx_Paro:= (Ix_Paro and Ix_LocDist) or (MxP_Paro and not Ix_LocDist);
Mx_Rearme:= (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist);

Mx_FC1:= (Ix_FC1 and Ix_LocDist) or (MxP_FC1 and not Ix_LocDist);


Mx_FC2:= (Ix_FC2 and Ix_LocDist) or (MxP_FC2 and not Ix_LocDist);
Mx_FC3:= (Ix_FC3 and Ix_LocDist) or (MxP_FC3 and not Ix_LocDist);
Mx_FC4:= (Ix_FC4 and Ix_LocDist) or (MxP_FC4 and not Ix_LocDist);
Mx_FC5:= (Ix_FC5 and Ix_LocDist) or (MxP_FC5 and not Ix_LocDist);
Mx_FC6:= (Ix_FC6 and Ix_LocDist) or (MxP_FC6 and not Ix_LocDist);
Universidad de Oviedo
228 - Problemas M340 ISA

Seccin "Control"
.1
1 .30
AND 2
SET
Mx_Marcha IN1 OUT EN ENO
Mx_FC1 IN2 OUT Qx_mot_subi r
Mx_FC3 IN3

.32
3 .33 .34
AND 4 5
SET RESET
Mx_FC2 IN1 OUT EN ENO EN ENO
Mx_FC3 IN2 OUT Mx_Av_dcha1 OUT Qx_mot_subi r
Qx_mot_subi r IN3
Universidad de Oviedo Problemas M340 - 229
ISA

.8
6 .9 .10
AND 7 8
SET RESET
Mx_FC2 IN1 OUT EN ENO EN ENO
Mx_FC4 IN2 OUT Qx_mot_baj ar OUT Mx_Av_dcha1
Mx_Av_dcha1 IN3

.7
9 .11 .12
AND 10 11
SET RESET
Mx_FC1 IN1 OUT EN ENO EN ENO
Mx_FC4 IN2 OUT Qx_mot_subi r OUT Qx_mot_baj ar
Qx_mot_baj ar IN3

.32
12 .33 .34
AND 13 14
SET RESET
Mx_FC2 IN1 OUT EN ENO EN ENO
Mx_FC4 IN2 OUT Mx_Av_dcha2 OUT Qx_mot_subi r
Qx_mot_subi r IN3

.8
15 .9 .10
AND 16 17
SET RESET
Mx_FC2 IN1 OUT EN ENO EN ENO
Mx_FC5 IN2 OUT Qx_mot_baj ar OUT Mx_Av_dcha2
Mx_Av_dcha2 IN3

.7
18 .11 .12
AND 19 20
SET RESET
Mx_FC1 IN1 OUT EN ENO EN ENO
Mx_FC5 IN2 OUT Qx_mot_subi r OUT Qx_mot_baj ar
Qx_mot_baj ar IN3

.2
21 .3 .5
AND 22 23
SET RESET
Mx_FC2 IN1 OUT EN ENO EN ENO
Mx_FC5 IN2 OUT Mx_Av_dcha3 OUT Qx_mot_subi r
Qx_mot_subi r IN3

.6
24 .13 .14
AND 25 26
SET RESET
Mx_FC2 IN1 OUT EN ENO EN ENO
Mx_FC6 IN2 OUT Qx_mot_baj ar OUT Mx_Av_dcha3
Mx_Av_dcha3 IN3

.15
27 .17
AND 28
RESET
Mx_FC1 IN1 OUT EN ENO
Mx_FC6 IN2 OUT Qx_mot_baj ar
Qx_mot_baj ar IN3
Universidad de Oviedo
230 - Problemas M340 ISA

.25 T _ELECT ROL...


29 30
AND T ON

Mx_FC6 IN1 OUT IN Q


Mx_FC1 IN2 t#6s PT ET

.4
31 .16
AND 32
SET
Mx_FC1 IN1 OUT EN ENO
Mx_FC6 IN2 OUT Qx_mot_subi r
t_El ectrol i si s.Q IN3

.18
33 .19 .20
AND 34 35
SET RESET
Mx_FC2 IN1 OUT EN ENO EN ENO
Mx_FC6 IN2 OUT Qx_mot_i zda OUT Qx_mot_subi r
Qx_mot_subi r IN3

.21
36 .22 .23
AND 37 38
SET RESET
Mx_FC2 IN1 OUT EN ENO EN ENO
Mx_FC3 IN2 OUT Qx_mot_baj ar OUT Qx_mot_i zda
Qx_mot_i zda IN3

.24
39 .27
AND 40
RESET
Mx_FC1 IN1 OUT EN ENO
Mx_FC3 IN2 OUT Qx_mot_baj ar
Qx_mot_baj ar IN3

.26
41
OR

Mx_Av_dcha1 IN1 OUT Qx_mot_dcha


Mx_Av_dcha2 IN2
Mx_Av_dcha3 IN3
Universidad de Oviedo Problemas M340 - 231
ISA

Pantalla de Operador con sus elementos

Pantalla de Operador en funcionamiento


Universidad de Oviedo
232 - Problemas M340 ISA

Programa en SFC ( pr0904b )


Seccin "Simulacion"
(*Marcas para la pantalla de operador*)
If %S13 then
set (MxP_Paro); set (MxP_FC4); set (MxP_FC2); (*lo sita de mano abajo y en FC4*)
end_if;

MtP_tiempo_Electrolisis:=S_Electrolisis.t;

MxP_FC1_FC3:=Mx_FC1 and Mx_FC3;


MxP_FC1_FC4:=Mx_FC1 and Mx_FC4;
MxP_FC1_FC5:=Mx_FC1 and Mx_FC5;
MxP_FC1_FC6:=Mx_FC1 and Mx_FC6;
MxP_FC1_FC3_sub:= Mx_FC1 and Mx_FC3 and Qx_mot_subir;
MxP_FC1_FC4_sub:= Mx_FC1 and Mx_FC4 and Qx_mot_subir;
MxP_FC1_FC5_sub:= Mx_FC1 and Mx_FC5 and Qx_mot_subir;
MxP_FC1_FC6_sub:= Mx_FC1 and Mx_FC6 and Qx_mot_subir;

MxP_FC2_FC3:=Mx_FC2 and Mx_FC3;


MxP_FC2_FC4:=Mx_FC2 and Mx_FC4;
MxP_FC2_FC5:=Mx_FC2 and Mx_FC5;
MxP_FC2_FC6:=Mx_FC2 and Mx_FC6;
MxP_FC2_FC3_baj:= Mx_FC2 and Mx_FC3 and Qx_mot_bajar;
MxP_FC2_FC4_baj:= Mx_FC2 and Mx_FC4 and Qx_mot_bajar;
MxP_FC2_FC5_baj:= Mx_FC2 and Mx_FC5 and Qx_mot_bajar;
MxP_FC2_FC6_baj:= Mx_FC2 and Mx_FC6 and Qx_mot_bajar;

MxP_FC2_FC3_dcha:= Mx_FC2 and Mx_FC3 and Qx_mot_dcha;


MxP_FC2_FC4_dcha:= Mx_FC2 and Mx_FC4 and Qx_mot_dcha;
MxP_FC2_FC5_dcha:= Mx_FC2 and Mx_FC5 and Qx_mot_dcha;

MxP_FC2_FC4_izda:= Mx_FC2 and Mx_FC4 and Qx_mot_izda;


MxP_FC2_FC5_izda:= Mx_FC2 and Mx_FC5 and Qx_mot_izda;
MxP_FC2_FC6_izda:= Mx_FC2 and Mx_FC6 and Qx_mot_izda;

MxP_NoFC1FC2_FC3:= not Mx_FC1 and not Mx_FC2 and Mx_FC3;


MxP_NoFC1FC2_FC3_sub:= not Mx_FC1 and not Mx_FC2 and Mx_FC3 and Qx_mot_subir;
MxP_NoFC1FC2_FC3_baj:= not Mx_FC1 and not Mx_FC2 and Mx_FC3 and Qx_mot_bajar;
MxP_NoFC1FC2_FC4:= not Mx_FC1 and not Mx_FC2 and Mx_FC4;
MxP_NoFC1FC2_FC4_sub:= not Mx_FC1 and not Mx_FC2 and Mx_FC4 and Qx_mot_subir;
MxP_NoFC1FC2_FC4_baj:= not Mx_FC1 and not Mx_FC2 and Mx_FC4 and Qx_mot_bajar;
MxP_NoFC1FC2_FC5:= not Mx_FC1 and not Mx_FC2 and Mx_FC5;
MxP_NoFC1FC2_FC5_sub:= not Mx_FC1 and not Mx_FC2 and Mx_FC5 and Qx_mot_subir;
MxP_NoFC1FC2_FC5_baj:= not Mx_FC1 and not Mx_FC2 and Mx_FC5 and Qx_mot_bajar;
MxP_NoFC1FC2_FC6:= not Mx_FC1 and not Mx_FC2 and Mx_FC6;
MxP_NoFC1FC2_FC6_sub:= not Mx_FC1 and not Mx_FC2 and Mx_FC6 and Qx_mot_subir;
MxP_NoFC1FC2_FC6_baj:= not Mx_FC1 and not Mx_FC2 and Mx_FC6 and Qx_mot_bajar;

if MxP_FC2_FC3_dcha or MxP_FC2_FC4_izda then


set (MxP_T1);
end_if;
if MxP_FC2_FC3_baj or MxP_FC2_FC4_dcha then
Universidad de Oviedo Problemas M340 - 233
ISA

reset (MxP_T1);
end_if;

if MxP_FC2_FC4_dcha or MxP_FC2_FC5_izda then


set (MxP_T2);
end_if;

if MxP_FC2_FC4_izda or MxP_FC2_FC5_dcha then


reset (MxP_T2);
end_if;

if MxP_FC2_FC6_izda or MxP_FC2_FC5_dcha then


set (MxP_T3);
end_if;

if MxP_FC2_FC6_baj or MxP_FC2_FC5_izda then


reset (MxP_T3);
end_if;

MxP_NoFC3FC4_dcha:= MxP_T1 and Qx_mot_dcha and not MxP_FC2_FC3 and not MxP_FC2_FC4;
MxP_NoFC4FC5_dcha:= MxP_T2 and Qx_mot_dcha and not MxP_FC2_FC4 and not MxP_FC2_FC5;
MxP_NoFC5FC6_dcha:= MxP_T3 and Qx_mot_dcha and not MxP_FC2_FC5 and not MxP_FC2_FC6;

MxP_NoFC3FC4_izda:= MxP_T1 and Qx_mot_izda and not MxP_FC2_FC3 and not MxP_FC2_FC4;
MxP_NoFC4FC5_izda:= MxP_T2 and Qx_mot_izda and not MxP_FC2_FC4 and not MxP_FC2_FC5;
MxP_NoFC5FC6_izda:= MxP_T3 and Qx_mot_izda and not MxP_FC2_FC5 and not MxP_FC2_FC6;

MxP_NoFC3FC4:= MxP_NoFC3FC4_dcha or MxP_NoFC3FC4_izda;


MxP_NoFC4FC5:= MxP_NoFC4FC5_dcha or MxP_NoFC4FC5_izda;
MxP_NoFC5FC6:= MxP_NoFC5FC6_dcha or MxP_NoFC5FC6_izda;

Seccin "Preliminar"
Mx_Marcha:= (Ix_Marcha and Ix_LocDist) or (MxP_Marcha and not Ix_LocDist);
Mx_Paro:= (Ix_Paro and Ix_LocDist) or (MxP_Paro and not Ix_LocDist);
Mx_Rearme:= (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist);

Mx_FC1:= (Ix_FC1 and Ix_LocDist) or (MxP_FC1 and not Ix_LocDist);


Mx_FC2:= (Ix_FC2 and Ix_LocDist) or (MxP_FC2 and not Ix_LocDist);
Mx_FC3:= (Ix_FC3 and Ix_LocDist) or (MxP_FC3 and not Ix_LocDist);
Mx_FC4:= (Ix_FC4 and Ix_LocDist) or (MxP_FC4 and not Ix_LocDist);
Mx_FC5:= (Ix_FC5 and Ix_LocDist) or (MxP_FC5 and not Ix_LocDist);
Mx_FC6:= (Ix_FC6 and Ix_LocDist) or (MxP_FC6 and not Ix_LocDist);

Tran1:= Mx_FC1 and Mx_FC3 and Mx_Marcha;


Tran2:= S_Electrolisis.t>t#5s;

(*Rearme y parada*)
Mx_PonCI := CLEARCHART (Control,Re(Mx_Rearme));

if Mx_PonCI then
setstep (S_Subir_4);
end_if;
Universidad de Oviedo
234 - Problemas M340 ISA

if not Mx_Paro then


set (Mx_EnParada);
end_if;

if Mx_EnParada then
Mx_SequenceFreezed := FREEZECHART (Control,true); (* Congela el Grafcet, dejando activa la
etapa en la que queda congelado *)
else Mx_SequenceFreezed := FREEZECHART (Control,false);
end_if;

if Mx_marcha then
reset (Mx_EnParada);
end_if;

Seccin "Salidas"
Qx_mot_subir:= (S_subir_1.x or S_subir_2.x or S_subir_3.x or S_subir_4.x) and not Mx_SequenceFreezed;
Qx_mot_bajar:=(S_bajar_1.x or S_bajar_2.x or S_bajar_3.x or S_bajar_4.x) and not Mx_SequenceFreezed;
Qx_mot_dcha:= (S_dcha_1.x or S_dcha_2.x or S_dcha_3.x) and not Mx_SequenceFreezed;
Qx_mot_izda:= S_izda.x and not Mx_SequenceFreezed;
Universidad de Oviedo Problemas M340 - 235
ISA

Seccin "CHART"

S_inicio S_subir_3

Tran1
Mx_FC1 and Mx_FC3 and
Mx_Marcha;
Tran1 Mx_FC2

S_subir_1 S_dcha_3

Mx_FC2 Mx_FC6

S_dcha_1 S_bajar_3

Mx_FC4 Mx_FC1

S_bajar_1 S_Electrolisis

Tran2
S_Electrolisis.t>t#5s;

Mx_FC1 Tran2

S_subir_2 S_subir_4

Mx_FC2 Mx_FC2

S_dcha_2 S_izda

Mx_FC5 Mx_FC3

S_bajar_2 S_bajar_4

Mx_FC1 Mx_FC1

S_subir_3 S_inicio
Universidad de Oviedo
236 - Problemas M340 ISA

Problema 9.5 Control de un tnel de lavado


Automatizacin de una estacin automtica de lavado de vehculos.
Se llevar a condiciones iniciales, pulsando el rearme (Rearme) NA. En estas condiciones, la cinta estar
parada, la barrera levantada y el semforo en verde (L_verde), permitindose evolucionar al sistema.
Una vez puesta en CI, cuando se accione el pulsador de marcha automtica (Mar_aut), la cinta
transportadora ser activada (Cinta) y los vehculos pasarn sucesivamente por los puestos de mojado,
detergente, cepillado y aclarado, y, por ltimo por el de secado.
Habr unas barreras fotoelctricas (F_) de tipo PNP 3 hilos, que permitirn activar y desactivar los distintos
puestos.
Cuando se activa la clula fotoelctrica 1 (F1), se activa el puesto 1 (Mojado). Cuando se active la F2 y la F1
no est activada (no hay un segundo vehculo) se desactiva el puesto 1.
Cuando se active F2 se activar el puesto de detergente (Detergente). Cuando se active la F3 y la F2 est
desactivada, se desactivar el puesto de detergente.
Cuando se active F3 entrar en funcionamiento el puesto de cepillado y aclarado (Cepi_aclarado). Cuando
se active la F4 y la F3 est desactivada, se desactivar el puesto de cepillado y aclarado.
Una vez que se ha activado la fotoclula 4, comenzar a funcionar el puesto de secado (Secado),
desactivndose cuando se conecte la F5 y la fotoclula 4 est desactivada.
La barrera, en condiciones normales, deber estar levantada y el semforo en verde. Cuando en la estacin
se detecte que hay 4 vehculos, uno en cada puesto, la barrera deber bajar y el semforo se pondr en
rojo (L_roja), indicando que no se puede pasar.
Tanto la barrera como el semforo permanecern en stas condiciones hasta que se detecte que los cuatro
vehculos han abandonado la estacin, momento en el cual, el semforo se pondr en verde, la cinta parar
y la barrera se levantar, pudiendo la estacin admitir de nuevo coches para el lavado.
Se dispondr de una seta de emergencia NC que permitir parar todo el sistema (Paro). Si se ha activado
esta parada de emergencia, se deber pulsar el rearme para poder evolucionar de nuevo.

Se pide para un PLC con entrada y salida PNP:


Esquema de mando y de fuerza con todas las protecciones necesarias
Programa de mando
Universidad de Oviedo Problemas M340 - 237
ISA

Programa en SFC (pr0905)


Tabla de variables
Universidad de Oviedo
238 - Problemas M340 ISA

Seccin "Preliminar"
(* Marcas para la pantalla *)
If %S13 then
Set (MxP_Paro); Set (MxP_FCC);
END_IF;

Mx_Rearme:= (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist);


Mx_Marcha:= (Ix_Marcha and Ix_LocDist) or (MxP_Marcha and not Ix_LocDist);
Mx_Paro:= (Ix_Paro and Ix_LocDist) or (MxP_Paro and not Ix_LocDist);
Mx_FC1:= (Ix_FC1 and Ix_LocDist) or (MxP_FC1 and not Ix_LocDist);
Mx_FC2:= (Ix_FC2 and Ix_LocDist) or (MxP_FC2 and not Ix_LocDist);
Mx_FC3:= (Ix_FC3 and Ix_LocDist) or (MxP_FC3 and not Ix_LocDist);
Mx_FC4:= (Ix_FC4 and Ix_LocDist) or (MxP_FC4 and not Ix_LocDist);
Mx_FC5:= (Ix_FC5 and Ix_LocDist) or (MxP_FC5 and not Ix_LocDist);
Mx_Fca:= (Ix_Fca and Ix_LocDist) or (MxP_Fca and not Ix_LocDist);
Mx_Fcc:= (Ix_Fcc and Ix_LocDist) or (MxP_Fcc and not Ix_LocDist);
MxP_F1FCC:=Mx_Fc1 and Mx_Fcc;
MxP_F1FCA:=Mx_Fc1 and Mx_Fca;
MxP_FCCnoF1:= Mx_Fcc and not Mx_FC1;

(* Programa principal *)
If re (Mx_Rearme) then
set (Mx_PonCi);
reset (Mx_PEv);
end_if;

if Mx_PonCi then
Inicializar();
end_if;

if not Mx_Paro then


reset (Mx_PEv);
end_if;

(* Control de la cinta *)
if Mx_Marcha and Mx_PEv then
set (Qx_Cinta);
end_if;

if (not Qx_Mojado and not Qx_Detergente and not Qx_CepiAclarado and not Qx_Secado and Mx_FC5) or
not Mx_paro or Mx_Rearme then
reset (Qx_Cinta);
end_if;

(* Control del puesto de mojado *)


if Qx_Cinta and Mx_FC1 then
set (Qx_Mojado);
end_if;
Universidad de Oviedo Problemas M340 - 239
ISA

if (Mx_FC2 and not Mx_FC1) or not Mx_paro then


reset (Qx_Mojado);
end_if;

(* Control del puesto de detergente *)


if Qx_Cinta and Mx_FC2 then
set (Qx_Detergente);
end_if;

if (Mx_FC3 and not Mx_FC2) or not Mx_paro then


reset (Qx_Detergente);
end_if;

(* Control del puesto de cepillado-aclarado *)


if Qx_Cinta and Mx_FC3 then
set (Qx_CepiAclarado);
end_if;

if (Mx_FC4 and not Mx_FC3) or not Mx_paro then


reset (Qx_CepiAclarado);
end_if;

(* Control del puesto de secado *)


if Qx_Cinta and Mx_FC4 then
set (Qx_Secado);
end_if;

if (Mx_FC5 and not Mx_FC4) or not Mx_paro then


reset (Qx_Secado);
end_if;

(* Puestos llenos *)
If Qx_Mojado and Qx_Detergente and Qx_CepiAclarado and Qx_Secado then
set(Mx_Lleno);
end_if;

If not Qx_Cinta then


reset (Mx_Lleno);
end_if;

(* Control de la barrera *)
if Mx_Lleno then
set (Qx_Bajar);
end_if;

if Mx_Fcc then
reset (Qx_Bajar);
end_if;

if not Mx_Lleno and Mx_Pev then


set (Qx_Subir);
end_if;
Universidad de Oviedo
240 - Problemas M340 ISA

if Mx_Fca then
reset (Qx_Subir);
end_if;

(* Control del semforo *)


Qx_LRoja:= not Mx_Fca;
Qx_LVerde:= not Qx_LRoja;

Subrutina "Inicializar"

if not (Mx_Fca) then


set(Qx_Subir);
end_if;

if Mx_Fca then
reset (Qx_subir);
set (Mx_PEv);
reset (Mx_ponCi);
end_if;

Pantalla de operador
Universidad de Oviedo Problemas M340 - 241
ISA

Problema 9.6 Control de un molino


Se desea emplear un autmata para automatizar un molino movido mediante un motor asncrono trifsico.
Para arrancar el sistema se dispone de un pulsador NA (P_marcha) y otro NC para pararlo (P_paro). Para
asegurarse que efectivamente el motor ha arrancado se dispone de un contacto auxiliar (Km1_aux).
Si 3 segundos despus de dar la orden de arranque, se observa que ste no se ha producido, se deber
encender una lmpara de alarma (L_roja) y revocar la orden de arranque. Hasta que no se pulse el acuse de
recibo de la alarma NA (Acu_alarma) no se apagar la luz de aviso, ni se permitir un nuevo arranque.
Si el nmero de veces que se produce la alarma es 5, se impedir la posibilidad de volver a arrancar el
motor hasta que no se pulse rearme (Rearme).
El motor estar conectado mediante un contactor (KM1) y protegido mediante fusibles (F1) y trmico (F2).
Se avisar mediante una luz ambar (L_sobrecarga) cuando el sistema pare por una sobrecarga (F2).

Se pide para un PLC con entrada y salida PNP:


Esquema de mando y de fuerza
Programa de mando

Tabla de variables
Universidad de Oviedo
242 - Problemas M340 ISA

Programa en ST (pr0906)
Seccin "Control"
(* Creacin de las variables utilizadas en el programa *)
Mx_Marcha := (Ix_Marcha and Ix_LocDis) or(MxP_Marcha and not Ix_LocDis);
Mx_Paro := (Ix_Paro and Ix_LocDis) or(MxP_Paro and not Ix_LocDis);
Mx_Rearme := (Ix_Rearme and Ix_LocDis) or(MxP_Rearme and not Ix_LocDis);
Mx_AcuAlarma := (Ix_AcuAlarma and Ix_LocDis) or(MxP_AcuAlarma and not Ix_LocDis);
Mx_KM1Aux := (Ix_KM1Aux and Ix_LocDis) or(MxP_KM1Aux and not Ix_LocDis);
Mx_Termico := (Ix_Termico and Ix_LocDis) or(MxP_Termico and not Ix_LocDis);

If %S13 then
set(MxP_Paro);
end_if;

if Mx_Marcha and Contador.CV <5 and not Mx_Alarma then


set(Qx_KM1);
end_if;

if not Mx_paro or Mx_alarma or Mx_Termico then


reset(Qx_KM1);
end_if;

TEMPORIZA (IN:=Qx_KM1, PT:=t#3s);

If temporiza.Q and not Mx_KM1Aux then


set(Mx_Alarma);
set(Qx_LuzRoja);
end_if;

If Mx_AcuAlarma then
reset(Mx_Alarma);
reset(Qx_LuzRoja);
end_if;

CONTADOR (CU:=Mx_Alarma, R:=Mx_Rearme, PV:=0);

Qx_LuzSobrecarga:= Mx_Termico;

Pantalla de operador
Universidad de Oviedo Problemas M340 - 243
ISA

Problema 9.7 Control de un paso a nivel


Se desea automatizar el paso a nivel indicado en la figura de forma tal que cumpla:
1. Cuando un tren accione el sensor S_izda o S_dcha debe iniciarse, con una frecuencia de oscilacin de 2
Hz, el apagado y encendido de las luces de los semforos Sc1 y Sc2, permaneciendo en esta situacin
durante 20 segundos, transcurridos estos, deben bajarse las barreras B1 y B2. Quedando entonces los
semforos Sc1 y Sc2 en luz roja fija.
2. Una vez que las barreras se hallan bajado debe procederse al encendido de la luz verde del semforo
St1 o St2 (segn proceda), para que el tren pueda proseguir su marcha. Cuando abandone el sensor
opuesto por el que entr, deber proceder a dar la orden de elevacin de las barreras, situar el
semforo St1 y St2 en rojo y desconectar Sc1 y Sc2, restableciendo las condiciones iniciales.
3. Si por accidente no se cerrara una barrera o se quedara un automovil en la va ( que detectara el
sensor S_coche NC), las barreras no se bajarn y el semafro St1 y St2 permaneceran en rojo hasta que
desaparezca la situacin que lo provoc.

Sc2

Fca_b2
B2

Fcc_b2
S_izda S_coche
S_dcha

St1

St2
Fcc_b1

B1 Fca_b1

Sc1

PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente
de alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo
244 - Problemas M340 ISA

Tabla de variables

Lista de otras variables elementales:

Programa mixto ST y FBD (pr0907a)


Preliminar
(*Inicializacin de la pantalla de operador*)
If %S13 then
set(MxP_S_coche); set(MxP_Fca_b1);set(MxP_Fca_b2);
end_if;
(*Marcas para el control Local-Distancia*)
Mx_S_izda:= (Ix_S_izda and Ix_LocDist) or (MxP_S_izda and not Ix_LocDist);
Mx_S_dcha:= (Ix_S_dcha and Ix_LocDist) or (MxP_S_dcha and not Ix_LocDist);
Mx_Fca_b1:= (Ix_Fca_b1 and Ix_LocDist) or (MxP_Fca_b1 and not Ix_LocDist);
Mx_Fcc_b2:= (Ix_Fcc_b2 and Ix_LocDist) or (MxP_Fcc_b2 and not Ix_LocDist);
Mx_Fca_b2:= (Ix_Fca_b2 and Ix_LocDist) or (MxP_Fca_b2 and not Ix_LocDist);
Mx_Fcc_b1:= (Ix_Fcc_b1 and Ix_LocDist) or (MxP_Fcc_b1 and not Ix_LocDist);
Universidad de Oviedo Problemas M340 - 245
ISA

Mx_S_coche:= (Ix_S_coche and Ix_LocDist) or (MxP_S_coche and not Ix_LocDist);

Deteccin

Deteccin del sentido de circulacin de los trenes

.1 .2
1 2 .3
RE AND 3
SET
Mx_S_dcha IN OUT IN1 OUT EN ENO
Mx_vien_izda IN2 OUT Mx_vien_dcha

.4
4 .5
FE 5
RESET
Mx_S_izda IN OUT EN ENO
OUT Mx_vien_dcha

.6 .7
6 7 .8
RE AND 8
SET
Mx_S_izda IN OUT IN1 OUT EN ENO
Mx_vien_dcha IN2 OUT Mx_vien_izda

.9
9 .10
FE 10
RESET
Mx_S_dcha IN OUT EN ENO
OUT Mx_vien_izda

.11
11
OR

Mx_vien_izda IN1 OUT Mx_vien_tren


Mx_vien_dcha IN2

Semforo Coches
.1 T EMP_OSC_2HZ
1 2
AND T ON

Mx_vien_tren IN1 OUT IN Q


T emp_Osc_2Hz.Q IN2 t#500ms PT ET

.2
3
LT _T IME

T emp_Osc_2Hz.ET IN1 OUT Mx_Osc_2Hz


t#250ms IN2

T EMP_20S
4
T ON

Mx_vien_tren IN Q
t#20s PT ET
Universidad de Oviedo
246 - Problemas M340 ISA

.4 .3 .5
5 6 7
OR AND MOVE

Mx_Osc_2Hz IN1 OUT IN1 OUT IN OUT Qx_Luz_se_coche11


T emp_20s.Q IN2 Mx_vien_tren IN2

.6
8
MOVE

IN OUT Qx_Luz_se_coche21

.8 .7 .9
9 10 11
OR AND MOVE

Mx_Osc_2Hz IN1 OUT IN1 OUT IN OUT Qx_Luz_se_coche12


T emp_20s.Q IN2 Mx_vien_tren IN2

.10
12
MOVE

IN OUT Qx_Luz_se_coche22

Barreras

Orden de bajar las barreras B1 y B2

.1
1 .2
AND 2
SET
T emp_20s.Q IN1 OUT EN ENO
Mx_S_coche IN2 OUT Qx_mot_baj_b1

.3
3 .4
OR 4
RESET
Mx_Fcc_b1 IN1 OUT EN ENO
Mx_S_coche IN2 OUT Qx_mot_baj_b1

.5
5 .6
AND 6
SET
T emp_20s.Q IN1 OUT EN ENO
Mx_S_coche IN2 OUT Qx_mot_baj_b2

.7
7 .8
OR 8
RESET
Mx_Fcc_b2 IN1 OUT EN ENO
Mx_S_coche IN2 OUT Qx_mot_baj_b2

.9
9 .10 .11
AND 10 11
SET SET
Mx_vien_dcha IN1 OUT EN ENO EN ENO
Mx_vien_izda IN2 OUT Qx_mot_sub_b1 OUT Qx_mot_sub_b2

.12 .13
12 13
RESET RESET
Mx_Fca_b1 EN ENO Mx_Fca_b2 EN ENO
OUT Qx_mot_sub_b1 OUT Qx_mot_sub_b2
Universidad de Oviedo Problemas M340 - 247
ISA

Semforo Tren

Activacin y desactivacin de las lmparas de los semforos de los trenes

.1
1
AND
.2
Mx_Fcc_b1 IN1 OUT Qx_Luz_se_tr1v
2
Mx_Fcc_b2 IN2 MOVE
Mx_vien_dcha IN3
Mx_S_coche IN4 Qx_Luz_se_tr1v IN OUT Qx_Luz_se_tr1r

.3
3
AND .4
4
Mx_Fcc_b1 IN1 OUT Qx_Luz_se_tr2v MOVE
Mx_Fcc_b2 IN2
Mx_vien_izda IN3 Qx_Luz_se_tr2v IN OUT Qx_Luz_se_tr2r
Mx_S_coche IN4

Programa mixto ST y SFC (pr0907b)


Transicin Tran1
RE(Mx_S_dcha) and not Mx_vien_izda

Transicin Tran2
RE(Mx_S_izda) and not Mx_vien_dcha

Transicin Tran3
S_Temporiza.t>t#20s

Transicin Tran4
FE(Mx_S_izda)

Transicin Tran5
FE(Mx_S_dcha)
Universidad de Oviedo
248 - Problemas M340 ISA

Chart

S_inicio

T ran1 T ran2

Accin memorizada: Accin memorizada:


SET (Mx_vien_dcha) SET (Mx_vien_izda)
S_SET _Dcha S_SET _Izda

Mx_vien_dcha Mx_vien_izda

T emporizacin de 20 segundos
Luces de coches parpadeando a 2Hz
S_T emporiza

T ran3

Bajar la Bajar la
barrera 1 barrera 2
S_Baja_B1 S_Baja_B2

NOT Mx_S_coche Mx_Fcc_b1 NOT Mx_S_coche Mx_Fcc_b2

Detiene la La barrera 1 se Detiene la La barrera 2 se


bajada de la encuentra bajada de la encuentra
S_Para_B1 S_B1_bajada S_Para_B2 S_B2_bajada
barrera 1 bajada barrera 2 bajada

Mx_S_coche Mx_S_coche

true

S_bajadas
Universidad de Oviedo Problemas M340 - 249
ISA

Ambas barreras
se encuentran
S_bajadas
bajadas

Mx_vien_dcha Mx_vien_izda

Semforo 2 Semforo 2
del tren en del tren en
S_St1_Verde S_St2_verde
verde verde

T ran4 T ran5

NOT Mx_S_coche NOT Mx_S_coche

Semforo 1 Accin Semforo 2 Accin


del tren en rojo memorizada: del tren en rojo memorizada:
S_St1_rojo S_RESET _dcha S_St2_rojo S_RESET _izda
RESET RESET
(Mx_vien_dcha) (Mx_vien_izda)

Mx_S_coche NOT Mx_vien_dcha Mx_S_coche NOT Mx_vien_izda

El tren ya ha
atravesado el
S_nada
paso a nivel

true

Subir la Subir la
barrera 1 barrera 2
S_sube_B1 S_sube_B2

Mx_Fca_b1 Mx_Fca_b2

La barrera 1 se La barrera 2 se
encuentra encuentra
S_B1_subida S_B2_subida
subida subida

true

S_inicio
Universidad de Oviedo
250 - Problemas M340 ISA

Salidas
if S_SET_Dcha.x then
set (Mx_vien_dcha);
end_if;
if S_SET_Izda.x then
set (Mx_vien_izda);
end_if;
if S_RESET_Dcha.x then
reset (Mx_vien_dcha);
end_if;
if S_RESET_Izda.x then
reset (Mx_vien_izda);
end_if;

(* Se programa el oscilador de 2 Hz, T=500 ms *)


TEM_OSC_2HZ (IN := Mx_IniCiclo AND NOT TEM_OSC_2HZ.Q,
PT := t#500ms);

Mx_Osc2Hz := Mx_IniCiclo AND TEM_OSC_2HZ.ET <= t#250ms;

Qx_Luz_se_coche11:=Mx_Osc_2Hz and S_Temporiza.x or (not S_inicio.x and not S_Temporiza.x);


Qx_Luz_se_coche12:=not Mx_Osc_2Hz and S_Temporiza.x or (not S_inicio.x and not S_Temporiza.x);
Qx_Luz_se_coche21:=Mx_Osc_2Hz and S_Temporiza.x or (not S_inicio.x and not S_Temporiza.x);
Qx_Luz_se_coche22:=not Mx_Osc_2Hz and S_Temporiza.x or (not S_inicio.x and not S_Temporiza.x);
Qx_Luz_se_tr1v:=S_St1_Verde.x;
Qx_Luz_se_tr1r:= not Qx_Luz_se_tr1v;
Qx_Luz_se_tr2v:=S_St2_Verde.x;
Qx_Luz_se_tr2r:= not Qx_Luz_se_tr2v;
Qx_mot_baj_b1:=S_Baja_b1.x;
Qx_mot_baj_b2:=S_Baja_b2.x;
Qx_mot_sub_b1:=S_Sube_b1.x;
Qx_mot_sub_b2:=S_Sube_b2.x;
Universidad de Oviedo Problemas M340 - 251
ISA

Pantalla de explotacin
Universidad de Oviedo
252 - Problemas M340 ISA

Problema 9.8 Control de una compuerta


Realizar el programa para la automatizacin del control del nivel en un embalse.
Se dispone de un juego de compuertas que son accionadas mediante un motor que las desplaza en sentido
ascendente o descendente, hasta alcanzar el nivel predeterminado.
Hay tres niveles posibles a definir, para lo que disponemos de tres sensores, cada sensor slo se activa
nica y exclusivamente cuando se alcanza su nivel.
Disponemos de un pulsador de preseleccin, mediante el cual estableceremos el nivel que se desea
alcanzar. La eleccin se har de forma rotativa, partiendo del estado en el que no tengamos ninguno
seleccionado y siguiendo con la seleccin del nivel1, nivel 2, nivel 3 y volviendo al estado de partida. Esto
queda reflejado en el panel de control mediante, tres lmparas de preseleccin LP1, LP2, LP3. La
preseleccin estar inhibida cuando est en funcionamiento la compuerta.
Mediante un pulsador de marcha, haremos que una vez seleccionado el nivel deseado, ste se alcance,
mediante el accionamiento del motor con la maniobra adecuada a tal fin. El panel de control reflejar el
nivel en el que se encuentra la compuerta mediante una lmpara LN1, LN2 o LN3.
El sistema dispone a su vez de dos sensores de final de recorrido E1 y E2 con 2 contactos NC cada uno de
ellos, que pararan la maniobra dejando al sistema parado y con la lmpara de emergencia
correspondiente activada. Una vez reparada la avera, se rearmar el sistema que lo llevar a CI.
Se dispondr de un conmutador PLC_Manual que permitir abandonar el control por autmata y hacerlo
por mando manual -lgica cableada- con el cal podremos situar la compuerta a la altura que se quiera.
Condiciones iniciales: Todas las lmparas de preseleccin estarn apagadas, la compuerta se situar en el
nivel 2 y estar activada la lmpara de nivel 2.

SE PIDE: Esquema de mando y de fuerza con todas las protecciones necesarias y el programa de control.
PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM 3202.

ENTRADAS
E2
Preselecccin = Ix_Pul
Marcha = Ix_Marcha
S3
Sensor1 = Ix_Sensor1
Sensor2 = Ix_Sensor2
Sensor3 = Ix_Sensor3
Emergencia1 = Ix_E1 (NC)
Emergencia2 = Ix_E2 (NC)
Rearme = Ix_Rearme
S2
PLC/Manual = Ix_PLC_Manual

SALIDAS
Lmpara de Preselecccin 1 = Qx_Lp1
Lmpara de Preselecccin 2 = Qx_Lp2
Lmpara de Preselecccin 3 = Qx_Lp3
Lmpra de Nivel 1 = Qx_Ln1
S1
Lmpra de Nivel 2 = Qx_Ln2
Lmpra de Nivel 3 = Qx_Ln3
E1
Lmpara de Emergencia 1 = Qx_Le1
Lmpara de Emergencia 2 = Qx_Le2
Accin ascendente = Qx_Subir
Accin descendente = Qx_Bajar
Universidad de Oviedo Problemas M340 - 253
ISA

Programa mixto ST y SFC (pr0908)


Preliminar
(*Inicializacin de la pantalla de operador*)
If %S13 then
set(MxP_FCE1); set(MxP_FCE2); set(MxP_PLC_Man);
ClearState := CLEARCHART (Preseleccion, true);
ClearState := CLEARCHART (Control, true);
set (Mx_PonCI);
end_if;

(* Variables utilizadas en el programa *)


Mx_Preseleccion:= (Ix_Preseleccion and Ix_LocDist) or (MxP_Preseleccion and not Ix_LocDist);
Mx_Marcha:= (Ix_Marcha and Ix_LocDist) or (MxP_Marcha and not Ix_LocDist);
Mx_Rearme:= (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist);
Mx_Sensor1:= (Ix_Sensor1 and Ix_LocDist) or (MxP_Sensor1 and not Ix_LocDist);
Mx_Sensor2:= (Ix_Sensor2 and Ix_LocDist) or (MxP_Sensor2 and not Ix_LocDist);
Mx_Sensor3:= (Ix_Sensor3 and Ix_LocDist) or (MxP_Sensor3 and not Ix_LocDist);
Mx_FCE1:= (Ix_FCE1 and Ix_LocDist) or (MxP_FCE1 and not Ix_LocDist);
Mx_FCE2:= (Ix_FCE2 and Ix_LocDist) or (MxP_FCE2 and not Ix_LocDist);
Mx_PLC_Man:= (Ix_PLC_Man and Ix_LocDist) or (MxP_PLC_Man and not Ix_LocDist);

Mx_Para:= (Qx_LP1 and Mx_Sensor1) or (Qx_LP2 and Mx_Sensor2) or (Qx_LP3 and Mx_Sensor3);

if not Mx_PLC_Man then


ClearState := CLEARCHART (Preseleccion, true);
ClearState := CLEARCHART (Control, true);
reset (Mx_Subir); reset (Mx_Bajar);
end_if;

If Mx_Rearme then
ClearState := CLEARCHART (Preseleccion, true);
ClearState := CLEARCHART (Control, true);
set (Mx_PonCI); reset (Mx_Emergencia);
end_if;

if Mx_PonCI then
Inicializa();
end_if;

if Mx_PuestoCI and not %S13 and not Mx_Rearme then


InitState := INITCHART (Preseleccion,true);
InitState := INITCHART (Control,true);
Universidad de Oviedo
254 - Problemas M340 ISA

reset (Mx_puestoCI);
end_if;

Chart "Preseleccin"
Etapa0

T ran0_1
RE Mx_Preseleccion and
Etapa10.x
T ran0_1

LP1

Etapa1

T ran1_2
RE Mx_Preseleccion and
Etapa10.x
T ran1_2

LP2

Etapa2

T ran2_3
RE Mx_Preseleccion and
Etapa10.x
T ran2_3

Lp3

Etapa3

T ran3_0
RE Mx_Preseleccion and
Etapa10.x
T ran3_0

Chart "Control"

Etapa10

Mx_Marcha

Etapa11

Tran11_12 Tran11_13
LP1 (Sen2 + Sen3) + LP2 Sen3 LP3 (Sen2 + Sen1) + LP2 Sen1

Tran11_12 Tran11_13 Mx_Para

Etapa12 Etapa13
Bajar Subir
Etapa12 Etapa13

Mx_Para Mx_Para
Universidad de Oviedo Problemas M340 - 255
ISA

Seccin "Transiciones"
Tran0_1:= re (Mx_Preseleccion) and Etapa10.x;
Tran1_2:= re (Mx_Preseleccion) and Etapa10.x;
Tran2_3:= re (Mx_Preseleccion) and Etapa10.x;
Tran3_0:= re (Mx_Preseleccion) and Etapa10.x;
Tran11_12:= (Qx_LP1 and (Mx_Sensor2 or Mx_Sensor3)) or (Qx_LP2 and Mx_Sensor3);
Tran11_13:= (Qx_LP3 and (Mx_Sensor2 or Mx_Sensor1)) or (Qx_LP2 and Mx_Sensor1);

Seccin "Salidas"
Qx_LN1:= Mx_Sensor1;
Qx_LN2:= Mx_Sensor2;
Qx_LN3:= Mx_Sensor3;

Qx_LE1:= not Ix_FCE1;


Qx_LE2:= not Ix_FCE2;

Qx_LP1:= Etapa1.x;
Qx_LP2:= Etapa2.x;
Qx_LP3:= Etapa3.x;

if (not Mx_FCE1) or (not Mx_FCE2) then


set (Mx_Emergencia);
end_if;

Qx_Subir:= (Etapa13.x or Mx_Subir ) and not Mx_Emergencia and not Qx_Bajar;


Qx_Bajar:= (Etapa12.x or Mx_Bajar) and not Mx_Emergencia and not Qx_Subir;

Subrutina "Inicializa"
(*Partimos de que la compuerta est en el nivel 3 o en el 1 *)
if Mx_Sensor3 then
set (Mx_Bajar);
end_if;

if Mx_Sensor1 then
set (Mx_Subir);
end_if;

If Mx_Sensor2 then
reset (Mx_Subir); reset (Mx_Bajar);
set (Mx_PuestoCI); reset (Mx_PonCI);
end_if;
Universidad de Oviedo
256 - Problemas M340 ISA

Pantalla de explotacin
Universidad de Oviedo Problemas M340 - 257
ISA

Problema 9.9 Control de un garaje (pr0909)


Se desea automatizar el acceso, la salida y el interior de un garaje de coches que dispone de los siguientes
elementos:
Un lector de tarjeta magntica para la peticin de entrada al garaje (TME) y otro para la salida
(TMS), que proporcionaran un uno lgico ante la demanda.
Un portn accionado por un motor que dispondr de dos sentidos de giro (Abrir) y (Cerrar), y dos
finales de carrera para indicar que el portn est abierto (FCA) y cerrado (FCC).
Una puerta de acceso peatonal con llave.
Un sensor (SenCo) que informar cuando hay un coche en la trayectoria del portn.
Un sensor de luz (SenLuz) que nos informa mediante un uno lgico que la luz natural en el interior
es insuficiente.
Cuatro pulsadores (S1, S2, S3, S4) que activarn la luz artificial interior del garaje.
Varios puntos de luz artificial en el interior del garaje (Luz).
En las condiciones iniciales el portn se deber cerrar si no lo estuviese, quedando luego en
funcionamiento automtico.
Ante una peticin de entrada, el portn deber abrirse durante 10 segundos y si no hay suficiente luz
natural en el interior del garaje, deber activarse la luz artificial de forma automtica durante 1 minuto.
Aunque existiese suficiente luz, ante una pulsacin de S1, S2, S3 o S4 deber activarse el estado de la luz
artificial del garaje durante 1 minuto.

TME Ante una peticin de salida deber


abrirse el portn un mximo de 10
FCA segundos y luego cerrarse
M automticamente.
S1
SenCo FCC Luz Cuando est cerrando el portn y haya
un coche en el trayecto del mismo,
deber parar la maniobra y abrir el
TMS portn hasta que el coche haya pasado.
SenLuz S4
Luz
A continuacin deber seguir la
maniobra de cierre.
Luz
S2 Si hubiese una peticin de entrada o de
S3 salida cuando est cerrando, se deber
atender automticamente; para ello
abrir el portn y proceder en
Puerta consecuencia.
peatonal

PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo
258 - Problemas M340 ISA

Preliminar
(* Variables utilizadas en el programa *)
Mx_FCA:= (Ix_FCA and Ix_LocDist) or (MxP_FCA and not Ix_LocDist);
Mx_FCC:= (Ix_FCC and Ix_LocDist) or (MxP_FCC and not Ix_LocDist);
Mx_TME:= (Ix_TME and Ix_LocDist) or (MxP_TME and not Ix_LocDist);
Mx_TMS:= (Ix_TMS and Ix_LocDist) or (MxP_TMS and not Ix_LocDist);
Mx_SenLuz:= (Ix_SenLuz and Ix_LocDist) or (MxP_SenLuz and not Ix_LocDist);
Mx_PLuz:= (Ix_PLuz and Ix_LocDist) or (MxP_PLuz and not Ix_LocDist);
Mx_SenCoche:= (Ix_SenCoche and Ix_LocDist) or (MxP_SenCoche and not Ix_LocDist);

GRAFCET "Proceso" GRAFCET "Control de la luz"

Seccin "Transiciones"
Tran30_31 := (S_Entrando.x and Mx_SenLuz) or Mx_PLuz;
Tran31_30 := Etapa31.t >= t#20s;
Tran20_21 := S_Entrando.x or S_Saliendo.x;
Tran20_23 := S_ProcParado.x and not Mx_FCC;
Tran22_23 := Etapa22.t >= t#10s;
Tran24_21 := Etapa24.t >= t#500ms;
Tran26_21 := Etapa26.t >= t#500ms;
Tran27_21 := Etapa27.t >= t#500ms;
Universidad de Oviedo Problemas M340 - 259
ISA

GRAFCET "Control_Portn"
Etapa20

Tran20_21 Tran20_23
S_Entrando OR S_Saliendo S_ProcParado and not Mx_FCC

Tran20_21 Tran20_23

Qx_Abrir
Etapa21

Mx_FCA

Mx_FCA

(* Portn
Abierto *)
Etapa22

Tran22_23
Etapa22.t >= t#10s

Tran22_23

Qx_Cerrar
Etapa23

Mx_FCC

Mx_FCC Mx_SenCoche Mx_TME Mx_TMS

Etapa25 Etapa24 Etapa26 Etapa27

Tran24_21 o 26_21 o 27_21


Etapa24.t >= t#500ms

S_ProcParado.x Tran24_21 Tran26_21 Tran27_21

Etapa20 Etapa21 Etapa21 Etapa21


Universidad de Oviedo
260 - Problemas M340 ISA

Seccin "Salidas"
Qx_Luz:= Etapa31.x;
Qx_Abrir := Etapa21.x;
Qx_Cerrar := Etapa23.x;

If Etapa26.x then
resetstep (S_Saliendo);
setstep (S_Entrando);
end_if;

If Etapa27.x then
resetstep (S_Entrando);
setstep (S_Saliendo);
end_if;

Pantalla de operador
Universidad de Oviedo Problemas M340 - 261
ISA

Problema 9.10 Control de un ascensor (pr0910)


Se desea controlar un ascensor con puertas semiautomticas situado en un edificio de 4 plantas
disponiendo de un control manual y otro automtico mediante autmata que permitan posicionarlo en un
lugar determinado.

CONTROL MANUAL.
Cuando est activo el control manual, (conmutador MM/MA posicin MM) el control autmatico mediante
autmata debe quedar desactivado y poder subir o bajar el ascensor mediante dos pulsadores situados en
la botonera de maniobra quedando limitado el recorrido superior e inferior por unos finales de carrera FCS
y FCI (normalmente cerrados). Cuando por excederse en el recorrido se activase uno de stos, slo podr
entrar la orden contraria.

CONTROL AUTOMTICO.
Cuando est activo el control automtico, (conmutador MM/MA posicin MA) mando manual desactivado,
el automta gobernar el ascensor, para ello dispondr de unos finales de carrera que indicarn su
situacin en las diferentes plantas (FCPlanta~). El FCS y el FCI actuarn pero no sern entrada del automta.
As mismo habr una botonera interior para indicar a que planta se desea ir (LLBot~) y un botn exterior
por planta para llamar al ascensor (LLPlanta~).
Cuando el ascensor llegue a la planta de destino, deber parar su movimiento y proceder a abrir la puerta
corredera interior (FCPuertaAb, FCPuertaCe), desenclavar la puerta exterior cuando la interior est
completamente abierta-, esperar 5 segundos y si hay una llamada interior o exterior, proceder al
enclavamiento de la puerta exterior y cerrar la interior.
La puerta exterior de la planta se abre manualmente una vez desenclavada por el autmata mediante la
orden (Desenclav~), unos finales de carrera (FCPuerExt~ NC) nos informaran que todas las puertas
exteriores de las plantas estn cerradas; condicin indispensable para que el ascensor pueda subir o bajar.
Si estando cerrando, hay un objeto interpuesto, lo detectar una fotocelula FC que abrir de nuevo las
puertas segn la maniobra ya descrita, volviendo a esperar 5 segundos para seguir con la maniobra de
cierre.
En condiciones iniciales el ascensor estar posicionado en una planta cualquiera (situado por el tcnico de
forma manual) y la puerta interior deber estar abierta automticamente.
Para el movimiento ascendente o descendente del ascensor tendremos en cuenta que:
En subida ir parando memorizadamente cuando sea necesario en funcin de las ordenes de
cabina, teniendo stas prioridad frente a las de llamada exterior.
En bajada ir parando memorizadamente cuando sea necesario en funcin de las rdenes de
cabina y exteriores.

Se pide:
Esquema de conexin del control manual y automtico.
Programa de control del ascensor.
Universidad de Oviedo
262 - Problemas M340 ISA

Entradas Salidas

LLBot1 FCPlanta2 Abrir


LLBot2 FCPlanta3 Cerrar
LLbot3 FCPlanta4 Subir
LLbot4 Fotoclula Bajar
LLPlanta1 FCPuertaAb Desenclav1
LLPlanta2 FCPuertaCe Desenclav2
LLPlanta3 FCPuerExt~ Desenclav3
LLPlanta4 MA
Desenclav4
FCPlanta1

Smbolo
Etiqueta en el Pl7 Direccin
en Comentarios
pro en PLC
los planos
Sensor1 S1 %I1.0 Seta de emergencia
Sensor2 S2 %I1.1 Conmutador para abrir o cerrar
Sensor3 S3 %I1.2 Conmutador para abrir o cerrar
Fc_abierta S3 %I1.3 Final de carrera de puerta abierta
Fc_cerrada S2 %I1.4 Final de carrera de puerta cerrada
C_km1_aux KM1 %I1.5 Contacto auxiliar del contactor de cerrar
C_km2_aux KM2 %I1.6 Contacto auxiliar del contactor de abrir
M_cerrar KM1 %Q2.0 Motor cerrar
M_abrir KM2 %Q2.1 Motor abrir
Puerta_abierta L1 %Q2.2 Luz de puerta abierta
Puerta_cerrada L2 %Q2.3 Luz de puerta cerrada
Universidad de Oviedo Problemas M340 - 263
ISA

Problema 9.11 Manipulador de cubos (pr0911)


Un sistema manipulador consta de:

1 eje horizontal constituido por un cilindro de doble efecto A, controlado por una electrovlvula de
potencia biestable servopilotada y detectores de posicin a0 y a1
1 eje vertical constituido por un cilindro de doble efecto B, controlado por una electrovlvula de
potencia biestable servopilotada y detectores de posicin b0 y b1
1 actuador de giro C, controlado por una electrovlvula de potencia monoestable servopilotada y
detectores de posicin Pinza0 y Pinza90
1 pinza D, controlada por una electrovlvula de potencia monoestable servopilotada y detector de
posicin PinzaAbierta
1 cilindro de doble efecto E de alimentacin de pieza, controlado por una electrovlvula de
potencia biestable servopilotada y detectores de posicin e0 y e1
1 cilindro de doble efecto F de expulsin de pieza, controlado por una electrovlvula de potencia
biestable servopilotada y detectores de posicin f0 y f1
1 detector inductivo (DInductivo) que nos indica que la pieza bajo la pinza tiene la cara metlica
paralela a la botonera y orientada hacia atrs
1 detector capacitivo (DCbajopinza) que nos indica que hay una pieza baja la pinza
1 detector capacitivo (DCrampa) que nos indica que hay una pieza en la zona de expulsin a la
rampa
1 Fotocelula, que nos indica que hay piezas en la petaca de alimentacin
Pulsadores de Rearme (NA), Marcha (NA) y Paro (NA)
Conmutador de Automtico / Manual (Manual =1)
Una luz indicadora de Defecto y otra de Falta de Material.
El manipulador nos trasladar las piezas almacenadas de forma arbitraria en la petaca de alimentacin,
hasta el final de la rampa de bajada con su cara metlica paralela a la botonera de control y visible desde el
lado contrario a esta.
Universidad de Oviedo
264 - Problemas M340 ISA

Inicialmente el sistema estar parado con las luces apagadas.


Cuando se active el pulsador de rearme, el proceso parar y ir a CI (Condiciones Iniciales):
La pinza se abrir, se elevar el eje vertical, se recojer el eje horizontal y luego se cerrar la pinza y
se pondr en 0 . Los cilindros de expusin y alimentacin recogern sus vstagos.
Funcionamiento normal
Hay dos modos de funcionamiento, que son fijados mediante el selector automtico / manual, se podr
pasar de uno a otro modo en cualquier instante. Para poder iniciar cualquier proceso por primera vez, o
despus de una parada por defecto, se deber partir de CI habiendo pulsado el rearme:
Modo automtico: El proceso comienza tras pulsar rearme y luego marcha. No se detiene hasta
pulsar paro o que exista un defecto.
Modo manual: El proceso comienza tras pulsar rearme, se requiere el accionamiento de marcha
tanto para el comienzo del proceso, como para la realizacin de cada uno de los pasos que
conforman un ciclo completo.
Paro: Al accionar el pulsador de paro, el proceso se detiene y puede ser activado denuevo en el punto en
que se haba interrumpido accionando marcha.
En cada ciclo deber realizarse el siguiente procedimiento:
1. Si se detecta pieza en el alimentador por medio del sensor fotoelctrico, dicha pieza debe situarse
bajo el brazo manipulador, empleando el cilindro de alimentacin E. Esta accin ser confirmada
por el sensor capacitivo DCbajopinza.

OJO! Para poder realizar este paso, la pinza del brazo manipulador debe estar situada en posicin
elevada para no obstaculizar el camino de la pieza.
2. Si en este punto el sensor inductivo detecta la cara metlica, el brazo manipulador deber situar la
pieza en la posicin indicada en el enunciado y llevarla frente a la rampa de expulsin.
En caso contrario, la pieza deber girarse el nmero de veces necesario hasta que dicha cara sea
detectada, pudiendo darse dos casos:
a. Si la deteccin ha sido realizada, la pieza deber girarse hasta posicionar la cara metlica en
la posicin indicada en el enunciado y llevarla frente a la rampa de expulsin.
b. Si tras el nmero de giros necesarios la cara metlica no pudo ser detectada, se llevar la
pieza frente a la rampa de expulsin.

OJO! Los giros de la pieza debern realizarse mientras el manipulador mantenga la pieza en
posicin elevada y nunca abajo o en posiciones intermedias para no daar el sensor
inductivo.
3. Una vez que la pieza sea detectada con el sensor capacitivo (DCrampa) se proceder a su expulsin
mediante el cilindro F.
4. Si la cara metlica no pudo ser detectada en el paso 2, deber indicarse que la pieza no satisface las
exigencias del enunciado encendiendo intermitente y alternadamente las lmparas de defecto y
falta de material, parando el proceso tras la finalizacin del ciclo en curso. El proceso podr
continuar de nuevo haciendo un rearme.

Funcionamiento en caso de avera


Falta de material: Si la fotoclula no detecta pieza deber indicarse mediante el encendido de la
sealizacin de falta de material de forma intermitente, parando el proceso hasta que no se reponga piezas
en el alimentador y se vuelva a CI.
Fallo de exceso de material: Si los dos sensores capacitivos, o el sensor capacitivo de la rampa y el sensor
inductivo se encuentran activados a la vez, indicarn que hay dos piezas en el entorno de trabajo del
manipulador, deber paralizarse todo el proceso y sealarse la anomala mediante el encendido de la
Universidad de Oviedo Problemas M340 - 265
ISA

sealizacin de defecto de forma intermitente. Una vez resuelto el fallo, el sistema tiene que volver a CI
mediante el rearme para poder comenzar un nuevo ciclo.
Fallo sensores: si una de las partes de la estacin est en una determinada posicin y el sensor
correspondiente no se activa, se indicar con la activacin de la sealizacin de defecto ya que su posicin
no ser detectada por el autmata y el sistema no funcionar correctamente.
Fallos crticos: es muy importante evitar estados en la programacin que al ejecutarlos podran daar o
daaran de forma irreversible alguna parte de la estacin, a saber: bajada del brazo B en posicin b1
estando el cilindro de alimentacin E en posicin e1.

Se pide para un PLC TSX 3721 v3.0, con mdulo de entrada TSX DEZ 32D2 en direccin 1 y 2; Y mdulo de
salida TSX DSZ 32R5 en direccin 3 y 4:
1. Esquema de mando
2. Esquema de fuerza
3. Programa de mando
4. Pantallas de explotacin

Etiqueta en Smbolo en Direccin


Comentarios
el Pl7 los planos en PLC
Marcha Marcha %I1.0 Marcha (NA)
Parada Parada %I1.1 Parada (NA)
Auto_Man Auto_Man %I1.2 Automtico / Manual (Manual = 1)
Rearme Rearme %I1.3 Rearme (NA)
Eje_hor_recogido a0 %I2.0 Eje horizontal recogido
Eje_hor_exten a1 %I2.1 Eje horizontal extendido
Eje_ver_arriba b0 %I2.2 Eje Vertical recogido
Eje_ver_abajo b1 %I2.3 Eje vertical extendido
Pinza90 c1 %I2.4 Pinza girada 90. Por defecto 0
Pinza0 c0 %I2.5 Pinza a 0
Pinza_abierta d1 %I2.6 Pinza abierta. Por defecto cerrada
Vas_alimen_rec e0 %I2.7 Vstago del cilindro de alimentacin recogido
Vas_alimen_ext e1 %I2.8 Vstago del cilindro de alimentacin extendido
Vas_expul_rec f0 %I2.9 Vstago del cilindro de expulsin recogido
Vas_expul_ext f1 %I2.10 Vstago del cilindro de expulsin extendido
D_C_bajopinza DCbajopinza %I2.11 Hay pieza bajo la pinza
D_C_rampa DCrampa %I2.12 Hay pieza en la zona de expulsin a la rampa
D_Inductivo DInductivo %I2.13 Hay pieza bajo la pinza con cara metalica hacia adentro
Fotocelula Fotoclula %I2.14 Hay pieza en la petaca

Avanza_eje_hor A+ %Q3.0 Avance del cilindro A. Eje horizontal


Universidad de Oviedo
266 - Problemas M340 ISA

Etiqueta en Smbolo en Direccin


Comentarios
el Pl7 los planos en PLC
Retro_eje_hor A- %Q3.1 Retroceso del cilindro A
Baja_eje_ver B+ %Q3.2 Avance del cilindro B. Eje vertical
Sube_eje_ver B- %Q3.3 Retroceso del cilindro B
Gira_pinza C+ %Q3.4 Avance del actuador de giro C. Girar pinza
Abre_pinza D+ %Q3.5 Avance del cilindro D. Abrir pinza
Ext_vas_alim E+ %Q3.6 Avance del vstago del cilindro E. Alimentacin de pieza
Rec_vas_alim E- %Q3.7 Retroceso del vstago del cilindro E
Ext_vas_expul F+ %Q3.8 Avance del vstago del cilindro F. Expulsin de pieza
Rec_vas_exp F- %Q3.9 Retroceso del vstago del cilindro F
Luz_defecto Luz Defecto %Q3.10 Enciende luz de defecto
Falta
Falta_material %Q3.11 Enciende luz de falta de material
Material
Universidad de Oviedo Problemas M340 - 267
ISA

Problema 9.12 Manipulador de fichas (pr0912)


Un sistema manipulador consta de:

1 cilindro de doble efecto A de alimentacin de la pieza, controlado por una electrovlvula de


potencia monoestable servopilotada y detectores de posicin a0 y a1
1 eje vertical constituido por un cilindro sin vstago de doble efecto F, controlado por una
electrovlvula de potencia monoestable servopilotada y detectores de posicin f0 y f1
1 cilindro de doble efecto E que nos permite girar el brazo que lleva la pinza y su actuador de giro,
controlado por una electrovlvula de potencia monoestable servopilotada y detectores de posicin
e0 y e1

1 eje constituido por un cilindro de doble efecto D, controlado por una electrovlvula de potencia
monoestable servopilotada y detectores de posicin d0 y d1 que nos permite avanzar o recoger la pinza.

1 actuador de giro de la pinza C, controlado por una electrovlvula de potencia monoestable


servopilotada sin detectores de posicin.
1 pinza B, controlada por una electrovlvula de potencia monoestable servopilotada sin detector,
en posicin inicial cerrada.
1 detector capacitivo NPN (Hay_pieza) que nos indica que hay piezas en la petaca de alimentacin.
1 barrera fotoelctrica PNP (Pieza_clara) que nos indica que hay una pieza transparente u opaca
Pulsadores de Rearme (NA), Marcha (NA) y Paro (NC)
Selector de Automtico / Manual (Manual =1)
Una luz indicadora de Defecto y otra de Puesta en Marcha.

El funcionamiento bsico del manipulador consiste en, coger una pieza del alimentador de petaca, y
meterla en el cajn en un sentido u otro. Dependiendo del material alimentado: opaco o transparente,
haremos que las piezas opacas las meta en sentido transversal al bastidor y las transparentes (en lo
Universidad de Oviedo
268 - Problemas M340 ISA

sucesivo claras) las meta en sentido paralelo al bastidor


Inicialmente el sistema estar parado con las luces apagadas.
Cuando se active el pulsador de rearme, el proceso parar e ir a condiciones iniciales (CI):
Se abrir la pinza, se recoger el brazo que la porta, y se pondr en la posicin de partida ( 0 ). El
brazo que porta la pinza se situar en la parte inferior del eje vertical y el alimentador de pieza
recoger su vstago. En este proceso, estar encendida permanentemente la luz roja y oscilante a 2
Hz la verde. Cuando estemos en CI, se activar la luz verde permanentemente para indicarnos que
est preparado para funcionar.

Funcionamiento normal
Hay dos modos de funcionamiento, que son fijados mediante el selector automtico / manual, se podr
pasar de uno a otro modo en cualquier instante. Para poder iniciar cualquier proceso por primera vez, o
despus de una parada por defecto, se deber partir de CI habiendo pulsado el rearme:
Modo automtico: El proceso comienza tras pulsar rearme y luego marcha. No se detiene hasta
pulsar paro o que exista un defecto.
Modo manual: El proceso comienza tras pulsar rearme, se requiere el accionamiento de marcha
tanto para el comienzo del proceso, como para la realizacin de cada uno de los pasos que
conforman un ciclo completo.
Paro: Al accionar el pulsador de paro, el proceso se detiene y puede ser activado de nuevo en el
punto en que se haba interrumpido accionando marcha. El paro lo indicaremos con la activacin
permanente de la luz roja.

En cada ciclo deber realizarse el siguiente procedimiento:


1. Si se detecta pieza en el alimentador por medio del sensor
capacitivo, se dar la orden de avanzar el vstago de dicho
actuador, para dejar la pieza bajo la barrera fotoelctrica. Este
sensor nos informar si es opaca o clara.

2. A continuacin se elevar el brazo por medio del cilindro sin vstago -eje vertical-, y una vez
alcanzada la parte superior, se efecta un giro de 90 para que la pinza quede en la direccin de la
pieza a recoger.
Universidad de Oviedo Problemas M340 - 269
ISA

3. Se abrir la pinza y seguidamente (una vez abierta) se


extender el brazo para proceder a coger la pieza.

4. Una vez sujeta la pieza, se recoge el brazo y se gira a la posicin vertical. Se desciende el brazo y se
procede a girar la pinza en funcin del material que porte. El vstago alimentador se recoge.

Opaca

Transparente

5. Para finalizar se extiende el brazo y se abre la pinza para dejar caer la pieza en la posicin adecuada
en el guarda-piezas. Dejando a continuacin la pinza y el brazo en la posicin inicial.

Funcionamiento en caso de avera


Falta de material: Si el detector capacitivo no detecta pieza cuando se vaya a iniciar un ciclo, deber
indicarse mediante el encendido de la sealizacin de defecto de forma intermitente a 2 Hz, parando el
proceso hasta que no se reponga piezas en el alimentador y se vuelva a CI.
Fallo sensores: si una de las partes de la estacin est en una determinada posicin y el sensor
correspondiente no se activa, se indicar con la intermitencia de la sealizacin de defecto a 4 Hz, ya que
su posicin no ser detectada por el autmata y el sistema no funcionar correctamente.
Fallos crticos: es muy importante evitar estados en la programacin que al ejecutarlos podran daar o
daaran de forma irreversible alguna parte del manipulador, a saber:
El brazo no debe estar extendido cuando se procede a su elevacin y giro a 90, ya que sino se
producira el choque entre la pinza y el sensor inductivo, con lo que podra daar el componente.
Igualmente no puede bajar o girar la pinza sin haber antes recogido el brazo por las mismas
razones.
Para poder recoger la pieza por la pinza existen dos obligaciones: a la hora de extender el brazo en
el instante de la recogida, la pinza debe estar bien girada y abierta, a su vez el vstago del
alimentador tiene que estar extendido para que pueda soportar el peso de las dems fichas. Si no
fuera as, la pieza a distribuir se vera obstaculizada por las otras y el almacenamiento por la pinza
no sera el correcto.
Evitar dar el giro de la pinza con el brazo abajo y extendido. Conllevara a la colisin entre la ficha y
el guarda-piezas, donde se daara la instalacin.
Universidad de Oviedo
270 - Problemas M340 ISA

Se pide para un PLC TSX 3722 v3.0, con mdulo de entrada TSX DMZ 28DR.
1. Esquema de mando
2. Esquema de fuerza
3. Programa de mando
4. Pantallas de explotacin

Etiqueta en el Pl7 Smbolo en Direccin


Comentarios
pro los planos en PLC
Marcha S2 %I1.0 Pulsador de marcha (NA)
Paro S3 %I1.1 Pulsador de paro (NC)
Rearme S4 %I1.2 Pulsador de rearme (NA)
Auto_man S5 %I1.3 Selector automtico o manual (Manual =1)
Hay_pieza DC %I1.4 Sensor capacitivo. Pieza en petaca de alimentacin
Pieza_oscura DF %I1.5 Sensor fotoelctrico. Pieza opaca
Brazo_abajo f0 %I1.7 Sensor de brazo abajo
Brazo_arriba f1 %I1.8 Sensor de brazo arriba
Pinza_recogida d0 %I1.9 Sensor de pinza recogida
Pinza_extendida d1 %I1.10 Sensor de pinza extendida
Giro_brazo_0 e0 %I1.11 Sensor de brazo girado a 0
Giro_brazo_90 e1 %I1.12 Sensor de brazo girado a 90
Alim_recogido a0 %I1.13 Sensor de alimentador recogido
Alim_extendido a1 %I1.14 Sensor de alimentador extendido
Saca_pieza A+ %Q2.1 Alimentacin de pieza
Abre_pinza B+ %Q2.2 Abrir la pinza
Gira_pinza C+ %Q2.3 Girar la pinza
Gira_brazo E+ %Q2.4 Girar brazo con pinza
Extender_pinza D+ %Q2.5 Extender la pinza
Subir_brazo F+ %Q2.6 Subir el brazo con la pinza
Luz_roja H1 %Q2.7 Luminaria roja
Luz_verde H2 %Q2.8 Luminaria verde
Universidad de Oviedo Problemas M340 - 271
ISA
Universidad de Oviedo
272 - Problemas M340 ISA

Cmo hacer el escalado de una seal analgica de entrada


Realizar un pequeo programa que proceda al escalado de una seal analgica de campo de forma que se
puedan definir los factores de valor mnimo de escalado y de valor mximo de escalado entre los que se
desea acotar el resultado final que se ha de visualizar.
La seal de campo se ha de configurar en la correspondiente tarjeta de entradas/salidas analgicas.

Ejemplo: Escalado y tratamiento de una seal analgica de temperatura


Una sonda de temperatura proporciona una seal analgica 0-10V y est calibrada de forma que indica
valores de temperatura comprendidos entre 32 y 212 grados Fahrenheit. Esta sonda se va a utilizar para
regular la temperatura en una sala de forma que:
- La temperatura ideal de la sala es de 25 C.
- Por encima de 30 C se ha de poner en marcha el sistema de refrigeracin que se ha de detener si la
temperatura desciende de 28 C.
- Por debajo de 20 C se ha de poner en marcha el sistema de calefaccin que se ha de detener si la
temperatura asciende por encima de los 22 C.
El valor en grados Celsius se debe obtener realizando un clculo aritmtico a partir del valor en grados
Fahrenheit. La frmula de conversin es la siguiente:
grados Fahrenheit 32
grados Celsius = 5
9
La seal de campo como entrada analgica se ha de tratar con un formato de 16 bits y se le ha de asignar
un tipo de dato ENTERO, pero el tratamiento del resto de programa ha de ser con valores de tipo REAL.

El hardware elegido para el PLC es:

Se debe comenzar realizando la configuracin del mdulo de entradas analgicas haciendo doble clic sobre
l en la vista general del hardware del PLC. Se ha instalado el mdulo BMX AMI 0410 que contiene 4
canales de entrada analgica. Aparecer la siguiente ventana:
Universidad de Oviedo Problemas M340 - 273
ISA

Se selecciona el rango de entrada (+/-10V, 0 a 10V, 0 a 5V / De 0 a 20 mA, De 1 a 5V / 4 a 20mA, +/- 5V


+/- 20 mA), escala (valores de tipo entero equivalentes a la seal elctrica medida) y filtro (segn los
requerimientos de la seal a tratar).

En este caso, se ha seleccionado el canal 0 del mdulo de entradas analgicas con un rango de 0 a 10V

Se selecciona una tarea asociada al canal analgico


Universidad de Oviedo
274 - Problemas M340 ISA

En nuestro caso, tarea maestra

Se selecciona el ciclo de exploracin del canal de entrada. Lo dejamos en normal

A continuacin se define la escala

La escala de 0 a 10000. Se puede observar la escala clicando sobre ella:


Universidad de Oviedo Problemas M340 - 275
ISA

Se especifica el desborde

Se elige el filtrado
Universidad de Oviedo
276 - Problemas M340 ISA

Todos estos conceptos quedan definidos en la ayuda del Unity Pro como vemos en el siguiente cuadro:

Una vez configurado el mdulo de entradas analgicas, se debe realizar el escalado de la seal mediante la
insercin de una instancia a un bloque de funcin elemental denominado SCALING.
Los parmetros del escalado forman parte de una estructura de datos denominada PARA_SCALING.
Lo ms cmodo es insertar el bloque y asignar como entrada de parmetros PARA la variable de nombre
p.e.parametros del tipo PARA_SCALING. Por otra parte, la entrada IN y la salida OUT son del tipo REAL.

El bloque PARA_SCALING realiza la siguiente funcin:


(_ _)
= ( _) + _
(_ _)
Universidad de Oviedo Problemas M340 - 277
ISA

Los parmetros de la funcin anterior quedan descritos en la siguiente tabla:

Elemento Tipo de datos Significado


in_min REAL Lmite inferior de la escala de entrada
in_max REAL Lmite superior de la escala de entrada
out_min REAL Lmite inferior de la escala de salida
out_max REAL Lmite superior de la escala de salida
clip BOOL "1": el valor de la salida OUT est limitado por out_min y out_max.

Teniendo en cuenta lo anteriormente expuesto, para el presente ejemplo, se deben asignar los valores a los
parmetros de escalado en la tabla de datos derivados:
Universidad de Oviedo
278 - Problemas M340 ISA

Preliminar
if Ix_LocalDist then
Mi_TempaSalaF := Iw_TempSalaF;
(*El valor de la temperatura de la sala en grados Fahrenheit se mide a travs de la sonda*)
else
Mi_TempaSalaF := MiP_TempSalaF;
(*El valor de la temperatura de la sala en grados Fahrenheit se asigna por la pantalla de operador*)
end_if;

Seccin Escalado
Universidad de Oviedo Problemas M340 - 279
ISA

Pantalla de operador

Como introducir un valor analgico mediante un indicador de


escala
Se hace uso del icono correspodiente, nmero 14 de la barra IOSEditor

Como introducir un grfico de tendencias


Se introduce un rectngulo como objeto animado asociado a la variable requerida y se anima como grfico
de tendencias.
Universidad de Oviedo
280 - Problemas M340 ISA

Problema 9.13 Pesado preciso de sustancias (pr0913)


Se desea automatizar un proceso de pesado preciso de un producto sobre una bscula. Para verter el
producto se dispone de una tolva con dos tajaderas. La "A" vierte el producto de una forma rpida -gran
seccin de paso-. La "B" lo vierte de una forma ms lenta -seccin de paso inferior- para poder afinar en la
cantidad de producto vertido.
La tolva tiene un sensor de peso analgico calibrado capaz de pesar desde 0 hasta 500 Kg.
El proceso consiste en lo siguiente:
Al pulsar Marcha (Pulsador NA), deben abrirse las tajaderas A y B que cierran el vertido de un
producto sobre un sistema de pesaje basculante.
Cuando la bscula marque 390 Kg, deber cerrarse la tajadera A.
Cuando la bscula marque 400 Kg, deber cerrarse B con lo que se cerrar la compuerta de afinado.
Alcanzado el peso deseado, se vaca la bscula por medio de un cilindro basculante (C).
El vaciado termina cuando el sensor de peso llegue a cero .
En ese momento se desactiva el cilindro basculante para que la bscula recupere la posicin inicial.
Durante cualquier momento del proceso, si se pulsa la parada de emergencia (interruptor NC) se
debern cerrar las tajaderas A y B y/o parar el vaciado de la bscula. Adems se indicar mediante
la activacin de una luz roja de parada de emergencia.
Al pulsar rearme el sistema volver al estado de reposo, independientemente del estado en el que
se produjese la parada.
Durante cualquier momento del proceso, si se pulsa un interruptor de paro (NC), se deber parar el
proceso y activar una luz de paro. Se saldr de esta situacin al pulsar Marcha. El sistema volver a
continuar donde estaba y se apagar la luz de paro.

PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000, mdulo mixto de entradas salidas BMX DDM3202K y mdulo de entradas
salidas analgicas BMX AMI 0410.
Universidad de Oviedo Problemas M340 - 281
ISA

GEMMA
Universidad de Oviedo
282 - Problemas M340 ISA

11.1 Descripcin general de la planta piloto educacional


"Depsitos"
La planta est formada por tres depsitos situados a diferentes alturas. Se denominan depsito superior
(en adelante (DS), depsito principal (en adelante DP) y depsito inferior (en adelante (DI). Estos depsitos
contendrn lquido que podr ser trasladado de unos hacia otros mediante las tuberas que los conectan y
la activacin de unas determinadas electrovlvulas y bombas.
El tamao de los depsitos esta pensado para que si hay un desborde de agua por los aliviaderos, el total
del lquido del depsito principal y superior quepa en el depsito inferior.
Universidad de Oviedo Problemas M340 - 283
ISA

En la parte baja del armario, a la altura del depsito inferior hay instalada una bomba centrifuga hidrulica
que eleva el lquido a los depsitos superiores. Esta bomba monofsica est controlada por un variador
instalado en la planta, ste nos permite controlar la potencia de la bomba para manejar el caudal a
nuestras necesidades.

Depsito Superior:
Es el depsito situado en la parte mas alta de la instalacin, capaz de almacenar lquido procedente de
cualquiera de los otros dos, gracias a la accin de la bomba centrfuga B2 y la combinacin adecuada de las
electrovlvulas V3, V4 y V5. Dispone de:
Un sensor de temperatura tipo Pt100 (TempDS) que nos da una seal analgica.
Dos sensores de nivel de tipo flotador NA (MaxDSP) y (MinDS) que nos darn un 1 lgico cuando el lquido
est en ese nivel o superior
Una tubera de desbordamiento, que conecta la parte alta del DS con el DP, que evitara el derrame del
lquido en el caso de efectuar una mala maniobra.
Salida a travs de una electrovlvula V1 que comunica el DS con el DP.
Entrada a travs de una electrovlvula V5 que comunica con el DP por medio de la electrovlvula V3 y
bomba B2, o con el DI por medio de la electrovlvula V4 y bomba B2
Las medidas del depsito superior son de 110mm de ancho, 190mm de largo y 260mm de alto. Estas
medidas dan un volumen de 5,4 litros totales. Pero al estar colocada la tubera de desborde en la parte alta,
nos quedan unos 4,7 litros efectivos.

Deposito principal:
Est situado a una altura intermedia, y es en l en el que se realizan las operaciones mas importantes y el
mayor nmero de ellas. Dispone de :
Un sensor de temperatura tipo Pt100 (TempDP) que nos da una seal analgica.
Dos sensores de nivel de tipo flotador NA (MaxDP) y (MinDP) que nos darn un 1 lgico cuando el lquido
est en ese nivel o superior
Una tubera de desbordamiento, que conecta la parte alta del DP con el DI, que evitara el derrame del
lquido en el caso de efectuar una mala maniobra.
Un sensor de nivel (Presin) obtenido a travs de un sensor de presin que nos da una seal analgica que
posteriormente acondicionaremos.
Un circuito de recirculacin del lquido del depsito mediante la accin de la bomba B1. Con esto podremos
homogeneizar la temperatura del agua cuando la calentemos, o enfriarla al hacerla pasar por un
intercambiador de calor con ventilador incorporado.
Salida a travs de una electrovlvula V2 que comunica el DP con el DI.
Salida a travs de una vlvula manual que comunica el DP con el DI.
Las medidas del depsito son iguales que el depsito superior: 110mm de ancho, 190mm de largo y 260mm
de alto. Dando un volumen efectivo de 4,7 Litros.

Depsito inferior:
Est situado en la parte inferior de la planta y su capacidad es de 10,4 litros. Con lo que en el peor de los
casos desbordamiento-, su volumen es mayor o igual que la suma de las capacidades de los depsitos
restantes. Esto permite, por ejemplo, hacer una operacin de rearme descargando el agua de los depsitos
al tanque inferior para comenzar a realizar tareas. Dispone de:
Dos sensores de nivel de tipo flotador NA (MaxDI) y (MinDI) que nos darn un 1 lgico cuando el lquido
est en ese nivel o superior.
Salida a travs de una electrovlvula V4 que comunica el DI con el DS o el DP a travs de la electrovlvula
Universidad de Oviedo
284 - Problemas M340 ISA

V5 y la bomba B2.
Las medidas del depsito son: 195mm de ancho, 215mm de largo y 260mm de alto. Dando un volumen de
10,9 Litros.

Panel de mando
Para controlar la planta, sta dispone de un panel de mando situado en la parte mas alta desde el que
podemos realizar diferentes acciones.
Selector de tres posiciones: para elegir el modo de funcionamiento Automtico / Operacin /
Mantenimiento
Selector de dos posiciones: para elegir el control Local o Remoto.
Cuatro Pilotos luminosos.
Un zumbador para avisar de forma sonora de diferentes alertas.
Tres pulsadores.
Seta de emergencia, para que en situaciones de emergencia se pueda cortar la ensin en la planta.

Bombas centrfuga B2
Es una bomba trifsica de acoplamiento magntico, alimentada a 400V AC. Para realizar el control de
caudal, se necesitar un regulador de velocidad, ALTIVAR 71.
El fabricante hace referencia a una serie de consejos de funcionamiento:
No se debe de poner en funcionamiento la bomba en vaco. Se puede destruir de forma parcial o total la
bomba.
El motor esta equipado con un trmico de seguridad, que en caso de sobrecalentamiento detiene el motor
hasta que la temperatura descienda.
Tambin viene prevista de un accionamiento magntico. Si la rotacin de la turbina se bloquea por la
presencia de partculas solidas o por cualquier otra razn, se produce un desacoplamiento del campo
magntico y el imn conductor y el motor continan girando. En este caso, se recomienda parar el motor.

Variador de velocidad
Para controlar el caudal de la bomba B2 que eleva el lquido a los depsitos superiores, es necesario tener
conectado un variador de velocidad a la bomba. En esta planta se ha instalado un ALTIVAR 71, del
fabricante SCHNEIDER ELECTRIC. Una salida anlogica de 0 a 10v del autmata controlar la velocidad de la
bomba conectada al altivar.

Sensor de nivel
El sensor de nivel nos indica los litros que posee el depsito principal en cada momento. En el caso del
sensor que tenemos instalado, se trata de un sensor de presin, la altura del lquido ser h = p / ( G)

Caudalimetro
Son dispositivos capaces de medir el caudal de fluido que pasa por un conducto, en nuestro caso el agua.
En la instalacin hemos colocado un caudalimetro a la salida de la bomba centrifuga que eleva el agua del
depsito inferior. Este componente nos proporciona una seal de onda cuadrada, cuya frecuencia es
proporcional al caudal medido por el sensor.

Mdulo de seguridad preventa


Este dispositivo de proteccin acta sobre un contactor, que corta la alimentacin de todos los actuadores
en caso de emergencia. La seal de estado del mdulo es enviada al autmata como entrada digital, de
esta manera se controlaran los procesos en consecuencia a una emergencia.
Universidad de Oviedo Problemas M340 - 285
ISA

Se puede observar como la


seal de la seta de emergencia
est conectada entre las
entradas S11 y S12 del mdulo
de seguridad. Las salidas 14 y 24
se utilizan para controlar dos
rels que se utilizan para abrir
el contactor de potencia en
caso de fallo o emergencia, y
tambin para rearmar el
mdulo. Para llevar a cabo el
rearme hay que soltar el
pulsador de marcha (en la
figura START), con la condicin
de que no se encuentre
accionado ningn elemento de
seguridad.

Pilotos
Son elementos para la sealizacin situados en el panel de mando de la planta, y sirven para advertir de
diferentes situaciones del sistema. Existen 4 tipos de pilotos, de diferentes colores: BLANCO, AMARILLO,
VERDE y ROJO.

Sirena de aviso
Es el elemento de sealizacin acstica instalado en la planta. Es un zumbador que indica el estado de una
operacin, en nuestro caso nos indica cuando una operacin finaliz.

Caudalmetro.
El rango de valores numrico que proporciona el canal analgico del autmata asociado al caudalimetro va
desde 0 hasta 10000, que corresponden a 4mA y 20mA respectivamente.
El adaptador de frecuencia esta calibrado para que a 0hz proporcione 4mA y a 1Khz proporcione 20mA. El
caudalimetro nos proporciona una frecuencia mxima de 550hz para 10L/min y una frecuencia de 55Hz
para 1L/min, segn el fabricante.
Por tanto la seal numrica antes de emplear la funcin SCALING es de 5500 cuando lea 10L/min y de 550
para 1L/min.

Sensores de temperatura.
El rango de valores que proporciona el canal analgico del autmata correspondiente a la sonda de
temperatura va de 0 a 10000, lo que corresponden a 4mA y 20mA respectivamente. El adaptador de PT100
esta calibrado para que a 4mA sean 0C y a 20mA sean 100C.
Universidad de Oviedo
286 - Problemas M340 ISA

Anexo A Desactivacin de Aero en W7


El programa Unity Pro XL 7.0 funciona correctamente en el Sistema Operativo Windows XP. No funciona en
W8 ni en sistemas Apple, por lo cual se deber implementar una mquina virtual de XP o W7.
En Windows 7, se deber eliminar el escritorio "Aero", si no, no funcionar correctamente y dar muchos
problemas.
Para desactivar el escritorio "Aero", clickar con el botn derecho en el escritorio y elegir la opcin
"personalizar".

Luego establecer en "Temas Bsico y de Contraste alto" el tema "Windows 7 Basic", por ejemplo, o el que
ms nos guste. SOLO FUNCIONA CORRECTAMENTE DE ESTA FORMA.

Si as y todo, sale un mensaje que dice "es imposible establecer la comunicacin con el PLC", salir del Unity
e ir a la barra de herramientas. En la zona derecha hay un icono del simulador del PLC. Pinchar en l con el
botn derecho y salir.
Universidad de Oviedo Problemas M340 - 287
ISA

Anexo B Error de token

Algunas veces el Unity nos dice que hay un error de token y nos impide seguir. La solucin consiste en
habilitar el multitoken.
Para ello iremos a Herramientas / Ajustes del proyecto. En la ventana que sale, seleccionaremos "Permitir
token multiple".
Universidad de Oviedo
288 - Problemas M340 ISA

Anexo C Conexin del PC con el PLC via USB y Ethernet


Para poder conectarnos con el PLC por medio de un cable USB o Ethernet, deberemos instalar los drivers
SchneiderPLCUSBDriverSuite y SchneiderXIPDriverSuite que vienen en la carpeta "Communication
Drivers" del software de Schneider Unity Pro Xl 11.0.

Una vez instalados deberemos reiniciar el computador y cuando nos conectemos al PLC mediante un cable
USB saldr la siguiente pantalla

Deberemos dejar que instale los archivos que necesite para poder luego acceder al PLC sin problemas.
Una vez instalados, nos aparecer en la barra de informacin inferior un icono informndonos que se est
ejecutando el driver PLCUSB

Conexin a travs de Ethernet


1) Una vez configurado correctamente el hardware del PLC, crear una nueva red en el explorador de
Universidad de Oviedo Problemas M340 - 289
ISA

proyectos. Para ello ir a "Comunicacin -> Redes", clicar el botn derecho y seleccionar "Nueva red".

2) Seleccionar Ethernet en la lista de redes disponibles:

3) Por defecto se crea el nombre Ethernet_1. Si se desea cambiar el nombre creado por defecto, introducir
el nombre deseado. Para finalizar pulsar aceptar.

4) En redes aparecer el nuevo componente de red creado. Hacer doble click sobre l.

5) Debemos elegir el mdulo que realizar la conexin de Ethernet. En nuestro caso, lo realizaremos
mediante el puerto Ethernet disponible en la CPU. Por tanto, debemos seleccionar la CPU que estamos
usando. Es importante seleccionar no solamente el tipo de CPU sino tambin la versin.
Universidad de Oviedo
290 - Problemas M340 ISA

6) En el ejemplo, elegimos la CPU 2020 versin 1.0, confirmamos el cambio clicando en S.

7) Se introduce la IP del PLC que ser 156.35.153.2X, siendo X el nmero de estacin en la que se encuentra
el PLC. La mscara de subred es 255.255.255.0. La direccin de pasarela se deja a 0.
Universidad de Oviedo Problemas M340 - 291
ISA

8) A continuacin cerramos la ventana Ethernet_1

9) Al cerrar la ventana Ethernet_1, se nos pregunta sobre aceptar los cambios. Clicamos S.

10) Seguidamente, acudimos a la configuracin del hardware del PLC. Clicamos sobre la figura del puerto
Ethernet de la CPU del PLC ya que es por donde fsicamente conectaremos nuestro cable de red.
Universidad de Oviedo
292 - Problemas M340 ISA

11) Nos aparecer la siguiente ventana:


Universidad de Oviedo Problemas M340 - 293
ISA

12) Doble click sobre Canal 3 y seleccionaremos la funcin ETH TCP IP.

13) En conexin elegimos el componente creado anteriormente, es decir, Ethernet_1.


Universidad de Oviedo
294 - Problemas M340 ISA

14) Cerramos la ventana 0.0:Ethernet

15) Se nos pregunta si deseamos aceptar las modificaciones. Contestamos que S.


Universidad de Oviedo Problemas M340 - 295
ISA

Conexin a travs de USB


Para que el autmata almacene esta direccin IP, le deberemos pasar previamente nuestro programa
mediante una conexin USB.
Para conectarnos al autmata mediante el cable USB. Deberemos indicar que queremos trabajar en el
modo ESTANDAR no el de SIMULACIN
Iremos al menu "PLC" y escogeremos la opcin "Establecer direccin" especificando que vamos a hacer
una conexin por cable USB a la direccin SYS y aceptamos.

Despus Transferimos el programa creado y con ello lograremos establecer la direccin IP en el PLC.

Posteriormente, si deseamos conectarnos con el PLC mediante Ethernet, deberamos acceder a "PLC--
Establecer direccin"y en Direccin pondremos la IP de nuestro PLC y en Medios seleccionaremos TCPIP.

RECORDAR que se deber haber seleccionado el modo ESTANDAR de conexin,no el modo simulador.

Seguidamente ya podramos clicar en Aceptar y luego Conectar para establecer la conexin PC-PLC.
Universidad de Oviedo
296 - Problemas M340 ISA

Anexo D Bits del sistema


Los bits del sistema %Si, son unos bits que indican los estados del autmata o que permiten controlar el
funcionamiento de ste.
Dichos bits pueden probarse en el programa del usuario con el fin de detectar cualquier evolucin de
funcionamiento que conlleve un procedimiento de procesamiento establecido.
Algunos de estos bits deben volver a su estado inicial o normal por programa. No obstante, los bits de
sistema que vuelven a su estado inicial o normal a travs del sistema, no deben hacerlo a travs del
programa ni del terminal.

Bit Funcin Descripcin Estado


Inicial
%S4 Base de tiempo Un temporizador interno regula el cambio de estado de este bit. -
TB10MS 10 ms Es asncrono en relacin con el ciclo del PLC.

%S5 Base de tiempo -


dem %S4
TB100MS 100 ms
%S6 Base de tiempo -
dem %S4
TB1SEC 1s
-
%S7 Base de tiempo
dem %S4
TB1MIN 1 min
La conmutacin del PLC de la modalidad STOP a RUN (incluso -
Primer ciclo despus de un arranque en fro con arranque automtico en
%S13
despus de la ejecucin) se indica al establecer el bit de sistema %S13 en 1.
1RSTSCANRUN
puesta en RUN Este bit vuelve a ponerse a 0 al final del primer ciclo de la tarea
MAST en la modalidad de ejecucin.
Universidad de Oviedo Problemas M340 - 297
ISA

Anexo E Como generar la documentacin del proyecto


Para poder generar la documentacin del proyecto y poder ver el
cdigo del programa, sus pantallas de operador, variables utilizadas,
clicaremos dos veces en la carpeta "Documentacin" de la ventana
"explorador de proyectos".

Nos saldr una ventana donde deberemos seleccionar que


partes queremos imprimir bien sea por la impresora, o
generar un documento PDF con toda la informacin
seleccionada.

A continuacin, clicaremos con el botn derecho en la parte


que queremos incluir en la documentacin y saldr una
ventana emergente donde deberemos indicar que se incluya
el encabezamiento.

Slo nos quedar ahora que clicar con el botn derecho encima de
"Proyecto" y saldr una pantalla donde elegiremos la opcin de
Imprimir.
Universidad de Oviedo
298 - Problemas M340 ISA

Anexo F Tipos de Bloques*


"En Unity Pro se utilizan distintos tipos de bloques. El trmino general que abarca todos los tipos de
bloques es FFB.
Debemos distinguir los siguientes tipos de bloques:
Funcin elemental (EF)
Bloque de funciones elementales (EFB)
Bloque de funciones derivado (DFB)
Procedimiento

Funcin elemental (EF)


Las funciones elementales (EF) no disponen de estado interno y solo cuentan con una salida. Si en las
entradas aparecen los mismos valores, el valor de la salida ser el mismo cuando se ejecute la funcin; por
ejemplo, siempre que se ejecuta la suma de dos valores, el resultado es el mismo.
En los lenguajes grficos (FBD y LD), una funcin elemental se representa como un bloque de datos con
entradas y una salida. Las entradas aparecen a la izquierda de la trama del bloque y las salidas, a la derecha.
El nombre de la funcin, es decir, el tipo de funcin, aparece centrado dentro de la trama del bloque.
El nmero de entradas puede aumentarse en algunas funciones elementales.

Bloque de funciones elementales (EFB)


Los bloques de funciones elementales (EFB) tienen estados internos. Si las entradas disponen del mismo
valor, el valor de la salida puede variar cada vez que se ejecute el bloque de funciones. Por ejemplo, con un
contador aumenta el valor de la salida.
En los lenguajes grficos (FBD y LD), un bloque de funciones elementales se representa como un bloque de
datos con entradas y salidas. En l, las entradas siempre aparecen a la izquierda y las salidas a la derecha. El
nombre del bloque de funciones, es decir, el tipo de bloque de funciones, aparece centrado dentro del
bloque de datos. El nombre de la instancia aparece por encima del bloque de datos.

Bloques de funciones derivados (DFB)


Los bloques de funciones derivados (DFB) presentan las mismas propiedades que los bloques de funciones
elementales. Sin embargo, el usuario los crea en los lenguajes de programacin FBD, LD, IL o ST.

Procedimiento
Los procedimientos son funciones con distintas salidas. No disponen de estado interno. La nica diferencia
con las funciones elementales es que los procedimientos pueden tener ms de una salida y admiten
variables del tipo de datos VAR_IN_OUT. Los procedimientos no devuelven ningn valor.
Los procedimientos son una ampliacin de la norma CEI 61131-3 y se deben habilitar de forma explcita.
Los procedimientos no se distinguen visualmente de las funciones elementales".

* Extraido de: Unity Pro_ Estandar Libreria de bloques 10_2013. Schneider Electric. pg. 22-24
Universidad de Oviedo Problemas M340 - 299
ISA

Bibliografa
Unity Pro. Lenguajes y estructura del programa. Manual de referencia. Schneider Electric. 07/2012
Modicon M340 con Unity Pro. Mdulos de entradas/salidas binarias. Manual de usuario. Schneider
Electric. 07/2008
Modicon M340 con Unity Pro. Mdulos de entradas/salidas analgicas. Manual de instalacin.
Schneider Electric. 05/2010
Unity Pro. Estandar. Libreria de bloques. Schneider Electric. 10/2013.
Universidad de Oviedo
300 - Problemas M340 ISA

INDICE
SUMARIO ........................................................................................................................................................... 3
Notaciones ......................................................................................................................................................... 6
Funciones lgicas AND y OR .............................................................................................................................. 7
Sistemas combinacionales. Concepto de estado de seal. Control por nivel ................................................... 8
Problema 1.1 Luz de museo con interruptores ............................................................................................... 8
Recomendaciones importantes a tener en cuenta a la hora de programar ................................................... 11
Introduccin del programa .............................................................................................................................. 12
Creacin de la Pantalla de Operador ............................................................................................................... 15
Configuracin de la Pantalla de Operador ...................................................................................................... 17
Simulacin del programa ................................................................................................................................. 18
Sistemas secuenciales. Control por flanco. Funciones de memoria. .............................................................. 21
Funcin Set ...................................................................................................................................................... 21
Funcin Reset .................................................................................................................................................. 22
Funcines lgicas de memoria biestable SR y RS ............................................................................................ 22
Funcin XOR .................................................................................................................................................... 23
Variables de tipo EBOOL .................................................................................................................................. 23
Problema 1.2 Conmutacin de una luz mediante un pulsador ..................................................................... 24
Introduccin de variables de E / S ................................................................................................................... 24
Interfaces de entrada y salida ......................................................................................................................... 29
Problema 1.3 Luz de museo mediante pulsadores........................................................................................ 37
Funciones de temporizacin............................................................................................................................ 39
Cmo introducir un Bloque de Funcin en el lenguaje ST .............................................................................. 42
Problema 2.1 Luz de museo con temporizador ............................................................................................. 44
Cmo exportar e importar pantallas de operador .......................................................................................... 47
Seleccin del valor tiempo actual de un temporizador como variable de control ......................................... 48
Problema 2.2 Semforo simple ..................................................................................................................... 49
Cmo insertar una imagen en la pantalla de operador................................................................................... 52
Problema 2.3 Semforo coche-peatn con intermitencia ............................................................................ 53
Problema 2.4 Arranque estrella - tringulo ................................................................................................... 57
Problema 2.5 Puerta automtica................................................................................................................... 59
Problema 2.6 Motor CC ................................................................................................................................. 61
Funciones de comparacin EQ, NE, LE, LT, GE, GT .......................................................................................... 64
Construccin de un oscilador con comparadores ........................................................................................... 65
Problema 3.1 Semforo con comparadores .................................................................................................. 67
Universidad de Oviedo Problemas M340 - 301
ISA

Crear y direccionar varias pantallas de operador ............................................................................................69


Problema 3.2 Semforo completo con peticin de paso ...............................................................................71
Funciones de contador .....................................................................................................................................75
Problema 4.1 Control de acceso a sala comercial ..........................................................................................78
Cmo cambiar el valor actual de un contador .................................................................................................82
Problema 4.2 Control de un contador reversible ...........................................................................................83
GRAFCET - SFC ..................................................................................................................................................85
Problema 5.1 Portn mediante GRAFCET ......................................................................................................85
Mtodo para insertar un objeto de la librera de pantalla de operador..........................................................94
Problema 5.2 Salida de plantas con semforos .............................................................................................95
Problema 5.3 Salida de plantas con semforo y sensor de abandono de planta ..........................................99
Problema 5.4 Control de limpiaparabrisas ...................................................................................................102
Problema 5.5 Control de la mezcla de dos lquidos .....................................................................................106
Funciones fundamentales para controlar los SFC ..........................................................................................110
Problema 5.6 Ejemplo de control de un GRAFCET .......................................................................................112
Subrutinas y puesta en condiciones iniciales .................................................................................................114
Problema 6.0 Portn con puesta en CI .........................................................................................................114
Problema 6.1 Control de 2 cilindros. ............................................................................................................119
Como mostrar un texto en la pantalla de operador en funcin de una variable...........................................125
Problema 6.2 Control de plantas con barrera. Puesta en CI con subrutina .................................................126
Problema 6.3 Control de acceso a garaje con semforos ............................................................................133
Problema 6.4 Manipulador 2 ejes con cilindros ...........................................................................................139
Problema 6.5 Control de un silo y vagoneta ................................................................................................145
GRAFCETs Coordinados ..................................................................................................................................151
Problema 7.1 Control de 2 cintas .................................................................................................................152
Como forzar el valor de una entrada o salida o modificar el valor de una variable ......................................157
Problema 7.2 Tolva a cinta alimentadora giratoria y 3 cintas de salida .......................................................159
Problema 7.3 Dos cintas alimentadoras a tolva y cinta de salida ................................................................169
Interrupciones ................................................................................................................................................171
Problema 8.1 Control de trfico en 2 carriles ..............................................................................................171
Configuracion del mdulo BMX EHC 0800 .....................................................................................................172
Simulacion de los eventos (interrupciones) ...................................................................................................176
Funciones de desplazamiento y rotacin .......................................................................................................177
Tipos de Datos ................................................................................................................................................179
Universidad de Oviedo
302 - Problemas M340 ISA

Problema 8.2 Desplazamientos de bits e interrupciones ............................................................................ 180


Problema 8.3 Control de acceso de entrada a garaje y pulsador ................................................................ 188
Cmo crear un Bloque de Funcin de Usuario (DFB) .................................................................................... 190
Problema 9.1 Control de 3 lmparas ........................................................................................................... 195
Problema 9.2 Control de la mezcla en un depsito..................................................................................... 201
Problema 9.3 Control de 2 bombas y su desgaste ...................................................................................... 214
Problema 9.4 Proceso de electrlisis ........................................................................................................... 223
Problema 9.5 Control de un tnel de lavado............................................................................................... 236
Problema 9.6 Control de un molino ............................................................................................................ 241
Problema 9.7 Control de un paso a nivel..................................................................................................... 243
Problema 9.8 Control de una compuerta .................................................................................................... 252
Problema 9.9 Control de un garaje (pr0909) ............................................................................................... 257
Problema 9.10 Control de un ascensor (pr0910) ........................................................................................ 261
Problema 9.11 Manipulador de cubos (pr0911) ........................................................................................... 263
Problema 9.12 Manipulador de fichas (pr0912).......................................................................................... 267
Cmo hacer el escalado de una seal analgica de entrada ......................................................................... 272
Como introducir un valor analgico mediante un indicador de escala ......................................................... 279
Como introducir un grfico de tendencias .................................................................................................... 279
Problema 9.13 Pesado preciso de sustancias (pr0913) ............................................................................... 280
GEMMA.......................................................................................................................................................... 281
11.1 Descripcin general de la planta piloto educacional "Depsitos" ........................................................ 282
Anexo A Desactivacin de Aero en W7 ....................................................................................................... 286
Anexo B Error de token................................................................................................................................ 287
Anexo C Conexin del PC con el PLC via USB y Ethernet ............................................................................. 288
Anexo D Bits del sistema ............................................................................................................................. 296
Anexo E Como generar la documentacin del proyecto ............................................................................. 297
Anexo F Tipos de Bloques* .......................................................................................................................... 298
Bibliografa ..................................................................................................................................................... 299
INDICE ............................................................................................................................................................ 300

S-ar putea să vă placă și