Está en la página 1de 261

UNIVERSIDAD DE OVIEDO

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

El Autmata Programable M340


Problemas

Gijn, Noviembre de 2014


Jorge Argelles Garca
Jorge Alonso Gonzlez
Ivn Machn Gonzlez

2 - Problemas M340

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 3

SUMARIO
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.


Pr-0102
Pr-0103

Conmutacin de una luz mediante un pulsador.


Otra forma de introducir las variables.
Luz de Museo mediante pulsadores.

Funciones de temporizacin
Pr-0201

Pr-0202
Pr-0203
Pr-0204
Pr-0205
Pr-0206

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.
Semforo simple.
Semforo coche-peatn con intermitencia.
Arranque estrella-tringulo (Ejercicio para resolver).
Puerta autmatica (Ejercicio para resolver).
Motor CC

Funciones de comparacin
Pr-0301
Pr-0302

Semforo coche-peatn con intermitencia.


Semforo completo con peticin de paso.

Funciones de contador
Pr-0401
Pr-0402

Acceso sala comercial fotoclulas.


Cmo cambiar el valor actual de un contador
Control de un contador.

GRAFCET
Pr-0501
Pr-0502
Pr-0503
Pr-0504
Pr-0505

Portn.
Mtodo para insertar un objeto de la librera de pantalla de operador
Garaje 2 plantas (marca suelo, semforo).
Garaje 2 plantas (barreras, lazos sensores, semforo).
Limpiaparabrisas de coche.
Control de la mezcla de dos lquidos.

Funciones fundamentales para controlar los SFC


INITCHART, CLEARCHART, FREEZCHART, SETSTEP, RESETSTEP.

4 - Problemas M340

Universidad de Oviedo
ISA

Subrutinas y puesta en condiciones iniciales


Pr-0601
Pr-0602
Pr-0603
Pr-0604
Pr-0605

Control de 2 cilindros (1 CSE y 1 CDE).


Como mostrar un texto en la pantalla de operador en funcin de una variable
Garaje 2 plantas (barreras, lazos sensores).
Garaje (S. Coches, s. Peatones).
Clasificador de piezas.
Control de silo y vagn.

Automatizacin de cintas
Pr-0701
Pr-0702
Pr-0703

Cinta alimentadora a cinta de salida.


Tolva a cinta alimentadora giratoria y 3 cintas de salida.
2 Cintas alimentadoras a tolva y cinta de salida (Ejercicio para resolver).

Interrupciones
Pr-0801
Pr-0802
Pr-0803

Regulacin de coches en la calle.


Simulacin de los eventos.
Desplazamientos de bits e interrupciones (Ejercicio para resolver).
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
Pr-0902
Pr-0903
Pr-0904
Pr-0905
Pr-0906
Pr-0907
Pr-0908
Pr-0909
Pr-0910
Pr-0911
Pr-0912

Arranque tres lmparas.


Depsito mezclador.
Control de 2 bombas y su desgaste.
Proceso electrolisis.
Control de un tnel de lavado de coches.
Control de un molino.
Paso a nivel.
Control de una compuerta.
Control de un garaje con luz.
Control de un ascensor de 4 plantas (Ejercicio para resolver) .
Manipulador de cubos con cara metlica (Ejercicio para resolver en el laboratorio) .
Manipulador de fichas opacas o transparentes (Ejercicio para resolver en el laboratorio).

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.

Problemas M340 - 5

Universidad de Oviedo
ISA

Anexos
Anexo A Desactivacin de Aero en W7.
Anexo B Error de token.
Anexo C Conexin del PC con el PLC via ethernet.
PD.: En negrita los hechos en clase.

Tabla de contenidos

Notaciones
En todos los problemas expuestos se seguirn las siguientes notaciones:
Ix_Nombre
Iw_Nombre
Qx_Nombre
Qw_Nombre
Mx_Nombre
MxP_Nombre
Mi_Nombre
Mdi_Nombre
Mw_Nombre
Mdw_Nombre
Mr_Nombre
Mt_Nombre
T_Nombre
S_Nombre
EtapaNmero
Tran_EtapaIni_EtapaFinal
Tran_N

Entrada booleana del bornero del PLC


Entrada anlogica del bornero del PLC
Salida booleana fsica del bornero del PLC
Salida anlogica del bornero del PLC
Memoria utilizada en el programa
Memoria utilizada en el panel del operador
Nombre de una variable de tipo entero
Nombre de una variable de tipo doble entero
Nombre de una variable de tipo word
Nombre de una variable de tipo dobleword
Nombre de una variable de tipo real
Nombre de una variable tipo time
Nombre de un temporizador
Nombre de una etapa en un GRAFCET
"
"
Nombre de una transicin en un GRAFCET
"
"

6 - Problemas M340

Universidad de Oviedo
ISA

Problemas M340 - 7

Universidad de Oviedo
ISA

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 de entradas salidas BMX DDM3202K.

S2

Los interruptores S1, S2 y S3 se consideran NA.

LUZ
S1

S3

Universidad de Oviedo
ISA

8 - Problemas M340
Tabla de variables

Etiqueta

Smbolo
en
Direccin
los
en PLC
planos

Tipo

Comentarios

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

H1

%Q0.1.16 EBOOL

Luz

Qx_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, las que activan la salida son:
Tabla de activaciones
ENTRADAS

SALIDAS

S1

S2

S3

LUZ

Y por tanto, teniendo en cuenta que un interruptor NA, cuando est activo su estado de seal es 1 -le llega
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:

Problemas M340 - 9

Universidad de Oviedo
ISA

Tabla de estados
ENTRADAS

SALIDAS

S1

S2

S3

LUZ

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

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
esta forma, pues quien manda la informacin exclusivamente sern los elementos de campo y no la
pantalla de operador.

10 - Problemas M340
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 sale, 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.00-.
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 de Rack o en el mismo Rack en gris
situado a la izquierda de la FA.

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.

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 11

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.

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

12 - Problemas M340

Universidad de Oviedo
ISA

Programa en LD - (pr0101b)
Seccin "IniciaVariables" en LD

Seccin "ControlLuz" en LD

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.

Universidad de Oviedo
ISA

Problemas M340 - 13

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.

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.

14 - Problemas M340

Universidad de Oviedo
ISA

Para mostrar la luz, hacemos un crculo con la herramienta de dibujo.


Lo rellenamos de verde y le ponemos una 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 Mx_Luz vale 1.

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

Universidad de Oviedo
ISA

Simulacin del programa


Para simular el programa lo primero que deberemos hacer es "Regenerar
todo el proyecto".

Establecer la "Modalidad de simulacin".

"Conectar" con el PLC, en nuestro caso con el simulador.

"Transferir proyecto a PLC", en nuestro caso al simulador.

"Ejecutar" el programa (poner en RUN).

Y luego seleccionando la pantalla de operador, "Habilitar


modificacin de variables".

Problemas M340 - 15

16 - Problemas M340
Programa mixto (ST y LD) - (pr0101c)
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

Programa mixto (ST y FBD) - (pr0101d)


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
ISA

Problemas M340 - 17

Universidad de Oviedo
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

Etiqueta

Smbolo
en
Direccin
los
en PLC
planos

Tipo

EBOOL

Comentarios

Ix_Pulsador

S0

%I0.1.0

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.

18 - Problemas M340

Universidad de Oviedo
ISA

En la nueva pantalla, seleccionaremos la pestaa "Objetos


de E/S"

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
ISA

Problemas M340 - 19

Recordemos que 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.
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).

Programa con secciones mixtas ST y LD - (pr0102a)


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 debe conmutar, est claro que no podremos utilizar un
control por nivel. Cuando pulsamos, el autmata lee la entrada miles de veces antes de que soltemos el
pulsador por rpido que lo hagamos 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, lo
detectar 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*)

20 - Problemas M340
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

(*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" *)

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

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

Problemas M340 - 21

22 - Problemas M340

Universidad de Oviedo
ISA

Problemas M340 - 23

Universidad de Oviedo
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

Universidad de Oviedo
ISA

24 - Problemas M340
Tabla de variables

Etiqueta

Smbolo
en
los
planos

Direccin
en PLC

Tipo

Comentarios

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

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

Qx_Luz

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

Problemas M340 - 25

Universidad de Oviedo
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

Etiqueta

Smbolo
en
Direccin
los
en PLC
planos

Tipo

Comentarios

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

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.

26 - Problemas M340

Universidad de Oviedo
ISA

La funcin de temporizacin adecuada para este proceso es la TOF cuyo cronograma es el siguiente*)

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
ISA

Problemas M340 - 27

Cmo introducir un Bloque de Funcin en el lenguaje ST


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

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
ISA

28 - Problemas M340
aparece otra ventana,
p.e."Temporizador_10s"

donde

le

indicaremos

el

nombre

elegido

para

nuestra

funcin,

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
ISA

Programa en lenguaje FBD - (pr0201a)

Problemas M340 - 29

30 - Problemas M340

Universidad de Oviedo
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
ISA

Problemas M340 - 31

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.

32 - Problemas M340

Universidad de Oviedo
ISA

Problemas M340 - 33

Universidad de Oviedo
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

t (s)

30

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
ISA

34 - Problemas M340
Tabla de variables

Etiqueta

Smbolo
en
Direccin
los
en PLC
planos

Tipo

Comentarios

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

Mx_Arranque

EBOOL Marca del interruptor de arranque en el programa

Programa en lenguaje FBD - (pr0202)

Marca del interruptor de arranque en la pantalla

Universidad de Oviedo
ISA

Pantalla de operador

Problemas M340 - 35

36 - Problemas M340

Universidad de Oviedo
ISA

Problemas M340 - 37

Universidad de Oviedo
ISA

Problema 2.3 Semforo coche-peatn con intermitencia


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

Automviles
Verde
t (s)

20
f=2Hz

Ambar

3 2

t (s)

Rojo
25

t (s)

Peatones
Verde

f=2Hz

Rojo

18

27

3 2

t (s)

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

Etiqueta

Smbolo
Direccin
en
en PLC
los planos

Tipo

Comentarios

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

38 - Problemas M340
Programa en lenguaje FBD - (pr0203)

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Pantalla de operador

Problemas M340 - 39

40 - Problemas M340

Universidad de Oviedo
ISA

Problemas M340 - 41

Universidad de Oviedo
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

Etiqueta

Smbolo
Direccin
en
en PLC
los planos

Tipo

Comentarios

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

Qx_Km2

KM2

%Q0.1.17

EBOOL

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

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


motor

Universidad de Oviedo
ISA

42 - Problemas M340
Esquema de fuerza

L1
L2
L3

5
6

4
3

2
1

V1 4

-KM1

-KM3

U1 2

-KM2

