Documente Academic
Documente Profesional
Documente Cultură
D.I.E.E.C.S
rea de Ingeniera de Sistemas y Automtica
Problemas
SUMARIO
Funcines lgicas: AND y OR
Sistemas combinacionales. Concepto de estado de seal. Control por nivel.
Pr-0101 Luz de Museo mediante interruptores
Recomendaciones importantes a tener en cuenta a la hora de programar
Introduccin del programa
Creacin de la pantalla de operador
Simulacin del programa
Funciones de temporizacin
Funcines de temporizacin: TON, TOF y TP
Pr-0201 Luz de museo con temporizacin.
Como introducir un Bloque de Funcin en el lenguaje ST
Exportar e importar pantallas de operador
Seleccin del valor tiempo actual de un temporizador como variable de control
Pr-0202 Semforo simple
Cmo insertar una imagen en la pantalla de operador
Pr-0203 Semforo coche-peatn con intermitencia
Pr-0204 Arranque estrella-tringulo (Ejercicio para resolver)
Pr-0205 Puerta autmatica (Ejercicio para resolver)
Pr-0206 Motor CC
Funciones de comparacin
Funciones de comparacin EQ, NE, LE, LT, GE, GT
Construccin de un oscilador con comparadores
Pr-0301 Semforo coche-peatn con intermitencia
Crear y direccionar varias pantallas de operador
Pr-0302 Semforo completo con peticin de paso
Funciones de contador
Pr-0401 Acceso sala comercial fotoclulas
Cmo cambiar el valor actual de un contador
Pr-0402 Control de un contador
GRAFCET
Pr-0501 Portn.
Mtodo para insertar un objeto de la librera de pantalla de operador
Universidad de Oviedo
4 - Problemas M340 ISA
Automatizacin de cintas
GRAFCETs coordinados
Pr-0701 Cinta alimentadora a cinta de salida
Como forzar el valor de una entrada o salida. Cmo modificar el valor de una variable
Pr-0702 Tolva a cinta alimentadora giratoria y 3 cintas de salida
Pr-0703 2 Cintas alimentadoras a tolva y cinta de salida (Ejercicio para resolver)
Interrupciones
Pr-0801 Regulacin de coches en la calle
Simulacin de los eventos
Funcines de desplazamiento y rotacin: SHL, SHR, ROR y ROL
Pr-0802 Desplazamientos de bits e interrupciones (Ejercicio para resolver)
Pr-0803 Garaje (S. Coches, portn con pulsador) (Ejercicio para resolver)
GEMMA
Anexos
Anexo A Desactivacin de Aero en W7
Anexo B Error de token
Anexo C Conexin del PC con el PLC via ethernet
Anexo E Como generar la documentacin del proyecto
Anexo F Tipos de Bloques
Bibliografa
Universidad de Oviedo
6 - Problemas M340 ISA
Notaciones
En todos los problemas expuestos se seguirn las siguientes notaciones
Representacin en FBD
IN1 IN2 AND
0 0 0
0 1 0
1 0 0
1 1 1
Representacin en ST
Resultado := AND (Valor_1, Valor_2) ;
Funcin OR
"La funcin OR realiza la combinacin lgica de las entradas y hace la funcin OR asignando el resultado a
la salida. Los tipos de datos de todos los valores de entrada y el del valor de salida deben ser iguales.
Se puede aumentar el nmero de entradas como mximo a 32.
Como parmetros adicionales se pueden configurar EN y ENO.
Representacin en FBD
IN1 IN2 AND
0 0 0
0 1 1
1 0 1
1 1 1
Representacin en ST
Resultado := OR (Valor_1, Valor_2) ;
Universidad de Oviedo
8 - Problemas M340 ISA
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto BMX DDM3202K de 16 entradas PNP y de 16 salidas PNP.
S2
S1 S3
Universidad de Oviedo Problemas M340 - 9
ISA
Esquema de mando
Esquema de fuerza
Universidad de Oviedo
10 - Problemas M340 ISA
Tabla de variables
Smbolo en Direccin
Etiqueta Tipo Comentarios
los planos en PLC
Ix_Sensor0 S0 %I0.1.0 EBOOL Interruptor 0
Este es un problema eminentemente combinacional. La salida depende exclusivamente del estado que
presenten en ese instante las entradas.
Del enunciado del problema, deducimos la siguiente tabla de activaciones. En ella indicamos como debe de
estar la salida cuando se accionen los interruptores de entrada.
De las 8 combinaciones posibles, slo 4 activan la salida
Tabla de activaciones
ENTRADAS SALIDAS
S1 S2 S3 LUZ
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
Y por tanto, teniendo en cuenta que un interruptor NA, cuando est activo su estado de seal es 1 -le llega
Universidad de Oviedo Problemas M340 - 11
ISA
tensin a la borna del autmata-, y cuando no est activo su estado de seal es 0. Tenemos que la tabla de
estado de la seal que necesitamos para el programa de mando es la siguiente:
Tabla de estados
ENTRADAS SALIDAS
S1 S2 S3 LUZ
0 0 1 1
0 1 0 1
1 0 0 1
1 1 1 1
Si el interruptor S3 fuese NC la tabla de estados cambiara -el NC es dual del NA- y sera la siguiente:
Tabla de estados
ENTRADAS SALIDAS
S1 S2 S3 LUZ
0 0 0 1
0 1 1 1
1 0 1 1
1 1 0 1
esta forma, pues quien manda la informacin exclusivamente sern los elementos de campo y no la
pantalla de operador.
En la ventana que aparece, se puede observar el bastidor, la fuente de alimentacin FA (CPS2000) y la CPU
(P34 2020) del Automata escogido. Hay que tener cuidado y elegir correctamente la versin del firmware,
asegurarse que sea la que soporta nuestro AP -en nuestro caso 02.50.
Se hace un doble clic en el mdulo 1 y luego en el 2 para indicar que Interface de entrada/salida
deseamos. Si quisiramos cambiar el tipo de bastidor haramos clic sobre el nmero cero del Rack o en el
mismo Rack en gris situado a la izquierda de la FA.
Universidad de Oviedo Problemas M340 - 13
ISA
Para el primer problema elegiremos, por ejemplo, un mdulo de Entradas/Salidas binarias y tipo BMX
DDM 3202K. De esta forma queda configurado el hardware del AP.
Luego introduciremos los nombres de las variables de nuestro programa haciendo clic en la opcin
"Variables elementales" de la carpeta "Variables e instancias FB". Procederemos a configurarlas todas
especificndo el tipo de datos asociado.
Mediante el uso de los iconos de la barra de herramientas nueva que aparece, iremos introduciendo las
instrucciones del programa.
Programa en LD - (pr0101b)
Este programa lo hemos estructurado en dos secciones:
IniciaVariables, escrito en lenguaje LD
ControlLuz, escrito en lenguaje LD
Seccin "IniciaVariables" en LD
Seccin "ControlLuz" en LD
Universidad de Oviedo Problemas M340 - 15
ISA
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.
Para mostrar la luz, hacemos un crculo con la herramienta de dibujo. Lo rellenamos de verde y le ponemos
un aspa cruzada. Seleccionamos todo el dibujo y copiamos y pegamos cambiando el relleno de este ltimo
por otro color para indicar que la luz est apagada.
Luego agrupamos cada una de las luces abarcndolas con una caja de seleccin y con el botn derecho
indicamos agrupar.
Posteriormente indicaremos que es un objeto animado y especificamos que la luz verde se muestre cuando
la variable Qx_Luz vale 1.
Universidad de Oviedo Problemas M340 - 17
ISA
Por ltimo, situamos la luz verde clara delante de la oscura haciendo uso del icono primer plano
Para trabajar en pantalla completa, elegiremos Ver | Pantalla completa, que equivale a pulsar las teclas
Ctrl + F8
Universidad de Oviedo
18 - Problemas M340 ISA
Posteriormente indicaremos que que queremos Conectar con el PLC, en nuestro caso con el simulador.
Cuando finalice ejecutaremos el programa con el comando Ejecutar (poner en RUN) del men PLC.
Universidad de Oviedo Problemas M340 - 19
ISA
Por ltimo, seleccionaremos Habilitar modificacin de variables, en el men Servicios para habilitar la
posibilidad de introducir y modificar valores de la pantalla de Operador.
Seccin "IniciaVariables" en ST
Mx_Sensor0 := (Ix_Sensor0 and Ix_LocDis) or (MxP_Sensor0 and not Ix_LocDis);
Mx_Sensor1 := (Ix_Sensor1 and Ix_LocDis) or (MxP_Sensor1 and not Ix_LocDis);
Mx_Sensor2 := (Ix_Sensor2 and Ix_LocDis) or (MxP_Sensor2 and not Ix_LocDis);
Seccin "ControlLuz" en LD
Universidad de Oviedo
20 - Problemas M340 ISA
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);
Funcin Set
La funcin SET realiza la puesta a 1 de forma memorizada del bit asociado.
Representacin en FBD
El bloque de funcin SET, lo obtenemos pulsando sobre Asistente de entrada FFB, de la barra de iconos
FBD-Editor.
(*Si queremos que nos salga la patilla de conexin EN -enable- en los bloques de programa SET y RESET,
deberemos habilitar la casilla correspondiente Mostrar EN/ENO *)
Funcin Reset
La funcin RESET realiza la puesta a 0 del bit asociado.
Representacin en ST
Reset (Qx_Luz) ;
RESET Salida
0 No cambia
1 0
Funcin XOR
Realiza la funcin XOR entre dos entradas.
Los tipos de datos de todos los valores de entrada y el del valor de salida deben ser iguales.
El nmero de entradas podra ser como mximo 32.
Se podran configurar los parametros adicionales EN y ENO.
Representacin en ST
Tabla de variables
Smbolo
en Direccin
Etiqueta Tipo Comentarios
los en PLC
planos
Ix_Pulsador S0 %I0.1.0 EBOOL Pulsador conectado al autmata
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.
Seccin"IniciaVariables" en ST
(* Control local o a distancia*)
Mx_Pulsador := (Ix_Pulsador and Ix_LocDis) or (MxP_Pulsador and not Ix_LocDis);
Seccin "Control_de_la_luz" en LD
(*Si cada vez que presionamos el pulsador la luz, sta debe conmutar, est claro que no podremos utilizar
un control por nivel. Cuando pulsamos, por muy rpido que lo hagamos, el autmata lee la entrada miles
de veces antes de que soltemos el pulsador y en cada ciclo de programa estar conmutando la luz. Esto no
es lo que pretendemos.
Por ello debemos programar la deteccin del flanco acendente del pulsador.
Cuando pulsemos, ser detectado por el AP y pondr una memoria en 1 slamente durante un ciclo de
programa.
Al ciclo siguiente el propio autmata lo borrar*)
(*Por tanto, cuando detectemos el flanco y la luz estuviese apagada, procederemos a encenderla mediante
un SET -segunda red-. De esta forma permanecer encendida aunque la orden desaparezca.
A continuacin se debe borrar el flanco para que no siga activo en ese ciclo de programa. Si no lo
borrasemos, la luz se apagara en la ltima instruccin. La luz no se activara nunca pues lo nico que
pusimos a 1 fue una memoria en la tabla de asignacin de salidas. Luego se borr -en la tercera red-, con lo
que cuando se transfiere la imagen de las salidas al interfaz de salida, lo que en esos momentos habra sera
un 0 y por tanto la luz no se activara nunca.
Seccin "Control_de_la_luz" en ST
(* Control local o a distancia*)
Mx_Pulsador := (Ix_Pulsador and Ix_LocDis) or (MxP_Pulsador and
not Ix_LocDis);
Pantalla de operador
Universidad de Oviedo
28 - Problemas M340 ISA
Cuando tenemos un sensor de 3 hilos, no podemos observar directamente si es PNP o NPN. Tienen dos
terminales conectados al positivo y al negativo de la fuente de alimentacin y el tercero, la carga "LOAD",
est conectado a la borna del autmata. Esto es as bien sea PNP o NPN.
Pero si observamos los contactos de los interruptores, pulsadores, etc. vemos que cuando se accionan,
introducen 24v DC a las bornas del AP. De esta forma comprobamos fehacientemente que el interface de
entrada es PNP.
El mdulo BMX DAI 1602 es un mdulo binario de 24 VCA conectado a travs de un bloque de terminales
de 20 pins. Este mdulo tiene 16 canales de entrada que funcionan con corriente alterna.
Este mdulo tambin se puede utilizar con 24 VCC, con lgica positiva o negativa.
Universidad de Oviedo Problemas M340 - 31
ISA
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
S1 S3
Tabla de variables
Smbolo Direccin
Etiqueta Tipo Comentarios
planos en PLC
Ix_Sensor0 S0 %I0.1.0 EBOOL Interruptor 0
(*Control de la luz*)
Mx_Flanco:= RE (Mx_Sensor0) or RE (Mx_Sensor1) or RE (Mx_Sensor2);
*RE Rising Edge - Flanco ascendente, FE Falling Edge - Flanco descendente*
Pantalla de operador
Universidad de Oviedo Problemas M340 - 39
ISA
Funciones de temporizacin
Funcin TON de retraso en la conexin
Representacin en lenguaje ST
TON_Instance (IN := (*BOOL*),
PT := (*TIME*),
Q => (*BOOL*),
ET => (*TIME*));
Universidad de Oviedo
40 - Problemas M340 ISA
Representacin en lenguaje ST
TOF_Instance (IN := (*BOOL*),
PT := (*TIME*),
Q => (*BOOL*),
ET => (*TIME*));
Universidad de Oviedo Problemas M340 - 41
ISA
Representacin en lenguaje ST
TP_Instance (IN := (*BOOL*),
PT := (*TIME*),
Q => (*BOOL*),
ET => (*TIME*));
Universidad de Oviedo
42 - Problemas M340 ISA
Desplegamos el Conjunto de librerias V6.0 y luego seleccionamos Timers & Counters. En la parte derecha
elegimos el bloque deseado, en nuestro caso TOF
Universidad de Oviedo Problemas M340 - 43
ISA
aparece otra ventana, donde le indicaremos el nombre elegido para nuestra funcin, p.e.
Temporizador_10s
aparece en el cdigo un texto que podremos modificar en funcin de nuestra necesidad, para ello,
sustituiremos los comentarios por las seales adecuadas
Tabla de variables
Smbolo
en Direccin
Etiqueta Tipo Comentarios
los en PLC
planos
Ix_Sensor0 S0 %I0.1.0 EBOOL Interruptor 0
Programa en ST - (pr0201b)
(*IniciaVariables*)
Mx_Sensor0 := (Ix_Sensor0 and Ix_LocDis) or (MxP_Sensor0 and not Ix_LocDis);
Mx_Sensor1 := (Ix_Sensor1 and Ix_LocDis) or (MxP_Sensor1 and not Ix_LocDis);
Mx_Sensor2 := (Ix_Sensor2 and Ix_LocDis) or (MxP_Sensor2 and not Ix_LocDis);
(*Control de la luz*)
(* Cuando demos la orden de encender la luz al activar un interruptor estando la luz apagada, se deber
activar la luz y permanecer en ese estado hasta que se de la orden de apagado. Una vez que esto suceda,
deber permanecer encendida todavia 10 segundos ms y luego apagarse automticamente.
Si se activase un interruptor en ese intervalo, la luz deber permanecer encendida esperando de nuevo la
activacin de un interruptor para comenzar el proceso de apagarla.
La funcin de temporizacin adecuada para este proceso es la TOF*)
Mx_OrdenEncendido:= (Mx_Sensor0 and not Mx_Sensor1 and not Mx_Sensor2) or (not Mx_Sensor0 and
Mx_Sensor1 and not Mx_Sensor2)or (not Mx_Sensor0 and not Mx_Sensor1 and Mx_Sensor2)or
(Mx_Sensor0 and Mx_Sensor1 and Mx_Sensor2) ;
Pantalla de operador
Universidad de Oviedo
48 - Problemas M340 ISA
Lverde
0 30 t (s)
LAmbar
30 35 t (s)
LRoja
35 60 t (s)
Arranque
T_verde.ET
T_verde.Q
T_ambar.ET
T_ambar.Q
T_rojo.ET
T_rojo.Q
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo
50 - Problemas M340 ISA
Tabla de variables
Smbolo
en Direccin
Etiqueta Tipo Comentarios
los en PLC
planos
Ix_Arranque S1 %I0.1.0 EBOOL Interruptor de arranque del sistema
Pantalla de operador
Universidad de Oviedo
52 - Problemas M340 ISA
Nos saldr una pantalla en la cal elegiremos la imagen del directorio apropiado. La imagen deber estar en
formato JPG o BMP, no admite otros tipos.
Si queremos que las imgenes insertadas se vean en otro computador diferente con el que estamos
trabajando, debemos seleccionarlas una vez insertadas, y a continuacin hacer click con el botn derecho,
seleccionar "propiedades" y elegir la pestaa "imagen", despus deberemos activar una opcin que pone
"Imagen copiada en el espacio actual".
Universidad de Oviedo Problemas M340 - 53
ISA
Automviles
Verde
20 t (s)
f=2Hz
Ambar
3 2 t (s)
Rojo
25 t (s)
Peatones
Verde f=2Hz
2 18 3 2 t (s)
Rojo
27
t (s)
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Tabla de variables
Smbolo
Direccin
Etiqueta en Tipo Comentarios
en PLC
los planos
Ix_Arranque S1 %I0.1.0 EBOOL Interruptor de arranque del sistema
Pantalla de operador
Universidad de Oviedo Problemas M340 - 57
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 DDM16025.
Las entradas irn alimentadas a 24 VDC y las salidas a 220 VCA. El rearme del trmico ser manual. Existir
un contacto de precorte.
Tabla de variables
Smbolo
Direccin
Etiqueta en Tipo Comentarios
en PLC
los planos
Ix_Emergencia S1 %I0.1.0 EBOOL Seta de emergencia
Esquema de fuerza
L1
L2
L3
5
1
3
-F1
6
2
4
1
3
3
1
3
5
1
2
4
6
1
3
5
-F2
U1 2
W1 6
V1 4
M
3
W2
U2
V2
Esquema de mando
Universidad de Oviedo Problemas M340 - 59
ISA
Tabla de variables
Smbolo
Direccin
Etiqueta en Tipo Comentarios
en PLC
los planos
Ix_DetEntrada B1 %I0.1.0 EBOOL Detector de la entrada
Qx_Abrir KM1 %Q0.1.16 EBOOL Activa el contactor para que abra la puerta
Qx_Cerrar KM2 %Q0.1.17 EBOOL Activa el contactor para que cierre la puerta
Se pide.
Programa de control.
Esquema de mando y de fuerza con todas las protecciones necesarias.
Universidad de Oviedo
60 - Problemas M340 ISA
Tabla de variables
(*Como se va a detectar un flanco de bajada de la salida de los temporizadores es necesario crear una
variable intermedia tipo EBOOL*)
Mx_T_Parada_Inversion:=(T_Parada_Inversion.Q);
Mx_T_Inversion:=(T_Inversion.Q);
(*El motor debe ponerse en marcha si se ha pulsado durante ms de dos segundos S0 y S1,
o tambin si ya se encontraba en marcha y par para invertir el giro debe seguir en marcha*)
if T_Marcha.Q or (FE(Mx_T_Parada_Inversion) and Mx_Marcha) then
set(Qx_KM0); set(Mx_Marcha);
end_if;
(*El motor debe pararse si se ha pulsado durante ms de dos segundos exclusivamente S0 o S1*)
if T_Parada.Q then
reset(Qx_KM0); reset(Mx_Marcha);
end_if;
(*El motor debe pararse si se va a proceder a una inversin de giro. Obsrvese que la marca Mx_Marcha
continuar a 1 para comprobar que el motor debe volver a arrancar en cuanto se produzca un flanco de
bajada en Mx_Temp_Parada_Inversion *)
if T_Parada_Inversion.Q then
reset(Qx_KM0);
end_if;
Pantalla de operador
Frmula
OUT = 1, cuando (IN1 IN2) & (IN2 IN3) & .. & (IN(n-1) INn)
Representacin en lenguaje ST
Result := EQ (Value1, Value2) ; igual
Result := NE (Value1, Value2) ; no igual
Result := LE (Value1, Value2) ; menor o igual
Result := LT (Value1, Value2) ; menor que
Result := GE (Value1, Value2) ; mayor o igual
Result := GT (Value1, Value2) ; mayor que
Para ello lanzaremos un temporizador de 500ms con retraso a la conexin y activado con la seal "Control".
Cuando el valor actual del temporizacin llegue al valor de preseleccin, 500ms, el valor actual quedar fijo
y la salida binaria T_Osc2HZ.Q pasar a valer "1" lgico.
Mediante un comparador podemos saber si estamos dentro de los primeros 250ms del ciclo cuando la
seal de control est activa y con ello poner a "1" la salida Mx_Osc2HZ.
Universidad de Oviedo
66 - Problemas M340 ISA
Ahora bien, debemos lanzar de nuevo el temporizador para generar otro ciclo. Lo vamos a hacer
arrancando el temporizador cuando est la seal de control a "1" y la salida binaria del temporizador est
en "0". Eso sucede cuando arranca. Luego cuando la salida binaria, T_Osc2Hz.q pase a "1", la entrada del
temporizador caer a "0" y su salida tambin. Al ciclo siguiente vuelve a ser cierta la condicn de arranque
y se produce un nuevo ciclo. Funciona as inienterrumpidamente hasta que la seal de control pase a "0".
Universidad de Oviedo Problemas M340 - 67
ISA
Automviles
Verde
20 t (s)
f=2Hz
Ambar
3 2 t (s)
Rojo
25 t (s)
Peatones
Verde f=2Hz
2 18 3 2 t (s)
Rojo
27
t (s)
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Tabla de variables
Smbolo
Direccin
Etiqueta en Tipo Comentarios
en PLC
los planos
Ix_Arranque S1 %I0.1.0 EBOOL Interruptor de arranque del sistema
Cronograma
Programa en ST - (pr0301)
(*Inicia variables*)
Mx_Arranque := (Ix_Arranque and Ix_LocDist) or(MxP_Arranque and not Ix_LocDist);
Qx_LRojaPe := (Mx_Arranque AND t_ciclo.ET <= t#27s) OR (t_ciclo.ET > t#48s AND t_ciclo.ET <= t#50s);
Universidad de Oviedo Problemas M340 - 69
ISA
Qx_LVerdePe := (t_ciclo.ET > t#27s AND t_ciclo.ET <= t#45s) OR (t_ciclo.ET > t#45s AND t_ciclo.ET <= t#48s
AND Mx_Osc2Hz);
(* Se programa el oscilador de 2 Hz *)
Si queremos que la frecuencia sea de 2 Hz, el periodo ser T=1 / f = 1 / 2 = 0,5 s 500ms
Una vez creadas dos pantallas y asignadas un nombre es ms fcil identificar un nombre que un nmero-
podemos saltar a otra pantalla desde la que estemos, insertando un control.
Para ello iremos a la barra IOSEditor y pulsamos sobre el noveno icono, Examinar pantalla.
Al clicar en nuestra pantalla y arrastrar, saldr un botn con el nombre de la otra pantalla. Con el botn
derecho del ratn seleccionamos propiedades. El campo Valor, nos permitir seleccionar la pantalla
deseada de las que tengamos creadas.
Universidad de Oviedo
70 - Problemas M340 ISA
Coches
Verde
4 39 t (s)
P.P.
t (s)
f=2Hz
Ambar
4 5 t (s)
Rojo
30 t (s)
68
Peatones
Verde f=2Hz
2 22 4 2 t (s)
Rojo
t (s)
Luz
Espere
t (s)
Una vez activado el pulsador de peatones, la luz verde de coches debe permanecer activada cuatro
segundos ms, desactivndose una vez transcurridos stos y activando la luz mbar.
La luz mbar debe permanecer activada, durante cuatro segundos, con luz fija, y cinco segundos, con luz
parpadeante. Transcurridos estos nueve segundos se desactivar y se proceder a la activacin de la luz
roja de coches.
La luz roja de coches permanecer activada durante treinta segundos.
La luz verde de peatones, se activar dos segundos despus de haberlo hecho la luz roja de coches,
Universidad de Oviedo
72 - Problemas M340 ISA
permaneciendo activada, durante veintids segundos, con luz fija, y, cuatro segundos, con luz parpadeante.
Concluido este tiempo, se desactivar y pasar a activarse la luz roja de peatones.
La luz roja de peatones se desactivar, cuando se active la luz verde de peatones.
La luz roja de coches se desactivar dos segundos despus de haberlo hecho la luz verde de peatones,
momento en el que se activar la luz verde de coches.
La frecuencia de oscilacin es de 2 Hz, tanto en la luz mbar de coches como en la luz verde de peatones.
Si se efectuara una demanda de paso, cuando est en marcha el cumplimiento de una peticin anterior, se
tendr en cuenta, activndose la luz de ESPERE si es pertinente, pero no se admitir la misma hasta que no
llegue a su fin la secuencia anterior, debiendo transcurrir entre dos demandas un mnimo de sesenta y ocho
segundos, (peticin memorizada).
Un cuadro luminoso, rojo, situado cerca del pulsador, con el texto, ESPERE, debe activarse, cuando se haya
hecho una solicitud de paso y no se pueda pasar, desactivndose cuando empiece a ser atendida la
demanda por darse las condiciones de paso peatonal.
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Tabla de variables
Smbolo
Direccin
Etiqueta en Tipo Comentarios
en PLC
los planos
Ix_Pulsador S1 %I0.1.0 EBOOL Inicio de ciclo
Mx_IniCiclo
Mx_PeticionPaso
Mx_Oscilador2hz
Universidad de Oviedo Problemas M340 - 73
ISA
Programa en ST - (pr0302)
Seccin "Control"
Cuando se activa el pulsador de peatones se memoriza la peticin, comenzando el ciclo y no permite que se
reinicie hasta que no termine el ciclo anterior. Cuando se permite pasar al peatn, luz verde, se borra la
peticin, pero si hay otra peticin cuando la luz roja de peatones est encendida, se vuelve a memorizar
para atenderla cuando termine el ciclo en curso.
(*Generacin de seales*)
Mx_Pulsador := (Ix_Pulsador and Ix_LocDist) or(MxP_Pulsador and not Ix_LocDist);
IF Mx_Pulsador THEN
SET (Mx_PeticionPaso);
ELSIF NOT Qx_LrojaPe THEN (*cuando se apaga la luz roja de los peatones reseteamos la PP*)
RESET (Mx_PeticionPaso);
END_IF;
(* 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);
Qx_LEspere:=Mx_PeticionPaso;
Pantalla de operador
Universidad de Oviedo Problemas M340 - 75
ISA
Funciones de contador
Contador ascendente
Los bloques de funcin se utilizan para el conteo progresivo.
En caso de seal "1" en la entrada R se asigna el valor "0" a la salida CV. Con cada paso de "0" a "1" en la
entrada CU, el valor de CV aumenta en 1. Si CV PV, la salida Q se convierte en "1".
Como parmetros adicionales se pueden configurar EN y ENO.
Nota: El contador slo funciona hasta alcanzar los valores mximos del tipo de datos utilizado. No se
produce ningn desborde.
Representacin en lenguaje ST
CTU_Instance (CU := (*BOOL*),
R := (*BOOL*),
PV := (*INT*),
Q => (*BOOL*),
CV => (*INT*));
Universidad de Oviedo
76 - Problemas M340 ISA
Contador descendente
Los bloques de funcin se utilizan para el conteo regresivo.
En caso de seal "1" en la entrada LD se asigna el valor de la entrada PV a la salida CV. Con cada paso de "0"
a "1" en la entrada CD se reduce el valor de CV en 1. Si CV 0, la salida Q se convierte en "1".
Como parmetros adicionales se pueden configurar EN y ENO.
Nota: El contador slo funciona hasta alcanzar los valores mnimos del tipo de datos utilizado. No se
produce ningn desborde.
Representacin en lenguaje ST
CTD_Instance (CD := (*BOOL*),
R := (*BOOL*),
PV := (*INT*),
Q => (*BOOL*),
CV => (*INT*));
Universidad de Oviedo Problemas M340 - 77
ISA
Contador ascendente-descendente
Los bloques de funcin se utilizan para el conteo progresivo y regresivo.
En caso de seal "1" en la entrada R se asigna el valor "0" a la salida CV. En caso de seal "1" en la entrada
LD se asigna el valor de la entrada PV a la salida CV. Con cada paso de "0" a "1" en la entrada CU, el valor de
CV aumenta en 1. Con cada paso de "0" a "1" en la entrada CD se reduce el valor de CV en 1.
En caso de seal simultnea "1" en la entrada R y LD, la entrada R resulta ser dominante.
Si CV PV, la salida QU se establece en "1". Si CV 0, la salida QD se convierte en "1".
Como parmetros adicionales se pueden configurar EN y ENO.
Nota: El contador slo funciona hasta alcanzar los valores mnimos (contador regresivo) o los valores
mximos (contador progresivo) del tipo de datos utilizado. No se produce ningn desborde.
Representacin en lenguaje ST
CTUD_Instance (CU := (*BOOL*),
CD := (*BOOL*),
R := (*BOOL*),
LD := (*BOOL*),
PV := (*INT*),
QU => (*BOOL*),
QD => (*BOOL*),
CV => (*INT*));
Universidad de Oviedo
78 - Problemas M340 ISA
AB
SALA DE
Entrar
100
Salir
R PLAZAS
A
V AB
Disponemos de dos barreras luminosas a la entrada de la sala, "A" y "B", situadas de tal forma que al entrar
una persona en la sala, interrumpa primero la barrera "A" y luego la "B". La distancia fsica entre ellas es la
mnima, de manera que siempre se interrumpirn tambin simultneamente durante la entrada. De forma
semejante sucede cuando una persona sale de la sala. Primero interrumpir la barrera "B" y despus la "A".
Cuando en la sala tenemos menos de cien personas lo indicaremos activando la luz verde situada en la
entrada . Si se diera el caso de que en un momento determinado hubiera ms de cien personas y menos de
ciento diez, deber activarse la luz azul situada en la entrada. En el momento que entrara la persona ciento
diez ser la luz roja la que activaramos.
Dispondremos de un pulsador de reset para inicializar el contador a 0 en cualquier momento.
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo Problemas M340 - 79
ISA
Tabla de variables
Smbolo
Direccin
Etiqueta en Tipo Comentarios
en PLC
los planos
Ix_RearmaCont S1 %I0.1.0 EBOOL Rearma el contador a 0
MxP_RearmaCont BOOL
Mx_RearmaCont BOOL
MxP_SensorA BOOL
Mx_SensorA EBOOL
MxP_SensorB BOOL
Mx_SensorB EBOOL
Funcionamiento
El sensor nos dar una seal de dos canales A y B desfasados como se ve en la imagen
Canal A
Canal B
Cuando la persona entra, se interrumpe el sensor A y luego el B. La seal del flanco ascendente del B
cuando el sensor A est dando un 1, la utilizaremos para contar una persona el mvil va de izquierda a
derecha.
Cuando la persona sale, se interrumpe el sensor B y luego el A. La seal del flanco descendente del B
cuando el sensor A est dando un 1, la utilizaremos para descontar una persona el mvil va de derecha a
izquierda.
Universidad de Oviedo
80 - Problemas M340 ISA
Programa en ST - (pr0401b)
(*Generacin de seales*)
Mx_RearmaCont := (Ix_RearmaCont and Ix_LocDis) or(MxP_RearmaCont and not Ix_LocDis);
Mx_SensorA := (Ix_SensorA and Ix_LocDis) or(MxP_SensorA and not Ix_LocDis);
Mx_SensorB := (Ix_SensorB and Ix_LocDis) or(MxP_SensorB and not Ix_LocDis);
(* Programamos el contador *)
Mx_Entra:=Mx_SensorA AND RE (Mx_SensorB);
Mx_Sale:=Mx_SensorA AND FE (Mx_SensorB);
Pantalla de operador
Universidad de Oviedo Problemas M340 - 81
ISA
Realizar un programa para que mediante dos pulsadores podamos modificar el contenido de un contador
reversible (C0).
Mediante el pulsador "Incrementa" podemos incrementar el contador de unidad en unidad en cada
pulsacin. Si queremos aumentar de manera ms rpida el contenido del contador debemos mantener
pulsado durante ms de dos segundos, momento en el cual el contador se modificar a una velociadad de
cuatro unidades por segundo.
Con el pulsador "Decrementa" se realiza el decremento de forma similar al modo anterior.
Si se pulsan los dos pulsadores a la vez, se reiniciar el valor actual del contador a 0.
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Tabla de variables
Smbolo
Direccin
Etiqueta en Tipo Comentarios
en PLC
los planos
Ix_Incrementa S1 %I0.1.0 EBOOL Pulsador para incrementar el contador
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;
(* Programamos el oscilador de 4 Hz *)
t_Temp_2S (IN:=Mx_Incrementa or Mx_Decrementa, PT:=t#2s);
t_Temp_Osc4HZ (IN:=t_Temp_2S.Q and not t_Temp_Osc4HZ.Q, PT:=t#250ms);
Mx_Osc4hz:= t_Temp_Osc2HZ.ET >t#125ms;
Pantalla de operador
Universidad de Oviedo Problemas M340 - 85
ISA
GRAFCET - SFC
Cuando se acciona el pulsador "P" y est abierto, ha de iniciar la maniobra de cierre y no interrumpir
sta hasta que el portn accione el final de carrera "C" (CERRADO).
De forma anloga, si, durante la maniobra de cierre, se acciona el pulsador "P", el portn debe
pararse, permaneciendo en este estado hasta que se produzca un nuevo accionamiento del pulsador
"P", momento en el cual debe proceder a la maniobra de apertura.
c) Efectuar las modificaciones adecuadas respecto al desarrollo obtenido en el apartado b, para que, una
vez dada la orden de parada al portn, ste no permanezca en este estado indefinidamente, sino que,
una vez transcurridos diez segundos, reanude la marcha que tena en el momento en que se haba
parado. Si, antes de transcurridos los diez segundos, se acciona el pulsador "P", el portn debe
deshacer la maniobra previa. El portn estar abierto un mximo de 30 segundos.
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Tablas de variables
Smbolo
Direccin
Etiqueta en Tipo Comentarios
en PLC
los planos
Ix_Pulsador S1 %I0.1.0 EBOOL Pulsador para abrir el portn
MxP_Pulsador BOOL
Mx_Pulsador EBOOL
Mx_FlancoPul BOOL
MxP_Fca BOOL
Mx_Fca BOOL
MxP_Fcc BOOL
Mx_Fcc BOOL
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);
Qx_Abrir
S_Abrir
Mx_Fca
S_Abierto
Mx_Pulsador
Qx_Cerrar
S_Cerrar
Mx_Fcc
Para introducir una etapa inicial, introduciremos una etapa normal y clicaremos en la casilla de verificacin
que indica "Paso inicial".
Universidad de Oviedo
88 - Problemas M340 ISA
Las acciones asociadas a las etapas las programamos en la seccin de salidas. Haremos esto de esta forma y
no emplearemos los descriptores asociados a las etapas, por ergonomia. Si no, para ver las acciones
asociadas deberamos entrar en cada etapa y abrir la ventana correspondiente.
Las receptividades asociadas a las transiciones, si son variables sencillas, las introduciremos en la ventana
que aparece cuando clicamos en el smbolo de transicin.
Universidad de Oviedo Problemas M340 - 89
ISA
Si son variables ms complejas lo mejor es asignar a la receptividad una variable p.e. "Tran_2_3" indicando
en el nombre de la variable, de que etapa salimos, y a que etapa vamos. Como valor de esa variable le
asignamos la receptividad necesaria.
Por ejemplo ver el GRAFCET del problema 5.2, pgina 73
Tran_0_4:= Mx_Sensor2 and not Mx_Sensor1;
Tran_3_0:= Mx_SensorSal and not Mx_Sensor2;
Tran_5_6:=Etapa5.t > t#3s;
Seccin en ST "Salidas"
Qx_Abrir := S_Abrir.x;
Qx_Cerrar := S_Cerrar.x;
Seccin en ST IniciaVariables
Mx_FlancoPul
(* Generacin de las memorias que se utilizan en el programa *)
Mx_Pulsador:= (Ix_Pulsador and Ix_LocDis) or(MxP_Pulsador and not Ix_LocDis); QX_Abrir
Mx_FlancoPul:= re (Mx_Pulsador);
Mx_Fca Mx_FlancoPul
MxP_Fcc:=True;
end_if;
Mx_FlancoPul Mx_FlancoPul
Seccin en SFC (GRAFCET) "Chart"
Qx_Cerrar
S_Cerrar
Mx_Fcc Mx_FlancoPul
Seccin en ST "Salidas"
Qx_Abrir:=S_Abrir.x;
S_ParadoCer
Qx_Cerrar:=S_Cerrar.x;
Mx_FlancoPul
Seccin "Salidas"
Qx_Abrir:=S_Abrir.x;
Qx_Cerrar:=S_Cerrar.x;
Universidad de Oviedo Problemas M340 - 93
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.
Universidad de Oviedo Problemas M340 - 95
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 SALIDA
PLANTA 2 S2
SF2
Universidad de Oviedo
96 - Problemas M340 ISA
Tablas de variables
Seccin IniciaVariables
(* Generacin de las memorias que se utilizan en el programa *)
Mx_Sensor1 := (Ix_Sensor1 and Ix_LocDis) or(MxP_Sensor1 and not Ix_LocDis);
Mx_Sensor2 := (Ix_Sensor2 and Ix_LocDis) or(MxP_Sensor2 and not Ix_LocDis);
Mx_SensorSal := (Ix_SensorSal and Ix_LocDis) or(MxP_SensorSal and not Ix_LocDis);
Seccin Salidas
Qx_P1Rojo:= NOT Qx_P1Verde;
Qx_P1Verde:= Etapa1.x OR Etapa2.x;
Qx_P2Rojo:= NOT Qx_P2Verde;
Qx_P2Verde:= Etapa4.x OR Etapa5.x;
Universidad de Oviedo Problemas M340 - 97
ISA
Tran_0_4
Mx_Sensor2
and not
Mx_Sensor1 Tran_0_4 Mx_Sensor1
Qx_P1 Verde
Qx_P2 Rojo
Etapa1
Qx_P1 Rojo
Qx_P2 Verde
Etapa4
NOT Mx_Sensor1
Qx_P1 Verde
Qx_P2 Rojo
Etapa2
NOT Mx_Sensor2
Tran_3_4
Mx_SensorSal
and
Mx_Sensor2 Mx_SensorSal
Seccin "Transiciones"
Crear secciones de transiciones y despus abrir cada una de ellas para ver el cdigo o pegarlo en word, es
bastante incmodo. Por ello, lo que vamos a hacer es asignarle a cada transicin una variable y a esta le
asignaremos la receptividad adecuada.
Pantalla de Operador
Universidad de Oviedo Problemas M340 - 99
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.
F1
S1E
PLANTA 1 S1
S
SSal
F2
S
S2
S2E
PLANTA 2
Universidad de Oviedo
100 - Problemas M340 ISA
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 Problemas M340 - 101
ISA
Pantalla de Operador
Universidad de Oviedo
102 - Problemas M340 ISA
PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo Problemas M340 - 103
ISA
Tablas de variables
Mx_Flanco_DLL := RE(Mx_DetLluvia);
Seccin Transiciones
Tran_1 := S_Paro1.t >= t#5s and Mx_ST5 or S_Paro1.t >= t#2s and Mx_ST2 or S_Paro1.t >= t#1s and
Mx_ST1;
Tran_2 := Mx_Flanco_DLL and not Mx_BarrCont and not Mx_BarrRet;
Tran_3 := S_Paro2.t > t#2.5s or Mx_BarrRet;
Tran_4 := Mx_DetLluvia and not Mx_Flanco_DLL and not Mx_BarrCont and not Mx_BarrRet;
Seccin Salidas
Qx_MotIzq := S_IzdaBCont.x or S_IzdaBRet.x;
Qx_MotDer := S_DchaBCont.x or S_DchaBRet.x;
Pantalla de Operador
Universidad de Oviedo Problemas M340 - 105
ISA
Seccin GRAFCET
Universidad de Oviedo
106 - Problemas M340 ISA
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.
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo Problemas M340 - 107
ISA
Tablas de variables
Seccin en ST "Salidas"
Qx_AbrirA:=Etapa1.x;
Qx_AbrirB:=Etapa2.x;
Qx_Calentar:=Etapa3.x;
Qx_Vaciar:=Etapa4.x;
Qx_Motor:=Etapa2.x or Etapa3.x;
Universidad de Oviedo Problemas M340 - 109
ISA
Seccin en ST "Simulacin"
(* Esta parte del programa es necesaria para la correcta visualizacin de la simulacin de la planta *)
Mx_Osc1:=T1.ET>T#250ms;
Dado que la etapa NombreEtapa permanece activada mientras el procedimiento SETSTEP se est
ejecutando, deber tomarse una de las siguientes medidas para impedir un establecimiento o activacin
permanente de la etapa:
Llamada condicional del procedimiento SETSTEP a travs de la entrada EN, en los lenguajes de
programacin FBD y LD.
Llamada condicional del procedimiento SETSTEP a travs, por ejemplo, de la instruccin IF en el
lenguaje de programacin ST.
Utilizacin de reconocimiento de flancos (RE) en la entrada.
NOTA: El procedimiento slo se puede ajustar en la modalidad de servicio "Multi-Token" (ver apndice B).
Dado que la etapa NombreEtapa permanece desactivada mientras el procedimiento RESETSTEP se est
ejecutando (el procedimiento se ejecuta de forma cclica), deber tomarse una de las siguientes medidas
para impedir que la etapa se desactive permanentemente:
Llamada condicional del procedimiento RESETSTEP a travs de la entrada EN, en los lenguajes de
programacin FBD y LD.
Llamada condicional del procedimiento SETSTEP a travs, por ejemplo, de la instruccin IF en el
lenguaje de programacin ST.
Utilizacin de reconocimiento de flancos (R_TRIG) en la entrada.
Si se desactiva ("restablece") el ltimo/nico paso de la secuencia, sta slo se podr volver a iniciar a
travs del bloque de funciones SFCCNTRL (entrada INIT), la funcin INITCHART, el procedimiento SETSTEP u
otro comando de activacin de pasos (desde el exterior).
NOTA: El procedimiento slo se puede ajustar en la modalidad de servicio "Multi-Token" (ver apndice B).
Universidad de Oviedo
112 - Problemas M340 ISA
if Mx_PonCI then
(*con Mx_PonCI a 1, ejecutamos la subrutina para poner al sistema en Condiciones Iniciales*)
Reset (Qx_LuzRoja);
IniciaSistema();
end_if;
if Mx_PuestoEnCI then
Mx_IniciaChart:= INITCHART (Prueba,false);
(*ahora permite evolucionar el GRAFCET porque el bit de control es 0*)
reset (Mx_EnParo);
reset (Mx_PuestoEnCI); (*borramos esta memoria para que no se vuelva a ejecutar ste cdigo*)
end_if;
if MxP_Marcha then
reset (Mx_EnParo);
MX_Freeze:= Freezechart(Prueba,false);
(*con esta instruccin descongelamos el GRAFCET. Ahora ya puede evolucionar *)
end_if;
Salidas
If Etapa0.x then
reset (Qx_LuzRoja);
end_if;
If Etapa1.x then
set (Qx_LuzRoja);
end_if;
Universidad de Oviedo Problemas M340 - 113
ISA
Subrutina IniciaSistema
(*Mientras que Mx_PonCI est en 1, ejecutamos la subrutina para poner al sistema en CI
Se pondra al sistema en CI p.e. bajariamos una barrera, calentaramos un lquido, etc.
Cuando el sistema est en CI una serie de variables estarn a 1 informandonos de ello, vamos a suponer
que es cuando MxP_IniciaSisEnSR est a 1*)
If MxP_IniciaSisEnSR then
Mx_IniciaChart:= INITCHART (Prueba,true);
(*cuando ya est en CI, se borra automticamente todo el GRAFCET, lo sita en la etapa inicial como activa
pero no la permite evolucionar hasta que el bit de control sea 0 y borra automaticamente el bit
Mx_PonCI*)
set (Mx_PuestoEnCI);
end_if;
Disear el esquema de mando, el esquema de fuerza y el programa de control que realice la apertura y
cierre de un portn del modo siguiente:
Inicialmente el portn podr estar abierto, cerrado o en una posicin intermedia.
Cuando se pulse el Rearme el portn proceder a ponerse en CI, esto es, se cerrar y a partir de esa
situacin podr evolucionar normalmente.
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo Problemas M340 - 115
ISA
Tablas de variables
Seccin "IniciaVariables"
(*Inicializacin de la pantalla de operador*)
If %S13 then
set(MxP_Paro); (*Ponemos el Pulsador de Paro inicialmente cerrado en la pantalla*)
end_if;
Universidad de Oviedo
116 - Problemas M340 ISA
Seccin "Preliminar"
Mx_PonCI:= CLEARCHART (Control, RE(Mx_Rearme));
(*con el flanco del pulsador de Rearme, borramos todas las etapas activas del GRAFCET Control y se pone
automticamente a 1 la variable Mx_PonCI*)
If Mx_PonCI then
Sr_CerrarPorton();
end_if;
If Mx_EnParo then
Mx_Congelado:= FREEZECHART(Control, true);
ELSE Mx_Congelado:= FREEZECHART(Control, false);
end_if;
If Mx_Pulsador then
reset (Mx_EnParo);
end_if;
Universidad de Oviedo Problemas M340 - 117
ISA
Etapa0
False
(*Portn
Cerrado*)
Etapa1
Mx_Pulsador
Qx_Abrir
Etapa2
Mx_FCA
Etapa3
Mx_Pulsador
Qx_Cerrar
Etapa4
Mx_FCC
Seccin "Salidas"
Qx_Abrir:= ((Etapa2.x and not Mx_EnParo) or Mx_Abrir) and not Qx_Cerrar;
Qx_Cerrar:= ((Etapa4.x and not Mx_EnParo) or Mx_Cerrar) and not Qx_Abrir;
Universidad de Oviedo
118 - Problemas M340 ISA
Subrutina Sr_CerrarPortn
If not Mx_FCC then
reset (Mx_Abrir);
set (Mx_Cerrar);
ELSE Reset (Mx_Cerrar);
end_if;
If Mx_FCC then
set(Mx_PuestoCI);
Reset (Mx_PonCI);
end_if;
Pantalla de Operador
Universidad de Oviedo Problemas M340 - 119
ISA
PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM16025.
Las entradas irn alimentadas a 24 VDC y las salidas a 220 VCA.
Esquema de fuerza
a1 b0 b1
A- A+ B+
Seta de emergencia
0
Universidad de Oviedo
120 - Problemas M340 ISA
Esquema de mando
Universidad de Oviedo Problemas M340 - 121
ISA
Tablas de variables
If RE(Mx_Rearme) then
reset (MxP_B1);
set (MxP_B0);
end_if;
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 Mx_EnParada then
SequenceFreezed := FREEZECHART (Control,true);
(*Congela el Grafcet dejando activa la etapa en la que estaba y por tanto las salidas asociadas*)
else SequenceFreezed := FREEZECHART (Control,false); (* Descongela el Grafcet *)
end_if;
if Mx_Marcha then
reset (Mx_EnParada);
end_if;
Seccin "Salidas"
Qx_Bmas:= Etapa2.x or Etapa3.x or Etapa4.x;
Qx_Amas:= Etapa4.x or Etapa1.x;
Qx_Amenos:= Etapa3.x;
Qx_Lroja:= (Etapa0.x and Mx_Osc2hz) or Mx_EnParada;
Qx_Lverde:= ((Etapa1.x and Mx_Osc2hz) or Etapa2.x or Etapa3.x or Etapa4.x or Etapa5.x) and not
Mx_EnParada;
Seccin "Transicines"
Tran_3_4:= Etapa3.T >= t#5s;
Tran_1_2:= Mx_Marcha and Mx_A1 and Mx_B0;
Universidad de Oviedo Problemas M340 - 123
ISA
Seccin GRAFCET
(* Sistema parado *)
Luz Verde apagada
Etapa0
Luz Roja 2 Hz
false
(* Sistema parado *)
Luz Verde 2Hz
Etapa1
A+
Tran_1_2
Mx_Marcha
and Mx_A1
and Mx_B0 Tran_1_2
B+
LVerde
Etapa2
Mx_B1
B+
A-
Etapa3
LVerde
Tran_3_4
Etapa3.T>=
t#5s
Tran_3_4
B+
A+
Etapa4
LVerde
Mx_A1
Mx_B0
Universidad de Oviedo
124 - Problemas M340 ISA
Pantalla de Operador
Universidad de Oviedo Problemas M340 - 125
ISA
Cuando queramos sacar uno en la pantalla de operador, introduciremos un texto haciendo uso del icono
correspondiente de la barra IOSEditor.
Podremos animarlo para que surja cuando se active una determinada variable dentro de la pestaa
"Animacin". Posteriormente elegiremos el mensaje en la pestaa "Tipo de animacin".
Universidad de Oviedo
126 - Problemas M340 ISA
B1
S1S
PLANTA 1
S1E SALIDA
PLANTA 2 S3
S2S
B2
S2E
PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Cuando cierre la barrera despus de pasar un coche, no sabemos si se activa primer el FCC o el
sensor que nos indica que rebas la barrera.
Universidad de Oviedo Problemas M340 - 127
ISA
Tablas de variables
Universidad de Oviedo
128 - Problemas M340 ISA
IF Mx_Rearme THEN
RESET (Mx_PEv);
END_IF;
Universidad de Oviedo Problemas M340 - 129
ISA
IF Mx_PonCI THEN
Sr_CerrarBarreras(); (* Se ejecuta la subrutina que cierra las barreras *)
END_IF;
(*Si estuvisemos en lenguaje FBD, deberamos pulsar sobre el 5 icono de la barra FBD-Editor, saldra el
smbolo de la figura que rellenaramos con el valor adecuado *)
Subrutina Sr_CerrarBarreras
IF NOT Mx_Fcc_b1 THEN
SET (Mx_Cerrar_b1);
ELSE
RESET (Mx_Cerrar_b1);
END_IF;
Seccin "Transiciones"
Tran_0_8:= Mx_S2E and Mx_PEv and not Mx_S1E;
Tran_0_1:= Mx_S1E and Mx_PEv;
Seccin "Salidas"
Qx_Abrir_b1 := Etapa1.x;
Qx_Cerrar_b1 := Etapa3.x or Mx_cerrar_b1;
Qx_Abrir_b2 := Etapa8.x;
Qx_Cerrar_b2 := Etapa10.x or Mx_cerrar_b2;
Universidad de Oviedo
130 - Problemas M340 ISA
SFC (GRAFCET)
Etapa0
Tran_0_1 Tran_0_8
Mx_S1E and Mx_S2E and
Mx_PEv Mx_PEv and
Tran_0_1 Tran_0_8 not Mx_S1E
Abrir B1 Abrir B2
Etapa1 Etapa8
Mx_Fca_b1 Mx_Fca_b2
Etapa2 Etapa9
Mx_S1S Mx_S2S
Etapa 3 Etapa 10
Cerrar B1 Cerrar B2
Etapa3 Etapa4 Etapa10 Etapa11
true true
Etapa7
Pantalla de Operador
Seccin "Control_Pantalla"
(* Generacin de las memorias que se utilizan en la pantalla de operador*)
(* Este trozo de cdigo slo es til para hacer la animacin agradable, no para controlar el proceso *)
Mx_NoFC_b1 := not Mx_Fca_b1 and not Mx_Fcc_b1;
Mx_NoFC_b2 := not Mx_Fca_b2 and not Mx_Fcc_b2;
IF Mx_Rearme THEN
SET (Mx_coches12_entrada);
RESET (Mx_coches12_salida);
SET (Mx_coches34_entrada);
RESET (Mx_coches34_salida);
END_IF;
Universidad de Oviedo
132 - Problemas M340 ISA
Mx_Flanco_1E := FE(Mx_S1E);
IF Mx_Flanco_1E THEN
IF Mx_coches12_entrada and not Mx_coches12_salida THEN
RESET (Mx_coches12_entrada);
SET (Mx_coches12_salida);
RESET (Mx_Flanco_1E);
END_IF;
END_IF;
IF Mx_Flanco_2E THEN
IF Mx_coches34_entrada and not Mx_coches34_salida THEN
RESET (Mx_coches34_entrada);
SET (Mx_coches34_salida);
RESET (Mx_Flanco_2E);
END_IF;
END_IF;
IF Mx_Flanco_2E THEN
IF not Mx_coches34_entrada and Mx_coches34_salida THEN
SET (Mx_coches34_entrada);
RESET (Mx_coches34_salida);
RESET (Mx_Flanco_2E);
END_IF;
END_IF;
.
S.E
S.P.
DA
RA
EN
TR E NT
AD
A
SE
G SEC
FCA
100 PLAZAS
FCC SS
A C
ALID SA
LID
S
A
G
SS
S.S.
a) Para que un vehculo pueda entrar tiene que tener plaza de aparcamiento, lo cual, se indicar
mediante la activacin del foco azul (salida = "1" ). El nmero de plazas de que dispone el
aparcamiento es de cien. Adems no tienen que tener permiso de paso los peatones.
La demanda de entrada se hace mediante el lazo "SEC". Cuando ste se active, caben las opciones
siguientes:
Si "SE" se halla en verde, el vehculo entrar y contabilizar en uno ms el nmero de vehculos
estacionados en el interior del garaje cuando active el lazo sensor "SEG".
Si "SE" se halla en rojo, debido a que se encuentra saliendo otro vehculo, deber esperar a que el
vehculo que sale active el lazo sensor de salida "SSC". A partir de este momento se har efectiva la
demanda de entrada.
Si cuando se produce la demanda de entrada el semforo de peatones se halla en verde, el vehculo
que ha efectuado la demanda de entrada, debe permanecer en espera hasta que las condiciones le
Universidad de Oviedo
134 - Problemas M340 ISA
permitan entrar.
b) La demanda de salida se hace mediante el lazo sensor "SSG". Cuando ste se active, caben las opciones
siguientes:
Si "SS" se halla en verde, saldr y descontar en uno el nmero de vehculos estacionados en el interior
del garaje cuando se active el lazo sensor "SSC".
Si "SS" se halla en rojo, debido a que se encuentra entrando otro vehculo, deber esperar a que el
vehculo que entra active el lazo sensor de entrada "SEG". A partir de este momento se har efectiva la
demanda de salida.
Si cuando se produce la demanda de salida el semforo de peatones se halla en verde, el vehculo que
ha efectuado la demanda de salida, debe permanecer en espera hasta que las condiciones le permitan
salir.
c) ANTE UNA DEMANDA DE ENTRADA Y SALIDA SIMULTNEA , LA SALIDA ES SIEMPRE PRIORITARIA.
d) El portn se abrir ante una demanda de entrada o de salida, cuando ste accione el final de carrera
de apertura "C", activar la luz verde del semforo que corresponda con la demanda de apertura
solicitada. A su vez el cierre del mismo se llevar a efecto una vez se active el lazo sensor
correspondiente, segn corresponda a una entrada (SEG) o una salida (SSC).
Si se halla en verde el semforo de peatones el portn debe permanecer cerrado como medida de
seguridad.
e) El paso de peatones lo regula el semforo "SP", ste se rige por una secuencia fija de 20 s.. en verde y
40 s.. en rojo. Este semforo, controla a su vez a los otros dos, ya que tienen que sincronizarse con l.
Se dispondr de un pulsador para resetear el sistema y llevarlo a las Condiciones Iniciales con el portn
cerrado.
PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Cronograma
Semforo de Peatones
Qx_SPVerde
20 60
seg.
Qx_SPRojo
40
Mx_PA
24 54 seg.
Universidad de Oviedo Problemas M340 - 135
ISA
Tablas de variables
Universidad de Oviedo
136 - Problemas M340 ISA
Tran_0_1 Tran_0_6
Mx_SSGaraje and Mx_PA not Mx_SSGaraje and
Mx_SECalle and Mx_PA and
Tran0_1 Tran0_6 Contador.CV < 100
SE Rojo SE Rojo
SS Rojo SS Rojo
Etapa1 Etapa6
Abrir Abrir
Mx_FCA Mx_FCA
SE Rojo SE Verde
SS Verde SS Rojo
Etapa2 Etapa7
SE Rojo SE Rojo
SS Rojo SS Rojo
Etapa3 Etapa8
Mx_SSCalle Mx_SEGaraje
SE Rojo SE Rojo
SS Rojo SS Rojo
Etapa4 Etapa9
Dec Contador Inc Contador
Tran4_2 SE Rojo
Mx_SSGaraje and SS Rojo
Etapa5
Mx_PA Cerrar
Tran4_5 Tran4_7
(not Mx_SEntCalle and Mx_SEntCalle and
not Mx_SSalGaraje) or Mx_PermApertura and
not Mx_PermApertura not Mx_SSalGaraje
Seccin "Transiciones"
Tran0_1:= Mx_SSGaraje and Mx_PermApertura;
Tran4_2:= Mx_SSGaraje and Mx_PermApertura;
Tran4_5:= (not Mx_SECalle and not Mx_SSGaraje) or not Mx_PermApertura;
Tran4_7:= Mx_SECalle and Mx_PermApertura and not Mx_SSGaraje;
Tran0_6:= not Mx_SSGaraje and Mx_SECalle and Mx_PermApertura and Contador.CV < 100;
Tran9_2:= Mx_SSGaraje and Mx_PermApertura;
Tran9_5:= (not Mx_SECalle and not Mx_SSGaraje) or not Mx_PermApertura;
Tran9_7:= not Mx_SSGaraje and Mx_SECalle and Mx_PermApertura and Contador.CV < 100;
Universidad de Oviedo Problemas M340 - 137
ISA
Preliminar
(*Generacin de seales*)
Mx_FCA := (Ix_FCA and Ix_LocDist) or(MxP_FCA and not Ix_LocDist);
Mx_FCC := (Ix_FCC and Ix_LocDist) or(MxP_FCC and not Ix_LocDist);
Mx_Rearme := (Ix_Rearrme and Ix_LocDist) or(MxP_Rearme and not Ix_LocDist);
Mx_SECalle := (Ix_SECalle and Ix_LocDist) or(MxP_SECalle and not Ix_SECalle);
Mx_SSCalle := (Ix_SSCalle and Ix_LocDist) or(MxP_SSCalle and not Ix_SSCalle);
Mx_SEGaraje := (Ix_SEGaraje and Ix_LocDist) or(MxP_SEGaraje and not Ix_SEGaraje);
Mx_SSGaraje := (Ix_SSGaraje and Ix_LocDist) or(MxP_SSGaraje and not Ix_SSGaraje);
IF %S13 THEN (* S13 Se pone a 1 en el primer ciclo de programa, y slo en el primero, despus de STOP
cuando el autmata pasa a RUN *)
ClearState := CLEARCHART (Control,true); (* Anula el grafcet *)
END_IF;
IF RE (Mx_Rearme) THEN
RESET (Mx_IniCiclo);
END_IF;
IF Mx_PonCI THEN
Sr0 (); (* ejecuta la subrutina que pone en condiciones iniciales *)
END_IF;
Posterior
(*Portn*)
Qx_Abrir:= Etapa1.x OR Etapa6.x;
Qx_Cerrar:= Etapa5.x OR Mx_Cerrar;
(*Semforo de peatones*)
Qx_SPVerde:= Mx_IniCiclo AND t_Temporizador.ET <= t#20s;
Qx_SPRojo:= Mx_IniCiclo AND NOT Qx_SPVerde;
(*Semforo de entrada*)
Qx_SEVerde:= Etapa7.x;
Qx_SERojo:= NOT Qx_SEVerde;
Qx_SEAzul:= Contador.CV <100;
(*Semforo de salida*)
Qx_SSVerde:= Etapa2.x;
Qx_SSRojo:= NOT Qx_SSVerde;
(*Contador*)
Contador (CU := Mx_SEGaraje,
Universidad de Oviedo
138 - Problemas M340 ISA
CD := Mx_SSCalle,
R := Mx_Rearme);
(* Marca generada para saber cuando se est moviendo el portn en la pantalla de operador *)
Mx_PortonMoviendose:= Etapa1.x or Etapa5.x or Etapa6.x ;
Subrutina "Sr0"
IF NOT Mx_FCC THEN
SET (Mx_cerrar);
ELSE RESET (Mx_Cerrar);
END_IF;
IF Mx_FCC THEN
SET (Mx_PuestoCI);
RESET (Mx_PonCI);
END_IF;
Pantalla de Operador
Universidad de Oviedo Problemas M340 - 139
ISA
SE PIDE: Esquema de mando y de fuerza con todos los elementos necesarios y el programa de control.
Universidad de Oviedo
140 - Problemas M340 ISA
Tabla de variables
Universidad de Oviedo Problemas M340 - 141
ISA
If S_Espera.x then
reset (MxP_PiezaPlastico);
reset(MxP_PiezaMetal);
end_if;
If S_Amas_2.x then
reset (MxP_S_Capacitivo); reset (MxP_S_Inductivo);
end_if;
If S_Retardo_2.x then
reset (MxP_S_Capacitivo);
end_if;
(* Condicin de Rearme *)
Mx_PonCI := clearchart (Control, RE(Mx_Rearme)); (* con el flanco ascendente del pulsador de rearme,
reseteamos el GRAFCET de control y ponemos a 1 la variable Mx_PonCI *)
if Mx_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 Mx_EnParada then
Mx_ParoGrafcet := freezechart (Control,true); (* Congela el Grafcet, dejando activa la etapa en la
que queda congelado *)
else Mx_ParoGrafcet := freezechart (Control,false);
end_if;
if Mx_Marcha then
reset (Mx_EnParada);
end_if;
Seccin "Transiciones"
Tran1:= Mx_Marcha and Mx_a0 and Mx_b0;
Tran2:= S_Identifica.t > t#3s and not Mx_S_Inductivo;
Tran3:= S_Retardo_2.t > t#1s;
Tran4:= S_Identifica.t > t#3s and Mx_S_Inductivo;
Tran5:= S_Retardo_3.t > t#1s;
Seccin "Salidas"
Qx_Amas:= S_Amas_1.x or S_Amas_2.x or S_Retardo_2.x or S_Retardo_3.x;
Qx_Bmas:= S_Bmas.x;
Qx_Bmenos:= S_Bmenos.x or (S_inicio.x and not Mx_S_Capacitivo and not Mx_bo) or Mx_Bmenos; (*La
segunda condicn se debe al rearme y se debe asegurar la ausencia de pieza*);
Qx_L_Roja:= (S_Rearme.x and %S6) or Mx_EnParada;
Qx_L_Verde:= ((S_Rearme.x and not %S6) or (not S_Rearme.x and not Mx_PonCi) and not Mx_EnParada);
Universidad de Oviedo Problemas M340 - 143
ISA
Subrutina "Sr_Inicializa"
(* Durante el rearme se debe asegurar la ausencia de pieza*)
if not Mx_b0 and not Mx_S_Capacitivo then
set (Mx_Bmenos);
else reset (Mx_Bmenos);
end_if;
Pantalla de Operador
Universidad de Oviedo
144 - Problemas M340 ISA
Grafcet de mando
Luz Roja y Verde a 1Hz alternativamente
Esperamos la pulsacin de REARME
S_Rearme
false
Luz Verde
Los cilindros estn en sus posiciones iniciales
S_Inicio
S_Espera
Mx_S_Capacitivo
Mx_a1 Mx_b1
Tran 3
S_Retardo_2.t > t#1s;
Tran3 Mx_a1
Tran5
S_Retardo_3.t > t#1s;
Mx_a0 Tran5
Recoger el vstago A
S_Espera S_Amenos_2
Mx_a0
Mx_b0
S_Espera
Universidad de Oviedo Problemas M340 - 145
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 -derecha-
indicndolo un FC_DESCARGA (NC). Se descargar (durante 5 minutos) y volver a la posicin de inicio.
Durante este proceso de rearme, se encender la luz verde a 1 Hz y se apagar la luz roja.
Alcanzada mediante este procedimiento la posicin inicial, cuando se active el pulsador de MARCHA, la luz
verde lucir de forma fija y se llevar a cabo el proceso que se describe a continuacin:
Se proceder a abrir el silo mediante la apertura de la vlvula V_SILO, permitiendo la descarga de material
y llevando a cabo el llenado del vagn. Solamente ser posible la apertura de V_SILO si el vagn se
encuentra en la posicin de inicio totalmente descargado y se ha procedido a accionar el pulsador
MARCHA.
Si el llenado del vagn no se completa en menos de 10 minutos debe procederse al cierre de la vlvula del
silo y el vagn deber llevarse a la zona de descarga. En esta zona de descarga, el vagn verter su
contenido abriendo la vlvula V_VAGON durante 5 minutos. Transcurridos estos 5 minutos, el vagn
deber retroceder a la posicin inicial.
Si se ha realizado el llenado del vagn en menos de 10 minutos, este deber avanzar hacia la zona de
descarga. De idntica forma a la descrita anteriormente, verter su contenido durante 5 minutos y volver
a la posicin inicial.
Cuando se active el pulsador de PARO (NC) se mantendr la configuracin que tuviese y no podr volver a
arrancar hasta que se active el pulsador de MARCHA, la luz roja estar encendida y la luz verde apagada.
SE PIDE: Esquema de mando y de fuerza con todos los elementos necesarios y el programa de control.
Universidad de Oviedo
146 - Problemas M340 ISA
Tabla de variables
Universidad de Oviedo Problemas M340 - 147
ISA
(* Condicin de Rearme *)
Mx_PonCI := clearchart (Control, RE(Mx_Rearme)); (*con el flanco ascendente del pulsador de rearme,
desactivamos el GRAFCET denominado Control y ponemos a 1 la variable Mx_PonCI*)
Mx_PonCI := clearchart (Rearme, RE(Mx_Rearme)); (*con el flanco ascendente del pulsador de rearme,
desactivamos el GRAFCET denominado Rearme y ponemos a 1 la variable Mx_PonCI*)
if Mx_PuestoCI then (*se activa el GRAFCET principal de Control en la etapa 1 que corresponde al estado
de condiciones iniciales y se liberan las acciones de salida*)
setstep(Etapa1); (*se borra automaticamente la variable Mx_PonCi*)
reset(Mx_PuestoCI);
end_if;
if Mx_EnParada then
Mx_ParoGrafcet := freezechart (Control,true);
(* Congela el Grafcet, dejando activa la etapa en la que queda congelado *)
else Mx_ParoGrafcet := freezechart (Control,false);
end_if;
if Mx_Marcha then
reset (Mx_EnParada);
end_if;
Universidad de Oviedo
148 - Problemas M340 ISA
Seccin "Transiciones"
Tran_1_2 := Mx_Marcha and not Mx_FCInicio and Mx_Vacio;
Tran_2_3 := Mx_Lleno or Etapa2.t>t#10s;
Tran_4_5 := Etapa4.t>t#10s;
Tran_12_13 := Etapa12.t>t#10s;
Seccin "Salidas"
Qx_LRoja := (Etapa0.x and %S6) or Mx_EnParada; (*El bit S6, es un bit del sistema que oscila a 1 Hz *)
Qx_LVerde := (((Etapa0.x and not %S6) or (Etapa1.x or Etapa2.x or Etapa3.x or Etapa4.x or Etapa5.x)) and
not Mx_EnParada) or ((Etapa11.x or Etapa12.x or Etapa13.x or Etapa14.x) and %S6);
Qx_VSilo := Etapa2.x and not Mx_EnParada;
Qx_Avance := (Etapa3.x or Etapa11.x) and not Mx_EnParada;
Qx_VVagon := (Etapa4.x or Etapa12.x) and not Mx_EnParada;
Qx_Retroceso := (Etapa5.x or Etapa13.x) and not Mx_EnParada;
Mx_PuestoCI := Etapa14.x;
Pantalla de Operador
Universidad de Oviedo Problemas M340 - 149
ISA
Etapa10
false
Qx_Avance
Qx_LVerde 1Hz
Etapa11
Not
Mx_FCDescarga
NOT Mx_FCDescarga
Qx_VVagn
Qx_LVerde 1Hz
Etapa12
Etapa12.t>5m
Tran_12_13
Qx_Retroceso
Qx_LVerde 1Hz
Etapa13
Not
Mx_FCInicio
NOT Mx_FCInicio
Mx_PuestoCI
Etapa14
Etapa1.x
Universidad de Oviedo
150 - Problemas M340 ISA
Seccin "ControlPantalla"
(* Marcas necesarias para gestionar la pantalla *)
MxP_Inicio_Avance:=not Mx_FCInicio and (Etapa3.x or Etapa11.x);
MxP_Inicio:=(Etapa1.x or Etapa2.x) and not MxP_Inicio_VagonSemiLleno and not MxP_Inicio_VagonLleno ;
if Etapa4.x then
MtP_TiempoDescarga:=Etapa4.t;
end_if;
if Etapa12.x then
MtP_TiempoDescarga:=Etapa12.t;
end_if;
if Etapa2.x then
MtP_TiempoLlenado:=Etapa2.t;
end_if;
Universidad de Oviedo Problemas M340 - 151
ISA
GRAFCETs Coordinados
CONTROL SUBPROCESO1 SUBPROCESO2
Cuando se quiere automatizar un proceso complejo, en vez de hacer un nico GRAFCET de control es
preferible dividir la tarea en subprocesos. Se estableceran unos GRAFCETs que controlen esos subprocesos
de forma que acten de forma coordinada cuando se lo indique un GRAFCET de control.
En el caso superior, el subproceso1, comenzar cuando el GRAFCET de control se encuentre con su etapa2
activa. Cuando se active denuevo la etapa inicial nmero 10, el GRAFCET de control seguir evolucionado
normalmente y pasar a activar la etapa3.
Cuando se active la etapa4, comenzar a ejecutarse el subproceso2 hasta que vuelva a activarse la etapa
inicial 20. En ese momento, el GRAFCET de control abandonar la etapa4 y activar la etapa5.
Otra forma de hacerlo con una etapa final en los subprocesos que no haga ninguna accin sera:
Universidad de Oviedo
152 - Problemas M340 ISA
PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo Problemas M340 - 153
ISA
Grafcet de mando
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;
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;
T_Ave_C1 (IN:= not Mx_Vig_C1 and Qx_Mot_c1 and T_Inh_vig.Q, PT:= t#1s); (* TON *)
if T_Ave_C1.q then
set(Mx_Av_C1);
end_if;
T_Ave_C2 (IN:= not Mx_Vig_C2 and Qx_Mot_c2 and T_Inh_vig.Q, PT:= t#1s); (* TON *)
if T_Ave_C2.q then
set(Mx_Av_C2);
end_if;
Pantalla de Operador
Universidad de Oviedo Problemas M340 - 157
ISA
Sobre el programa, nos situaremos encima de la variable que queramos forzar y clicaremos con el botn
derecho. En la ventana que aparece indicaremos Forzar valor | Forzar a 1 Forzar a 0
Para trabajar con una tabla de animacin, primeramente crearemos la tabla. Para ello, iremos a la carpeta
Tablas de animacin, clicaremos con el botn derecho y en la pantalla que se despliega seleccionaremos
Nueva tabla de animacin.
Indicaremos el nombre de las variables de entrada / salida y de memoria que queramos visualizar.
Posteriormente pulsaremos sobre el comando Forzar E/S o Modificacin de variables.
Universidad de Oviedo
158 - Problemas M340 ISA
En las ventanas que aparecen podremos seleccionar los iconos correspondientes para forzar a 1 a 0.
Tambin podremos modificar el valor binario a 1 a 0 como vemos en las siguientes figuras.
Universidad de Oviedo Problemas M340 - 159
ISA
Accionamos el pulsador de Marcha con lo cual la cinta 0 gira hasta situarse en la posicin
seleccionada (esto se define por el accionamiento del final de carrera correspondiente a la posicin
seleccionada).
Al alcanzar la posicin seleccionada se pone en movimiento la cinta 0 por medio de la activacin del
motor M0, y de manera simultnea lo harn la cinta correspondiente (activando los motores M1, M2 o
M3).
La tolva debe de abrirse 5 segundos despus de la activacin del motor M0 correspondiente a la cinta 0.
La parada se realiza accionando el pulsador de "Paro", momento en el cual se procede al cierre de la tolva.
As mismo, la cinta 0 debe seguir 20 segundos en periodo de descarga, y la cinta correspondiente 20
segundos ms que la 0 para su descarga.
Alarmas
Todas las cintas tienen una vigilancia que se activar cuando su velocidad baje del nivel especificado,
produciendo la parada automtica de la cinta objeto de alarma, siguiendo en proceso de descarga la otra si
procede. Dicha avera se reflejar en el sinptico mediante el parpadeo a 2 Hz de la lmpara de
desconexin correspondiente a la cinta averiada, quedando activadas las lmparas de conexin de las
cintas que estaban trabajando. El acuse de recibo de la avera se realizar accionando el pulsador de parada
"Paro".
La vigilancia no se tendr en cuenta durante los 5 segundos de la fase de arranque de las cintas.
Tolva
La tolva se abre y cierra mediante el motor MTol y los finales de carrera FCTolAb y FCTolCe.
Universidad de Oviedo
160 - Problemas M340 ISA
PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
TOLVA
FCTolAb FCTolCe
MTolAb
MTolCe
CINTA 0
CINTA 2
FC1 FC3
M0
FC2
CINTA 2
M2
LCON
LDES
Universidad de Oviedo Problemas M340 - 161
ISA
Tabla de variables
Universidad de Oviedo
162 - Problemas M340 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;
(*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) ;
(*Si existe avera en la cinta 0 se debe parar la cinta 0 poner el sistema de mando a descarga de la cinta
secundaria*)
IF Mx_Ave_C0 THEN
resetstep (S_c0_ON);resetstep (S_c0_Des); (* borra grafcet de C0, parando C0 *)
set (Mx_Av_C0);
(* pone el mando en descarga de Cn *)
resetstep (S_Conect); resetstep (S_Descarg); setstep (S_Desc_123); END_IF;
Mx_Flanco_Ave_C123 := RE (Mx_Ave_C123);
(* Al aparecer la avera se desactiva el grafcet de la tolva (una nica vez al ser por flanco) *)
Mx_SFC_Tolva_OFF := CLEARCHART (Tolva, Mx_Flanco_Ave_C123) ;
(*Si se produce la anulacion del SFC de la tolva, cerramos la tolva por seguridad habilitndose el SFC de la
tolva otra vez al ciclo siguiente de resetearla*)
IF Mx_SFC_Tolva_OFF THEN
setstep (S_Tolva_Cerrar); (* Cierra la tolva y pone a 0 el bit Mx_SFC_Tolva_OFF *)
END_IF;
Universidad de Oviedo
164 - Problemas M340 ISA
(*Habiendo avera en la cinta secundaria, se desactivan el resto de SFCs despus que se haber cerrado la
tolva. La marca Mx_dummy no es usada en esta aplicacin*)
if FE (Mx_SFC_Tolva_OFF) then
Mx_Dummy := CLEARCHART (Mando, true) ;
Mx_Dummy := CLEARCHART (Seleccion_Cinta, true) ;
Mx_Dummy := CLEARCHART (Posicionar_Cinta_Alimentadora, true) ;
Mx_Dummy := CLEARCHART (Cintas, true) ;
end_if;
(* Seleccin de cinta de
evacuacin *) S_Sel_ini
S_Selec
T_Tran2
RE (Mx_Selec) and S_Selec.x
T_Tran2
Mx_Marcha
(* Seleccin Cinta 1 *)
(* Posicionar la cinta
alimentadora (Cinta 0) *) S_Sel_Ls1
S_Pos LS1
T_Tran3
RE (Mx_Selec) and S_Selec.x
T_Tran3
S_Pos_Fin.x
(* Seleccin Cinta 2 *)
(* Conectar Cintas y Abrir Tolva
*) S_Sel_Ls2
S_Conect LS2
T_Tran4
RE (Mx_Selec) and S_Selec.x
T_Tran4
NOT Mx_Paro
(* Seleccin Cinta 3 *)
(* Descargar cinta 0 y Cerrar
Tolva *) S_Sel_Ls3
S_Descarg LS3
T_Tran5
RE (Mx_Selec) and S_Selec.x
T_Tran5
NOT Qx_Mot_C0
T_Tran1
not Qx_Mot_c1 and not
Qx_Mot_c2 and not Qx_Mot_c2
T_Tran1
Universidad de Oviedo
166 - Problemas M340 ISA
S_Pos_0
S_Pos.x
S_Pos_1
T_Tran6 T_Tran7
Mx_FC1 and (Qx_Ls2 or Qx_Ls3) Mx_FC3 and (Qx_Ls1 or Qx_Ls2)
or (Mx_FC2 and Qx_Ls3) or (Mx_FC2 and Qx_Ls1)
T_Tran6 T_Tran7 Mx_Para_Giro
S_Pos_Izda S_Pos_Dcha
(* activa el (* activa el
motor de giro a S_Pos_Izda S_Pos_Dcha motor de giro a
izquierda *) derecha *)
Mx_Para_Giro Mx_Para_Giro
S_Pos_Fin
S_Conect.x
(* C0 en (* C1 en (* C2 en (* C3 en
movimiento *) movimiento *) movimiento *) movimiento *)
S_c0_ON S_c1_ON S_c2_ON S_c3_ON
Qx_Mot_c0 Qx_Mot_c1 Qx_Mot_c2 Qx_Mot_c3
Lcon 0 Lcon 1 LUZ en Lcon 2 Lcon 3
(* C0 en (* C1 en (* C2 en (* C3 en
descarga *) descarga *) descarga *) descarga *)
S_c0_Des S_c1_Des S_c2_Des S_c3_des
Qx_Mot_c0 Qx_Mot_c1 Qx_Mot_c2 Qx_Mot_c3
Ldes 0 Ldes 1 Ldes 2 Ldes 3
S_Tolva_ini
T_Tran8
S_Conect.x and S_Conect.t >
t#5s
T_Tran8
(* Abre la tolva *)
Qx_Mtol_ab
S_Tolva_Abrir
T_Tran9
Mx_Fc_tol_ab or Mx_Ave_c0 or
Mx_Ave_c123
T_Tran9
T_Tran10
S_Descarg.x or Mx_Ave_c0 or
Mx_Ave_c123
T_Tran10
(* Cierra la tolva *)
Qx_Mtol_ce
S_Tolva_Cerrar
Mx_FC_Tol_Ce
Seccin "Transiciones
T_Tran1:=not Qx_Mot_c1 and not Qx_Mot_c2 and not Qx_Mot_c3;
T_Tran2:=RE (Mx_Selec) and S_Selec.x;
T_Tran3:=RE (Mx_Selec) and S_Selec.x;
T_Tran4:=RE (Mx_Selec) and S_Selec.x;
T_Tran5:=RE (Mx_Selec) and S_Selec.x;
T_Tran6:=Mx_FC1 and (Qx_Ls2 or Qx_Ls3) or (Mx_FC2 and Qx_Ls3);
T_Tran7:=Mx_FC3 and (Qx_Ls1 or Qx_Ls2) or (Mx_FC2 and Qx_Ls1);
T_Tran8:=S_Conect.x and S_Conect.t > t#5s;
T_Tran9:=Mx_Fc_tol_ab or Mx_Ave_c0 or Mx_Ave_c123;
T_Tran10:=S_Descarg.x or Mx_Ave_c0 or Mx_Ave_c123;
T_Tran11:=S_c0_Des.t > t#20s;
T_Tran12:=S_Conect.x and Qx_Ls1;
T_Tran13:=S_c1_Des.t > t#20s;
T_Tran14:=S_Conect.x and Qx_Ls2;
T_Tran15:=S_c2_Des.t > t#20s;
T_Tran16:=S_Conect.x and Qx_Ls3;
T_Tran17:=S_c3_des.t > t#20s;
Universidad de Oviedo
168 - Problemas M340 ISA
Seccin Salidas:
Qx_Mg_izda := S_Pos_Izda.x;
Qx_Mg_dcha := S_Pos_Dcha.x;
Qx_Mtol_ab := S_Tolva_Abrir.x;
Qx_Mtol_ce := S_Tolva_Cerrar.x;
Qx_Ls1 := S_Sel_Ls1.x;
Qx_Ls2 := S_Sel_Ls2.x;
Qx_Ls3 := S_Sel_Ls3.x;
Pantalla de Operador
Universidad de Oviedo Problemas M340 - 169
ISA
Cinta 1 Cinta 2
M M
Cinta 3
Las cintas 1 y 2 debern conectarse y desconectarse, cada una, mediante dos pulsadores manuales
(conexin NA, desconexin NC).
El estado de marcha se indicar con tres lmparas: LCon, LDes y LDescg.
Las cintas 1 y 2 no deben suministrar material a la vez. La cinta 3 ha de ponerse en marcha
simultneamente con la 1 la 2.
Condiciones Iniciales: Inicialmente las tres cintas estarn desconectadas y las lmparas de desconexin 1 y
2 estarn encendidas y el resto apagadas.
Conexin: Cuando se accione el pulsador de conexin 1 o 2 se encender la lmpara de conexin y se
apagar la de desconexin correspondiente.
Desconexin: Una vez accionado el pulsador de desconexin, las cintas 1 2 debern seguir en
funcionamiento 20 segundos ms, la cinta 3 debe permanecer en funcionamiento durante 40 segundos
ms que las anteriores, quedando luego en reposo. Con esto se persigue el vaciado del material que
transportan las cintas.
El periodo de descarga se visualizar mediante el encendido de las lmparas de descarga correspondientes
(LDescgC1 o LDescgC2 y LDescgC3), estando el resto apagadas.
Vigilancia: El control del giro en las ruedas motrices se efectuar mediante una vigilancia de cintas. Se
considera que la frecuencia de llegada de los impulsos no debe ser inferior a 10 Hz, para un funcionamiento
en rgimen normal de velocidad. Durante los tres primeros segundos no debern evaluarse los impulsos
procedentes de las vigilancias de las cintas, ya que no ha habido tiempo para alcanzar la velocidad de
rgimen.
Si estando en funcionamiento normal desaparece la seal de vigilancia de la cinta 1 2, hay que parar
inmediatamente dicha cinta, dejando funcionar en vaciado la cinta 3 segn la secuencia establecida
Universidad de Oviedo
170 - Problemas M340 ISA
previamente. Para avisar de la existencia de avera, haremos que la lmpara de avera correspondiente
parpadee a una frecuencia de 1 Hz, permaneciendo encendida la de conexin.
Si durante el periodo de descarga de la cinta alimentadora:
Desaparece su seal de vigilancia, hay que parar inmediatamente dicha cinta, dejando funcionar en
vaciado la cinta 3 segn la secuencia establecida previamente. Para avisar de la existencia de
avera, haremos que la lmpara de avera correspondiente parpadee a una frecuencia de 1 Hz,
permaneciendo encendida la de descarga.
Desaparece la seal de vigilancia de la cinta 3, hay que parar inmediatamente todas las cintas. La
avera producida se indicar mediante el parpadeo de la lmpara de avera de C3 a una frecuencia
de 1 Hz, permaneciendo encendida la de descarga de la cinta alimentadora.
Si estando en funcionamiento normal desaparece la seal de vigilancia de la cinta 3, hay que parar
inmediatamente todas las cintas. La avera producida se indicar mediante el parpadeo de la lmpara de
avera de C3 a una frecuencia de 1 Hz, permaneciendo encendida la de conexin de la cinta alimentadora.
Si durante el periodo de descarga de la cinta 3 desaparece la seal de vigilancia, hay que parar
inmediatamente la cinta. La avera producida se indicar mediante el parpadeo de su lmpara de avera a
una frecuencia de 1 Hz, permaneciendo encendida la de descarga.
La vigilancia se har en funcionamiento normal y en el periodo de descarga.
Emergencia: Si se activa el tirador de emergencia, debern parar todas las cintas quedando encendidas las
3 lmparas de descarga y el resto apagadas, hasta volver a las CI mediante el accionamiento de un pulsador
de retorno a las Condiciones Iniciales.
Retorno a las CI: Se acusar recibo del aviso de avera accionando el pulsador de Rearme, momento en el
cual se volver a las condiciones iniciales.
Salidas:
Entradas:
Lmpara Conexin para cinta 1
Pulsador Conexin para cinta 1
Lmpara Desconexin para cinta 1
Pulsador Conexin para cinta 2
Lmpara Descarga para cinta 1
Pulsador Desconexin para cinta 1
Lmpara Conexin para cinta 2
Pulsador Desconexin para cinta 2
Lmpara Desconexin para cinta 2
Pulsador de Emergencia
Lmpara Descarga para cinta 2
Pulsador de Rearme
Lmpara Descarga para cinta 3
Vigilancia de cinta 1
Lmpara de Avera en C1
Vigilancia de cinta 2
Lmpara de Avera en C2
Vigilancia de cinta 3
Lmpara de Avera en C3
Motor para cinta 1
Motor para cinta 2
Motor para cinta 3
PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo Problemas M340 - 171
ISA
Interrupciones
Un semforo ha de regir el paso de vehculos, pero ste estar sujeto a una variacin en su temporizacin,
segn el nmero de vehculos que se encuentren en cola de espera. La calle, como se puede apreciar en el
S1 S2
S3 S4
dibujo, est dividida en dos carriles con sus respectivos sensores (S1, S2) y (S3, S4).
Cuando en uno cualquiera de los carriles se encuentran 20 o ms vehculos la temporizacin ha de ser la
siguiente:
verde: 30 s mbar: 5 s fijo y 3 s a 2 Hz rojo: 15 s
Cuando tengamos menos de 20 vehculos en ambos carriles la temporizacin ha de ser la siguiente:
verde: 20 s mbar: 5 s fijo y 3 s a 2 Hz rojo: 20 s
El valor de la cuenta efectiva para efectuar el cambio de la secuencia de la temporizacin es la que realiza
desde el momento en que el semforo se pone en rojo hasta un instante antes de producirse el cambio a
verde.
Nota:
Se supone que los carriles son de direccin nica y no se puede cambiar de uno a otro. Los
vehculos que circulan son solamente automviles.
Los sensores irn asociados a entradas de interrupcin
PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000, mdulo mixto de entradas salidas BMX DDM3202K y mdulo de contaje BMX
EHC 0800.
Universidad de Oviedo
172 - Problemas M340 ISA
Tabla de variables
En el mdulo BMX EHC 0800, se selecciona Contador 0 y abajo se despliega la lista asociada a Funcin. Se
elige "Modo de conteo de eventos". Luego en la pestaa de Configuracin, donde pone la ficha de Evento
se selecciona Valor "Habilitar". En la etiqueta Nmero de evento, aparece el nmero de programa de
Evento asociado que se ejecutar cuando se detecte el paso de 0 a 1 en la entrada asociada a contador 0.
Universidad de Oviedo Problemas M340 - 173
ISA
Llamada a la funcin que asigna los tiempos de la luz verde y roja al final de cada ciclo o justo en el inicio de la ejecucin
.1
FBI_0 2 .2
1 OR 3
R_TRIG SR_CALL
%S13 IN1 OUT EN ENO
Tciclo.Q CLK Q IN2 Asignar_Tiempos SR_NAME
TCICLO
4
TON
Tciclo.Q IN Q
Mt_Verde+t#8s+Mt_Rojo PT ET
Oscilador de 2Hz
TEMP_OSC2HZ
5 .3
TON 6
GT_TIME
Temp_Osc2Hz.Q IN Q
t#500ms PT ET IN1 OUT Mx_Oscilador_2hz
t#250ms IN2
Asignacin de salidas
.5
7
LT_TIME
.7
8
GT_TIME
Tciclo.ET .4
IN1 OUT
10
Mt_Verde IN2 AND
IN1 OUT
.8
IN2
9
LT_TIME
Tciclo.ET .12
IN1 OUT
14
Mt_Verde+t#5s IN2 OR
Tciclo.ET .9
IN1 OUT
13
Mt_Verde+t#5s IN2 AND
IN1 OUT
.11
IN2
12
LT_TIME Mx_Oscilador_2hz IN3
.6
15
GT_TIME
.6
6
LE
Evento 0
INC (Mw_NcochesC0);
Evento 1
DEC (Mw_NcochesC0);
Evento 2
INC (Mw_NcochesC1);
Evento 3
DEC (Mw_NcochesC1);
Universidad de Oviedo Problemas M340 - 175
ISA
Pantalla de operador
Programa en ST - (pr0801b)
Seccin "Control"
Mx_FinCiclo:=Tciclo.Q;
(*Temporizador*)
Tciclo (IN:=not Tciclo.Q, PT:=Mt_Verde + t#8s + Mt_Rojo) ;
(*Salidas*)
Qx_LVerde:= Tciclo.ET < Mt_Verde;
Qx_LAmbar:= Tciclo.ET>Mt_Verde and Tciclo.ET<Mt_Verde + t#5s or Tciclo.ET > Mt_Verde + t#5s and
Tciclo.ET<Mt_Verde + t#8s and Mx_Oscilador_2hz;
Qx_LRoja:= Tciclo.ET > Mt_Verde + t#8s;
Subrutina "Asignar_Tiempos"
IF (Mw_NcochesC0>20) OR (Mw_NcochesC1>20) THEN
Mt_Verde:=t#30s;
Mt_Rojo:=t#15s;
ELSE
Mt_Verde:=t#20s;
Mt_Rojo:=t#20s;
END_IF;
Universidad de Oviedo
176 - Problemas M340 ISA
Evento 0
INC(Mw_NcochesC0);
Evento 1
DEC(Mw_NcochesC0);
Evento 2
INC(Mw_NcochesC1);
Evento 3
DEC(Mw_NcochesC1);
Representacin en FBD
Representacin en ST
ShiftedPattern := SHL (IntputPattern, Number) ;
Representacin en FBD
Representacin en ST
ShiftedPattern := SHR (IntputPattern, Number) ;
Universidad de Oviedo
178 - Problemas M340 ISA
Representacin en FBD
Representacin en ST
ShiftedPattern := ROR (IntputPattern, Number) ;
Representacin en FBD
Representacin en ST
ShiftedPattern := ROL (IntputPattern, Number) ;
Universidad de Oviedo Problemas M340 - 179
ISA
Tipos de Datos
Las variables pueden almacenar diferentes tipos de datos:
EBOOL La variable ebool, como ya dijimos, es tambin una variable binaria igual que una de tipo bool,
contiene el valor FALSE (=0) o TRUE (=1), pero tambin incluye cuando se almacena, informacin
relativa a la gestin de los flancos ascendentes o descendentes y al forzado.
WORD Representa una cadena de 16 bits, significando una longitud de datos de 16 bits
UINT Representa un valor entero sin signo. El rango de valores es de 0 hasta 65535
Las constantes son unas variables del tipo INT, DINT o REAL direccionadas en el campo constante (%K ), o
variables usadas en direcciones directas (%KW, %KD, o % KF). Sus contenidos no pueden modificarse por el
programa durante la ejecucin.
Interrupcin 0
Si durante la ejecucin de la secuencia anterior , se produce una demanda de interrupcin
procedente del canal 0 del mdulo BMX EHC 0800 ( Evt0 ), esta secuencia debe pararse, y ejecutarse
en su lugar, la secuencia siguiente: los ocho bits de salida, deben pasar alternativamente de 11111111
a 00000000 durante 1 segundo ocho veces. Ejecutado esto, se debe volver a la secuencia habitual,
retomndola desde donde la haba dejado.
Interrupcin 1
Si durante la ejecucin de la secuencia anterior , se producen una demanda de interrupcin
procedente del canal 1 del mdulo BMX EHC 0800 ( Evt1 ), esta secuencia debe pararse, y ejecutarse
en su lugar la secuencia siguiente: Los cuatro bits del nibble bajo de la salida %Q0.1.16 ... %Q0.1.19
= 1 1 1 1 se deben situar a 1 lgico ( activados ) y los otros cuatro del nibble alto %Q0.1.20 ...
%Q0.1.23 = 0 0 0 0 se deben situar a 0 lgico ( desactivados ). Estos se alternarn 1 segundo durante
ocho veces. Ejecutado esto, se debe volver a la secuencia habitual, retomndola desde donde la haba
dejado.
Prioridades
La secuencia generada por la demanda de interrupcin 1 tiene prioridad sobre la demanda de interrupcin
procedente de la interrupcin 0. Esto es, si se est realizando la secuencia demandada por el Evt0 y
se produce la demanda del Evt1, debe pararse la primera y realizarse la segunda. Una vez terminada la
ejecucin de la secuencia del Evt1, se debe retomar la ejecucin de la demanda del Evt0, desde el estado
en que se haba procedido a su interrupcin. Si estando ejecutndose la demanda de interrupcin
procedente del Evt1, se produce una demanda del Evt0, sta ser atendida, una vez se haya terminado de
atender la demanda del evento Evt1.
Tarea maestra
La tarea maestra la dividimos en tres secciones: En la primera, establecemos las condiciones iniciales, para
el comienzo de la secuencia de desplazamiento. En la segunda, hacemos las llamadas a subrutina que
proceda, segn la secuencia que se deba realizar. En la tercera, tratamos las salidas para que reflejen los
valores segn la secuencia a realizar.
Seccion inicio
Utilizamos la palabra de marca Mw_PalBase, para realizar sobre los ocho bits bajos (Mw_PalBase.0
.... Mw_PalBase.7), las cuatro secuencias pedidas en esta aplicacin. Con la entrada %I0.1.2
(Ix_Arranque) daremos la orden para que comience la realizacin de la secuencia de inicio, se
Universidad de Oviedo Problemas M340 - 181
ISA
PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0400, fuente de
alimentacin BMX CPS 2000, mdulo mixto de entradas salidas BMX DDM3202K y mdulo de contaje
BMX EHC 0800.
Tabla de variables
En el mdulo BMX EHC 0800, se selecciona Contador 0 y abajo se despliega la lista asociada a Funcin. Se
elige "Modo de conteo de eventos". Luego en la pestaa de Configuracin, donde pone la ficha de Evento
se selecciona Valor "Habilitar". En la etiqueta Nmero de evento, aparece el nmero de programa de
Evento asociado que se ejecutar cuando se detecte el paso de 0 a 1 en la entrada asociada a contador 0.
Universidad de Oviedo
182 - Problemas M340 ISA
Programa en ST - (pr0802)
Seccin "SecuenciaNormal"
(*Inicializamos variables*)
Mx_Arranque := (Ix_Arranque and Ix_LocDist) or (MxP_Arranque and not Ix_LocDist);
Mx_PuestaCero := (Ix_PuestaCero and Ix_LocDist) or (MxP_PuestaCero and not Ix_LocDist);
IF %S13 THEN
Mw_PalBase:=Mw_ValorInicio; (*cargamos el valor de inicio en la palabra base 16#0001*)
END_IF;
(*asignamos una memoria al oscilador del sistema para poder evaluar el flanco*)
Mx_Osc1Hz:=%S6;
(*Si se produce el Evt0, pone los ocho bits de salida 00000000 <=> 11111111 cuatro veces*)
IF Mx_OscUnosCeros THEN
Sr2_OscUnosCerosEvt0();
END_IF;
Seccin "Salidas"
(*las salidas las condicionamos a que est activa la orden de arranque (Ix_Arranque).
Asignamos los ocho bits bajos de la palabra de marca Mw_PalBase: Mw_PalBase.0 ... Mw_PalBase.7
a los bits de salida %Q0.1.16 .... %Q0.1.23*)
Subrutina "Sr0_DesAIzq"
(* Sr0_DesAIzq Esta subrutina es la encargada de ir activando los 8 bits de salida %Q2.16 .... %Q2.23, de
derecha a izquierda con un intervalo de tiempo de un segundo. Para que se realice esta subrutina, tiene
que estar activo el bit de marca Mx_DesAIzq, circunstancia que se dar, en el inicio del programa o cuando
finalice la subrutina Sr1. Como base de tiempos usamos el bit de marca %S6 (1Hz).
El desplazamiento lo hacemos por flanco ascendente, de esta forma tenemos la certeza de que se dar
una sola orden en cada segundo. Cuando activamos el bit %Q0.1.23, pondremos a cero el bit de marca
Mx_DesAIzq. Para ello usaremos el flanco negativo de %S6, y a la vez, activaremos el bit Mx_DesADer, para
que se ejecute la subrutina Sr1 *)
Subrutina "Sr1_DesADer"
(* Sr1DesADer Esta subrutina es la encargada de ir activando los bits de salida %Q0.1.16 .. %Q0.1.23 de
izquierda a derecha con un intervalo de tiempo de un segundo. Para que se realice esta subrutina, tiene
que estar activo el bit Mx_DesADer, circunstancia que se dar, cuando finalice la subrutina Sr0.
Como base de tiempos usamos el bit %S6 (1Hz). El desplazamiento lo hacemos por flanco ascendente, de
esta forma tenemos la certeza de que se der una sola orden en cada segundo. Cuando activamos el bit
%Q0.1.16, pondremos a cero el bit Mx_DesADer. Para ello usaremos el flanco negativo de %M6, y a la vez,
activaremos y activaremos el bit Mx_DesAIzq, para que se ejecute la subrutina Sr0 *)
Subrutina "Sr2_OscUnosCerosEvt0"
(* Sr2_OscUnosCerosEvt0 Esta subrutina es la encargada de ir activando y desactivando los bits de salida
%Q0.1.16 ... %Q0.1.23 cada segundo, as durante ocho veces. Para que se realice esta subrutina, tiene que
estar activo el bit de marca Mx_OscUnosCeros, circunstancia que se dar, cuando tenga lugar un flanco
ascendente en la entrada %I0.1.0(Evt0 ),teniendo en cuenta que esta es una demanda de interrupcin, de
menor prioridad que la producida por el Evt1. En caso de que se est ejecutando esta ltima, debe esperar
a su trmino para ejecutarse.
Como base de tiempos usamos el bit Mx_Osc1Hz(1sg). El cambio de estado se produce por nivel. Para
control de cuenta utilizamos la palabra Mi_ContOscUnosCeros, la cual incrementaremos cada segundo,
mediante el flanco ascendente en el bit de marca Mx_Osc1Hz.
Comparando con el valor #9 determinaremos si hemos alcanzado las ocho oscilaciones deseadas, momento
en el cual ponemos a cero el bit Mx_OscUnosCeros, restituimos en la palabra de marca Mw_PalBase el
valor que tena cuando se produjo la demanda de interrupcin, valor contenido en la palabra de marca
Mw_Secuencia. Reseteamos la palabra Mi_ContOscUnosCeros y por ltimo, mediante los bit
Mx_MemADer o Mx_MemAIzq, indicamos la subrutina a seguir ejecutando*)
IF RE (Mx_Osc1Hz) THEN
INC (Mi_ContOscUnosCeros);
END_IF;
IF Mi_ContOscUnosCeros=9 THEN
RESET (Mx_OscUnosCeros);
END_IF;
(*restituimos valores*)
IF Mi_ContOscUnosCeros=9 AND Mx_MemADer THEN
Mi_ContOscUnosCeros:=0; Mw_PalBase:=Mw_Secuencia;
SET (Mx_DesADer); RESET (Mx_MemADer);
END_IF;
Universidad de Oviedo Problemas M340 - 185
ISA
Subrutina "Sr3_OscNibblesEvt1"
(* Sr3_OscNibblesEvt1
En esta subrutina haremos que el contenido del grupo de cuatro bits de salida %Q0.1.16 ... %Q0.1.19
(nibble bajo), y el contenido del grupo de cuatro bits tambin de salida %Q0.1.20 ... %Q0.1.23 (nibble alto),
se intercambien pasando alternativamente de 0000->1111 y de 1111->0000, as durante ocho veces.
Para que esta subrutina se ejecute, tiene que estar activo el bit de marca Mx_OscNibbles, circunstancia
que se dar cuando tenga lugar un flanco ascedente en la entrada %I0.1.1 (Evt1). Como sta es una
demanda de interrupcin de mayor prioridad, tiene que parar la ejecucin de cualquier otra parte del
programa, y proceder a la ejecucin inmediata de esta subrutina.
Para control de cuenta utilizamos la palabra de marca Mi_ContOscNibbles, la cual incrementaremos cada
segundo, mediante el flanco ascendente en el bit de marca Mx_Osc1Hz. Comparando con el valor #9
determinaremos si hemos alcanzado las ocho oscilaciones deseadas, momento en el cual ponemos a cero
la palabra de marca Mx_OscNibbles. Definimos a que secuencia debemos retornar, en funcin del
momento de la demanda de interrupcin. Restituimos a la palabra de marca Mw_PalBase, el valor que
tena cuando se produjo la demanda de interrupcin, valor contenido en las palabras de marca
Mw_Secuencia o Mw_SecuenciaEvt0.
IF RE (Mx_Osc1Hz) THEN
INC (Mi_ContOscNibbles);
END_IF;
(*restituimos valores*)
IF Mi_ContOscNibbles=9 THEN
RESET (Mx_OscNibbles);
END_IF;
IF Mi_ContOscNibbles=9 AND Mx_MemAIzq AND NOT Mx_MemADer AND NOT Mx_MemEvt0 THEN
Mi_ContOscNibbles:=0; Mw_PalBase:=Mw_Secuencia;
SET (Mx_DesAIzq); RESET (Mx_MemAIzq);
END_IF;
Universidad de Oviedo
186 - Problemas M340 ISA
Mw_Secuencia:=Mw_PalBase;
SET (Mx_OscNibbles);
SET (Mx_MemAIzq); RESET (Mx_DesAIzq);
END_IF;
IF Mx_OscUnosCeros THEN
Mw_SecuenciaEvt0:=Mw_PalBase;
SET (Mx_OscNibbles);
SET (Mx_MemEvt0); RESET (Mx_OscUnosCeros);
END_IF;
Pantalla de operador
Universidad de Oviedo
188 - Problemas M340 ISA
.
S.E
Se2 Se1
D A
EN T RA
TR
ADA EN
FCA FCC
30 PLAZAS
P
IDA SA
S AL LID
A
Ss2
Ss1 S.S.
La demanda de entrada se hace mediante la activacin del lazo sensor E1, momento en el cual se pueden
dar las opciones siguientes:
1. No est vehculo alguno en proceso de salida, y tenga plaza de aparcamiento. Proceder en este
caso al inicio de la maniobra de entrada, contabilizndose sta al accionar el lazo sensor E2.
2. Si encuentra otro vehculo en proceso de salida, deber entonces el semforo de entrada
permanecer en rojo, hasta que el vehculo haya salido, pudiendo a continuacin proceder al inicio
de la maniobra de entrada.
La demanda de salida se hace mediante la activacin del lazo sensor S1, momento en el que se pueden dar
las opciones siguientes:
1. No est vehculo alguno en proceso de entrada. Proceder en este caso al inicio de la maniobra de
salida, contabilizndose sta al accionar el lazo sensor S2.
Universidad de Oviedo Problemas M340 - 189
ISA
2. Si encuentra otro vehculo en proceso de entrada, deber entonces el semforo de salida permanecer
en rojo, hasta que el vehculo haya entrado, pudiendo a continuacin proceder al inicio de la maniobra
de salida.
Tanto el semforo de entrada como de salida, deben cambiar de verde a rojo, una vez que el vehculo
abandone tanto el lazo sensor, (E1), como el, (S1).
Ante demandas simultneas de entrada y salida, tiene prioridad la salida. Si se produce una cola de
vehculos deber permitirse una salida y entrada alternada para evitar demasiada espera por parte de los
vehculos que deseen entrar.
El portn es controlado de manera automtica por los sensores de entrada y de salida, (E1) y (S1), para su
apertura. Y los sensores, (E2) y (S2), para su cierre.
Mientras haya una demanda de salida o de entrada, en curso, el portn deber permanecer abierto. As
mismo, es necesario que el portn se encuentre abierto para que los semforos, tanto de entrada, como de
salida, cambien de rojo a verde.
Disponemos de un pulsador, (P), que nos permite la apertura y cierre manual del portn, en todo momento
(si est abierto lo cerrar y si est cerrado lo abrir). Se dispondr, as mismo, de un pulsador para resetear
el sistema y llevarlo a las condiciones Iniciales con el portn cerrado.
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo
190 - Problemas M340 ISA
Ejemplo.
Se ha de crear un bloque motor con las caractersticas siguientes:
- El motor tiene 2 sentidos de giro (izquierda y derecha).
- Fsicamente, el pulsador de PARO es normalmente cerrado por seguridad de mquina.
- Se ha de definir tiempos de funcionamiento.
- El motor se pondr en marcha a la izquierda o a la derecha cuando se ponga active la orden de Marcha.
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.
Por otra parte, se deben introducir como siempre las variables del programa principal (Explorador de
proyectos Variable e Instancias FB).
En la seccin del programa principal insertaremos el bloque DFB creado. Por ejemplo, aqu se inserta el
bloque DFB_MOTOR en la seccin FBD denominada Control. Para ello se debe editar la seccin Control
y pulsar el botn derecho del ratn. Se despliega la ventana que se muestra en la figura y despus
seleccionamos Asistente de entrada FFB. Posteriormente buscamos el bloque creado de manera similar
a seleccionar bloques de funciones elementales.
Universidad de Oviedo Problemas M340 - 193
ISA
Una vez insertado el bloque de funcin derivado debemos compilar el proyecto para que se puedan ver las
entradas y salidas del bloque. A continuacin conectaremos las entradas y salidas del bloque a nuestras
variables del programa principal. El aspecto que quedara se muestra en la figura siguiente.
L1
L2
L3
PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Tabla de variables
Universidad de Oviedo
196 - Problemas M340 ISA
.4 .1
1 2
RE AND
.2 .5 .6
3 4 5
AND AND AND
Mx_Impulso IN1 OUT Mx_AlarmLuz1 Mx_Impulso IN1 OUT Mx_AlarmLuz2 Mx_Impulso IN1 OUT Mx_AlarmLuz3
T_Alarm1.Q IN2 T_Alarm2.Q IN2 T_Alarm3.Q IN2
Qx_Luz1 IN3 Qx_Luz1 IN3 Qx_Luz1 IN3
Qx_Luz2 IN4 Qx_Luz2 IN4 Qx_Luz2 IN4
Qx_Luz3 IN5 Qx_Luz3 IN5 Qx_Luz3 IN5
.7 T_BloqueoPu...
6 7
OR TP
.8
8
AND
T_Alarm1
15
TP
Qx_Luz1 IN Q
t#12s PT ET
.14
16 .19
AND 17
SET
Mx_Impulso IN1 OUT EN ENO
Qx_Luz1 IN2 OUT Qx_Luz2
Qx_Luz2 IN3
Qx_Luz3 IN4
T_Alarm2.Q IN5 .20 .18
18 19
RESET RESET
EN ENO EN ENO
OUT Mx_Impulso OUT Qx_Luz1
T_Alarm2
20
TP
Qx_Luz2 IN Q
t#12s PT ET
.15
21 .17 .16
AND 22 23
SET RESET
Mx_Impulso IN1 OUT EN ENO EN ENO
Qx_Luz1 IN2 OUT Qx_Luz3 OUT Qx_Luz2
Qx_Luz2 IN3
Qx_Luz3 IN4
T_Alarm3.Q IN5
T_Alarm3
24
TP
Qx_Luz3 IN Q
t#12s PT ET
Universidad de Oviedo
198 - Problemas M340 ISA
Programa en ST - (pr0901b)
Seccin "Control" (en ST)
Mx_Impulso:= RE(Mx_Pulsador) and not T_Bloqueo_Pulsador.Q;
Mx_Alarm_luz1 := Mx_Impulso and T_alarm1.Q and not Qx_Luz1 and not Qx_Luz2 and Qx_Luz3;
Mx_Alarm_luz2 := Mx_Impulso and T_alarm2.Q and Qx_Luz1 and not Qx_Luz2 and not Qx_Luz3;
Mx_Alarm_luz3 := Mx_Impulso and T_alarm3.Q and not Qx_Luz1 and Qx_Luz2 and not Qx_Luz3;
IF (Mx_Impulso and not Qx_Luz1 and not Qx_Luz2 and not Qx_Luz3 or Mx_Impulso and not Qx_Luz1 and
not Qx_Luz2 and Qx_Luz3) and not T_alarm1.Q then
SET (Qx_Luz1);
RESET (Qx_Luz3);
RESET (Mx_Impulso);
END_IF;
IF Mx_Impulso and Qx_Luz1 and not Qx_Luz2 and not Qx_Luz3 and not T_alarm2.Q then
SET (Qx_Luz2);
RESET (Qx_Luz1);
RESET (Mx_Impulso);
END_IF;
IF Mx_Impulso and not Qx_Luz1 and Qx_Luz2 and not Qx_Luz3 and not T_alarm3.Q then
SET (Qx_Luz3);
RESET (Qx_Luz2);
END_IF;
Mx_Impulso:= RE(Mx_Pulsador);
Seccin "Salidas"
Qx_Luz1:=Etapa1.x or Etapa4.x;
Qx_Luz2:=Etapa2.x or Etapa5.x;
Qx_Luz3:=Etapa3.x or Etapa6.x;
Seccin "Transicines"
Tran_1_2:=Mx_Impulso and not T_Alarm2.Q;
Tran_1_4:=Mx_Impulso and T_Alarm2.Q;
Tran_2_3:=Mx_Impulso and not T_Alarm3.Q;
Tran_2_5:=Mx_Impulso and T_Alarm3.Q;
Tran_3_1:=Mx_Impulso and not T_Alarm1.Q;
Tran_3_6:=Mx_Impulso and T_Alarm1.Q;
Tran_4_2:=Mx_Impulso and Etapa4.t >=t#20s;
Tran_5_3:=Mx_Impulso and Etapa5.t >=t#20s;
Tran_6_1:=Mx_Impulso and Etapa6.t >=t#20s;
Universidad de Oviedo
200 - Problemas M340 ISA
Mx_Impulso
L1
12s TP1
Etapa1
Tran_1_2 Tran_1_4
L1
Etapa4
Mx_Impulso and
Etapa4.t >=t#20s
Tran_4_2
L2
12s TP2
Etapa2
Tran_2_3 Tran_2_5
L2
Etapa5
Mx_Impulso and
Etapa5.t >=t#20s
Tran_5_3
L3
12s TP3
Etapa3
Tran_3_1 Tran_3_6
L3
Etapa6
Mx_Impulso and
Etapa6.t >=t#20s
Tran_6_1
Universidad de Oviedo Problemas M340 - 201
ISA
5:0 S5
4:1 S4
3:2 S3
P_ejecucin H
2:3 S2
1:4 S1
0:5 S0
C
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM 3202K.
Universidad de Oviedo Problemas M340 - 203
ISA
Tabla de variables
Universidad de Oviedo
204 - Problemas M340 ISA
Seleccin
Universidad de Oviedo
206 - Problemas M340 ISA
Llenado
Universidad de Oviedo Problemas M340 - 207
ISA
Universidad de Oviedo
208 - Problemas M340 ISA
Vaciado
Universidad de Oviedo Problemas M340 - 209
ISA
Pantalla de explotacin
Universidad de Oviedo
210 - Problemas M340 ISA
Preliminar
Mx_PMezcla:= (Ix_PMezcla and Ix_LocDist) or (MxP_PMezcla and not Ix_LocDist);
Mx_PEjecucion:= (Ix_PEjecucion and Ix_LocDist) or (MxP_PEjecucion and not Ix_LocDist);
Mx_F_ab_EVA:= (Ix_F_ab_EVA and Ix_LocDist) or (MxP_F_ab_EVA and not Ix_LocDist);
Mx_F_ce_EVA:= (Ix_F_ce_EVA and Ix_LocDist) or (MxP_F_ce_EVA and not Ix_LocDist);
Mx_F_ab_EVB:= (Ix_F_ab_EVB and Ix_LocDist) or (MxP_F_ab_EVB and not Ix_LocDist);
Mx_F_ce_EVB:= (Ix_F_ce_EVB and Ix_LocDist) or (MxP_F_ce_EVB and not Ix_LocDist);
Mx_F_ab_EVC:= (Ix_F_ab_EVC and Ix_LocDist) or (MxP_F_ab_EVC and not Ix_LocDist);
Mx_F_ce_EVC:= (Ix_F_ce_EVC and Ix_LocDist) or (MxP_F_ce_EVC and not Ix_LocDist);
Mx_Sensor0:= (Ix_Sensor0 and Ix_LocDist) or (MxP_Sensor0 and not Ix_LocDist);
Mx_Sensor1:= (Ix_Sensor1 and Ix_LocDist) or (MxP_Sensor1 and not Ix_LocDist);
Mx_Sensor2:= (Ix_Sensor2 and Ix_LocDist) or (MxP_Sensor2 and not Ix_LocDist);
Mx_Sensor3:= (Ix_Sensor3 and Ix_LocDist) or (MxP_Sensor3 and not Ix_LocDist);
Mx_Sensor4:= (Ix_Sensor4 and Ix_LocDist) or (MxP_Sensor4 and not Ix_LocDist);
Mx_Sensor5:= (Ix_Sensor5 and Ix_LocDist) or (MxP_Sensor5 and not Ix_LocDist);
Mx_Flanco := RE (Mx_PMezcla);
(*Inhibicin de la seleccin*)
Mx_Seleccion_Parada:=freezechart(Seleccion,not S_Dep_vacio.x);
(*Marcas de pantalla*)
if S_Homogen.x then
MtP_Tiempo_Homogen:= S_Homogen.t;
else
MtP_Tiempo_Homogen:= t#0s;
end_if;
MxP_Abierta_EVA:=S_A_abierta.x;
MxP_Abierta_EVB:=S_B_abierta.x;
MxP_Abierta_EVC:=S_C_abierta.x;
Universidad de Oviedo Problemas M340 - 211
ISA
Chart Seleccion
Universidad de Oviedo
212 - Problemas M340 ISA
Chart Control
Universidad de Oviedo Problemas M340 - 213
ISA
Transicin Tran1
(*Se supone en este caso que si el depsito est vaco el sensor 0 est a 0*)
Mx_Pejecucion and not S_Ninguna.x and not Mx_Sensor0 and Mx_F_ce_EVC
Transicin Tran2
(*En este caso los sensores se podrn a 1 cuando el nivel de agua sea el mismo o superior*)
S_Mezcla0.x and Mx_Sensor5 or S_Mezcla1.x and Mx_Sensor4 or S_Mezcla2.x and Mx_Sensor3 or
S_Mezcla3.x and Mx_Sensor2 or S_Mezcla4.x and Mx_Sensor5 or S_Mezcla5.x and Mx_Sensor0
Transicin Tran3
S_Homogen.t>t#30s or Mx_Mezcla0 or Mx_Mezcla5
Salidas
Mx_Mezcla0:=S_Mezcla0.x;
Mx_Mezcla1:=S_Mezcla1.x;
Mx_Mezcla2:=S_Mezcla2.x;
Mx_Mezcla3:=S_Mezcla3.x;
Mx_Mezcla4:=S_Mezcla4.x;
Mx_Mezcla5:=S_Mezcla5.x;
Qx_Abrir_EVA:=S_abrir_A.x;
Qx_Abrir_EVB:=S_abrir_B.x;
Qx_Abrir_EVC:=S_abrir_C.x;
Qx_Cerrar_EVA:=S_cerrar_A.x;
Qx_Cerrar_EVB:=S_cerrar_B.x;
Qx_Cerrar_EVC:=S_cerrar_C.x;
Qx_Homogen:= S_Homogen.x;
En este ejercicio, podrn estar activos ms de un sensor de nivel a la vez. Estarn activos, cuando el lquido
est en ese nivel o superior. Inicialmente el Sensor 0 estar desactivado.
Universidad de Oviedo
214 - Problemas M340 ISA
Nota: El diseo se ha hecho de forma tal que el depsito se puede evacuar siempre con una sla bomba.
El sensor de nivel mximo da un 1 lgico, cuando el agua est en ese nivel o superior.
El sensor de nivel mnimo da un 1 lgico, cuando el agua est en ese nivel o inferior.
PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM 3202K.
Universidad de Oviedo Problemas M340 - 215
ISA
Tabla de variables
Seccin "Estado-Marcha"
Universidad de Oviedo Problemas M340 - 217
ISA
Seccin "ControlDesgaste"
Universidad de Oviedo
218 - Problemas M340 ISA
Seccin "ControlActivacin"
Activa las bombas al cabo de 5 minutos con el sensor de nivel mximo a 1
.2 t_Act2Bombas
1 2
AND TON
Mx_Nmax IN1 OUT IN Q
Mx_EnParo IN2 t#10s PT ET
A los 15 minutos de funcionamiento, para una bomba y arranca la otra (* Ponemos 100 veces menos el tiempo
del preciso para poder simularlo
cmodamente *)
.1 t_ParaB1ActB2
3 4
AND TON
Qx_B1 IN1 OUT IN Q
Qx_B2 IN2 t#20s PT ET
.3 t_ParaB2ActB1
5 6
AND TON
Se programan todas las condiciones que hacen parar y arrancar las distintas bombas
.8
10 .9
OR 11
SET
t_ParaB2ActB1.Q IN1 OUT EN ENO
IN2 OUT Mx_Act_B1
.5
9
.6 .7 AND
7 8 Mx_TocaB1
AND OR IN1 OUT
Qx_B2 IN2
Mx_Nmax IN1 OUT IN1 OUT IN3
Mx_EnMarAut IN2 Mx_EnForMan IN2
.14
15 .15
OR 16
SET
t_ParaB1ActB2.Q IN1 OUT EN ENO
IN2 OUT Mx_Act_B2
.11
14
.12 .13 AND
12 13 Mx_TocaB2
AND OR IN1 OUT
Qx_B1 IN2
Mx_Nmax IN1 OUT IN1 OUT IN3
Mx_EnMarAut IN2 Mx_EnForMan IN2
.16
17 .17
OR 18
RESET
Mx_Nmin IN1 OUT EN ENO
t_ParaB1ActB2.Q IN2 OUT Mx_Act_B1
Mx_EnParo IN3
.18
19 .19
OR 20
RESET
Mx_Nmin IN1 OUT EN ENO
t_ParaB2ActB1.Q IN2 OUT Mx_Act_B2
Mx_EnParo IN3
Universidad de Oviedo Problemas M340 - 219
ISA
Seccin "Salidas"
Pantalla de explotacin:
Universidad de Oviedo
220 - Problemas M340 ISA
(*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*)
Seccin "Transiciones
Tran1:=Mx_Nmax or Mx_ForMan;
Tran2:=Mx_Nmax and S_ActB1.t>t#10s;
Tran3:=S_ActB1.t>t#15s;
Tran4:=S_ActB2.t>t#15s;
Tran5:=Mx_Nmax and S_ActB2.t>t#10s;
Seccin "Salidas"
if S_Paro.x then
reset (Mx_EnMarAut);
reset (Mx_EnForMan);
end_if;
if S_IniMarcha.x then
reset (Mx_EnForMan);
set (Mx_EnMarAut);
end_if;
Seccin "Chart"
Situacin de parada.
Se ponen a 0 las marcas de
S_Paro
marcha automtica y forzado
manual
Mx_MarAut Mx_ForMan
Accin memorizada:
Se pone a 1 la marca que indica la marcha
S_IniMarcha
automtica y se pone a 0 la marca de forzado
manual
Tran1
Mx_Nmax or Mx_PForMan
Tran1
Mx_TocaB1 Mx_TocaB2
Qx_B1 Qx_B2
S_ActB1 S_ActB2
S_IniMarcha S_IniMarcha
Tran2 Tran4
Mx_Nmax and S_act_B2.t>t#15m
S_act_B1.t>t#5m
Tran3 Tran5
S_act_B1.t>t#15m Mx_Nmax and
S_act_B2.t>t#5m
Qx_B1
Qx_B2
S_ActB1yB2
not Mx_Nmax
S_IniForMan
Universidad de Oviedo Problemas M340 - 223
ISA
FC2
Jaula
PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM 3202K.
Universidad de Oviedo
224 - Problemas M340 ISA
Tabla de variables
Universidad de Oviedo Problemas M340 - 225
ISA
MtP_tiempo_Electrolisis:=t_Electrolisis.ET;
MxP_FC1_FC3:=Mx_FC1 and Mx_FC3;
MxP_FC1_FC4:=Mx_FC1 and Mx_FC4;
MxP_FC1_FC5:=Mx_FC1 and Mx_FC5;
MxP_FC1_FC6:=Mx_FC1 and Mx_FC6;
MxP_FC1_FC3_sub:= Mx_FC1 and Mx_FC3 and Qx_mot_subir;
MxP_FC1_FC4_sub:= Mx_FC1 and Mx_FC4 and Qx_mot_subir;
MxP_FC1_FC5_sub:= Mx_FC1 and Mx_FC5 and Qx_mot_subir;
MxP_FC1_FC6_sub:= Mx_FC1 and Mx_FC6 and Qx_mot_subir;
Universidad de Oviedo
226 - Problemas M340 ISA
end_if;
MxP_NoFC3FC4_dcha:= MxP_T1 and Qx_mot_dcha and not MxP_FC2_FC3 and not MxP_FC2_FC4;
MxP_NoFC4FC5_dcha:= MxP_T2 and Qx_mot_dcha and not MxP_FC2_FC4 and not MxP_FC2_FC5;
MxP_NoFC5FC6_dcha:= MxP_T3 and Qx_mot_dcha and not MxP_FC2_FC5 and not MxP_FC2_FC6;
MxP_NoFC3FC4_izda:= MxP_T1 and Qx_mot_izda and not MxP_FC2_FC3 and not MxP_FC2_FC4;
MxP_NoFC4FC5_izda:= MxP_T2 and Qx_mot_izda and not MxP_FC2_FC4 and not MxP_FC2_FC5;
MxP_NoFC5FC6_izda:= MxP_T3 and Qx_mot_izda and not MxP_FC2_FC5 and not MxP_FC2_FC6;
MxP_NoFC3FC4:= MxP_NoFC3FC4_dcha or MxP_NoFC3FC4_izda;
MxP_NoFC4FC5:= MxP_NoFC4FC5_dcha or MxP_NoFC4FC5_izda;
MxP_NoFC5FC6:= MxP_NoFC5FC6_dcha or MxP_NoFC5FC6_izda;
(* Inicia variables*)
Mx_Marcha:= (Ix_Marcha and Ix_LocDist) or (MxP_Marcha and not Ix_LocDist);
Mx_Paro:= (Ix_Paro and Ix_LocDist) or (MxP_Paro and not Ix_LocDist);
Mx_Rearme:= (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist);
Seccin "Control"
.1
1 .30
AND 2
SET
Mx_Marcha IN1 OUT EN ENO
Mx_FC1 IN2 OUT Qx_mot_subi r
Mx_FC3 IN3
.32
3 .33 .34
AND 4 5
SET RESET
Mx_FC2 IN1 OUT EN ENO EN ENO
Mx_FC3 IN2 OUT Mx_Av_dcha1 OUT Qx_mot_subi r
Qx_mot_subi r IN3
Universidad de Oviedo Problemas M340 - 229
ISA
.8
6 .9 .10
AND 7 8
SET RESET
Mx_FC2 IN1 OUT EN ENO EN ENO
Mx_FC4 IN2 OUT Qx_mot_baj ar OUT Mx_Av_dcha1
Mx_Av_dcha1 IN3
.7
9 .11 .12
AND 10 11
SET RESET
Mx_FC1 IN1 OUT EN ENO EN ENO
Mx_FC4 IN2 OUT Qx_mot_subi r OUT Qx_mot_baj ar
Qx_mot_baj ar IN3
.32
12 .33 .34
AND 13 14
SET RESET
Mx_FC2 IN1 OUT EN ENO EN ENO
Mx_FC4 IN2 OUT Mx_Av_dcha2 OUT Qx_mot_subi r
Qx_mot_subi r IN3
.8
15 .9 .10
AND 16 17
SET RESET
Mx_FC2 IN1 OUT EN ENO EN ENO
Mx_FC5 IN2 OUT Qx_mot_baj ar OUT Mx_Av_dcha2
Mx_Av_dcha2 IN3
.7
18 .11 .12
AND 19 20
SET RESET
Mx_FC1 IN1 OUT EN ENO EN ENO
Mx_FC5 IN2 OUT Qx_mot_subi r OUT Qx_mot_baj ar
Qx_mot_baj ar IN3
.2
21 .3 .5
AND 22 23
SET RESET
Mx_FC2 IN1 OUT EN ENO EN ENO
Mx_FC5 IN2 OUT Mx_Av_dcha3 OUT Qx_mot_subi r
Qx_mot_subi r IN3
.6
24 .13 .14
AND 25 26
SET RESET
Mx_FC2 IN1 OUT EN ENO EN ENO
Mx_FC6 IN2 OUT Qx_mot_baj ar OUT Mx_Av_dcha3
Mx_Av_dcha3 IN3
.15
27 .17
AND 28
RESET
Mx_FC1 IN1 OUT EN ENO
Mx_FC6 IN2 OUT Qx_mot_baj ar
Qx_mot_baj ar IN3
Universidad de Oviedo
230 - Problemas M340 ISA
.4
31 .16
AND 32
SET
Mx_FC1 IN1 OUT EN ENO
Mx_FC6 IN2 OUT Qx_mot_subi r
t_El ectrol i si s.Q IN3
.18
33 .19 .20
AND 34 35
SET RESET
Mx_FC2 IN1 OUT EN ENO EN ENO
Mx_FC6 IN2 OUT Qx_mot_i zda OUT Qx_mot_subi r
Qx_mot_subi r IN3
.21
36 .22 .23
AND 37 38
SET RESET
Mx_FC2 IN1 OUT EN ENO EN ENO
Mx_FC3 IN2 OUT Qx_mot_baj ar OUT Qx_mot_i zda
Qx_mot_i zda IN3
.24
39 .27
AND 40
RESET
Mx_FC1 IN1 OUT EN ENO
Mx_FC3 IN2 OUT Qx_mot_baj ar
Qx_mot_baj ar IN3
.26
41
OR
MtP_tiempo_Electrolisis:=S_Electrolisis.t;
reset (MxP_T1);
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;
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);
(*Rearme y parada*)
Mx_PonCI := CLEARCHART (Control,Re(Mx_Rearme));
if Mx_PonCI then
setstep (S_Subir_4);
end_if;
Universidad de Oviedo
234 - Problemas M340 ISA
if Mx_EnParada then
Mx_SequenceFreezed := FREEZECHART (Control,true); (* Congela el Grafcet, dejando activa la
etapa en la que queda congelado *)
else Mx_SequenceFreezed := FREEZECHART (Control,false);
end_if;
if Mx_marcha then
reset (Mx_EnParada);
end_if;
Seccin "Salidas"
Qx_mot_subir:= (S_subir_1.x or S_subir_2.x or S_subir_3.x or S_subir_4.x) and not Mx_SequenceFreezed;
Qx_mot_bajar:=(S_bajar_1.x or S_bajar_2.x or S_bajar_3.x or S_bajar_4.x) and not Mx_SequenceFreezed;
Qx_mot_dcha:= (S_dcha_1.x or S_dcha_2.x or S_dcha_3.x) and not Mx_SequenceFreezed;
Qx_mot_izda:= S_izda.x and not Mx_SequenceFreezed;
Universidad de Oviedo Problemas M340 - 235
ISA
Seccin "CHART"
S_inicio S_subir_3
Tran1
Mx_FC1 and Mx_FC3 and
Mx_Marcha;
Tran1 Mx_FC2
S_subir_1 S_dcha_3
Mx_FC2 Mx_FC6
S_dcha_1 S_bajar_3
Mx_FC4 Mx_FC1
S_bajar_1 S_Electrolisis
Tran2
S_Electrolisis.t>t#5s;
Mx_FC1 Tran2
S_subir_2 S_subir_4
Mx_FC2 Mx_FC2
S_dcha_2 S_izda
Mx_FC5 Mx_FC3
S_bajar_2 S_bajar_4
Mx_FC1 Mx_FC1
S_subir_3 S_inicio
Universidad de Oviedo
236 - Problemas M340 ISA
Seccin "Preliminar"
(* Marcas para la pantalla *)
If %S13 then
Set (MxP_Paro); Set (MxP_FCC);
END_IF;
(* Programa principal *)
If re (Mx_Rearme) then
set (Mx_PonCi);
reset (Mx_PEv);
end_if;
if Mx_PonCi then
Inicializar();
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;
(* Puestos llenos *)
If Qx_Mojado and Qx_Detergente and Qx_CepiAclarado and Qx_Secado then
set(Mx_Lleno);
end_if;
(* Control de la barrera *)
if Mx_Lleno then
set (Qx_Bajar);
end_if;
if Mx_Fcc then
reset (Qx_Bajar);
end_if;
if Mx_Fca then
reset (Qx_Subir);
end_if;
Subrutina "Inicializar"
if Mx_Fca then
reset (Qx_subir);
set (Mx_PEv);
reset (Mx_ponCi);
end_if;
Pantalla de operador
Universidad de Oviedo Problemas M340 - 241
ISA
Tabla de variables
Universidad de Oviedo
242 - Problemas M340 ISA
Programa en ST (pr0906)
Seccin "Control"
(* Creacin de las variables utilizadas en el programa *)
Mx_Marcha := (Ix_Marcha and Ix_LocDis) or(MxP_Marcha and not Ix_LocDis);
Mx_Paro := (Ix_Paro and Ix_LocDis) or(MxP_Paro and not Ix_LocDis);
Mx_Rearme := (Ix_Rearme and Ix_LocDis) or(MxP_Rearme and not Ix_LocDis);
Mx_AcuAlarma := (Ix_AcuAlarma and Ix_LocDis) or(MxP_AcuAlarma and not Ix_LocDis);
Mx_KM1Aux := (Ix_KM1Aux and Ix_LocDis) or(MxP_KM1Aux and not Ix_LocDis);
Mx_Termico := (Ix_Termico and Ix_LocDis) or(MxP_Termico and not Ix_LocDis);
If %S13 then
set(MxP_Paro);
end_if;
If Mx_AcuAlarma then
reset(Mx_Alarma);
reset(Qx_LuzRoja);
end_if;
Qx_LuzSobrecarga:= Mx_Termico;
Pantalla de operador
Universidad de Oviedo Problemas M340 - 243
ISA
Sc2
Fca_b2
B2
Fcc_b2
S_izda S_coche
S_dcha
St1
St2
Fcc_b1
B1 Fca_b1
Sc1
PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente
de alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo
244 - Problemas M340 ISA
Tabla de variables
Deteccin
.1 .2
1 2 .3
RE AND 3
SET
Mx_S_dcha IN OUT IN1 OUT EN ENO
Mx_vien_izda IN2 OUT Mx_vien_dcha
.4
4 .5
FE 5
RESET
Mx_S_izda IN OUT EN ENO
OUT Mx_vien_dcha
.6 .7
6 7 .8
RE AND 8
SET
Mx_S_izda IN OUT IN1 OUT EN ENO
Mx_vien_dcha IN2 OUT Mx_vien_izda
.9
9 .10
FE 10
RESET
Mx_S_dcha IN OUT EN ENO
OUT Mx_vien_izda
.11
11
OR
Semforo Coches
.1 T EMP_OSC_2HZ
1 2
AND T ON
.2
3
LT _T IME
T EMP_20S
4
T ON
Mx_vien_tren IN Q
t#20s PT ET
Universidad de Oviedo
246 - Problemas M340 ISA
.4 .3 .5
5 6 7
OR AND MOVE
.6
8
MOVE
IN OUT Qx_Luz_se_coche21
.8 .7 .9
9 10 11
OR AND MOVE
.10
12
MOVE
IN OUT Qx_Luz_se_coche22
Barreras
.1
1 .2
AND 2
SET
T emp_20s.Q IN1 OUT EN ENO
Mx_S_coche IN2 OUT Qx_mot_baj_b1
.3
3 .4
OR 4
RESET
Mx_Fcc_b1 IN1 OUT EN ENO
Mx_S_coche IN2 OUT Qx_mot_baj_b1
.5
5 .6
AND 6
SET
T emp_20s.Q IN1 OUT EN ENO
Mx_S_coche IN2 OUT Qx_mot_baj_b2
.7
7 .8
OR 8
RESET
Mx_Fcc_b2 IN1 OUT EN ENO
Mx_S_coche IN2 OUT Qx_mot_baj_b2
.9
9 .10 .11
AND 10 11
SET SET
Mx_vien_dcha IN1 OUT EN ENO EN ENO
Mx_vien_izda IN2 OUT Qx_mot_sub_b1 OUT Qx_mot_sub_b2
.12 .13
12 13
RESET RESET
Mx_Fca_b1 EN ENO Mx_Fca_b2 EN ENO
OUT Qx_mot_sub_b1 OUT Qx_mot_sub_b2
Universidad de Oviedo Problemas M340 - 247
ISA
Semforo Tren
.1
1
AND
.2
Mx_Fcc_b1 IN1 OUT Qx_Luz_se_tr1v
2
Mx_Fcc_b2 IN2 MOVE
Mx_vien_dcha IN3
Mx_S_coche IN4 Qx_Luz_se_tr1v IN OUT Qx_Luz_se_tr1r
.3
3
AND .4
4
Mx_Fcc_b1 IN1 OUT Qx_Luz_se_tr2v MOVE
Mx_Fcc_b2 IN2
Mx_vien_izda IN3 Qx_Luz_se_tr2v IN OUT Qx_Luz_se_tr2r
Mx_S_coche IN4
Transicin Tran2
RE(Mx_S_izda) and not Mx_vien_dcha
Transicin Tran3
S_Temporiza.t>t#20s
Transicin Tran4
FE(Mx_S_izda)
Transicin Tran5
FE(Mx_S_dcha)
Universidad de Oviedo
248 - Problemas M340 ISA
Chart
S_inicio
T ran1 T ran2
Mx_vien_dcha Mx_vien_izda
T emporizacin de 20 segundos
Luces de coches parpadeando a 2Hz
S_T emporiza
T ran3
Bajar la Bajar la
barrera 1 barrera 2
S_Baja_B1 S_Baja_B2
Mx_S_coche Mx_S_coche
true
S_bajadas
Universidad de Oviedo Problemas M340 - 249
ISA
Ambas barreras
se encuentran
S_bajadas
bajadas
Mx_vien_dcha Mx_vien_izda
Semforo 2 Semforo 2
del tren en del tren en
S_St1_Verde S_St2_verde
verde verde
T ran4 T ran5
El tren ya ha
atravesado el
S_nada
paso a nivel
true
Subir la Subir la
barrera 1 barrera 2
S_sube_B1 S_sube_B2
Mx_Fca_b1 Mx_Fca_b2
La barrera 1 se La barrera 2 se
encuentra encuentra
S_B1_subida S_B2_subida
subida subida
true
S_inicio
Universidad de Oviedo
250 - Problemas M340 ISA
Salidas
if S_SET_Dcha.x then
set (Mx_vien_dcha);
end_if;
if S_SET_Izda.x then
set (Mx_vien_izda);
end_if;
if S_RESET_Dcha.x then
reset (Mx_vien_dcha);
end_if;
if S_RESET_Izda.x then
reset (Mx_vien_izda);
end_if;
Pantalla de explotacin
Universidad de Oviedo
252 - Problemas M340 ISA
SE PIDE: Esquema de mando y de fuerza con todas las protecciones necesarias y el programa de control.
PD: El autmata utilizado ser un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM 3202.
ENTRADAS
E2
Preselecccin = Ix_Pul
Marcha = Ix_Marcha
S3
Sensor1 = Ix_Sensor1
Sensor2 = Ix_Sensor2
Sensor3 = Ix_Sensor3
Emergencia1 = Ix_E1 (NC)
Emergencia2 = Ix_E2 (NC)
Rearme = Ix_Rearme
S2
PLC/Manual = Ix_PLC_Manual
SALIDAS
Lmpara de Preselecccin 1 = Qx_Lp1
Lmpara de Preselecccin 2 = Qx_Lp2
Lmpara de Preselecccin 3 = Qx_Lp3
Lmpra de Nivel 1 = Qx_Ln1
S1
Lmpra de Nivel 2 = Qx_Ln2
Lmpra de Nivel 3 = Qx_Ln3
E1
Lmpara de Emergencia 1 = Qx_Le1
Lmpara de Emergencia 2 = Qx_Le2
Accin ascendente = Qx_Subir
Accin descendente = Qx_Bajar
Universidad de Oviedo Problemas M340 - 253
ISA
Mx_Para:= (Qx_LP1 and Mx_Sensor1) or (Qx_LP2 and Mx_Sensor2) or (Qx_LP3 and Mx_Sensor3);
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;
reset (Mx_puestoCI);
end_if;
Chart "Preseleccin"
Etapa0
T ran0_1
RE Mx_Preseleccion and
Etapa10.x
T ran0_1
LP1
Etapa1
T ran1_2
RE Mx_Preseleccion and
Etapa10.x
T ran1_2
LP2
Etapa2
T ran2_3
RE Mx_Preseleccion and
Etapa10.x
T ran2_3
Lp3
Etapa3
T ran3_0
RE Mx_Preseleccion and
Etapa10.x
T ran3_0
Chart "Control"
Etapa10
Mx_Marcha
Etapa11
Tran11_12 Tran11_13
LP1 (Sen2 + Sen3) + LP2 Sen3 LP3 (Sen2 + Sen1) + LP2 Sen1
Etapa12 Etapa13
Bajar Subir
Etapa12 Etapa13
Mx_Para Mx_Para
Universidad de Oviedo Problemas M340 - 255
ISA
Seccin "Transiciones"
Tran0_1:= re (Mx_Preseleccion) and Etapa10.x;
Tran1_2:= re (Mx_Preseleccion) and Etapa10.x;
Tran2_3:= re (Mx_Preseleccion) and Etapa10.x;
Tran3_0:= re (Mx_Preseleccion) and Etapa10.x;
Tran11_12:= (Qx_LP1 and (Mx_Sensor2 or Mx_Sensor3)) or (Qx_LP2 and Mx_Sensor3);
Tran11_13:= (Qx_LP3 and (Mx_Sensor2 or Mx_Sensor1)) or (Qx_LP2 and Mx_Sensor1);
Seccin "Salidas"
Qx_LN1:= Mx_Sensor1;
Qx_LN2:= Mx_Sensor2;
Qx_LN3:= Mx_Sensor3;
Qx_LP1:= Etapa1.x;
Qx_LP2:= Etapa2.x;
Qx_LP3:= Etapa3.x;
Subrutina "Inicializa"
(*Partimos de que la compuerta est en el nivel 3 o en el 1 *)
if Mx_Sensor3 then
set (Mx_Bajar);
end_if;
if Mx_Sensor1 then
set (Mx_Subir);
end_if;
If Mx_Sensor2 then
reset (Mx_Subir); reset (Mx_Bajar);
set (Mx_PuestoCI); reset (Mx_PonCI);
end_if;
Universidad de Oviedo
256 - Problemas M340 ISA
Pantalla de explotacin
Universidad de Oviedo Problemas M340 - 257
ISA
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000 y mdulo mixto de entradas salidas BMX DDM3202K.
Universidad de Oviedo
258 - Problemas M340 ISA
Preliminar
(* Variables utilizadas en el programa *)
Mx_FCA:= (Ix_FCA and Ix_LocDist) or (MxP_FCA and not Ix_LocDist);
Mx_FCC:= (Ix_FCC and Ix_LocDist) or (MxP_FCC and not Ix_LocDist);
Mx_TME:= (Ix_TME and Ix_LocDist) or (MxP_TME and not Ix_LocDist);
Mx_TMS:= (Ix_TMS and Ix_LocDist) or (MxP_TMS and not Ix_LocDist);
Mx_SenLuz:= (Ix_SenLuz and Ix_LocDist) or (MxP_SenLuz and not Ix_LocDist);
Mx_PLuz:= (Ix_PLuz and Ix_LocDist) or (MxP_PLuz and not Ix_LocDist);
Mx_SenCoche:= (Ix_SenCoche and Ix_LocDist) or (MxP_SenCoche and not Ix_LocDist);
Seccin "Transiciones"
Tran30_31 := (S_Entrando.x and Mx_SenLuz) or Mx_PLuz;
Tran31_30 := Etapa31.t >= t#20s;
Tran20_21 := S_Entrando.x or S_Saliendo.x;
Tran20_23 := S_ProcParado.x and not Mx_FCC;
Tran22_23 := Etapa22.t >= t#10s;
Tran24_21 := Etapa24.t >= t#500ms;
Tran26_21 := Etapa26.t >= t#500ms;
Tran27_21 := Etapa27.t >= t#500ms;
Universidad de Oviedo Problemas M340 - 259
ISA
GRAFCET "Control_Portn"
Etapa20
Tran20_21 Tran20_23
S_Entrando OR S_Saliendo S_ProcParado and not Mx_FCC
Tran20_21 Tran20_23
Qx_Abrir
Etapa21
Mx_FCA
Mx_FCA
(* Portn
Abierto *)
Etapa22
Tran22_23
Etapa22.t >= t#10s
Tran22_23
Qx_Cerrar
Etapa23
Mx_FCC
Seccin "Salidas"
Qx_Luz:= Etapa31.x;
Qx_Abrir := Etapa21.x;
Qx_Cerrar := Etapa23.x;
If Etapa26.x then
resetstep (S_Saliendo);
setstep (S_Entrando);
end_if;
If Etapa27.x then
resetstep (S_Entrando);
setstep (S_Saliendo);
end_if;
Pantalla de operador
Universidad de Oviedo Problemas M340 - 261
ISA
CONTROL MANUAL.
Cuando est activo el control manual, (conmutador MM/MA posicin MM) el control autmatico mediante
autmata debe quedar desactivado y poder subir o bajar el ascensor mediante dos pulsadores situados en
la botonera de maniobra quedando limitado el recorrido superior e inferior por unos finales de carrera FCS
y FCI (normalmente cerrados). Cuando por excederse en el recorrido se activase uno de stos, slo podr
entrar la orden contraria.
CONTROL AUTOMTICO.
Cuando est activo el control automtico, (conmutador MM/MA posicin MA) mando manual desactivado,
el automta gobernar el ascensor, para ello dispondr de unos finales de carrera que indicarn su
situacin en las diferentes plantas (FCPlanta~). El FCS y el FCI actuarn pero no sern entrada del automta.
As mismo habr una botonera interior para indicar a que planta se desea ir (LLBot~) y un botn exterior
por planta para llamar al ascensor (LLPlanta~).
Cuando el ascensor llegue a la planta de destino, deber parar su movimiento y proceder a abrir la puerta
corredera interior (FCPuertaAb, FCPuertaCe), desenclavar la puerta exterior cuando la interior est
completamente abierta-, esperar 5 segundos y si hay una llamada interior o exterior, proceder al
enclavamiento de la puerta exterior y cerrar la interior.
La puerta exterior de la planta se abre manualmente una vez desenclavada por el autmata mediante la
orden (Desenclav~), unos finales de carrera (FCPuerExt~ NC) nos informaran que todas las puertas
exteriores de las plantas estn cerradas; condicin indispensable para que el ascensor pueda subir o bajar.
Si estando cerrando, hay un objeto interpuesto, lo detectar una fotocelula FC que abrir de nuevo las
puertas segn la maniobra ya descrita, volviendo a esperar 5 segundos para seguir con la maniobra de
cierre.
En condiciones iniciales el ascensor estar posicionado en una planta cualquiera (situado por el tcnico de
forma manual) y la puerta interior deber estar abierta automticamente.
Para el movimiento ascendente o descendente del ascensor tendremos en cuenta que:
En subida ir parando memorizadamente cuando sea necesario en funcin de las ordenes de
cabina, teniendo stas prioridad frente a las de llamada exterior.
En bajada ir parando memorizadamente cuando sea necesario en funcin de las rdenes de
cabina y exteriores.
Se pide:
Esquema de conexin del control manual y automtico.
Programa de control del ascensor.
Universidad de Oviedo
262 - Problemas M340 ISA
Entradas Salidas
Smbolo
Etiqueta en el Pl7 Direccin
en Comentarios
pro en PLC
los planos
Sensor1 S1 %I1.0 Seta de emergencia
Sensor2 S2 %I1.1 Conmutador para abrir o cerrar
Sensor3 S3 %I1.2 Conmutador para abrir o cerrar
Fc_abierta S3 %I1.3 Final de carrera de puerta abierta
Fc_cerrada S2 %I1.4 Final de carrera de puerta cerrada
C_km1_aux KM1 %I1.5 Contacto auxiliar del contactor de cerrar
C_km2_aux KM2 %I1.6 Contacto auxiliar del contactor de abrir
M_cerrar KM1 %Q2.0 Motor cerrar
M_abrir KM2 %Q2.1 Motor abrir
Puerta_abierta L1 %Q2.2 Luz de puerta abierta
Puerta_cerrada L2 %Q2.3 Luz de puerta cerrada
Universidad de Oviedo Problemas M340 - 263
ISA
1 eje horizontal constituido por un cilindro de doble efecto A, controlado por una electrovlvula de
potencia biestable servopilotada y detectores de posicin a0 y a1
1 eje vertical constituido por un cilindro de doble efecto B, controlado por una electrovlvula de
potencia biestable servopilotada y detectores de posicin b0 y b1
1 actuador de giro C, controlado por una electrovlvula de potencia monoestable servopilotada y
detectores de posicin Pinza0 y Pinza90
1 pinza D, controlada por una electrovlvula de potencia monoestable servopilotada y detector de
posicin PinzaAbierta
1 cilindro de doble efecto E de alimentacin de pieza, controlado por una electrovlvula de
potencia biestable servopilotada y detectores de posicin e0 y e1
1 cilindro de doble efecto F de expulsin de pieza, controlado por una electrovlvula de potencia
biestable servopilotada y detectores de posicin f0 y f1
1 detector inductivo (DInductivo) que nos indica que la pieza bajo la pinza tiene la cara metlica
paralela a la botonera y orientada hacia atrs
1 detector capacitivo (DCbajopinza) que nos indica que hay una pieza baja la pinza
1 detector capacitivo (DCrampa) que nos indica que hay una pieza en la zona de expulsin a la
rampa
1 Fotocelula, que nos indica que hay piezas en la petaca de alimentacin
Pulsadores de Rearme (NA), Marcha (NA) y Paro (NA)
Conmutador de Automtico / Manual (Manual =1)
Una luz indicadora de Defecto y otra de Falta de Material.
El manipulador nos trasladar las piezas almacenadas de forma arbitraria en la petaca de alimentacin,
hasta el final de la rampa de bajada con su cara metlica paralela a la botonera de control y visible desde el
lado contrario a esta.
Universidad de Oviedo
264 - Problemas M340 ISA
OJO! Para poder realizar este paso, la pinza del brazo manipulador debe estar situada en posicin
elevada para no obstaculizar el camino de la pieza.
2. Si en este punto el sensor inductivo detecta la cara metlica, el brazo manipulador deber situar la
pieza en la posicin indicada en el enunciado y llevarla frente a la rampa de expulsin.
En caso contrario, la pieza deber girarse el nmero de veces necesario hasta que dicha cara sea
detectada, pudiendo darse dos casos:
a. Si la deteccin ha sido realizada, la pieza deber girarse hasta posicionar la cara metlica en
la posicin indicada en el enunciado y llevarla frente a la rampa de expulsin.
b. Si tras el nmero de giros necesarios la cara metlica no pudo ser detectada, se llevar la
pieza frente a la rampa de expulsin.
OJO! Los giros de la pieza debern realizarse mientras el manipulador mantenga la pieza en
posicin elevada y nunca abajo o en posiciones intermedias para no daar el sensor
inductivo.
3. Una vez que la pieza sea detectada con el sensor capacitivo (DCrampa) se proceder a su expulsin
mediante el cilindro F.
4. Si la cara metlica no pudo ser detectada en el paso 2, deber indicarse que la pieza no satisface las
exigencias del enunciado encendiendo intermitente y alternadamente las lmparas de defecto y
falta de material, parando el proceso tras la finalizacin del ciclo en curso. El proceso podr
continuar de nuevo haciendo un rearme.
sealizacin de defecto de forma intermitente. Una vez resuelto el fallo, el sistema tiene que volver a CI
mediante el rearme para poder comenzar un nuevo ciclo.
Fallo sensores: si una de las partes de la estacin est en una determinada posicin y el sensor
correspondiente no se activa, se indicar con la activacin de la sealizacin de defecto ya que su posicin
no ser detectada por el autmata y el sistema no funcionar correctamente.
Fallos crticos: es muy importante evitar estados en la programacin que al ejecutarlos podran daar o
daaran de forma irreversible alguna parte de la estacin, a saber: bajada del brazo B en posicin b1
estando el cilindro de alimentacin E en posicin e1.
Se pide para un PLC TSX 3721 v3.0, con mdulo de entrada TSX DEZ 32D2 en direccin 1 y 2; Y mdulo de
salida TSX DSZ 32R5 en direccin 3 y 4:
1. Esquema de mando
2. Esquema de fuerza
3. Programa de mando
4. Pantallas de explotacin
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.
El funcionamiento bsico del manipulador consiste en, coger una pieza del alimentador de petaca, y
meterla en el cajn en un sentido u otro. Dependiendo del material alimentado: opaco o transparente,
haremos que las piezas opacas las meta en sentido transversal al bastidor y las transparentes (en lo
Universidad de Oviedo
268 - Problemas M340 ISA
Funcionamiento normal
Hay dos modos de funcionamiento, que son fijados mediante el selector automtico / manual, se podr
pasar de uno a otro modo en cualquier instante. Para poder iniciar cualquier proceso por primera vez, o
despus de una parada por defecto, se deber partir de CI habiendo pulsado el rearme:
Modo automtico: El proceso comienza tras pulsar rearme y luego marcha. No se detiene hasta
pulsar paro o que exista un defecto.
Modo manual: El proceso comienza tras pulsar rearme, se requiere el accionamiento de marcha
tanto para el comienzo del proceso, como para la realizacin de cada uno de los pasos que
conforman un ciclo completo.
Paro: Al accionar el pulsador de paro, el proceso se detiene y puede ser activado de nuevo en el
punto en que se haba interrumpido accionando marcha. El paro lo indicaremos con la activacin
permanente de la luz roja.
2. A continuacin se elevar el brazo por medio del cilindro sin vstago -eje vertical-, y una vez
alcanzada la parte superior, se efecta un giro de 90 para que la pinza quede en la direccin de la
pieza a recoger.
Universidad de Oviedo Problemas M340 - 269
ISA
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.
Se pide para un PLC TSX 3722 v3.0, con mdulo de entrada TSX DMZ 28DR.
1. Esquema de mando
2. Esquema de fuerza
3. Programa de mando
4. Pantallas de explotacin
Se debe comenzar realizando la configuracin del mdulo de entradas analgicas haciendo doble clic sobre
l en la vista general del hardware del PLC. Se ha instalado el mdulo BMX AMI 0410 que contiene 4
canales de entrada analgica. Aparecer la siguiente ventana:
Universidad de Oviedo Problemas M340 - 273
ISA
En este caso, se ha seleccionado el canal 0 del mdulo de entradas analgicas con un rango de 0 a 10V
Se especifica el desborde
Se elige el filtrado
Universidad de Oviedo
276 - Problemas M340 ISA
Todos estos conceptos quedan definidos en la ayuda del Unity Pro como vemos en el siguiente cuadro:
Una vez configurado el mdulo de entradas analgicas, se debe realizar el escalado de la seal mediante la
insercin de una instancia a un bloque de funcin elemental denominado SCALING.
Los parmetros del escalado forman parte de una estructura de datos denominada PARA_SCALING.
Lo ms cmodo es insertar el bloque y asignar como entrada de parmetros PARA la variable de nombre
p.e.parametros del tipo PARA_SCALING. Por otra parte, la entrada IN y la salida OUT son del tipo REAL.
Teniendo en cuenta lo anteriormente expuesto, para el presente ejemplo, se deben asignar los valores a los
parmetros de escalado en la tabla de datos derivados:
Universidad de Oviedo
278 - Problemas M340 ISA
Preliminar
if Ix_LocalDist then
Mi_TempaSalaF := Iw_TempSalaF;
(*El valor de la temperatura de la sala en grados Fahrenheit se mide a travs de la sonda*)
else
Mi_TempaSalaF := MiP_TempSalaF;
(*El valor de la temperatura de la sala en grados Fahrenheit se asigna por la pantalla de operador*)
end_if;
Seccin Escalado
Universidad de Oviedo Problemas M340 - 279
ISA
Pantalla de operador
PD: El autmata utilizado ser un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentacin BMX CPS 2000, mdulo mixto de entradas salidas BMX DDM3202K y mdulo de entradas
salidas analgicas BMX AMI 0410.
Universidad de Oviedo Problemas M340 - 281
ISA
GEMMA
Universidad de Oviedo
282 - Problemas M340 ISA
En la parte baja del armario, a la altura del depsito inferior hay instalada una bomba centrifuga hidrulica
que eleva el lquido a los depsitos superiores. Esta bomba monofsica est controlada por un variador
instalado en la planta, ste nos permite controlar la potencia de la bomba para manejar el caudal a
nuestras necesidades.
Depsito Superior:
Es el depsito situado en la parte mas alta de la instalacin, capaz de almacenar lquido procedente de
cualquiera de los otros dos, gracias a la accin de la bomba centrfuga B2 y la combinacin adecuada de las
electrovlvulas V3, V4 y V5. Dispone de:
Un sensor de temperatura tipo Pt100 (TempDS) que nos da una seal analgica.
Dos sensores de nivel de tipo flotador NA (MaxDSP) y (MinDS) que nos darn un 1 lgico cuando el lquido
est en ese nivel o superior
Una tubera de desbordamiento, que conecta la parte alta del DS con el DP, que evitara el derrame del
lquido en el caso de efectuar una mala maniobra.
Salida a travs de una electrovlvula V1 que comunica el DS con el DP.
Entrada a travs de una electrovlvula V5 que comunica con el DP por medio de la electrovlvula V3 y
bomba B2, o con el DI por medio de la electrovlvula V4 y bomba B2
Las medidas del depsito superior son de 110mm de ancho, 190mm de largo y 260mm de alto. Estas
medidas dan un volumen de 5,4 litros totales. Pero al estar colocada la tubera de desborde en la parte alta,
nos quedan unos 4,7 litros efectivos.
Deposito principal:
Est situado a una altura intermedia, y es en l en el que se realizan las operaciones mas importantes y el
mayor nmero de ellas. Dispone de :
Un sensor de temperatura tipo Pt100 (TempDP) que nos da una seal analgica.
Dos sensores de nivel de tipo flotador NA (MaxDP) y (MinDP) que nos darn un 1 lgico cuando el lquido
est en ese nivel o superior
Una tubera de desbordamiento, que conecta la parte alta del DP con el DI, que evitara el derrame del
lquido en el caso de efectuar una mala maniobra.
Un sensor de nivel (Presin) obtenido a travs de un sensor de presin que nos da una seal analgica que
posteriormente acondicionaremos.
Un circuito de recirculacin del lquido del depsito mediante la accin de la bomba B1. Con esto podremos
homogeneizar la temperatura del agua cuando la calentemos, o enfriarla al hacerla pasar por un
intercambiador de calor con ventilador incorporado.
Salida a travs de una electrovlvula V2 que comunica el DP con el DI.
Salida a travs de una vlvula manual que comunica el DP con el DI.
Las medidas del depsito son iguales que el depsito superior: 110mm de ancho, 190mm de largo y 260mm
de alto. Dando un volumen efectivo de 4,7 Litros.
Depsito inferior:
Est situado en la parte inferior de la planta y su capacidad es de 10,4 litros. Con lo que en el peor de los
casos desbordamiento-, su volumen es mayor o igual que la suma de las capacidades de los depsitos
restantes. Esto permite, por ejemplo, hacer una operacin de rearme descargando el agua de los depsitos
al tanque inferior para comenzar a realizar tareas. Dispone de:
Dos sensores de nivel de tipo flotador NA (MaxDI) y (MinDI) que nos darn un 1 lgico cuando el lquido
est en ese nivel o superior.
Salida a travs de una electrovlvula V4 que comunica el DI con el DS o el DP a travs de la electrovlvula
Universidad de Oviedo
284 - Problemas M340 ISA
V5 y la bomba B2.
Las medidas del depsito son: 195mm de ancho, 215mm de largo y 260mm de alto. Dando un volumen de
10,9 Litros.
Panel de mando
Para controlar la planta, sta dispone de un panel de mando situado en la parte mas alta desde el que
podemos realizar diferentes acciones.
Selector de tres posiciones: para elegir el modo de funcionamiento Automtico / Operacin /
Mantenimiento
Selector de dos posiciones: para elegir el control Local o Remoto.
Cuatro Pilotos luminosos.
Un zumbador para avisar de forma sonora de diferentes alertas.
Tres pulsadores.
Seta de emergencia, para que en situaciones de emergencia se pueda cortar la ensin en la planta.
Bombas centrfuga B2
Es una bomba trifsica de acoplamiento magntico, alimentada a 400V AC. Para realizar el control de
caudal, se necesitar un regulador de velocidad, ALTIVAR 71.
El fabricante hace referencia a una serie de consejos de funcionamiento:
No se debe de poner en funcionamiento la bomba en vaco. Se puede destruir de forma parcial o total la
bomba.
El motor esta equipado con un trmico de seguridad, que en caso de sobrecalentamiento detiene el motor
hasta que la temperatura descienda.
Tambin viene prevista de un accionamiento magntico. Si la rotacin de la turbina se bloquea por la
presencia de partculas solidas o por cualquier otra razn, se produce un desacoplamiento del campo
magntico y el imn conductor y el motor continan girando. En este caso, se recomienda parar el motor.
Variador de velocidad
Para controlar el caudal de la bomba B2 que eleva el lquido a los depsitos superiores, es necesario tener
conectado un variador de velocidad a la bomba. En esta planta se ha instalado un ALTIVAR 71, del
fabricante SCHNEIDER ELECTRIC. Una salida anlogica de 0 a 10v del autmata controlar la velocidad de la
bomba conectada al altivar.
Sensor de nivel
El sensor de nivel nos indica los litros que posee el depsito principal en cada momento. En el caso del
sensor que tenemos instalado, se trata de un sensor de presin, la altura del lquido ser h = p / ( G)
Caudalimetro
Son dispositivos capaces de medir el caudal de fluido que pasa por un conducto, en nuestro caso el agua.
En la instalacin hemos colocado un caudalimetro a la salida de la bomba centrifuga que eleva el agua del
depsito inferior. Este componente nos proporciona una seal de onda cuadrada, cuya frecuencia es
proporcional al caudal medido por el sensor.
Pilotos
Son elementos para la sealizacin situados en el panel de mando de la planta, y sirven para advertir de
diferentes situaciones del sistema. Existen 4 tipos de pilotos, de diferentes colores: BLANCO, AMARILLO,
VERDE y ROJO.
Sirena de aviso
Es el elemento de sealizacin acstica instalado en la planta. Es un zumbador que indica el estado de una
operacin, en nuestro caso nos indica cuando una operacin finaliz.
Caudalmetro.
El rango de valores numrico que proporciona el canal analgico del autmata asociado al caudalimetro va
desde 0 hasta 10000, que corresponden a 4mA y 20mA respectivamente.
El adaptador de frecuencia esta calibrado para que a 0hz proporcione 4mA y a 1Khz proporcione 20mA. El
caudalimetro nos proporciona una frecuencia mxima de 550hz para 10L/min y una frecuencia de 55Hz
para 1L/min, segn el fabricante.
Por tanto la seal numrica antes de emplear la funcin SCALING es de 5500 cuando lea 10L/min y de 550
para 1L/min.
Sensores de temperatura.
El rango de valores que proporciona el canal analgico del autmata correspondiente a la sonda de
temperatura va de 0 a 10000, lo que corresponden a 4mA y 20mA respectivamente. El adaptador de PT100
esta calibrado para que a 4mA sean 0C y a 20mA sean 100C.
Universidad de Oviedo
286 - Problemas M340 ISA
Luego establecer en "Temas Bsico y de Contraste alto" el tema "Windows 7 Basic", por ejemplo, o el que
ms nos guste. SOLO FUNCIONA CORRECTAMENTE DE ESTA FORMA.
Si as y todo, sale un mensaje que dice "es imposible establecer la comunicacin con el PLC", salir del Unity
e ir a la barra de herramientas. En la zona derecha hay un icono del simulador del PLC. Pinchar en l con el
botn derecho y salir.
Universidad de Oviedo Problemas M340 - 287
ISA
Algunas veces el Unity nos dice que hay un error de token y nos impide seguir. La solucin consiste en
habilitar el multitoken.
Para ello iremos a Herramientas / Ajustes del proyecto. En la ventana que sale, seleccionaremos "Permitir
token multiple".
Universidad de Oviedo
288 - Problemas M340 ISA
Una vez instalados deberemos reiniciar el computador y cuando nos conectemos al PLC mediante un cable
USB saldr la siguiente pantalla
Deberemos dejar que instale los archivos que necesite para poder luego acceder al PLC sin problemas.
Una vez instalados, nos aparecer en la barra de informacin inferior un icono informndonos que se est
ejecutando el driver PLCUSB
proyectos. Para ello ir a "Comunicacin -> Redes", clicar el botn derecho y seleccionar "Nueva red".
3) Por defecto se crea el nombre Ethernet_1. Si se desea cambiar el nombre creado por defecto, introducir
el nombre deseado. Para finalizar pulsar aceptar.
4) En redes aparecer el nuevo componente de red creado. Hacer doble click sobre l.
5) Debemos elegir el mdulo que realizar la conexin de Ethernet. En nuestro caso, lo realizaremos
mediante el puerto Ethernet disponible en la CPU. Por tanto, debemos seleccionar la CPU que estamos
usando. Es importante seleccionar no solamente el tipo de CPU sino tambin la versin.
Universidad de Oviedo
290 - Problemas M340 ISA
7) Se introduce la IP del PLC que ser 156.35.153.2X, siendo X el nmero de estacin en la que se encuentra
el PLC. La mscara de subred es 255.255.255.0. La direccin de pasarela se deja a 0.
Universidad de Oviedo Problemas M340 - 291
ISA
9) Al cerrar la ventana Ethernet_1, se nos pregunta sobre aceptar los cambios. Clicamos S.
10) Seguidamente, acudimos a la configuracin del hardware del PLC. Clicamos sobre la figura del puerto
Ethernet de la CPU del PLC ya que es por donde fsicamente conectaremos nuestro cable de red.
Universidad de Oviedo
292 - Problemas M340 ISA
12) Doble click sobre Canal 3 y seleccionaremos la funcin ETH TCP IP.
Despus Transferimos el programa creado y con ello lograremos establecer la direccin IP en el PLC.
Posteriormente, si deseamos conectarnos con el PLC mediante Ethernet, deberamos acceder a "PLC--
Establecer direccin"y en Direccin pondremos la IP de nuestro PLC y en Medios seleccionaremos TCPIP.
RECORDAR que se deber haber seleccionado el modo ESTANDAR de conexin,no el modo simulador.
Seguidamente ya podramos clicar en Aceptar y luego Conectar para establecer la conexin PC-PLC.
Universidad de Oviedo
296 - Problemas M340 ISA
Slo nos quedar ahora que clicar con el botn derecho encima de
"Proyecto" y saldr una pantalla donde elegiremos la opcin de
Imprimir.
Universidad de Oviedo
298 - Problemas M340 ISA
Procedimiento
Los procedimientos son funciones con distintas salidas. No disponen de estado interno. La nica diferencia
con las funciones elementales es que los procedimientos pueden tener ms de una salida y admiten
variables del tipo de datos VAR_IN_OUT. Los procedimientos no devuelven ningn valor.
Los procedimientos son una ampliacin de la norma CEI 61131-3 y se deben habilitar de forma explcita.
Los procedimientos no se distinguen visualmente de las funciones elementales".
* Extraido de: Unity Pro_ Estandar Libreria de bloques 10_2013. Schneider Electric. pg. 22-24
Universidad de Oviedo Problemas M340 - 299
ISA
Bibliografa
Unity Pro. Lenguajes y estructura del programa. Manual de referencia. Schneider Electric. 07/2012
Modicon M340 con Unity Pro. Mdulos de entradas/salidas binarias. Manual de usuario. Schneider
Electric. 07/2008
Modicon M340 con Unity Pro. Mdulos de entradas/salidas analgicas. Manual de instalacin.
Schneider Electric. 05/2010
Unity Pro. Estandar. Libreria de bloques. Schneider Electric. 10/2013.
Universidad de Oviedo
300 - Problemas M340 ISA
INDICE
SUMARIO ........................................................................................................................................................... 3
Notaciones ......................................................................................................................................................... 6
Funciones lgicas AND y OR .............................................................................................................................. 7
Sistemas combinacionales. Concepto de estado de seal. Control por nivel ................................................... 8
Problema 1.1 Luz de museo con interruptores ............................................................................................... 8
Recomendaciones importantes a tener en cuenta a la hora de programar ................................................... 11
Introduccin del programa .............................................................................................................................. 12
Creacin de la Pantalla de Operador ............................................................................................................... 15
Configuracin de la Pantalla de Operador ...................................................................................................... 17
Simulacin del programa ................................................................................................................................. 18
Sistemas secuenciales. Control por flanco. Funciones de memoria. .............................................................. 21
Funcin Set ...................................................................................................................................................... 21
Funcin Reset .................................................................................................................................................. 22
Funcines lgicas de memoria biestable SR y RS ............................................................................................ 22
Funcin XOR .................................................................................................................................................... 23
Variables de tipo EBOOL .................................................................................................................................. 23
Problema 1.2 Conmutacin de una luz mediante un pulsador ..................................................................... 24
Introduccin de variables de E / S ................................................................................................................... 24
Interfaces de entrada y salida ......................................................................................................................... 29
Problema 1.3 Luz de museo mediante pulsadores........................................................................................ 37
Funciones de temporizacin............................................................................................................................ 39
Cmo introducir un Bloque de Funcin en el lenguaje ST .............................................................................. 42
Problema 2.1 Luz de museo con temporizador ............................................................................................. 44
Cmo exportar e importar pantallas de operador .......................................................................................... 47
Seleccin del valor tiempo actual de un temporizador como variable de control ......................................... 48
Problema 2.2 Semforo simple ..................................................................................................................... 49
Cmo insertar una imagen en la pantalla de operador................................................................................... 52
Problema 2.3 Semforo coche-peatn con intermitencia ............................................................................ 53
Problema 2.4 Arranque estrella - tringulo ................................................................................................... 57
Problema 2.5 Puerta automtica................................................................................................................... 59
Problema 2.6 Motor CC ................................................................................................................................. 61
Funciones de comparacin EQ, NE, LE, LT, GE, GT .......................................................................................... 64
Construccin de un oscilador con comparadores ........................................................................................... 65
Problema 3.1 Semforo con comparadores .................................................................................................. 67
Universidad de Oviedo Problemas M340 - 301
ISA