Documentos de Académico
Documentos de Profesional
Documentos de Cultura
D.I.E.E.C.S
rea de Ingeniera de Sistemas y Automtica
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
Funciones de temporizacin
Pr-0201
Pr-0202
Pr-0203
Pr-0204
Pr-0205
Pr-0206
Funciones de comparacin
Pr-0301
Pr-0302
Funciones de contador
Pr-0401
Pr-0402
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.
4 - Problemas M340
Universidad de Oviedo
ISA
Automatizacin de cintas
Pr-0701
Pr-0702
Pr-0703
Interrupciones
Pr-0801
Pr-0802
Pr-0803
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
6 - Problemas M340
Universidad de Oviedo
ISA
Problemas M340 - 7
Universidad de Oviedo
ISA
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
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
H1
%Q0.1.16 EBOOL
Luz
Qx_Luz
MxP_Sensor0
BOOL
MxP_Sensor1
BOOL
MxP_Sensor2
BOOL
Mx_Sensor0
BOOL
Mx_Sensor1
BOOL
Mx_Sensor2
BOOL
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
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.
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.
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
Universidad de Oviedo
ISA
Problemas M340 - 13
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 .
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
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
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
Universidad de Oviedo
ISA
Problemas M340 - 17
Universidad de Oviedo
ISA
Tabla de variables
Etiqueta
Smbolo
en
Direccin
los
en PLC
planos
Tipo
EBOOL
Comentarios
Ix_Pulsador
S0
%I0.1.0
Ix_LocDis
S15
%I0.1.15 EBOOL
Qx_Luz
H1
%Q0.1.16 EBOOL
Luz
Mx_Flanco
BOOL
MxP_Pulsador
BOOL
Mx_Pulsador
EBOOL
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.
18 - Problemas M340
Universidad de Oviedo
ISA
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).
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);
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Pantalla de operador
Problemas M340 - 21
22 - Problemas M340
Universidad de Oviedo
ISA
Problemas M340 - 23
Universidad de Oviedo
ISA
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
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
H1
%Q0.1.16
EBOOL
Luz
MxP_Sensor0
BOOL
MxP_Sensor1
BOOL
MxP_Sensor2
BOOL
Mx_Sensor0
EBOOL
Mx_Sensor1
EBOOL
Mx_Sensor2
EBOOL
Mx_Flanco
BOOL
Marca de flanco
Qx_Luz
Pantalla de operador
Problemas M340 - 25
Universidad de Oviedo
ISA
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
Qx_Luz
H1
%Q0.1.16
EBOOL Luz
MxP_Sensor0
BOOL
MxP_Sensor1
BOOL
MxP_Sensor2
BOOL
Mx_Sensor0
Mx_Sensor1
Mx_Sensor2
Mx_OrdenEncendido
BOOL
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
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
Universidad de Oviedo
ISA
Problemas M340 - 29
30 - Problemas M340
Universidad de Oviedo
ISA
Pantalla de operador
Universidad de Oviedo
ISA
Problemas M340 - 31
32 - Problemas M340
Universidad de Oviedo
ISA
Problemas M340 - 33
Universidad de Oviedo
ISA
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
Ix_LocDis
S15
%I0.1.15
Qx_LVerde
H1
%Q0.1.16
Qx_LAmbar
H2
%Q0.1.17
Qx_LRoja
H3
%Q0.1.18
MxP_Arranque
BOOL
Mx_Arranque
Universidad de Oviedo
ISA
Pantalla de operador
Problemas M340 - 35
36 - Problemas M340
Universidad de Oviedo
ISA
Problemas M340 - 37
Universidad de Oviedo
ISA
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
Ix_LocDis
S15
%I0.1.15
Qx_LVerdeCo
H1
%Q0.1.16
Qx_LAmbarCo
H2
%Q0.1.17
Qx_LRojaCo
H3
%Q0.1.18
Qx_LRojaPe
H4
%Q0.1.19
Qx_LVerdePe
H5
%Q0.1.20
MxP_Arranque
BOOL
Mx_Arranque
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
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
Ix_Marcha
S2
%I0.1.1
Ix_Paro
S3
%I0.1.2
Ix_Termico
S4
%I0.1.3
Ix_LocDis
S15
%I0.1.7
Qx_Km1
KM1
%Q0.1.16
Qx_Km2
KM2
%Q0.1.17
EBOOL
Qx_Km3
KM3
%Q0.1.18
Qx_Lverde
L1
%Q0.1.19
Qx_Lroja
L2
%Q0.1.20
Qx_Lambar
L3
%Q0.1.21
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
Tabla de variables
Etiqueta
Smbolo
Direccin
en
en PLC
los planos
Tipo
Comentarios
Ix_DetEntrada
S1
%I0.1.0
Ix_DetSalida
S2
%I0.1.1
Ix_Fca
FCA
%I0.1.2
Ix_Fcc
FCC
%I0.1.3
Ix_Seta
S3
%I0.1.4
Ix_LocDis
S15
%I0.1.7
Qx_Abrir
KM1
%Q0.1.16
Qx_Cerrar
KM2
%Q0.1.17
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
Tabla de variables
Etiqueta
Smbolo
Direccin
en
en PLC
los planos
Tipo
Comentarios
Ix_S0
S0
%I0.1.0
Ix_S1
S1
%I0.1.1
Ix_S2
S2
%I0.1.2
Ix_LocDis
S15
%I0.1.7
Qx_K0
KM1
%Q0.1.16
Qx_K1
KM2
%Q0.1.17
Universidad de Oviedo
ISA
46 - Problemas M340
Universidad de Oviedo
ISA
Pantalla de operador
Problemas M340 - 47
48 - Problemas M340
Universidad de Oviedo
ISA
Problemas M340 - 49
Universidad de Oviedo
ISA
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
Ix_LocDis
S15
%I0.1.15
Qx_LVerdeCo
H1
%Q0.1.16
Qx_LAmbarCo
H2
%Q0.1.17
Qx_LRojaCo
H3
%Q0.1.18
Universidad de Oviedo
ISA
50 - Problemas M340
Qx_LRojaPe
H4
%Q0.1.19
Qx_LVerdePe
H5
%Q0.1.20
MxP_Arranque
BOOL
Mx_Arranque
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
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
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
Ix_LocDis
S15
%I0.1.15
Qx_LVerdeCo
H1
%Q0.1.16
Qx_LAmbarCo
H2
%Q0.1.17
Qx_LRojaCo
H3
%Q0.1.18
Qx_LRojaPe
H4
%Q0.1.19
Qx_LVerdePe
H5
%Q0.1.20
Qx_LEspere
H6
%Q0.1.21
MxP_Pulsador
BOOL
Mx_Pulsador
Mx_IniCiclo
Mx_PeticionPaso
Mx_Oscilador2hz
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;
56 - Problemas M340
Pantalla de operador
Universidad de Oviedo
ISA
Problemas M340 - 57
Universidad de Oviedo
ISA
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
Ix_SensorA
S2
%I0.1.1
Universidad de Oviedo
ISA
58 - Problemas M340
Ix_SensorB
S3
%I0.1.2
Ix_LocDis
S15
%I0.1.15
Qx_LVerde
H1
%Q0.1.16
Qx_LAzul
H2
%Q0.1.17
Qx_LRoja
H3
%Q0.1.18
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
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;
Problemas M340 - 61
Universidad de Oviedo
ISA
Tabla de variables
Etiqueta
Smbolo
Direccin
en
en PLC
los planos
Tipo
Comentarios
Ix_Incrementa
S1
%I0.1.0
Ix_Decrementa
S2
%I0.1.1
Ix_LocDis
S15
%I0.1.15
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
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
Ix_Fca
S2
%I0.1.1
Ix_Fcc
S3
%I0.1.2
Ix_LocDis
S15
%I0.1.15
Qx_Abrir
KM1
%Q0.1.16
Qx_Cerrar
KM2
%Q0.1.17
MxP_Pulsador
BOOL
Mx_Pulsador
EBOOL
Mx_FlancoPul
BOOL
MxP_Fca
BOOL
Mx_Fca
BOOL
MxP_Fcc
BOOL
Mx_Fcc
BOOL
Punto rojo
Punto verde
FCA
FCC
Pulsador
Portn abierto
Portn cerrado
Portn cerrando
Portn abriendo
Universidad de Oviedo
ISA
Problemas M340 - 65
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;
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 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;
Universidad de Oviedo
ISA
68 - Problemas M340
Apartado b por GRAFCET - (pr0501b_G)
S_Cerrado
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
S_Abierto
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
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
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;
Problemas M340 - 71
72 - Problemas M340
Universidad de Oviedo
ISA
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
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
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
F1
PLANTA 1
S1E
S1
SSal
F2
S
S2
PLANTA 2
S2E
78 - Problemas M340
Tablas de variables
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
Pantalla de Operador
Problemas M340 - 79
80 - Problemas M340
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Problemas M340 - 81
82 - Problemas M340
Tablas de variables
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Problemas M340 - 83
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
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
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.
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 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;
Universidad de Oviedo
ISA
Problemas M340 - 89
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.
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
1 cilindro de simple efecto con vstago recogido con electrovlvula de potencia monoestable
servopilotada y detectores de posicin B0 y B1.
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
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
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
Seccin "Transicines"
Tran_3_4:= Etapa3.T >= t#5s;
Tran_1_2:= Mx_Marcha and Mx_A1 and Mx_B0;
Pantalla de Operador
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".
96 - Problemas M340
GRAFCET
Universidad de Oviedo
ISA
Problemas M340 - 97
Universidad de Oviedo
ISA
B1
S1S
PLANTA 1
S1E
SALIDA
S3
PLANTA 2
S2S
S2E
B2
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
Problemas M340 - 99
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
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;
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
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
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
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
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Preliminar
(*Generacin de seales*)
Mx_FCA := (Ix_FCA and Ix_LocDist) or(MxP_FCA and not Ix_LocDist);
Mx_FCC := (Ix_FCC and Ix_LocDist) or(MxP_FCC and not Ix_LocDist);
Mx_Rearme := (Ix_Rearrme and Ix_LocDist) or(MxP_Rearme and not Ix_LocDist);
Mx_SECalle := (Ix_SECalle and Ix_LocDist) or(MxP_SECalle and not Ix_SECalle);
Mx_SSCalle := (Ix_SSCalle and Ix_LocDist) or(MxP_SSCalle and not Ix_SSCalle);
Mx_SEGaraje := (Ix_SEGaraje and Ix_LocDist) or(MxP_SEGaraje and not Ix_SEGaraje);
Mx_SSGaraje := (Ix_SSGaraje and Ix_LocDist) or(MxP_SSGaraje and not Ix_SSGaraje);
IF %S13 THEN (* S13 Se pone a 1 en el primer ciclo de programa, y slo en el primero, despus de STOP
cuando el autmata pasa a RUN *)
ClearState := CLEARCHART (Control,true); (* Anula el grafcet *)
END_IF;
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,
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
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).
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
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
Universidad de Oviedo
ISA
false
S_Inicio
Tran1
Mx_Marcha and Mx_a0 and
Mx_b0;
Luz Verde
Los cilindros estn en sus posiciones iniciales
Tran1
S_Espera
Mx_S_Capacitivo
S_Identifica
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
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
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.
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Seccin "Transiciones"
Tran_1_2 := Mx_Marcha and not Mx_FCInicio and Mx_Vacio;
Tran_2_3 := Mx_Lleno or Etapa2.t>t#10s;
Tran_4_5 := Etapa4.t>t#5s;
Tran_12_13 := Etapa12.t>t#5s;
Universidad de Oviedo
ISA
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
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
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
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
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
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
Pantalla de Operador
Universidad de Oviedo
ISA
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.
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.
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
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
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;
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
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
S_Sel_Ls2
LS2
T_Tran4
RE (Mx_Selec) and S_Selec.x
T_Tran4
NOT Mx_Paro
(* Seleccin Cinta 3 *)
S_Descarg
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
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
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
Universidad de Oviedo
ISA
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
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;
Pantalla de Operador
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
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
Universidad de Oviedo
ISA
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.
Universidad de Oviedo
ISA
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.
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
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
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
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
Universidad de Oviedo
ISA
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
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
Evento 0
INC(Mw_NcochesC0);
Evento 1
DEC(Mw_NcochesC0);
Evento 2
INC(Mw_NcochesC1);
Evento 3
DEC(Mw_NcochesC1);
Universidad de Oviedo
ISA
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
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
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
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
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.
Universidad de Oviedo
ISA
En este momento ya podemos introducir las variables de entrada y salida que vayamos a utilizar. En el
campo secciones editaremos el programa del bloque DFB.
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
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.
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
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
Universidad de Oviedo
ISA
.1
RE
Mx_Pulsador
IN
AND
OUT
T_BloqueoPulsador.Q
IN1
IN2
OUT
Mx_Impulso
.4
.1
RE
IN
AND
OUT
T_BloqueoPulsador.Q
IN1
IN2
Universidad de Oviedo
ISA
2
Mx_Impulso
OUT
.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
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
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
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
Universidad de Oviedo
ISA
Mx_Impulso
Etapa1
L1
12s TP1
Mx_Impulso and
not 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
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
Tran_3_1
Tran_3_6
L3
Etapa6
Mx_Impulso and
Etapa6.t >=t#20s
Tran_6_1
Universidad de Oviedo
ISA
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
Universidad de Oviedo
ISA
Tabla de variables
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
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Llenado
Vaciado
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Pantalla de explotacin
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Chart Seleccion
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
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
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
Tabla de variables
Universidad de Oviedo
ISA
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
.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
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
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
.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
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;
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
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
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
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
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
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
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
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*)
Universidad de Oviedo
ISA
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
.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
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
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
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
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
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
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
Programa de mando
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Seccin "Preliminar"
(* Marcas para la pantalla *)
If %S13 then
Set (MxP_Paro); Set (MxP_FCC);
END_IF;
Mx_Rearme:= (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist);
Mx_Marcha:= (Ix_Marcha and Ix_LocDist) or (MxP_Marcha and not Ix_LocDist);
Mx_Paro:= (Ix_Paro and Ix_LocDist) or (MxP_Paro and not Ix_LocDist);
Mx_FC1:= (Ix_FC1 and Ix_LocDist) or (MxP_FC1 and not Ix_LocDist);
Mx_FC2:= (Ix_FC2 and Ix_LocDist) or (MxP_FC2 and not Ix_LocDist);
Mx_FC3:= (Ix_FC3 and Ix_LocDist) or (MxP_FC3 and not Ix_LocDist);
Mx_FC4:= (Ix_FC4 and Ix_LocDist) or (MxP_FC4 and not Ix_LocDist);
Mx_FC5:= (Ix_FC5 and Ix_LocDist) or (MxP_FC5 and not Ix_LocDist);
Mx_Fca:= (Ix_Fca and Ix_LocDist) or (MxP_Fca and not Ix_LocDist);
Mx_Fcc:= (Ix_Fcc and Ix_LocDist) or (MxP_Fcc and not Ix_LocDist);
MxP_F1FCC:=Mx_Fc1 and Mx_Fcc;
MxP_F1FCA:=Mx_Fc1 and Mx_Fca;
MxP_FCCnoF1:= Mx_Fcc and not Mx_FC1;
(* Programa principal *)
If re (Mx_Rearme) then
set (Mx_PonCi);
reset (Mx_PEv);
end_if;
if Mx_PonCi then
Inicializar();
end_if;
if not Mx_Paro then
reset (Mx_PEv);
end_if;
(* Control de la cinta *)
if Mx_Marcha and Mx_PEv then
set (Qx_Cinta);
end_if;
if (not Qx_Mojado and not Qx_Detergente and not Qx_CepiAclarado and not Qx_Secado and Mx_FC5) or
not Mx_paro or Mx_Rearme then
reset (Qx_Cinta);
end_if;
(* Control del puesto de mojado *)
if Qx_Cinta and Mx_FC1 then
set (Qx_Mojado);
end_if;
if (Mx_FC2 and not Mx_FC1) or not Mx_paro 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
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Tabla de variables
Pantalla de operador
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
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.
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
Universidad de Oviedo
ISA
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
.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
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
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
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
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
S_B2_subida
encuentra
subida
NOT Mx_vien_izda
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
Universidad de Oviedo
ISA
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
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;
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
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
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
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
SenCo
FCC
Luz
TMS
S4
SenLuz
Luz
Luz
S2
S3
Puerta
peatonal
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo
ISA
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;
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
Etapa20
Etapa21
Tran26_21
Tran27_21
Etapa21
Etapa21
Pantalla de operador
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Se pide:
Universidad de Oviedo
ISA
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
Sensor3
S3
%I1.2
Fc_abierta
S3
%I1.3
Fc_cerrada
S2
%I1.4
C_km1_aux
KM1
%I1.5
C_km2_aux
KM2
%I1.6
M_cerrar
KM1
M_abrir
KM2
Puerta_abierta
L1
Puerta_cerrada
L2
Universidad de Oviedo
ISA
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 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
Universidad de Oviedo
ISA
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
Rearme
Rearme
%I1.3
Rearme (NA)
Eje_hor_recogido
a0
%I2.0
Eje_hor_exten
a1
%I2.1
Eje_ver_arriba
b0
%I2.2
Eje_ver_abajo
b1
%I2.3
Pinza90
c1
%I2.4
Pinza0
c0
%I2.5
Pinza a 0
Pinza_abierta
d1
%I2.6
Vas_alimen_rec
e0
%I2.7
Vas_alimen_ext
e1
%I2.8
Vas_expul_rec
f0
%I2.9
Vas_expul_ext
f1
D_C_bajopinza
D_C_rampa
DCrampa
D_Inductivo
DInductivo
%I2.13 Hay pieza bajo la pinza con cara metalica hacia adentro
Fotocelula
Fotoclula
Avanza_eje_hor
A+
Retro_eje_hor
A-
Baja_eje_ver
B+
Universidad de Oviedo
ISA
Smbolo en Direccin
los planos
en PLC
Comentarios
Sube_eje_ver
B-
Gira_pinza
C+
Abre_pinza
D+
Ext_vas_alim
E+
Rec_vas_alim
E-
Ext_vas_expul
F+
Rec_vas_exp
F-
Luz_defecto
Falta_material
Universidad de Oviedo
ISA
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 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
El funcionamiento bsico del manipulador consiste en, coger una pieza del alimentador de petaca, y
meterla en el cajn en un sentido u otro. Dependiendo del material alimentado: opaco o transparente,
haremos que las piezas opacas las meta en sentido transversal al bastidor y las transparentes (en lo
Universidad de Oviedo
ISA
2. A continuacin se elevar el brazo por medio del cilindro sin vstago -eje vertical-, y una vez
alcanzada la parte superior, se efecta un giro de 90 para que la pinza quede en la direccin de la
pieza a recoger.
Universidad de Oviedo
ISA
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
Comentarios
Marcha
S2
Paro
S3
Rearme
S4
Auto_man
S5
Hay_pieza
DC
Pieza_oscura
DF
Brazo_abajo
f0
Brazo_arriba
f1
Pinza_recogida
d0
Pinza_extendida
d1
Giro_brazo_0
e0
Giro_brazo_90
e1
Alim_recogido
a0
Alim_extendido
a1
Saca_pieza
A+
Abre_pinza
B+
Gira_pinza
C+
Gira_brazo
E+
Extender_pinza
D+
Subir_brazo
F+
Luz_roja
H1
Luz_verde
H2
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Se debe comenzar realizando la configuracin del mdulo de entradas analgicas haciendo doble clic sobre
l en la vista general del hardware del PLC. Se ha instalado el mdulo BMX AMI 0410 que contiene 4
canales de entrada analgica. Aparecer la siguiente ventana:
Universidad de Oviedo
ISA
En este caso, se ha seleccionado el canal 0 del mdulo de entradas analgicas con un rango de 0 a 10V
Universidad de Oviedo
ISA
Se elige el filtrado
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Todos estos conceptos quedan definidos en la ayuda del Unity Pro como vemos en el siguiente cuadro:
Una vez configurado el mdulo de entradas analgicas, se debe realizar el escalado de la seal mediante la
insercin de una instancia a un bloque de funcin elemental denominado SCALING.
Los parmetros del escalado forman parte de una estructura de datos denominada PARA_SCALING.
Lo ms cmodo es insertar el bloque y asignar como entrada de parmetros PARA la variable de nombre
p.e.parametros del tipo PARA_SCALING. Por otra parte, la entrada IN y la salida OUT son del tipo REAL.
Universidad de Oviedo
ISA
Elemento
Significado
in_min
Tipo de datos
REAL
in_max
REAL
out_min
REAL
out_max
REAL
clip
BOOL
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
Preliminar
if Ix_LocalDist then
Mi_TempaSalaF := Iw_TempSalaF;
(*El valor de la temperatura de la sala en grados Fahrenheit se mide a travs de la sonda*)
else
Mi_TempaSalaF := MiP_TempSalaF;
(*El valor de la temperatura de la sala en grados Fahrenheit se asigna por la pantalla de operador*)
end_if;
Seccin Escalado
Universidad de Oviedo
ISA
Pantalla de operador
Universidad de Oviedo
ISA
Al pulsar Marcha (Pulsador NA), deben abrirse las tajaderas A y B que cierran el vertido de un
producto sobre un sistema de pesaje basculante.
Cuando la bscula marque 390 Kg, deber cerrarse la tajadera A.
Cuando la bscula marque 400 Kg, deber cerrarse B con lo que se cerrar la compuerta de afinado.
Alcanzado el peso deseado, se vaca la bscula por medio de un cilindro basculante (C).
El vaciado termina cuando el sensor de peso llegue a cero .
En ese momento se desactiva el cilindro basculante para que la bscula recupere la posicin inicial.
Durante cualquier momento del proceso, si se pulsa la parada de emergencia (interruptor NC) se
debern cerrar las tajaderas A y B y/o parar el vaciado de la bscula. Adems se indicar mediante
la activacin de una luz roja de parada de emergencia.
Al pulsar rearme el sistema volver al estado de reposo, independientemente del estado en el que
se produjese la parada.
Durante cualquier momento del proceso, si se pulsa un interruptor de paro (NC), se deber parar el
proceso y activar una luz de paro. Se saldr de esta situacin al pulsar Marcha. El sistema volver a
continuar donde estaba y se apagar la luz de paro.
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000, mdulo mixto de entradas salidas BMX DDM3202K y mdulo de entradas
salidas analgicas BMX AMI 0410.
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
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
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.
Universidad de Oviedo
ISA
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
Sensores de temperatura.
El rango de valores que proporciona el canal analgico del autmata correspondiente a la sonda de
temperatura va de 0 a 10000, lo que corresponden a 4mA y 20mA respectivamente. El adaptador de PT100
esta calibrado para que a 4mA sean 0C y a 20mA sean 100C.
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Luego establecer en "Temas Bsico y de Contraste alto" el tema "Windows 7 Basic", por ejemplo, o el que
ms nos guste. SOLO FUNCIONA CORRECTAMENTE DE ESTA FORMA.
Si as y todo, sale un mensaje que dice "es imposible establecer la comunicacin con el PLC", salir del Unity
e ir a la barra de herramientas. En la zona derecha hay un icono del simulador del PLC. Pinchar en l con el
botn derecho y salir.
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
3) Por defecto se crea el nombre Ethernet_1. Si se desea cambiar el nombre creado por defecto, introducir
el nombre deseado. Para finalizar pulsar aceptar.
4) En redes aparecer el nuevo componente de red creado. Hacer doble click sobre l.
5) Debemos elegir el mdulo que realizar la conexin de Ethernet. En nuestro caso, lo realizaremos
mediante el puerto Ethernet disponible en la CPU. Por tanto, debemos seleccionar la CPU que estamos
usando. Es importante seleccionar no solamente el tipo de CPU sino tambin la versin.
Universidad de Oviedo
ISA
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
10) Seguidamente, acudimos a la configuracin del hardware del PLC. Clicamos sobre la figura del puerto
Ethernet de la CPU del PLC ya que es por donde fsicamente conectaremos nuestro cable de red.
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
12) Doble click sobre Canal 3 y seleccionaremos la funcin ETH TCP IP.
Universidad de Oviedo
ISA
Universidad de Oviedo
ISA
Para que el autmata almacene esta direccin IP, le deberemos pasar previamente nuestro programa
mediante una conexin USB.
Para conectarnos al autmata mediante el cable USB. Deberemos indicar que queremos trabajar en el
modo ESTANDAR no el de SIMULACIN
Iremos al menu "PLC" y escogeremos la opcin "Establecer direccin" especificando que vamos a hacer
una conexin por cable USB a la direccin SYS y aceptamos.
Despus Transferimos el programa creado y con ello lograremos establecer la direccin IP en el PLC.
Posteriormente, si deseamos conectarnos con el PLC mediante Ethernet, deberamos acceder a "PLC-Establecer direccin"y en Direccin pondremos la IP de nuestro PLC y en Medios seleccionaremos TCPIP.
RECORDAR que se deber haber seleccionado el modo ESTANDAR de conexin,no el modo simulador.
Seguidamente ya podramos clicar en Aceptar y luego Conectar para establecer la conexin PC-PLC.
Universidad de Oviedo
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