-F1

W1 6

-F2

W2

V2

U2

M
3

Esquema de mando

+24 V
0,5 A
rpido

13

11

11

13

-F1

F2

14

-S4

12

-S3
Paro

14

-S2
Marcha

12

-S1
Emerg

I0.1.0

I0.1.1

I0.1.2

10

I0.1.3

AP (PLC)

A1

Q0.1.21

16

L3

19

20

12A
rpido

Ambar

A2

L2
Roja

A2

F2

A2

Verde

15

A2

L1

KM3

A1

14

Q0.1.20

A1

Q0.1.19

13

A2

A1

KM2

A2

KM1

Q0.1.18

A1

12

A1

11

Q0.1.17

Emerg

Q0.1.16

220 V

Problemas M340 - 43

Universidad de Oviedo
ISA

Problema 2.5 Puerta autmatica


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

Etiqueta

Smbolo
Direccin
en
en PLC
los planos

Tipo

Comentarios

Ix_DetEntrada

S1

%I0.1.0

EBOOL Detector de la entrada

Ix_DetSalida

S2

%I0.1.1

EBOOL Detector de la salida

Ix_Fca

FCA

%I0.1.2

EBOOL Final de carrera de puerta abierta

Ix_Fcc

FCC

%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.

44 - Problemas M340

Universidad de Oviedo
ISA

Problemas M340 - 45

Universidad de Oviedo
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
K0 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

Etiqueta

Smbolo
Direccin
en
en PLC
los planos

Tipo

Comentarios

Ix_S0

S0

%I0.1.0

EBOOL Pulsador de arranque/parada

Ix_S1

S1

%I0.1.1

EBOOL Pulsador de arranque/parada

Ix_S2

S2

%I0.1.2

EBOOL Pulsador de inversin de giro

Ix_LocDis

S15

%I0.1.7

EBOOL Conmutador Local=1 Distancia=0

Qx_K0

KM1

%Q0.1.16

EBOOL Activa el contactor para que arranque el motor

Qx_K1

KM2

%Q0.1.17

EBOOL Activa el comutador para la inversin de giro

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_Motor and Qx_Inversion;
MxP_LVerde:= Qx_Motor and not Qx_Inversion;

Universidad de Oviedo
ISA

46 - Problemas M340

Seccin "Control "


(*Control del motor*)
(* Temporiza cuando ambos pulsadores S0 y S1 son pulsados simultneamente, TON, PT=2s *)
Temp_Marcha (IN := Mx_S0 and Mx_S1, PT := t#2s); (* tipo TON *)
(* Temporiza cuando nica y exclusivamente se pulsa S0 o S1, TON, PT=2s *)
Temp_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 *)
Temp_Parada_Inversion (IN := Mx_S2, PT := t#500ms); (* tipo TP *)
(* Temporiza un pulso de 200ms cuando se pulsa S2, TP, PT=200ms *)
Temp_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_Temp_Parada_Inversion:=(Temp_Parada_Inversion.Q);
Mx_Temp_Inversion:=(Temp_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 Temp_Marcha.Q or (FE(Mx_Temp_Parada_Inversion) and Mx_Marcha) then
set(Qx_K0); set(Mx_Marcha);
end_if;
(*El motor debe pararse si se ha pulsado durante ms de dos segundos exclusivamente S0 o S1*)
if Temp_Parada.Q then
reset(Qx_K0); 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 Temp_Parada_Inversion.Q then
reset(Qx_K0);
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_Temp_Inversion) and Mx_Marcha) then
Qx_K1:=not Qx_K1;
end_if;

(*Cronograma del temporizador tipo TP *)

Universidad de Oviedo
ISA

Pantalla de operador

Problemas M340 - 47

48 - Problemas M340

Universidad de Oviedo
ISA

Problemas M340 - 49

Universidad de Oviedo
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
t (s)

20
f=2Hz

Ambar

3 2

t (s)

Rojo
25

t (s)

Peatones
Verde

f=2Hz

Rojo

18

3 2

27

t (s)

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

Etiqueta

Smbolo
Direccin
en
en PLC
los planos

Tipo

Comentarios

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
ISA

50 - Problemas M340

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);
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);

Universidad de Oviedo
ISA

Problemas M340 - 51

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


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

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.

Para insertar una imagen y que se vea en otro computador, debemos seleccionarla, 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".

52 - Problemas M340

Universidad de Oviedo
ISA

Problemas M340 - 53

Universidad de Oviedo
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

t (s)

Rojo
30

t (s)

68

Peatones
Verde

f=2Hz

Rojo
Luz
Espere

22

4 2

t (s)

t (s)

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
ISA

54 - Problemas M340

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

Etiqueta

Smbolo
Direccin
en
en PLC
los planos

Tipo

Comentarios

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

Mx_Pulsador

EBOOL Marca del pulsador de arranque en el programa

Mx_IniCiclo
Mx_PeticionPaso
Mx_Oscilador2hz

Marca del pulsador de arranque en la pantalla

Universidad de Oviedo
ISA

Problemas M340 - 55

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;

56 - Problemas M340
Pantalla de operador

Universidad de Oviedo
ISA

Problemas M340 - 57

Universidad de Oviedo
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

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.

Tabla de variables

Etiqueta

Smbolo
Direccin
en
en PLC
los planos

Tipo

Comentarios

Ix_RearmaCont

S1

%I0.1.0

EBOOL Rearma el contador a 0

Ix_SensorA

S2

%I0.1.1

EBOOL Entrada del sensor A

Universidad de Oviedo
ISA

58 - Problemas M340

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

Pantalla de operador

Universidad de Oviedo
ISA

Programa en FBD - (pr0401a)

Problemas M340 - 59

60 - Problemas M340

Universidad de Oviedo
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;

Cmo cambiar el valor actual de un contador


Para cambiar el valor actual, lo seleccionamos con el cursor y tecleamos el valor deseado.

Problemas M340 - 61

Universidad de Oviedo
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

Etiqueta

Smbolo
Direccin
en
en PLC
los planos

Tipo

Comentarios

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);

62 - Problemas M340
(* 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
ISA

Universidad de Oviedo
ISA

Problemas M340 - 63

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
ISA

64 - Problemas M340
Tablas de variables

Etiqueta

Smbolo
Direccin
en
en PLC
los planos

Tipo

Comentarios

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
Qx_Abrir
MxP_FCA
MxP_FCC
MxP_Pulsador
S_Abierto.x
S_Cerrado.x
S_Cerrar.x
S_Abrir.x

Punto rojo
Punto verde
FCA
FCC
Pulsador
Portn abierto
Portn cerrado
Portn cerrando
Portn abriendo

Universidad de Oviedo
ISA

Problemas M340 - 65

Apartado a por GRAFCET - (pr0501a_G)


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 *)
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".

66 - Problemas M340

Universidad de Oviedo
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
ISA

Problemas M340 - 67

Si son variables mas complejas lo mejor es asignar a la receptividad una variable p.e. "Tran2_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
ISA

68 - Problemas M340
Apartado b por GRAFCET - (pr0501b_G)

S_Cerrado

El control lo deberemos hacer obligatoriamente por flanco.

Seccin en ST 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
QX_Abrir
S_Abrir

Mx_FlancoPul:= re (Mx_Pulsador);
Mx_Fca

(*Inicializacin de la pantalla de operador*)


if %S13 then
MxP_Fcc:=True;
end_if;

S_Abierto

Seccin en SFC (GRAFCET) "Chart"

Mx_FlancoPul

Mx_FlancoPul

S_ParadoAbr

Mx_FlancoPul
Qx_Cerrar

S_Cerrar

Seccin en ST "Salidas"

Mx_Fcc

Qx_Abrir:=S_Abrir.x;
Qx_Cerrar:=S_Cerrar.x;

Mx_FlancoPul

S_ParadoCer

Pantalla de operador y variables asociadas (apartado b)

Mx_FlancoPul

S_Abrir

Qx_Cerrar
Qx_Abrir
MxP_FCA
MxP_FCC
MxP_Pulsador
S_Abierto.x
S_Cerrado.x
S_Cerrar.x
S_Abrir.x
S_ParadoCer.x
S_ParadoAbr.x

Punto rojo
Punto verde
FCA
FCC
Pulsador
Portn abierto
Portn cerrado
Portn cerrando
Portn abriendo
Parado cerrando
Parado abriendo

Universidad de Oviedo
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;

Problemas M340 - 69

70 - Problemas M340
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 en
"Chart"

SFC

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

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

Apartado C sin GRAFCET


Se propone al alumno que realice este apartado por si mismo.

Problemas M340 - 71

72 - Problemas M340

Universidad de Oviedo
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.

Problemas M340 - 73

Universidad de Oviedo
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

PLANTA 2

S2

SF2

SALIDA

74 - Problemas M340
Tablas de variables

Programa en ST y SFC - (pr0502)


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
ISA

Universidad de Oviedo
ISA

Problemas M340 - 75

Seccin en SFC

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;

76 - Problemas M340
Pantalla de Operador

Universidad de Oviedo
ISA

Problemas M340 - 77

Universidad de Oviedo
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

PLANTA 1

S1E
S1

SSal

F2
S
S2

PLANTA 2

S2E

78 - Problemas M340
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
ISA

Universidad de Oviedo
ISA

Seccin en SFC "Control"

Pantalla de Operador

Problemas M340 - 79

80 - Problemas M340

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 81

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.

82 - Problemas M340
Tablas de variables

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


Seccin IniciaVariables
(* Generacin de las memorias que se utilizan en el programa *)
Mx_BContinuo := (Ix_BContinuo and Ix_LocDis) or(MxP_BContinuo and not Ix_LocDis);
Mx_BRetardado := (Ix_BRetardado and Ix_LocDis) or(MxP_BRetardado 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);
Mx_Flanco_DLL := RE(Mx_DetLluvia);

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 83

(*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_KMIzq;
Mx_FCI_KMD := Mx_FCI and Qx_KMDer;
Mx_NoFC_KMD := Mx_NoFC and Qx_KMDer;
Mx_NoFC_KMI := Mx_NoFC and Qx_KMIzq;

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_BContinuo and not Mx_BRetardado;
Tran_3 := S_Paro2.t > t#2.5s or Mx_BRetardado;
Tran_4 := Mx_DetLluvia and not Mx_Flanco_DLL and not Mx_BContinuo and not Mx_BRetardado;

Seccin Salidas
Qx_KMIzq := S_IzdaBCont.x or S_IzdaBRet.x;
Qx_KMDer := S_DchaBCont.x or S_DchaBRet.x;

Pantalla de Operador

Universidad de Oviedo
ISA

84 - Problemas M340
Seccin GRAFCET
S_Parado

Mx_BContinuo

S_IzdaBCont

Mx_FCI

S_DchaBCont

Mx_FCD

Tran_2 := Mx_Flanco_DLL and not Mx_BContinuo


and not Mx_BRetardado
Tran_4 := Mx_DetLluvia and not Mx_Flanco_DLL and
not Mx_BContinuo and not Mx_BRetardado
Tran_3 := S_Paro2.t > t#2.5s or Mx_BRetardado

Mx_BRetardado Tran_2

S_IzdaBRet

Mx_FCI

S_DchaBRet

S_Paro2

Tran_3

S_IzdaBRet

Tran_4

S_IzdaBRet

Mx_BContinuo

S_IzdaBCont

Mx_FCD

S_Paro1

Tran_1

Tran_1 (* Retardo *)
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

Universidad de Oviedo
ISA

Problemas M340 - 85

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.

86 - Problemas M340
Programa en ST y GRAFCET - (pr0505)
Tablas de variables

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#5s;

Universidad de Oviedo
ISA

Universidad de Oviedo
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;

Problemas M340 - 87

88 - Problemas M340

Universidad de Oviedo
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_Osc2:=T1.ET<T#250ms AND Qx_Motor;
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
ISA

Problemas M340 - 89

Funciones fundamentales para controlar los SFC


CLEARCHART: Desactivacin de todas las etapas
Mx_PonCI:= CLEARCHART (SectionName, ClearSequence);
Cuando el parmetro de entrada booleano ClearSequence sea 1, se detiene la secuencia y se desactivan
todas las etapas de la seccin SFC denominada SectionName. Mientras que el valor de ese booleano
ClearSequence permanezca a 1, la secuencia no se podr iniciar mediante las funciones INITCHART o
RESETSTEP.
Este estado de inactividad total de la secuencia se mostrar por medio de una seal 1 en el parmetro
booleano de salida Mx_PonCI. Este valor se usar para proceder a realizar el proceso de rearme (llamada a
subrutina de rearme, activacin de una etapa de rearme, activacin de una seccin SFC de rearme, etc).
La seccin SFC SectionName permanecer en este estado de inactividad total de todas sus etapas aun
cuando la entrada ClearSequence vuelva a 0. Sin embargo, si la entrada ClearSequence 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_PonCI a 0.

INITCHART: Desactivacin de todas las etapas e inicio de secuencia


InitState := INITCHART (SectionName, InitSequence) ;
Si el parmetro de entrada tipo BOOL InitSequence es igual a 1, la secuencia de la seccin SFC denominada
SectionName se detiene, se desactivan todas las etapas y se activa su etapa inicial. Mientras el valor de
InitSequence sea 1, la secuencia se mantendr paralizada en la etapa inicial estando nicamente activa esta
etapa inicial de la seccin SectionName. 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 InitSequence pase de 1 a 0, entonces adems de seguir activa la
etapa inicial se activar la secuencia normal de la seccin SFC SectionName. Se puede observar que el
tiempo de activacin de la etapa ya ha comenzado.
INITCHART tiene como parmetro de salida el booleano InitState cuyo valor ser 1 cuando InitSequence
pase de 0 a 1, permaneciendo InitState igual a 1 hasta que no se produzca el paso de InitSequence de 1 a 0
devolviendo la funcin INITCHART en ese momento un 0 en InitState.

FREEZECHART: Congelacin de una secuencia


SequenceFreezed := FREEZECHART (SectionName, FreezeSequence) ;
Cuando el valor del booleano de entrada FreezeSequence sea 1, se inmoviliza el estado actual de la
secuencia de la seccin SFC con nombre SectionName. 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 FreezeSequence sea 0, se libera la secuencia de la seccin SFC con
nombre SectionName. 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 SequenceFreezed 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.

SETSTEP: Activacin de una etapa especfica de la secuencia


SETSTEP (StepName);

90 - Problemas M340

Universidad de Oviedo
ISA

La funcin SETSTEP tiene como nico argumento de entrada el nombre StepName de una etapa de una
seccin SFC. El procedimiento activa la etapa especificada como StepName. Adems la etapa o etapas que
se encontraban ya previamente activas no se vern afectadas por este procedimiento.
Dado que la etapa StepName 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.

RESETSTEP: Desactivacin de una etapa especfica de la secuencia


RESETSTEP (StepName);
La funcin RESETSTEP tiene como nico argumento de entrada el nombre StepName de una etapa de una
seccin SFC. El procedimiento desactiva ("restablece") la etapa especificada como StepName. Adems la
etapa o etapas que se encontraban ya previamente activas no se vern afectadas por este procedimiento.
NOTA: El procedimiento slo se puede ajustar en la modalidad de servicio "Multi-Token".
Dado que la etapa StepName 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).

Problemas M340 - 91

Universidad de Oviedo
ISA

Problema 6.1 Control de 2 cilindros. Puesta en CI


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: 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

A-

A+

b0

B+

Seta de emergencia

b1

Universidad de Oviedo
ISA

92 - Problemas M340
Esquema de mando

S4

S5

S6

A1

B0

B1

14

S3
Rearme

12

S2
Paro

14

S1
Marcha

%I0.1.0

+24 V

13

11

13

0,5 A
rpido

%I0.1.1

%I0.1.2

%I0.1.3

%I0.1.4

10

%I0.1.5

M340 - BMX DDM16025

L1
Roja

15

L2

20

A1

14

%Q0.1.20

12 A
rpido

Verde

A2

19

A1

A1

B+

A2

A2

A-

A2

A+

13

%Q0.1.19

A2

12

%Q0.1.18

A1

%Q0.1.17

11

A1

%Q0.1.16

220 V

Tablas de variables

Universidad de Oviedo
ISA

Problemas M340 - 93

Programa en ST y GRAFCET - (pr0601)


Seccin "IniciaVariables"
(*Inicializacin de la pantalla de operador*)
(*El bit del sistema %S13, es un bit que est a 1 en el primer ciclo de scan y luego pasa a 0
automticamente, lo podemos usar para inicializar variables*)
If %S13 then
set (MxP_Paro);
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);

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 queda congelado *)
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;

94 - Problemas M340

Universidad de Oviedo
ISA

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;

Pantalla de Operador

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.

Universidad de Oviedo
ISA

Problemas M340 - 95

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".

96 - Problemas M340
GRAFCET

Universidad de Oviedo
ISA

Problemas M340 - 97

Universidad de Oviedo
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

S3

PLANTA 2
S2S
S2E

B2

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.

98 - Problemas M340
Tablas de variables

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

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


Seccin "IniciaVariables"
(* 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);
(* Preliminar*)
IF Mx_Rearme THEN
Mx_PonCi:= Clearchart (Control,true);
RESET (Mx_Pev);
END_IF;

Problemas M340 - 99

100 - Problemas M340

Universidad de Oviedo
ISA

IF Mx_PonCi THEN
Sr_CerrarBarreras(); (* Se ejecuta la subrutina que cierra las barreras *)
END_IF;
IF Mx_PuestoCi and not Mx_Rearme THEN
RESET (Mx_PuestoCi);
Mx_Initstate:= Initchart (Control,true); (*Activa la etapa inicial y resetea el resto de etapas *)
SET (Mx_Pev);
END_IF;
(* 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;
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;

Universidad de Oviedo
ISA

Problemas M340 - 101

IF Mx_Flanco_1E THEN
IF not Mx_coches12_entrada and Mx_coches12_salida THEN
SET (Mx_coches12_entrada);
RESET (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;

102 - Problemas M340


SFC (GRAFCET)

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

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;

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_Pon_ci);
SET (Mx_Puesto_ci);
END_IF;

Pantalla de Operador

Problemas M340 - 103

104 - Problemas M340

Universidad de Oviedo
ISA

Problemas M340 - 105

Universidad de Oviedo
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.P.

EN
TR
AD
A

.
S.E

E
SE
G

FCA

D
RA
T
N

SEC

100 PLAZAS

IDA
L
SA
G
SS

FCC

SS
C

SA
LID
A

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
ISA

106 - Problemas M340

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
ISA

Tablas de variables

Problemas M340 - 107

108 - Problemas M340


Programa en ST y GRAFCET - (pr0603)
Seccin en SFC (GRAFCET)

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 109

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;
IF RE (Mx_Rearme) THEN
Mx_PonCI := CLEARCHART (Control,true); (* Anula el grafcet *)
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,
CD := Mx_SSCalle,

110 - Problemas M340

Universidad de Oviedo
ISA

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
ISA

Problemas M340 - 111

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.

112 - Problemas M340


Tabla de variables

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 113

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);

114 - Problemas M340

Universidad de Oviedo
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
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

Problemas M340 - 115

Universidad de Oviedo
ISA

116 - Problemas M340


Grafcet de mando
S_Rearme

Luz Roja y Verde a 1Hz alternativamente


Esperamos la pulsacin de REARME

false

S_Inicio

Tran1
Mx_Marcha and Mx_a0 and
Mx_b0;

Luz Verde
Los cilindros estn en sus posiciones iniciales

En espera de detectar la presencia de una pieza

Tran1

S_Espera

Mx_S_Capacitivo

S_Identifica

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


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

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

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

Tran4

Sacar el vstago A

Elevar plataforma (B+)


S_Amas_1

Mx_a1
Temporizacin de 1 segundo
manteniendo la presurizacin
en el cilindro A (A+)

S_Bmas

Mx_b1
Sacar el vstago A

S_Retardo_2

S_Amas_2

Tran 3
S_Retardo_2.t > t#1s;
Tran3

Mx_a1

Recoger el vstago A
S_Amenos_1

S_Retardo_3

Temporizacin de 1 segundo
manteniendo la presurizacin
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
ISA

Problemas M340 - 117

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 -derechaindicndolo 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.

118 - Problemas M340


Tabla de variables

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 119

Programa en ST y GRAFCET - (pr0605)


Seccin "Preliminar"
(* 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);
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"
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#5s;
Tran_12_13 := Etapa12.t>t#5s;

Universidad de Oviedo
ISA

120 - Problemas M340


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;

Grafcet de rearme

Grafcet de mando
Etapa0

Etapa10

false

false

Etapa11

Etapa1

Qx_Avance
Qx_LVerde 1Hz
Mx_Marcha
and not
Mx_FCInicio
and Mx_Vacio

Not
Mx_FCDescarga

El vagn se encuentra en las


condiciones inciales:
descargado y en la posicin de
inicio

Tran_1_2
Qx_VSilo

NOT Mx_FCDescarga
Etapa2

Etapa12

Qx_VVagn
Qx_LVerde 1Hz
Mx_Lleno OR
Etapa2.t>10min

Etapa12.t>5m

Tran_2_3
Qx_Avance

Tran_12_13
Etapa3

Etapa13

Qx_Retroceso
Qx_LVerde 1Hz
not
Mx_FCDescarga
NOT Mx_FCDescarga

Not
Mx_FCInicio

Qx_VVagn

NOT Mx_FCInicio

Etapa4

Mx_PuestoCI
Etapa14

Etapa4.t>5min

Tran_4_5
Qx_Retroceso

Etapa1.x

Etapa5

not
Mx_FCInicio
NOT Mx_FCInicio

Universidad de Oviedo
ISA

Pantalla de Operador

Problemas M340 - 121

122 - Problemas M340

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 123

Problema 7.1 Control de 2 cintas. GRAFCET coordinados


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.

124 - Problemas M340


Programa en ST y GRAFCET - (pr0701)
Tabla de variables

Universidad de Oviedo
ISA

Problemas M340 - 125

Universidad de Oviedo
ISA

Grafcet de mando

(* Parada *)
Etapa0

Mx_Con

Etapa1

(* Func
normal *)

Mx_Desc
(* Descg C1 *)
Etapa2

NOT Qx_Mot_C1
(* Descg C2 *)
Etapa3

NOT Qx_Mot_C2

Grafcets de las cintas:


LDesC2

LDesC1

Etapa20

Etapa10

G Mando{1}

G Mando{1}

Etapa1.x

Etapa1.x

Etapa11

Mot_C1
Lcon_C1

Etapa21

G Mando{3}

G Mando{2}

Etapa3.x

Etapa2.x

Etapa12

Etapa12.t >=
20s

Mot_C2
Lcon_C2

Tran12_10

Mot_C1
Ldescg_C1
2Hz

Etapa22

Etapa22.t >=
40s

Tran22_20

Mot_C2
Ldescg_C2
2Hz

126 - Problemas M340

Universidad de Oviedo
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);
Qx_Ldescg_C2:= Mx_EnEmergencia or (Etapa22.x and Mx_Osc2Hz);

Universidad de Oviedo
ISA

Problemas M340 - 127

(* 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

128 - Problemas M340

Universidad de Oviedo
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.
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.

Problemas M340 - 129

Universidad de Oviedo
ISA

TOLVA

FCTolAb

FCTolCe
MTolAb
MTolCe

CINTA 0
CINTA 2
FC1
CINTA 1

FC3
MGIzq

MGDer

CINTA 3

MG

M0

M3

CINTA 0

M1

M2

CINTA 2

FC2

Marcha Paro

Selec
LS1

LCON
LDES

LS2

LS3

130 - Problemas M340


Tabla de variables

Lista de otras variables elementales:

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 131

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);
(*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;

132 - Problemas M340

Universidad de Oviedo
ISA

(*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;
(*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) ;

Problemas M340 - 133

Universidad de Oviedo
ISA

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;

Grafcets de mando y de seleccin de cinta

S_Selec

(* Seleccin de cinta de
evacuacin *)

S_Sel_ini

T_Tran2
RE (Mx_Selec) and S_Selec.x
T_Tran2
Mx_Marcha

(* Seleccin Cinta 1 *)
S_Pos

(* Posicionar la cinta
alimentadora (Cinta 0) *)

S_Sel_Ls1

LS1

T_Tran3
RE (Mx_Selec) and S_Selec.x
T_Tran3
S_Pos_Fin.x

(* Seleccin Cinta 2 *)
S_Conect

(* Conectar Cintas y Abrir Tolva


*)

S_Sel_Ls2

LS2

T_Tran4
RE (Mx_Selec) and S_Selec.x
T_Tran4
NOT Mx_Paro

(* Seleccin Cinta 3 *)
S_Descarg

(* Descargar cinta 0 y Cerrar


Tolva *)

S_Sel_Ls3

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
ISA

134 - Problemas M340


Grafcet de posicionamiento de la cinta alimentadora

S_Pos_0

S_Pos.x

S_Pos_1

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_Tran6

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

T_Tran7

S_Pos_Izda

Mx_Para_Giro

Mx_Para_Giro
S_Pos_Dcha
(* activa el
motor de giro a
derecha *)

S_Pos_Dcha

Mx_Para_Giro

S_Pos_Fin

S_Conect.x

Grafcets de movimiento de las cintas


(* C0 parada*)
S_c0_ini

Ldes 0

S_Conect.x

S_c0_ON

(* C1 parada *)
S_c1_ini

T_Tran12
(* C0 en
movimiento *)

S_c1_ON

Lcon 0

S_Descarg.x

S_c0_Des

T_Tran11

LUZ en Ldes 1

S_c2_ON

Lcon 1

S_c1_Des

Ldes 2

T_Tran14
(* C1 en
movimiento *)

S_Desc_123.x
(* C0 en
descarga *)

(* C2 parada *)
S_c2_ini

S_c3_ON

LUZ en Lcon 2

S_c2_Des

Ldes 3

T_Tran16
(* C2 en
movimiento *)

S_Desc_123.x
(* C1 en
descarga *)

(* C3 parada *)
S_c3_ini

(* C3 en
movimiento *)
Lcon 3

S_Desc_123.x
(* C2 en
descarga *)

S_c3_des

(* C3 en
descarga *)

Ldes 0

Ldes 1

Ldes 2

Ldes 3

T_Tran11
S_c0_Des.t >
t#20s

T_Tran13
S_c1_Des.t >
t#20s

T_Tran15
S_c2_Des.t >
t#20s

T_Tran17
S_c3_des.t >
t#20s

T_Tran13

T_Tran15

T_Tran17

Problemas M340 - 135

Universidad de Oviedo
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 *)
S_Tolva_Abrir

T_Tran9
Mx_Fc_tol_ab or Mx_Ave_c0 or
Mx_Ave_c123
T_Tran9

S_Tolva_Abierto

(* La tolva se encuentra abierta


*)

T_Tran10
S_Descarg.x or Mx_Ave_c0 or
Mx_Ave_c123
T_Tran10
(* Cierra la tolva *)
S_Tolva_Cerrar

Mx_FC_Tol_Ce

Seccin "Transicines
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;

136 - Problemas M340


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
ISA

Universidad de Oviedo
ISA

Problemas M340 - 137

Universidad de Oviedo
ISA

138 - Problemas M340


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.
PConC2

PConC1

PEmer

Pdes

Rearme

LDescgC3

LConC1

LConC2

LDesC1

LDesC2

LAveraC2

LDescgC1

LDescgC2

LAveraC3

Cinta 1

LAveraC1

Cinta 2

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
previamente. Para avisar de la existencia de avera, haremos que la lmpara de avera correspondiente

Problemas M340 - 139

Universidad de Oviedo
ISA

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.
Entradas:
Pulsador Conexin para cinta 1
Pulsador Conexin para cinta 2
Pulsador Desconexin para cinta 1
Pulsador Desconexin para cinta 2
Pulsador de Emergencia
Pulsador de Rearme
Vigilancia de cinta 1
Vigilancia de cinta 2
Vigilancia de cinta 3

Salidas:
Lmpara Conexin para cinta 1
Lmpara Desconexin para cinta 1
Lmpara Descarga para cinta 1
Lmpara Conexin para cinta 2
Lmpara Desconexin para cinta 2
Lmpara Descarga para cinta 2
Lmpara Descarga para cinta 3
Lmpara de Avera en C1
Lmpara de Avera en C2
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.

140 - Problemas M340

Universidad de Oviedo
ISA

Problema 8.1 Control de trfico en 2 carriles. Interrupciones


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 y mdulo mixto de entradas salidas BMX DDM3202K y mdulo de contaje
BMX EHC 0800.

Tabla de variables

Universidad de Oviedo
ISA

Problemas M340 - 141

Configuracion del 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
ISA

142 - Problemas M340


Programa en FBD
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
R_TRIG
Tciclo.Q

CLK

OR

1
%S13

IN1
IN2

.2

OUT
Asignar_Tiempos

3
SR_CALL
EN
ENO
SR_NAME

Temporizador para el ciclo de la secuencia semafrica


TCICLO
TON
Tciclo.Q
Mt_Verde+t#8s+Mt_Rojo

IN
PT

4
Q
ET

Oscilador de 2Hz
TEMP_OSC2HZ
5
TON
Temp_Osc2Hz.Q
t#500ms

IN
PT

.3
6
GT_TIME

Q
ET

IN1
IN2

t#250ms

OUT

Mx_Oscilador_2hz

Asignacin de salidas

.5
7
LT_TIME
Tciclo.ET
Mt_Verde

IN1
IN2

OUT

Qx_LVerde

.7
8
GT_TIME
Tciclo.ET
Mt_Verde

IN1
IN2

.4

OUT

AND
IN1
IN2

.8
9
LT_TIME
Tciclo.ET
Mt_Verde+t#5s

IN1
IN2

10

OUT

.12

OUT

OR
IN1
IN2

.10
11
GT_TIME
Tciclo.ET
Mt_Verde+t#5s

IN1
IN2

.9

OUT

AND

.11
12
LT_TIME
Tciclo.ET
Mt_Verde+t#8s

IN1
IN2

Mx_Oscilador_2hz

OUT

.6
15
GT_TIME
Tciclo.ET
Mt_Verde+t#8s

IN1
IN2

OUT

Qx_LRoja

IN1
IN2
IN3

13

OUT

14

OUT

Qx_LAmbar

Problemas M340 - 143

Universidad de Oviedo
ISA

Subrutina "Asignar_Tiempos" en FBD


.1
GT_INT
Mw_NcochesC0
20

IN1
IN2

OUT

.3
3

OR
IN1
IN2

.2
GT_INT
Mw_NcochesC1
20

IN1
IN2

.4

OUT
t#30s

OUT

4
MOVE
EN
ENO
IN
OUT

Mt_Verde

5
MOVE
EN
ENO
IN
OUT

Mt_Rojo

.5

t#15s

.6
LE
Mw_NcochesC0
20

IN1
IN2

OUT
.8
AND
IN1
IN2

.7
LE
Mw_NcochesC1
20

IN1
IN2

.9

OUT
t#20s

.10

t#20s

INC (Mw_NcochesC0);

Evento 1
DEC (Mw_NcochesC0);

Evento 2
INC (Mw_NcochesC1);

Evento 3
DEC (Mw_NcochesC1);

Mt_Verde

OUT

Evento 0

9
MOVE
EN
ENO
IN
OUT

10
MOVE
EN
ENO
IN
OUT

Mt_Rojo

144 - Problemas M340

Universidad de Oviedo
ISA

Pantalla de operador

Programa en ST
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
ISA

Problemas M340 - 145

Evento 0
INC(Mw_NcochesC0);

Evento 1
DEC(Mw_NcochesC0);

Evento 2
INC(Mw_NcochesC1);

Evento 3
DEC(Mw_NcochesC1);

Simulacion de los eventos


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.

146 - Problemas M340

Universidad de Oviedo
ISA

Problema 8.2 Desplazamientos de bits e interrupciones


Con este problema se pretende que el alumno maneje 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 del mdulo de salida 2 con el valor 1 lgico (activada). A continuacin se ir
desplazando la activacin al Bit_1 y la desactivacin del Bit_0 en cada segundo, y as
sucesivamente hasta alcanzar el Bit_7, 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 de la entrada %I1.0 ( 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 diez 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 de la entrada %I1.1 ( Evt1 ), esta secuencia debe pararse, y ejecutarse en su lugar la
secuencia siguiente: Los cuatro bits del nibble bajo de la salida %Q2.3 ... %Q2.0 = 1 1 1 1 se deben
situar a 1 lgico ( activados ) y los otros cuatro del nibble alto %Q2.4 ... %Q2.7 = 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 procedente de la entrada %I1.1, tiene
prioridad sobre la demanda de interrupcin procedente de la entrada %I1.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 %MW0 , para realizar sobre los ocho bits bajos ( %MW0:X0 ....
%MW0:X7), las cuatro secuencias pedidas en esta aplicacin. Con la entrada %I1.4 daremos la
orden para que comience la realizacin de la secuencia de inicio, se define la recepcin de dicha
orden con el flanco ascendente de %I1.4 Situamos en la %MW0 el valor de comienzo, el cual, lo
introducimos desde la palabra constante %KW0. Simultneamente activamos el bit de marca %M0
para que la subrutina a realizar sea el desplazamiento del bit_X hacia la izquierda. Como oscilador

Universidad de Oviedo
ISA

Problemas M340 - 147

utilizaremos el bit de sistema %S6, el cual funciona como una base de tiempo de 1 sg. lo
asignaremos al bit de marca %M6, 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: %M0, %M1, %M2, %M3.

Universidad de Oviedo
ISA

148 - Problemas M340


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

Se1

Se2
EN
TR

D
RA
T
EN

ADA

FCA

FCC

30 PLAZAS
P
S

IDA
AL

SA

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
ISA

Problemas M340 - 149

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
ISA

150 - Problemas M340


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 a 1 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
ISA

Problemas M340 - 151

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)

152 - Problemas M340

Universidad de Oviedo
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
ISA

Problemas M340 - 153

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.

154 - Problemas M340

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

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 155

156 - Problemas M340

Universidad de Oviedo
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.

P
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

Problemas M340 - 157

Universidad de Oviedo
ISA

0. Cronograma de activacin y desactivacin


de las lmparas segn una secuencia.

Programa con FBDs


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

Seccin Control (en FBD)


.4

.1
RE

Mx_Pulsador

IN

AND

OUT
T_BloqueoPulsador.Q

IN1
IN2

OUT

Mx_Impulso

.4

.1

158 - Problemas M340


Mx_Pulsador

RE
IN

AND

OUT
T_BloqueoPulsador.Q

IN1
IN2

Universidad de Oviedo
ISA

2
Mx_Impulso

OUT

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


.2

.5
AND

Mx_Impulso
T_Alarm1.Q
Qx_Luz1
Qx_Luz2
Qx_Luz3

IN1
IN2
IN3
IN4
IN5

AND
Mx_AlarmLuz1

OUT

Mx_Impulso
T_Alarm2.Q
Qx_Luz1
Qx_Luz2
Qx_Luz3

.7
OR
Mx_AlarmLuz1
Mx_AlarmLuz2
Mx_AlarmLuz3

.6

IN1
IN2
IN3

IN1
IN2
IN3
IN4
IN5

AND
Mx_AlarmLuz2

OUT

Mx_Impulso
T_Alarm3.Q
Qx_Luz1
Qx_Luz2
Qx_Luz3

IN1
IN2
IN3
IN4
IN5

OUT

Mx_AlarmLuz3

T_BloqueoPu...
7
TP

OUT
t#60s

IN
PT

Q
ET

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


.8
8

AND
Mx_Impulso
Qx_Luz1
Qx_Luz2
Qx_Luz3

IN1
IN2
IN3
IN4

OUT

.10
.9
OR
IN1
IN2

.3
9

AND
Mx_Impulso
Qx_Luz1
Qx_Luz2
Qx_Luz3

IN1
IN2
IN3
IN4

AND

10
T_Alarm1.Q

OUT

IN1
IN2

11

OUT

.12
EN

12
SET
ENO
OUT

.13

.11

13
RESET
EN
ENO
OUT

OUT

T_Alarm1
15

TP
Qx_Luz1
t#12s

IN
PT

Q
ET

.14
AND
Mx_Impulso
Qx_Luz1
Qx_Luz2
Qx_Luz3
T_Alarm2.Q

IN1
IN2
IN3
IN4
IN5

16

.19

OUT

EN

17
SET
ENO
OUT

Qx_Luz2

.20
18
RESET
EN
ENO
OUT

.18

Mx_Impulso

19
RESET
EN
ENO
OUT

T_Alarm2
TP
Qx_Luz2
t#12s

IN
PT

20
Q
ET

.15
AND
Mx_Impulso
Qx_Luz1
Qx_Luz2
Qx_Luz3
T_Alarm3.Q

IN1
IN2
IN3
IN4
IN5

21

OUT

T_Alarm3
TP
Qx_Luz3
t#12s

IN
PT

Qx_Luz1

24
Q
ET

.17
22
SET
EN
ENO
OUT

.16

Qx_Luz3

23
RESET
EN
ENO
OUT

Qx_Luz2

Qx_Luz1

Mx_Impulso

14
RESET
EN
ENO
OUT

Qx_Luz3

Universidad de Oviedo
ISA

Problemas M340 - 159

Programa en ST
Seccin "Control" (en ST)
Mx_Impulso:= RE(Mx_Pulsador) and not t_BloqueoPulsador.Q;
Mx_Alarm_Luz1 := Mx_Impulso and t_Vigila_Luz1.Q and not Qx_Luz1 and not Qx_Luz2 and Qx_Luz3;
Mx_Alarm_Luz2 := Mx_Impulso and t_Vigila_Luz2.Q and Qx_Luz1 and not Qx_Luz2 and not Qx_Luz3;
Mx_Alarm_Luz3 := Mx_Impulso and t_Vigila_Luz3.Q and not Qx_Luz1 and Qx_Luz2 and not Qx_Luz3;
t_BloqueoPulsador (IN:= Mx_Alarm_Luz1 or Mx_Alarm_Luz2 or Mx_Alarm_Luz3,
PT:=t#20s); (* Ponemos 20s para poder simularlo sin esperar mucho tiempo *)
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_Vigila_Luz1.Q then
SET (Qx_Luz1);
RESET (Qx_Luz3);
RESET (Mx_Impulso);
END_IF;
t_Vigila_Luz1 (IN:= Qx_Luz1,
PT:= t#12s);
IF Mx_Impulso and Qx_Luz1 and not Qx_Luz2 and not Qx_Luz3 and not t_Vigila_Luz2.Q then
SET (Qx_Luz2);
RESET (Qx_Luz1);
RESET (Mx_Impulso);
END_IF;
t_Vigila_Luz2 (IN:= Qx_Luz2,
PT:= t#12s);
IF Mx_Impulso and not Qx_Luz1 and Qx_Luz2 and not Qx_Luz3 and not t_Vigila_Luz3.Q then
SET (Qx_Luz3);
RESET (Qx_Luz2);
END_IF;
t_Vigila_Luz3 (IN:= Qx_Luz3,
PT:= t#12s);

Pantalla de explotacin

160 - Problemas M340


Programa en SFC
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
ISA

Problemas M340 - 161

Universidad de Oviedo
ISA

Seccin SFC "Control"


Etapa0

Mx_Impulso

Etapa1

L1
12s TP1

Mx_Impulso and
not T_Alarm2.Q

Mx_Impulso and T_Alarm2.Q

Tran_1_2

Tran_1_4
L1
Etapa4

Mx_Impulso and
Etapa4.t >=t#20s
Tran_4_2

Etapa2

L2
12s TP2

Mx_Impulso and
not T_Alarm3.Q

Mx_Impulso and T_Alarm3.Q

Tran_2_3

Tran_2_5
L2
Etapa5

Mx_Impulso and
Etapa5.t >=t#20s
Tran_5_3

Etapa3

L3
12s TP3

Mx_Impulso and
not T_Alarm1.Q

Mx_Impulso and T_Alarm1.Q

Tran_3_1

Tran_3_6
L3
Etapa6

Mx_Impulso and
Etapa6.t >=t#20s
Tran_6_1

Universidad de Oviedo
ISA

162 - Problemas M340


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.

5:0

S5

4:1

S4

3:2

S3
H

P_ejecucin
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
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM 3202K.

Universidad de Oviedo
ISA

Tabla de variables

Problemas M340 - 163

164 - Problemas M340


Instancias de bloques elementales:
El temporizador utilizado es del tipo TON.

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
ISA

Universidad de Oviedo
ISA

Seleccin

Problemas M340 - 165

166 - Problemas M340

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Llenado

Problemas M340 - 167

168 - Problemas M340

Vaciado

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Pantalla de explotacin

Problemas M340 - 169

170 - Problemas M340


RESOLUCIN usando SFC
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
ISA

Universidad de Oviedo
ISA

Chart Seleccion

Problemas M340 - 171

172 - Problemas M340


Chart Control

Transicin Tran1
(*Se supone en este caso que si el depsito est vaco el sensor 0 est a 0*)

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 173

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

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
ISA

174 - Problemas M340


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.

MarAut
ForMan
Paro
N.Mx

Entradas:
Nmin
Nmax
MarAut
ForMan
Paro

MarAut
B1

B2

ForMan
Paro

N.Mn

Salidas:
B1
B2
LMarAut
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
ISA

Problemas M340 - 175

Tabla de variables

Instancias de bloques elementales:

Resolucin usando el lenguaje ST y FBD


Preliminar:
(*Inicializacin de la pantalla de operador*)
If %S13 then
set(MxP_PParo);
end_if;
Mx_PForMan:= (Ix_PForMan and Ix_LocDist) or (MxP_PForMan and not Ix_LocDist);
Mx_PMarAut:= (Ix_PMarAut and Ix_LocDist) or (MxP_PMarAut and not Ix_LocDist);
Mx_PParo:= (Ix_PParo and Ix_LocDist) or (MxP_PParo and not Ix_LocDist);

Universidad de Oviedo
ISA

176 - Problemas M340


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"
.1

.2
1

SET
EN
ENO
OUT

%S13

.3
2

SET
EN
ENO
OUT

Mx_PParo
Mx_Paro

Mx_Paro

3
RESET
EN
ENO
OUT

Mx_MarAut

4
RESET
EN
ENO
OUT

Mx_ForMan

.4

.10
AND
Mx_PForMan IN1
Qx_B1 IN2
Qx_B2 IN3

.5

.6
6

SET
EN
ENO
OUT

OUT

.7

.8
8

Mx_PMarAut

Mx_ForMan

SET
EN
ENO
OUT

RESET
EN
ENO
OUT

Mx_MarAut

Mx_Nmin
Mx_Paro

.1
AND
IN1
IN2
IN3

1
CONTADOR

OUT

CTUD

.2
AND
Qx_B2
%S6
Qx_B1

IN1
IN2
IN3

%S13
1000

CU
CD
R
LD
PV

QU
QD

Mx_TocaB2

CV

OUT

Si el valor del contador es superior a 1000 se debe operar con la bomba 2.


En caso contrario, se debe usar la bomba 1.

.3
NOT
Mx_TocaB2

IN

OUT

Mx_TocaB1

Mx_Paro

.9
9

Seccin "ControlDesgaste"

Qx_B1
%S6
Qx_B2

7
RESET
EN
ENO
OUT

10
RESET
EN
ENO
OUT

Mx_ForMan

Problemas M340 - 177

Universidad de Oviedo
ISA

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

.2
AND
Mx_Nmax
Mx_Paro

IN1
IN2

t_Act2Bombas
2
TON

OUT

IN
PT

t#3s

Q
ET

(* Ponemos 100 veces menos el tiempo


del preciso para poder simularlo
cmodamente *)

A los 15 minutos de funcionamiento, para una bomba y arranca la otra


.1
AND
Qx_B1
Qx_B2

IN1
IN2

t_ParaB1ActB2
4
TON

OUT

.3
AND
Qx_B2
Qx_B1

IN
PT

t#9s

IN1
IN2

Q
ET

t_ParaB2ActB1
6
TON

OUT

IN
PT

t#9s

Q
ET

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

.8
OR
t_ParaB2ActB1.Q

IN1
IN2

10

.9
11
SET
EN
ENO
OUT

OUT

Mx_Act_B1

.5
AND
.6
AND
Mx_Nmax
Mx_MarAut

Mx_TocaB1
Qx_B2

.7
7

IN1
IN2

OR

OUT
Mx_ForMan

IN1
IN2

IN1
IN2
IN3

OUT

OUT

.14
OR
t_ParaB1ActB2.Q
.11
AND

.12

.13
AND

Mx_Nmax
Mx_MarAut

IN1
IN2

Mx_TocaB2
Qx_B1

12

OR

OUT
Mx_ForMan

IN1
IN2

13

IN1
IN2
IN3

14

OUT

OUT

.16
OR
Mx_Nmin
t_ParaB1ActB2.Q
Mx_Paro

IN1
IN2
IN3

17

OUT

.17
18
RESET
EN
ENO
OUT

Mx_Act_B1

.18
OR
Mx_Nmin
t_ParaB2ActB1.Q
Mx_Paro

IN1
IN2
IN3

19

OUT

.19
20
RESET
EN
ENO
OUT

Mx_Act_B2

IN1
IN2

15

OUT

.15
EN

16
SET
ENO
OUT

Mx_Act_B2

Universidad de Oviedo
ISA

178 - Problemas M340


Salidas:
.1

.2
OR

Mx_Act_B1
t_Act2Bombas.Q

IN1
IN2

MOVE

OUT

IN

.3

IN1
IN2

MOVE

OUT

IN

.5

OUT

IN1
IN2

MOVE

OUT

IN

Qx_B2

OUT

.7

Qx_LMarAut

.8
MOVE

Mx_Paro

Qx_B1

.6
AND

Mx_MarAut
Mx_ForMan

OUT

.4
OR

Mx_Act_B2
t_Act2Bombas.Q

IN

OUT

MOVE
Qx_LParo

Pantalla de explotacin:

Mx_ForMan

IN

OUT

Qx_LForMan

Universidad de Oviedo
ISA

Problemas M340 - 179

RESOLUCIN en SFC:
Preliminar
(*Inicializacin de la pantalla de operador*)
If %S13 then
set(MxP_PParo);
end_if;
(*Marcas para el control Local-Distancia*)
Mx_PForMan:= (Ix_PForMan and Ix_LocDist) or (MxP_PForMan and not Ix_LocDist);
Mx_PMarAut:= (Ix_PMarAut and Ix_LocDist) or (MxP_PMarAut and not Ix_LocDist);
Mx_PParo:= (Ix_PParo and Ix_LocDist) or (MxP_PParo 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_Paro:= initchart (Control,not Mx_PParo);
(*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_act_B1.t;
MtP_B2_ON:=S_act_B2.t;
if Mx_Nmax and not S_Paro.x and S_act_B1.x then
MtP_Nmax:= S_act_B1.t;
elsif Mx_Nmax and not S_Paro.x and S_act_B2.x then
MtP_Nmax:=S_act_B2.t;
end_if;

180 - Problemas M340

if not Mx_Nmax then


MtP_Nmax:=t#0s;
end_if;

Transicin Tran1
Mx_Nmax or Mx_PForMan

Transicin Tran2
Mx_Nmax and S_act_B1.t>t#5m

Transicin Tran3
S_act_B1.t>t#15m

Transicin Tran4
S_act_B2.t>t#15m

Transicin Tran5
Mx_Nmax and S_act_B2.t>t#5m

Salidas
if S_Paro.x then
reset (Mx_MarAut);
reset (Mx_ForMan);
end_if;
if S_Ini_Marcha.x then
reset (Mx_ForMan);
set (Mx_MarAut);
end_if;
if S_Ini_ForMan.x and Mx_PForMan then
set (Mx_ForMan);
end_if;
Qx_B1:= S_act_B1.x or S_act_B1yB2.x;
Qx_B2:= S_act_B2.x or S_act_B1yB2.x;
Qx_LParo:= S_Paro.x;
Qx_LForMan:= Mx_ForMan;
Qx_LMarAut:= Mx_MarAut and not Mx_ForMan;

Universidad de Oviedo
ISA

Problemas M340 - 181

Universidad de Oviedo
ISA

Chart
S_Paro

Mx_PMarAut

Situacin de parada.
Se ponen a 0 las marcas de
marcha automtica y forzado
manual

Mx_PForMan

Accin memorizada:
Se pone a 1 la marca que indica la marcha
automtica y se pone a 0 la marca de forzado manualS_IniMarcha

Tran1
Mx_Nmax or Mx_PForMan

Tran1

Accin memorizada condicionada:


Se pone a 1 la marca que indica el forzado manual si
el pulsador de Forzado Manual se encuentra pulsado S_IniForMan

Mx_TocaB1

Mx_TocaB2

Qx_B1

Qx_B2
S_ActB1

Tran2

S_ActB2

Tran3

Tran4

Mx_Nmin

Tran5
Mx_Nmin

S_IniMarcha

S_IniMarcha

Tran2
Mx_Nmax and S_act_B1.t>t#5m

Tran4
S_act_B2.t>t#15m

Tran3
S_act_B1.t>t#15m

Tran5
Mx_Nmax and S_act_B2.t>t#5m

S_ActB1yB2

Mx_Nmin

S_IniMarcha

Qx_B1
Qx_B2

182 - Problemas M340

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 183

Universidad de Oviedo
ISA

184 - Problemas M340


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
desengrase

Depsito de
aclarado

Depsito
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
ISA

Tabla de variables

Problemas M340 - 185

186 - Problemas M340

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 187

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;
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;

188 - Problemas M340

Universidad de Oviedo
ISA

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);
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*)

Problemas M340 - 189

Universidad de Oviedo
ISA

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);

Seccin "Control"
.1
1

.30

AND
Mx_Marcha

IN1

Mx_FC1

IN2

Mx_FC3

IN3

2
SET
EN
ENO

OUT

Qx_mot_subi r

OUT

.32
3
AND
Mx_FC2

IN1

Mx_FC3

IN2

Qx_mot_subi r

IN3

OUT

.33

.34
4

5
RESET
EN
ENO

SET
EN
ENO
OUT

Mx_Av_dcha1

OUT

Qx_mot_subi r

Universidad de Oviedo
ISA

190 - Problemas M340


.8
6

.9

.10

AND
Mx_FC2

IN1

Mx_FC4

IN2

Mx_Av_dcha1

IN3

OUT

EN

8
RESET
EN
ENO

SET
ENO
OUT

Qx_mot_baj ar

OUT

Mx_Av_dcha1

.7
9

.11

AND
Mx_FC1

IN1

Mx_FC4

IN2

Qx_mot_baj ar

IN3

.12
10

11
RESET
EN
ENO

SET
EN
ENO

OUT

OUT

Qx_mot_subi r

OUT

Qx_mot_baj ar

.32
12

.33

AND
Mx_FC2

IN1

Mx_FC4

IN2

Qx_mot_subi r

IN3

.34
13

14
RESET
EN
ENO

SET
EN
ENO

OUT

OUT

Mx_Av_dcha2

OUT

Qx_mot_subi r

.8
15

.9

.10

AND
Mx_FC2

IN1

Mx_FC5

IN2

Mx_Av_dcha2

IN3

16

17
RESET
EN
ENO

SET
EN
ENO

OUT

OUT

Qx_mot_baj ar

OUT

Mx_Av_dcha2

.7
18

.11

AND
Mx_FC1

IN1

Mx_FC5

IN2

Qx_mot_baj ar

IN3

.12
19

20
RESET
EN
ENO

SET
EN
ENO

OUT

OUT

Qx_mot_subi r

OUT

Qx_mot_baj ar

.2
21

.3

.5

AND
Mx_FC2

IN1

Mx_FC5

IN2

Qx_mot_subi r

IN3

22

OUT

23
RESET
EN
ENO

SET
EN
ENO
OUT

Mx_Av_dcha3

OUT

Qx_mot_subi r

.6
24

.13

AND
Mx_FC2

IN1

Mx_FC6

IN2

Mx_Av_dcha3

IN3

.14
25

OUT

26
RESET
EN
ENO

SET
EN
ENO
OUT

Qx_mot_baj ar

.15
27
AND
Mx_FC1

IN1

Mx_FC6

IN2

Qx_mot_baj ar

IN3

OUT

.17
28
RESET
EN
ENO
OUT

Qx_mot_baj ar

OUT

Mx_Av_dcha3

Problemas M340 - 191

Universidad de Oviedo
ISA

.25

T _ELECT ROL...
30
T ON

29
AND
Mx_FC6

IN1

Mx_FC1

IN2

OUT

IN
t#6s

PT

ET

.4
31

.16

AND
Mx_FC1

IN1

Mx_FC6

IN2

t_El ectrol i si s.Q

IN3

32
SET
EN
ENO

OUT

OUT

Qx_mot_subi r

.18
33

.19

AND
Mx_FC2

IN1

Mx_FC6

IN2

Qx_mot_subi r

IN3

.20
34

35
RESET
EN
ENO

SET
EN
ENO

OUT

OUT

Qx_mot_i zda

OUT

Qx_mot_subi r

.21
36

.22

AND
Mx_FC2

IN1

Mx_FC3

IN2

Qx_mot_i zda

IN3

.23
37

38
RESET
EN
ENO

SET
EN
ENO

OUT

OUT

Qx_mot_baj ar

.24
39

.27

AND
Mx_FC1

IN1

Mx_FC3

IN2

Qx_mot_baj ar

IN3

40
RESET
EN
ENO

OUT

OUT

.26
41
OR
Mx_Av_dcha1

IN1

Mx_Av_dcha2

IN2

Mx_Av_dcha3

IN3

OUT

Qx_mot_dcha

Qx_mot_baj ar

OUT

Qx_mot_i zda

192 - Problemas M340


Pantalla de Operador con sus elementos

Pantalla de Operador en funcionamiento

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 193

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;

194 - Problemas M340

Universidad de Oviedo
ISA

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);
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
ISA

Problemas M340 - 195

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
ISA

196 - Problemas M340


Seccin "CHART"
S_inicio

S_subir_3

Tran1
Mx_FC1 and Mx_FC3 and
Mx_Marcha;
Tran1

S_subir_1

Mx_FC2

S_dcha_1

Mx_FC4

S_bajar_1

Mx_FC2

S_dcha_3

Mx_FC6

S_bajar_3

Mx_FC1

S_Electrolisis

Tran2
S_Electrolisis.t>t#5s;
Mx_FC1

S_subir_2

Mx_FC2

S_dcha_2

Mx_FC5

S_bajar_2

Mx_FC1

S_subir_3

Tran2

S_subir_4

Mx_FC2

S_izda

Mx_FC3

S_bajar_4

Mx_FC1

S_inicio

Universidad de Oviedo
ISA

Problemas M340 - 197

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

198 - Problemas M340


Programa en SFC (pr0905)
Tabla de variables

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 199

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;
if (Mx_FC2 and not Mx_FC1) or not Mx_paro then

200 - Problemas M340


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;
if Mx_Fca then

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

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

Problemas M340 - 201

202 - Problemas M340

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 203

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

204 - Problemas M340


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
ISA

Problemas M340 - 205

Universidad de Oviedo
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_coche

S_izda

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.

206 - Problemas M340


Tabla de variables

Lista de otras variables elementales:

Instancias de bloques elementales:


Los temporizadores usados son del tipo TON.

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);

Universidad de Oviedo
ISA

Problemas M340 - 207

Universidad de Oviedo
ISA

Mx_Fcc_b1:= (Ix_Fcc_b1 and Ix_LocDist) or (MxP_Fcc_b1 and not Ix_LocDist);


Mx_S_coche:= (Ix_S_coche and Ix_LocDist) or (MxP_S_coche and not Ix_LocDist);

RESOLUCIN en FBD
Deteccin
Deteccin del sentido de circulacin de los trenes

.1

.2
1

RE
Mx_S_dcha

IN

.3

AND

OUT

IN1
IN2

Mx_vien_izda

OUT

EN

3
SET
ENO
OUT

Mx_vien_dcha

.4
4

.5

FE
Mx_S_izda

IN

5
RESET
EN
ENO
OUT

OUT

.6

.7
6

RE
Mx_S_izda

Mx_vien_dcha

IN

.8

AND

OUT

IN1
IN2

Mx_vien_dcha

OUT

EN

8
SET
ENO
OUT

.9
9

.10

FE
Mx_S_dcha

IN

10
RESET
EN
ENO
OUT

OUT

Mx_vien_izda

.11
11
OR
Mx_vien_izda
Mx_vien_dcha

IN1
IN2

Mx_vien_tren

OUT

Semforo Coches
.1
1
AND
Mx_vien_tren
T emp_Osc_2Hz.Q

IN1
IN2

T EMP_OSC_2HZ
2
T ON

OUT
t#500ms

.2
3
LT _T IME
T emp_Osc_2Hz.ET
t#250ms

IN1
IN2

OUT

T EMP_20S
4
T ON
Mx_vien_tren
t#20s

IN
PT

Q
ET

Mx_Osc_2Hz

IN
PT

Q
ET

Mx_vien_izda

Universidad de Oviedo
ISA

208 - Problemas M340


.4

.3

.5

OR
Mx_Osc_2Hz
T emp_20s.Q

IN1
IN2

AND

OUT

IN1
IN2

Mx_vien_tren

MOVE

OUT

IN

OUT

Qx_Luz_se_coche11

.6
8
MOVE
IN

.8

.7

IN1
IN2

10

11

AND

OUT

IN1
IN2

Mx_vien_tren

Qx_Luz_se_coche21

.9

9
OR
Mx_Osc_2Hz
T emp_20s.Q

OUT

MOVE

OUT

IN

OUT

Qx_Luz_se_coche12

.10
12
MOVE
IN

OUT

Qx_Luz_se_coche22

Barreras
Orden de bajar las barreras B1 y B2

.1
1

.2

AND
T emp_20s.Q
Mx_S_coche

IN1
IN2

OUT

2
SET
ENO
OUT

Qx_mot_baj_b1

4
RESET
EN
ENO
OUT

Qx_mot_baj_b1

6
SET
ENO
OUT

Qx_mot_baj_b2

EN

.3
3

.4

OR
Mx_Fcc_b1
Mx_S_coche

IN1
IN2

OUT

.5
5

.6

AND
T emp_20s.Q
Mx_S_coche

IN1
IN2

OUT

EN

.7
7
OR
Mx_Fcc_b2
Mx_S_coche

IN1
IN2

OUT

.8
8
RESET
EN
ENO
OUT

Qx_mot_baj_b2

.9
9

.10

AND
Mx_vien_dcha
Mx_vien_izda

IN1
IN2

OUT

.11
10

SET
EN
ENO
OUT

Qx_mot_sub_b1

.12
Mx_Fca_b1

12
RESET
EN
ENO
OUT

11
SET
EN
ENO
OUT

Qx_mot_sub_b2

.13
Mx_Fca_b2
Qx_mot_sub_b1

13
RESET
EN
ENO
OUT

Qx_mot_sub_b2

Problemas M340 - 209

Universidad de Oviedo
ISA

Semforo Tren
Activacin y desactivacin de las lmparas de los semforos de los trenes

.1
1
AND
Mx_Fcc_b1
Mx_Fcc_b2
Mx_vien_dcha
Mx_S_coche

IN1
IN2
IN3
IN4

OUT

Qx_Luz_se_tr1v

.2
2
MOVE

Qx_Luz_se_tr1v

IN

OUT

Qx_Luz_se_tr1r

.3
3
AND
Mx_Fcc_b1
Mx_Fcc_b2
Mx_vien_izda
Mx_S_coche

IN1
IN2
IN3
IN4

OUT

.4

RESOLUCIN en SFC
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)

Qx_Luz_se_tr2v

MOVE
Qx_Luz_se_tr2v

IN

OUT

Qx_Luz_se_tr2r

Universidad de Oviedo
ISA

210 - Problemas M340


Chart
S_inicio

T ran1

T ran2

Accin memorizada:
SET (Mx_vien_dcha)

Accin memorizada:
S_SET _Dcha

Mx_vien_dcha

S_SET _Izda

SET (Mx_vien_izda)

Mx_vien_izda
T emporizacin de 20 segundos

S_T emporiza

Luces de coches parpadeando a 2Hz

T ran3

Bajar la
S_Baja_B1

NOT Mx_S_coche

bajada de la
barrera 1

S_Baja_B2

Mx_Fcc_b1

Detiene la
S_Para_B1

Bajar la

barrera 1

NOT Mx_S_coche
La barrera 1 se

S_B1_bajada

encuentra
bajada

Mx_S_coche

S_bajadas

Mx_Fcc_b2

Detiene la
S_Para_B2

Mx_S_coche

true

barrera 2

bajada de la
barrera 2

La barrera 2 se
S_B2_bajada

encuentra
bajada

Problemas M340 - 211

Universidad de Oviedo
ISA

Ambas barreras
S_bajadas

se encuentran
bajadas

Mx_vien_dcha

Mx_vien_izda
Semforo 2

S_St1_Verde

Semforo 2

del tren en

S_St2_verde

verde

T ran4
NOT Mx_S_coche

Semforo 1
del tren en rojo

Accin

Semforo 2

memorizada:
S_RESET _dcha
RESET

S_St2_rojo

(Mx_vien_dcha)

Mx_S_coche

verde

T ran5

NOT Mx_S_coche

S_St1_rojo

del tren en

Mx_S_coche

El tren ya ha
atravesado el
paso a nivel

true
Subir la
barrera 1

Subir la
S_sube_B1

Mx_Fca_b1

S_sube_B2

subida

barrera 2

Mx_Fca_b2

La barrera 1 se
encuentra

La barrera 2 se
S_B1_subida

true

S_inicio

Accin
memorizada:
S_RESET _izda
RESET
(Mx_vien_izda)

NOT Mx_vien_dcha

S_nada

del tren en rojo

S_B2_subida

encuentra
subida

NOT Mx_vien_izda

212 - Problemas M340

Universidad de Oviedo
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;
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;

Pantalla de explotacin

Problemas M340 - 213

Universidad de Oviedo
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.

E2

S3

S2

S1

E1

ENTRADAS
Preselecccin
Marcha
Sensor1
Sensor2
Sensor3
Emergencia1
Emergencia2
Rearme
PLC/Manual

= Ix_Pul
= Ix_Marcha
= Ix_Sensor1
= Ix_Sensor2
= Ix_Sensor3
= Ix_E1 (NC)
= Ix_E2 (NC)
= Ix_Rearme
= Ix_PLC_Manual

SALIDAS
Lmpara de Preselecccin 1
Lmpara de Preselecccin 2
Lmpara de Preselecccin 3
Lmpra de Nivel 1
Lmpra de Nivel 2
Lmpra de Nivel 3
Lmpara de Emergencia 1
Lmpara de Emergencia 2
Accin ascendente
Accin descendente

= Qx_Lp1
= Qx_Lp2
= Qx_Lp3
= Qx_Ln1
= Qx_Ln2
= Qx_Ln3
= Qx_Le1
= Qx_Le2
= Qx_Subir
= Qx_Bajar

214 - Problemas M340

Universidad de Oviedo
ISA

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);
reset (Mx_puestoCI);
end_if;

Problemas M340 - 215

Universidad de Oviedo
ISA

Chart "Preselccin"
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
LP1 (Sen2 + Sen3) + LP2 Sen3

Tran11_13
LP3 (Sen2 + Sen1) + LP2 Sen1
Tran11_12

Etapa12
Bajar

Etapa12

Mx_Para

Tran11_13

Etapa13

Mx_Para

Mx_Para
Etapa13
Subir

216 - Problemas M340

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 2 *)
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);

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

end_if;

Pantalla de explotacin

Problemas M340 - 217

218 - Problemas M340

Universidad de Oviedo
ISA

Problemas M340 - 219

Universidad de Oviedo
ISA

Problema 9.9 Control de un garaje


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
FCA

M
S1

Ante una peticin de salida deber


abrirse el portn un mximo de 10
segundos
y
luego
cerrarse
automticamente.

SenCo

FCC

Luz

TMS
S4

SenLuz
Luz

Cuando est cerrando el portn y haya


un coche en el trayecto del mismo,
deber parar la maniobra y abrir el
portn hasta que el coche haya pasado.
A continuacin deber seguir la
maniobra de cierre.

Luz
S2
S3

Puerta
peatonal

Si hubiese una peticin de entrada o de


salida cuando est cerrando, se deber
atender automticamente; para ello
abrir el portn y proceder en
consecuencia.

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
ISA

220 - Problemas M340


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"

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;

GRAFCET "Control de la luz"

Problemas M340 - 221

Universidad de Oviedo
ISA

GRAFCET "Control_Portn"
Etapa20

Tran20_21
S_Entrando OR S_Saliendo

Tran20_23
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

Etapa25

Mx_SenCoche

Etapa24

Mx_TME

Etapa26

Mx_TMS

Etapa27

Tran24_21 o 26_21 o 27_21


Etapa24.t >= t#500ms
S_ProcParado.x Tran24_21

Etapa20

Etapa21

Tran26_21

Tran27_21

Etapa21

Etapa21

222 - Problemas M340


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
ISA

Universidad de Oviedo
ISA

Problemas M340 - 223

Problema 9.10 Control de un ascensor


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
ISA

224 - Problemas M340


Entradas
LLBot1
LLBot2
LLbot3
LLbot4
LLPlanta1
LLPlanta2
LLPlanta3
LLPlanta4
FCPlanta1

Etiqueta en el Pl7
pro

Salidas
Abrir
Cerrar
Subir
Bajar
Desenclav1
Desenclav2
Desenclav3
Desenclav4

FCPlanta2
FCPlanta3
FCPlanta4
Fotoclula
FCPuertaAb
FCPuertaCe
FCPuerExt~
MA

Smbolo
Direccin
en
en PLC
los planos

Comentarios

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
ISA

Problemas M340 - 225

Problema 9.11 Manipulador de cubos


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.
Inicialmente el sistema estar parado con las luces apagadas.

226 - Problemas M340

Universidad de Oviedo
ISA

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
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.

Problemas M340 - 227

Universidad de Oviedo
ISA

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
el Pl7

Smbolo en Direccin
los planos
en PLC

Comentarios

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

Retro_eje_hor

A-

%Q3.1 Retroceso del cilindro A

Baja_eje_ver

B+

%Q3.2 Avance del cilindro B. Eje vertical

Universidad de Oviedo
ISA

228 - Problemas M340


Etiqueta en
el Pl7

Smbolo en Direccin
los planos
en PLC

Comentarios

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
Falta_material

Luz Defecto %Q3.10 Enciende luz de defecto


Falta
Material

%Q3.11 Enciende luz de falta de material

Universidad de Oviedo
ISA

Problemas M340 - 229

Problema 9.12 Manipulador de fichas


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

230 - Problemas M340

Universidad de Oviedo
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.

Problemas M340 - 231

Universidad de Oviedo
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
ISA

232 - Problemas M340


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
pro
los planos
en PLC

Comentarios

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
ISA

Problemas M340 - 233

234 - Problemas M340

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 235

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:

236 - Problemas M340

Universidad de Oviedo
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
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:

Problemas M340 - 237

238 - Problemas M340


Se especifica el desborde

Se elige el filtrado

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 239

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
ISA

240 - Problemas M340


Los parmetros de la funcin anterior quedan descritos en la siguiente tabla:

Elemento

Significado

in_min

Tipo de datos
REAL

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.

Lmite inferior de la escala de entrada

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
ISA

Problemas M340 - 241

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

242 - Problemas M340

Universidad de Oviedo
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
ISA

Problemas M340 - 243

Problema 9.13 Pesado preciso de sustancias


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.

244 - Problemas M340

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 245

10.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.

246 - Problemas M340

Universidad de Oviedo
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.

Universidad de Oviedo
ISA

Problemas M340 - 247

Salida a travs de una electrovlvula V4 que comunica el DI con el DS o el DP a travs de la electrovlvula


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.

248 - Problemas M340

Universidad de Oviedo
ISA

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.
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.

Universidad de Oviedo
ISA

Problemas M340 - 249

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.

250 - Problemas M340

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 251

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.

252 - Problemas M340

Universidad de Oviedo
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
ISA

Problemas M340 - 253

Anexo C Conexin del PC con el PLC via ethernet


1) Una vez configurado correctamente el hardware del PLC, crear una nueva red en el explorador de
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.

254 - Problemas M340

Universidad de Oviedo
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
ISA

Problemas M340 - 255

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.

256 - Problemas M340

11) Nos aparecer la siguiente ventana:

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 257

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.

258 - Problemas M340


14) Cerramos la ventana 0.0:Ethernet

15) Se nos pregunta si deseamos aceptar las modificaciones. Contestamos que S.

Universidad de Oviedo
ISA

Universidad de Oviedo
ISA

Problemas M340 - 259

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.

260 - Problemas M340

Universidad de Oviedo
ISA

INDICE
SUMARIO ........................................................................................................................................................... 3
Notaciones ......................................................................................................................................................... 5
Problema 1.1 Luz de museo con interruptores ............................................................................................... 7
Recomendaciones importantes a tener en cuenta a la hora de programar ..................................................... 9
Introduccin del programa .............................................................................................................................. 10
Creacin de la Pantalla de Operador ............................................................................................................... 12
Simulacin del programa ................................................................................................................................. 15
Problema 1.2 Conmutacin de una luz mediante un pulsador ..................................................................... 17
Introduccin de variables de E / S ................................................................................................................... 17
Problema 1.3 Luz de museo mediante pulsadores........................................................................................ 23
Problema 2.1 Luz de museo con temporizador ............................................................................................. 25
Cmo introducir un Bloque de Funcin en el lenguaje ST .............................................................................. 27
Cmo exportar e importar pantallas de operador .......................................................................................... 30
Seleccin del valor tiempo actual de un temporizador como variable de control ......................................... 31
Problema 2.2 Semforo simple ..................................................................................................................... 33
Problema 2.3 Semforo coche-peatn con intermitencia ............................................................................ 37
Problema 2.4 Arranque estrella - tringulo ................................................................................................... 41
Problema 2.5 Puerta autmatica ................................................................................................................... 43
Problema 2.6 Motor CC ................................................................................................................................. 45
Problema 3.1 Semforo con comparadores .................................................................................................. 49
Problema 3.2 Semforo completo con peticin de paso .............................................................................. 53
Problema 4.1 Control de acceso a sala comercial ......................................................................................... 57
Cmo cambiar el valor actual de un contador ................................................................................................ 60
Problema 4.2 Control de un contador reversible .......................................................................................... 61
Problema 5.1 Portn mediante GRAFCET...................................................................................................... 63
Mtodo para insertar un objeto de la librera de pantalla de operador ......................................................... 72
Problema 5.2 Salida de plantas con semforos ............................................................................................. 73
Problema 5.3 Salida de plantas con semforo y sensor de abandono de planta .......................................... 77
Problema 5.4 Control de limpiaparabrisas .................................................................................................... 81
Problema 5.5 Control de la mezcla de dos lquidos ....................................................................................... 85
Funciones fundamentales para controlar los SFC ........................................................................................... 89
Problema 6.1 Control de 2 cilindros. Puesta en CI ........................................................................................ 91
Como mostrar un texto en la pantalla de operador en funcin de una variable ............................................ 94
Problema 6.2 Control de plantas con barrera. Puesta en CI con subrutina .................................................. 97

Universidad de Oviedo
ISA

Problemas M340 - 261

Problema 6.3 Control de acceso a garaje con semforos ............................................................................105


Problema 6.4 Manipulador 2 ejes con cilindros ...........................................................................................111
Problema 6.5 Control de un silo y vagoneta ................................................................................................117
Problema 7.1 Control de 2 cintas. GRAFCET coordinados ...........................................................................123
Problema 7.2 Tolva a cinta alimentadora giratoria y 3 cintas de salida .......................................................128
Problema 7.3 Dos cintas alimentadoras a tolva y cinta de salida ................................................................138
Problema 8.1 Control de trfico en 2 carriles. Interrupciones .....................................................................140
Simulacion de los eventos ..............................................................................................................................145
Problema 8.2 Desplazamientos de bits e interrupciones .............................................................................146
Problema 8.3 Control de acceso de entrada a garaje y pulsador ................................................................148
Cmo crear un Bloque de Funcin de Usuario (DFB) .....................................................................................150
Problema 9.1 Control de 3 lmparas ............................................................................................................156
Problema 9.2 Control de la mezcla en un depsito .....................................................................................162
Problema 9.3 Control de 2 bombas y su desgaste .......................................................................................174
Problema 9.4 Proceso de electrlisis ...........................................................................................................184
Problema 9.5 Control de un tnel de lavado ...............................................................................................197
Problema 9.6 Control de un molino .............................................................................................................203
Problema 9.7 Control de un paso a nivel .....................................................................................................205
Problema 9.8 Control de una compuerta .....................................................................................................213
Problema 9.9 Control de un garaje ..............................................................................................................219
Problema 9.10 Control de un ascensor ........................................................................................................223
Problema 9.11 Manipulador de cubos ...........................................................................................................225
Problema 9.12 Manipulador de fichas .........................................................................................................229
Cmo hacer el escalado de una seal analgica de entrada .........................................................................235
10. Descripcin general de la planta piloto educacional "Depsitos" ...........................................................243
Anexo A Desactivacin de Aero en W7 ........................................................................................................251
Anexo B Error de token ................................................................................................................................252
Anexo C Conexin del PC con el PLC via ethernet ........................................................................................253
INDICE .............................................................................................................................................................260

También podría gustarte