SlideShare una empresa de Scribd logo
3
Lo más leído
8
Lo más leído
9
Lo más leído
UNIVERSIDAD DE OVIEDO
D.I.E.E.C.S
Área de Ingeniería de Sistemas y Automática
El autómata programable Schneider M340
Problemas. Lenguajes LD, FBD, ST y GRAFCET
Gijón, Agosto de 2022
1ª ed 2012
Jorge Alonso González
Iván Machón González
2 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas Schneider M340 - 3
Universidad de Oviedo
ISA - J. Alonso - I. Machón
SUMARIO
Funciones lógicas: AND y OR
Sistemas combinacionales. Concepto de estado de señal. Control por nivel.
Pr-0101 Luz de Museo mediante interruptores. EM y EF
Recomendaciones importantes a tener en cuenta a la hora de programar
Introducción del programa
Creación de la pantalla de operador
Simulación del programa
Sistemas secuenciales. Control por flanco. Funciones de memoria.
Tipos de datos comunes y rangos
Variables de tipo ebool
Valores literales
Instrucciones IF, THEN, END_IF, ELSE, ELSIF
Instrucción R_TRIG y F_TRIG
Pr-0102 Conmutación de una luz mediante un pulsador. EM y EF
Otra forma de introducir las variables
Funciones lógicas de memoria biestable SET, RESET, SR y RS
Función XOR
Interfaces de Entrada y Salida
Pr-0103 Luz de Museo mediante pulsadores. EM y EF
Funciones de temporización
Funciones de temporización: TON, TOF y TP
Pr-0201 Luz de museo con temporización. EM y EF
Como introducir un Bloque de Función en el lenguaje ST
Exportar e importar pantallas de operador
Selección del valor tiempo actual de un temporizador como variable de control
Pr-0202 Semáforo simple
Cómo insertar una imagen en la pantalla de operador
Pr-0203 Semáforo coche-peatón con intermitencia
Pr-0204 Arranque estrella-triángulo. EM y EF (Ejercicio para resolver)
Pr-0205 Puerta automática. EM y EF (Ejercicio para resolver)
Pr-0206 Motor CC
Funciones de comparación
Funciones de comparación EQ, NE, LE, LT, GE, GT
Construcción de un oscilador con comparadores
Pr-0301 Semáforo coche-peatón con intermitencia
Crear y direccionar varias pantallas de operador
Pr-0302 Semáforo completo con petición de paso
Funciones de contador
Funciones de contador CU, CD, CUD
Pr-0401 Acceso sala comercial – fotocélulas
Cómo cambiar el valor actual de un contador
4 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pr-0402 Control de un contador
GRAFCET
Pr-0501 Portón.
Método para insertar un objeto de la librería de pantalla de operador
Pr-0502 Salida de 2 plantas de un garaje con semáforo (marca suelo, semáforo)
Pr-0503 Garaje 2 plantas (barreras, lazos sensores, semáforo)
Pr-0504 Limpiaparabrisas de coche
Pr-0505 Control de la mezcla de dos líquidos. EM y EF
Funciones INITCHART, CLEARCHART, FREEZCHART, SETSTEP, RESETSTEP
Pr-0506 Ejemplo de control de un GRAFCET.
Subrutinas y puesta en condiciones iniciales
Pr-0600 Portón con puesta en CI
Pr-0601 Control de 2 cilindros (1 CSE y 1 CDE). EM y EF
Como mostrar un texto en la pantalla de operador en función de una variable
Pr-0602 Garaje 2 plantas (barreras, lazos sensores)
Pr-0603 Garaje (S. Coches, s. Peatones)
Pr-0604 Clasificador de piezas
Pr-0605 Control de silo y vagón
Pr-0606 Pesado preciso de sustancias. Sencillo. EM y EF
Pr-0607 Pesado preciso de sustancias. EM y EF
Automatización de cintas
GRAFCETs coordinados
Pr-0701 Cinta alimentadora a cinta de salida
Vigilancia de cintas
Como forzar el valor de una entrada o salida. Cómo 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 Regulación de coches en la calle
Simulación de los eventos
Funciones de desplazamiento y rotación: SHL, SHR, ROR y ROL
Pr-0802 Desplazamientos de bits e interrupciones
Pr-0803 Garaje (S. Coches, portón con pulsador) (Ejercicio para resolver)
Creación de un Bloque de Función de Usuario (DFB)
Ejemplo Arranque y paro de un motor
Problemas de automatización variados
Pr-0901 Arranque tres lámparas. EM y EF
Pr-0902 Depósito mezclador. EM y EF
Pr-0903 Control de 2 bombas y su desgaste
Funciones MOVE NOT
Problemas Schneider M340 - 5
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pr-0904 Proceso electrolisis
Pr-0905 Control de un túnel de lavado de coches
Pr-0907 Paso a nivel
Pr-0908 Control de una compuerta. EM y EF
Pr-0909 Control de un garaje con luz. EM y EF
Pr-0910 Control sencillo de un ascensor de 6 plantas
Pr-0911 Ejemplo de escalado de una señal analógica
Pr-0912 Pesado preciso de sustancias. EM y EF
Como modificar un valor mediante un “Indicador de escala” y mediante un “Cuadro de Giro”
Pr-0913 Control de un ascensor de 6 plantas. Botones de planta de subir y bajar (Ejercicio para resolver)
Problemas de automatización completos [con diseño de protecciones eléctricas y
cálculos neumáticos]
Pr-1001 Control de un aporte de materiales. CDE AD IG
Pr-1002 Control de un aporte de materiales. CDE AET IG
Pr-1003 Control de un aporte de materiales. CSE AET IG
Pr-1004 Control de un horno motorizado. EM y EF
Pr-1005 Control de un molino. EM y EF
Tipos de datos con formato BCD
Formato BCD
Tipo Date
Tipo Time of Day
Tipo Date And Time
Funciones de fecha y hora
ADD_***_TIME: Adición de una duración a una fecha
DIVTIME: División
MULTIME: Multiplicación
SUB_***_***: Calcula la diferencia de tiempo entre dos fechas u horas
SUB_***_TIME: Resta de una duración de una fecha
Escalado de una señal analógica de entrada
Ejemplo Escalado y tratamiento de una señal analógica de temperatura
Como introducir un valor analógico mediante un indicador de escala
Como introducir un gráfico de tendencias
Descripción de los módulos del proyecto "ALCOA"
Esquema de Mando, y fuerza de los módulos en general
Pr-1101 Encendido y apagado sencillo de un horno. EM y EF
Pr-1102 Control sencillo de la temperatura de un horno. EM y EF
Programación por fases
Pr-1201 Portón. Programado mediante fases
6 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
GEMMA
1. Introducción
2. Conceptos básicos
3. La guía GEMMA
4. Gestión de la energía en la Parte de Control
5. Procesamiento en arranque en frío
6. Procesamiento en arranque en caliente
7. Método de utilización del GEMMA
Problemas avanzados
Pr-1301 Manipulador de cubos con cara metálica (Ejercicio para resolver en el laboratorio)
Pr-1302 Manipulador de fichas opacas o transparentes (Ejercicio para resolver en el laboratorio)
Descripción general de la planta piloto educacional "Depósitos"
Enunciado
Anexos
Anexo A · Desactivación de Aero en W7
Anexo B · Error de token
Anexo C · Conexión del PC con el PLC vía ethernet
Anexo D · Bits del sistema
Anexo E · Palabras del sistema
Anexo F · Como generar la documentación del proyecto
Anexo G · Tipos de Bloques
Anexo H · Configuración BMX EHC 0200
Anexo I · Referencias y curvas de elementos de protección
Bibliografía
Problemas Schneider M340 - 7
Universidad de Oviedo
ISA - J. Alonso - I. Machón
INDICE
SUMARIO........................................................................................................................................................... 3
INDICE................................................................................................................................................................ 7
Notaciones....................................................................................................................................................... 11
Funciones lógicas AND y OR ............................................................................................................................ 12
Sistemas combinacionales. Concepto de estado de señal. Control por nivel................................................. 15
Problema 1.1 · Luz de museo con interruptores. EM y EF .............................................................................. 15
Recomendaciones a tener en cuenta a la hora de programar........................................................................ 18
Introducción del programa.............................................................................................................................. 19
Configuración de la Pantalla de Operador ...................................................................................................... 24
Sistemas secuenciales. Control por flanco. Funciones de memoria. .............................................................. 30
Funciones SET, RESET, SR y RS......................................................................................................................... 30
Función XOR .................................................................................................................................................... 32
Tipos de datos comunes y rangos ................................................................................................................... 33
Variables de tipo EBOOL.................................................................................................................................. 33
Constantes....................................................................................................................................................... 34
Valores literales............................................................................................................................................... 34
Instrucciones IF, THEN, END_IF, ELSE, ELSIF.................................................................................................... 35
Instrucción R_TRIG: Rising edge detection...................................................................................................... 36
Instrucción F_TRIG: Falling edge detection..................................................................................................... 36
Problema 1.2 · Conmutación de una luz mediante un pulsador. EM y EF ...................................................... 37
Introducción de variables de E / S................................................................................................................... 39
Interfaces de ENTRADA y SALIDA.................................................................................................................... 44
Problema 1.3 · Luz de museo mediante pulsadores. EM y EF......................................................................... 53
Funciones de temporización ........................................................................................................................... 56
Cómo introducir un Bloque de Función en el lenguaje ST .............................................................................. 59
Problema 2.1 · Luz de museo con temporizador. EM y EF.............................................................................. 61
Cómo exportar e importar pantallas de operador.......................................................................................... 65
Selección del valor tiempo actual de un temporizador como variable de control ......................................... 66
Problema 2.2 · Semáforo simple ..................................................................................................................... 67
Cómo insertar una imagen en la pantalla de operador................................................................................... 70
Problema 2.3 · Semáforo coche-peatón con intermitencia ............................................................................ 71
Problema 2.4 · Arranque estrella – triángulo. EM y EF (Resolver) .................................................................. 75
Problema 2.5 · Puerta automática. EM y EF (Resolver)................................................................................... 77
8 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 2.6 · Motor CC................................................................................................................................. 79
Funciones de comparación EQ, NE, LE, LT, GE, GT.......................................................................................... 82
Construcción de un oscilador con comparadores........................................................................................... 83
Problema 3.1 · Semáforo con comparadores.................................................................................................. 85
Crear y direccionar varias pantallas de operador............................................................................................ 87
Problema 3.2 · Semáforo completo con petición de paso .............................................................................. 89
Funciones de contador.................................................................................................................................... 93
Problema 4.1 · Control de acceso a sala comercial......................................................................................... 97
Cómo cambiar el valor actual de un contador .............................................................................................. 101
Problema 4.2 · Control de un contador reversible........................................................................................ 103
GRAFCET - SFC ............................................................................................................................................... 105
Problema 5.1 · Portón mediante GRAFCET ................................................................................................... 106
Método para insertar un objeto de la librería de pantalla de operador....................................................... 115
Problema 5.2 · Salida de 2 plantas de un garaje con semáforos................................................................... 117
Problema 5.3 · Salida de plantas con semáforo y sensor de abandono de planta ....................................... 121
Problema 5.4 · Control de limpiaparabrisas ................................................................................................ 125
Problema 5.5 · Control de la mezcla de dos líquidos. EM y EF...................................................................... 129
Funciones fundamentales para controlar los SFC (GRAFCETs) ..................................................................... 139
Problema 5.6 · Ejemplo de control de un GRAFCET ...................................................................................... 141
Subrutinas y puesta en condiciones iniciales ................................................................................................ 147
Problema 6.0 · Portón con puesta en CI........................................................................................................ 147
Problema 6.1 · Control de 2 cilindros. EM y EF ............................................................................................. 153
Como mostrar un texto en la pantalla de operador en función de una variable.......................................... 159
Problema 6.2 · Control de plantas con barrera. Puesta en CI con subrutina................................................ 161
Problema 6.3 · Control de acceso a garaje con semáforos ........................................................................... 169
Problema 6.4 · Manipulador 2 ejes con cilindros.......................................................................................... 175
Problema 6.5 · Control de un silo y vagoneta ............................................................................................... 181
Problema 6.6 · Pesado preciso de sustancias. Sencillo. EM y EF................................................................... 187
Problema 6.7 · Pesado preciso de sustancias. EM y EF ................................................................................. 193
GRAFCETs Coordinados ................................................................................................................................. 197
Problema 7.1 · Control de 2 cintas ................................................................................................................ 199
Como forzar el valor de una entrada o salida o modificar el valor de una variable ..................................... 205
Problema 7.2 · Tolva a cinta alimentadora giratoria y 3 cintas de salida...................................................... 207
Problema 7.3 · Dos cintas alimentadoras a tolva y cinta de salida (Resolver) .............................................. 217
Problema 7.4 · Control de 1 cinta (en construcción)..................................................................................... 219
Problemas Schneider M340 - 9
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Interrupciones ............................................................................................................................................... 221
Problema 8.1 · Control de tráfico en 2 carriles.............................................................................................. 221
Simulación de los eventos (interrupciones) .................................................................................................. 225
Funciones de desplazamiento y rotación...................................................................................................... 227
Problema 8.2 · Desplazamientos de bits e interrupciones............................................................................ 229
Problema 8.3 · Control de acceso de entrada a garaje y pulsador (Resolver) .............................................. 237
Cómo crear un Bloque de Función de Usuario (DFB).................................................................................... 239
Problema 9.1 · Control de 3 lámparas. EM y EF ............................................................................................ 245
Problema 9.2 · Control de la mezcla en un depósito. EM y EF...................................................................... 253
Funciones MOVE y NOT................................................................................................................................. 269
Problema 9.3 · Control de 2 bombas y su desgaste. EM y EF........................................................................ 271
Problema 9.4 · Proceso de electrólisis........................................................................................................... 283
Problema 9.5 · Control de un túnel de lavado............................................................................................... 295
Problema 9.7 · Control de un paso a nivel .................................................................................................... 305
Problema 9.8 · Control de una compuerta. EM y EF ..................................................................................... 317
Problema 9.9 · Control de un garaje. EM y EF............................................................................................... 327
Problema 9.10 · Control sencillo de un ascensor de 6 plantas...................................................................... 335
Como introducir un valor analógico mediante un indicador de escala......................................................... 353
Como introducir un gráfico de tendencias.................................................................................................... 353
Cómo hacer el escalado de una señal analógica de entrada......................................................................... 354
Problema 9.11 Ejemplo de escalado de señal analógica............................................................................... 363
Problema 9.12 · Pesado preciso de sustancias. EM y EF ............................................................................... 365
Problema 9.13 · Control de un ascensor de 6 plantas. Botones de planta de subir y bajar (Resolver) ........ 373
Problema 10.01 · Control de un aporte de materiales. CDE AD IG ............................................................... 375
Prob. 10.02 · Control de un aporte de materiales. CDE A ET IG.................................................................... 389
Prob. 10.03 Control de un aporte de materiales. CSE A ET IG..................................................................... 405
Problema 10.04 · Control de un horno motorizado. EM y EF........................................................................ 417
Problema 10.05 · Control de un molino. EM y EF.......................................................................................... 429
Tipos de datos con formato BCD................................................................................................................... 435
Funciones de fecha y hora............................................................................................................................. 438
Descripción del panel modular de entrenamiento para automatización y control de procesos.................. 443
Problema 11.01 · Encendido y apagado sencillo del horno. EM y EF........................................................... 447
Problema 11.02 · Control sencillo de la temperatura de un horno. EM y EF................................................ 453
Programación por fases................................................................................................................................. 459
10 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 12.01 · Control de un portón. Programación mediante FASES.................................................... 459
GEMMA ......................................................................................................................................................... 463
Problema 13.01 · Manipulador de cubos (Comprobar código)..................................................................... 477
Problema 13.02 · Manipulador de fichas (Resolver) ..................................................................................... 497
Descripción general de la planta piloto educacional "Depósitos" ................................................................ 505
Anexo A · Desactivación de Aero en W7 ....................................................................................................... 509
Anexo B · Errores típicos................................................................................................................................ 510
Anexo C · Conexión del PC con el PLC vía USB y Ethernet............................................................................. 514
Anexo D · Bits del sistema ............................................................................................................................. 522
Anexo E · Palabras del sistema ...................................................................................................................... 523
Anexo F · Como generar la documentación del proyecto............................................................................. 525
Anexo G · Tipos de Bloques ........................................................................................................................... 526
Anexo H · Configuración BMX EHC 0200 - (Estación 5 de la FMS200)......................................................... 527
Anexo I · Referencias y curvas de elementos de protección......................................................................... 529
Anexo J · Caract. generales de los procesadores BMX P342020................................................................... 533
Bibliografía..................................................................................................................................................... 534
Problemas Schneider M340 - 11
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Notaciones
En todos los problemas expuestos se seguirán las siguientes Notaciones
Ix_Nombre Entrada booleana del bornero del PLC [Ix_Pulsador]
Iw_Nombre Entrada analógica del bornero del PLC [Iw_Temperatura]
Qx_Nombre Salida booleana física del bornero del PLC [Qx_MotTolva]
Qw_Nombre Salida analógica del bornero del PLC [Qw_ValvulaA]
Mx_Nombre Memoria booleana utilizada en el programa [Mx_Flanco]
MxP_Nombre Memoria booleana del panel de operador [MxP_FCS]
Mi_Nombre Nombre de una variable de tipo entero [Mi_Contador]
Mdi_Nombre Nombre de una variable de tipo doble entero [Mdi_NumObjetos]
Mw_Nombre Nombre de una variable de tipo word [Mw_Potenciometro]
Mdw_Nombre Nombre de una variable de tipo dobleword [Mdw_Valor]
Mr_Nombre Nombre de una variable de tipo real [Mr_Precio]
Mt_Nombre Nombre de una variable tipo time [Mt_TiempoRojo]
TON_Nombre Nombre de un temporizador tipo TON [TON_Verde]
TOF_Nombre Nombre de un temporizador tipo TOFF [TOF_Arranque]
TP_Nombre Nombre de un temporizador tipo TP [TP_Lampara]
ENúmero Nombre de una etapa en un GRAFCET [E4]
EtapaNúmero " " [Etapa0]
TranEtapaIni_EtapaFinal Nombre de una transición en un GRAFCET [Tran3_6]
En algunos problemas, pondremos en rojo la definición de variables que se ponen para poder simular un
programa en casa, en la realidad estas no se usarían, en su lugar, se usarían las entradas Ix
correspondientes.
12 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Funciones lógicas AND y OR
Función AND
La función AND realiza la combinación lógica de las entradas situadas a su izquierda y hace la función AND
asignando el resultado a la salida situada a su derecha. Los tipos de datos para todos los valores de entrada
y de salida deben ser idénticos. El número de entradas máximo es de 32.
Los parámetros EN (ENable) y ENO (ENableOutput) son opcionales. Se habilitan haciendo un click en la casilla
"Mostrar EN/ENO". Para ello seleccionar el bloque de función, clicar el botón derecho del ratón y elegir
propiedades. Saldrá la pantalla inferior.
¿Para que sirven?. ENable, nos permitirá ejecutar el bloque de función cuando la combinación lógica situada
a su izquierda sea 1 lógico. ENable Ouput, nos transmitirá esta habilitación hacia los bloques que se conecten
a ella.
Tipos de funciones AND
Representación en FBD
Representación en ST
Resultado := AND (Valor_1, Valor_2) ;
IN1 IN2 AND
0 0 0
0 1 0
1 0 0
1 1 1
Problemas Schneider M340 - 13
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Función OR
"La función OR realiza la combinación lógica de las entradas y hace la función 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 número de entradas como máximo a 32".
Los paramétros EN (ENable) y ENO (ENableOutput) son opcionales.
Tipos de funciones OR
Representación en FBD
Representación en ST
Resultado := OR (Valor_1, Valor_2) ;
IN1 IN2 OR
0 0 0
0 1 1
1 0 1
1 1 1
14 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas Schneider M340 - 15
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sistemas combinacionales. Concepto de estado de señal.
Control por nivel
Un sistema combinacional es aquel en el que las salidas dependen exclusivamente de una función
determinada de las entradas en un momento dado.
Problema 1.1 · Luz de museo con interruptores. EM y EF
Se desea controlar la activación y desactivación de la iluminación de un local, mediante el accionamiento de
tres interruptores de configuración normalmente abiertos.
Como aplicación del enunciado, se puede suponer una sala de un museo, en la cual, se quiere que la
iluminación no esté activada cuando la sala se encuentre vacía. Para ello en las tres puertas de acceso que
tiene la sala figura el siguiente letrero:
Cuando acceda a la sala y ésta se encuentre vacía accione el interruptor,
que tiene en la puerta por la que entra, para encender la iluminación.
Cuando abandone la sala y no quede persona alguna en el interior,
accione el interruptor que tiene la puerta por la que sale.
Los interruptores S0, S1 y S2 se consideran NA.
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de
alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo de entradas PNP BMX DDI
1602 y salidas PNP BMX DDO 1602. Las 3 lámparas de iluminación son de 60 W.
Se pide:
1. Diseñar el esquema de mando y de fuerza del sistema.
2. Programa de mando
16 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de Mando
El consumo de las lámparas hace que no pueden ser alimentadas directamente a la salida del AP. Por ello
utilizamos un relé auxiliar, que al cerrar su contacto, las alimenta en un circuito de fuerza independiente de
230 VAC.
Esquema de fuerza
BMX DDI 1602 BMX DDO 1602
Problemas Schneider M340 - 17
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de variables
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 las entradas.
De las 8 combinaciones posibles de los interruptores, sólo 4 activan la salida
Tabla de activaciones
ENTRADAS SALIDAS
Ix_Sensor0 Ix_Sensor1 Ix_Sensor2 Qx_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
Etiqueta
Símbolo en
los planos
Dirección
en PLC
Tipo Comentarios
Ix_Sensor0 S0 %I0.1.0 EBOOL Interruptor 0
Ix_Sensor1 S1 %I0.1.1 EBOOL Interruptor 1
Ix_Sensor2 S2 %I0.1.2 EBOOL Interruptor 2
Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0
Qx_Luz H1 %Q0.2.0 EBOOL Luz
MxP_Sensor0 BOOL Marca del interruptor 0 en la pantalla
MxP_Sensor1 BOOL Marca del interruptor 1 en la pantalla
MxP_Sensor2 BOOL Marca del interruptor 2 en la pantalla
Mx_Sensor0 BOOL Marca del interruptor 0 en el programa
Mx_Sensor1 BOOL Marca del interruptor 1 en el programa
Mx_Sensor2 BOOL Marca del interruptor 2 en el programa
18 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Y por tanto, teniendo en cuenta que un interruptor NA, cuando está activo su estado de señal es 1 -le llega
tensión a la borna del autómata-, y cuando no está activo su estado de señal es 0. Tenemos que la tabla de
estado de la señal que necesitamos para el programa de Mando, es la siguiente:
Tabla de estados
ENTRADAS SALIDAS
Ix_Sensor0 Ix_Sensor1 Ix_Sensor2 Qx_Luz
0 0 1 1
0 1 0 1
1 0 0 1
1 1 1 1
Si el interruptor Ix_Sensor2 fuese NC la tabla de estados cambiaría -el NC es dual del NA- y sería la siguiente:
Recomendaciones a tener en cuenta a la hora de programar
Vamos a programar siempre de la misma forma. Suponemos que tenemos un conmutador en el armario o
bastidor de Mando, (Ix_LocDis), con el que indicamos si queremos un control local, a través de los elementos
de campo conectados a las bornas del Autómata Programable (en el futuro AP) o un control a distancia, a
través de los distintos elementos que programemos en las pantallas de operador.
De forma tal, que si no trabajamos con el AP, podremos simular el programa de control en nuestro
computador ya que la variable Ix_LocDis valdrá 0 y por tanto serán operativas todas las órdenes que demos
desde la pantalla de operador. Estas variables empezarán por MtipoP_Nombre, la P, indica que es una
variable suministrada desde la pantalla de Operador. P.e. MxP_Marcha
Las variables que utilizaremos en el programa de control serán por tanto Mtipo_Nombre. Donde tipo viene
definido por las Notaciones establecidas en la página 7, p.e Mx_Marcha. Por tanto, en el programa de control
nunca utilizaremos variables Ix_Nombre, p.e. Ix_Marcha.
Nota:
Cuando hagamos un programa para un control de verdad, habrá variables que no se deberán programar de
esta forma, pues quien manda la información exclusivamente serán los elementos de campo y no la pantalla
de operador.
Tabla de estados (Sensor2 NC)
ENTRADAS SALIDAS
Ix_Sensor0 Ix_Sensor1 Ix_Sensor2 Qx_Luz
0 0 0 1
0 1 1 1
1 0 1 1
1 1 0 1
Problemas Schneider M340 - 19
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Introducción del programa
Se selecciona la opción Fichero / Nuevo. En la ventana que aparece se selecciona el modelo de AP y su tipo
de CPU. En nuestro caso, seleccionamos un Autómata de la gama Modicon M340 y CPU BMX P34 2020.
Después hacemos un doble clic en la opción Bus PLC de la carpeta Configuración.
En la ventana que aparece, se puede observar el bastidor, la fuente de alimentación FA (CPS2000) y la CPU
(P34 2020) del Autómata escogido. Hay que tener cuidado y elegir correctamente la versión del firmware,
asegurarse que sea la que soporta nuestro AP -en nuestro caso 02.50.
Se hace un doble clic en el módulo 1 y luego en el 2 para indicar que Interface de entrada/salida deseamos.
Si quisiéramos cambiar el tipo de bastidor haríamos clic sobre el número cero del Rack o en el mismo Rack
en gris situado a la izquierda de la FA.
20 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Para el primer problema elegiremos, por ejemplo, un módulo de Entradas binarias del tipo BMX DDI 1602
y un módulo de Salidas BMX DDO 1602. De esta forma queda configurado el hardware del AP.
Luego introduciremos los nombres
de las variables de nuestro
programa haciendo clic en la opción
"Variables elementales" de la
carpeta "Variables e instancias FB".
Procederemos a configurarlas todas
especificando el tipo de datos
asociado.
La sección de programa la introduciremos clicando el botón derecho encima de la palabra Secciones de la
subcarpeta de tareas MAST de la carpeta Programa. En la ventana que surge indicaremos el Nombre que
daremos a nuestra sección de código y el Lenguaje que emplearemos.
Problemas Schneider M340 - 21
Universidad de Oviedo
ISA - J. Alonso - I. Machón
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:
Preliminar escrito en lenguaje LD
ControlLuz escrito en lenguaje LD
Sección "Preliminar" en LD
Sección "ControlLuz" en LD
22 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Creación de la Pantalla de Operador
Se crea con la opción Pantalla de operador, botón derecho del ratón, Nueva pantalla teclear p.e. Pantalla0.
Se procede a diseñarla añadiéndole todo lo que necesitemos representar.
La opción de introducir un interruptor o un pulsador, se hace mediante la 11ª opción de la barra IOSEditor.
En la lista desplegable Variable dentro de la pestaña Control se escribe o se elige la variable que queremos
poner en "1" o en "0" cuando pulsamos con el ratón en el icono de la pantalla.
Marcando o no la casilla "Con rentención" obtenemos la posibilidad de que el botón de comando, se
comporte como un interruptor o como un pulsador.
Problemas Schneider M340 - 23
Universidad de Oviedo
ISA - J. Alonso - I. Machón
El texto indicativo de que interruptor se trata, lo obtenemos con la opción 7ª de la barra IOSEditor.
Se puede poner el texto en negrita, cursiva, subrayado, mayúsculas. Elegir la alineación, el color, tamaño,
tipo de fuente, color de línea, relleno, etc, etc.
Para mostrar la luz, hacemos un círculo 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 abarcándolas con una caja de selección y con el botón 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.
24 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Por último, situamos la luz verde clara delante de la oscura haciendo uso del icono primer plano
Configuración de la Pantalla de Operador
Es conveniente que cuando trabajemos en una pantalla no salgan las barras de desplazamiento lateral ni
vertical. La pantalla de operador debe de estar diseñada para que se adapte a la resolución de nuestro
monitor. Para ello, configuraremos la resolución con la que trabajamos en el menú Herramientas | Opciones.
Elegiremos el valor deseado con las flechas que aparecen al lado del valor de Ancho y Alto.
Las resoluciones más típicas de los monitores Ancho x Alto que utilizamos son
1024 x 768 | 1366 x 768 | 1920 x 1080
Para trabajar en pantalla completa, elegiremos Ver | Pantalla completa, que equivale a pulsar las teclas
Ctrl + F8
Problemas Schneider M340 - 25
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Simulación del programa
Para simular el programa lo primero que deberemos hacer es ir al menú Generar y clicar la opción
Regenerar todo el proyecto. Luego, iremos al menú PLC y estableceremos la Modalidad de simulación.
Posteriormente indicaremos que queremos Conectar con el PLC, en nuestro caso con el simulador.
A continuación clicaremos Transferir proyecto a PLC, en nuestro caso al simulador.
Cuando finalice ejecutaremos el programa con el comando, Ejecutar (poner en RUN) del menú PLC.
26 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Por último, seleccionaremos Habilitar Modificación de variables, en el menú Servicios para habilitar la
posibilidad de introducir y modificar valores de la pantalla de Operador.
Programa en ST - (pr0101c)
Este programa lo hemos estructurado en dos secciones:
Preliminar escrito en lenguaje ST
ControlLuz escrito en lenguaje ST
Sección "Preliminar" en ST
(* definimos las variables con las que vamos a trabajar en el programa. Las Ix_ serán las que utilicemos en
control local y las MxP_ las que utilicemos desde la pantalla de operador *)
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);
Sección "ControlLuz" en ST
Qx_Luz:= (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);
Problemas Schneider M340 - 27
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa mixto (ST y FBD) - (pr0101d)
Este programa lo hemos estructurado en dos secciones:
Preliminar escrito en lenguaje ST
ControlLuz escrito en lenguaje FBD
Sección "Preliminar" en ST
(* definimos las variables con las que vamos a trabajar en el programa. Las Ix_ serán las que utilicemos en
control local y las MxP_ las que utilicemos desde la pantalla de deoperador *)
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);
Sección "ControlLuz" en FBD
Introducción de las instrucciones, bloques en FFB
Cuando creamos la sección nueva en código FBD aparece una nueva barra de herramientas
De ella seleccionaremos el tercer icono <Asistente de entrada FFB> que nos dará acceso a la pantalla
orden en que
ejecuta la función
número de
instancia de la
función
28 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
En la que indicaremos que tipo de FFB deseamos introducir. Si no sabemos su nombre, clicaremos en los 3
puntos de la derecha de la lista desplegable del "Tipo de FFB" y aparecerá una ventana.
En ella abriremos la carpeta <Conjunto de librerias V6.0> y dentro de ésta, la carpeta Base Lib, a continuación
buscaremos nuestra opción en la subcarpeta Logic.
Seleccionamos la función deseada
Problemas Schneider M340 - 29
Universidad de Oviedo
ISA - J. Alonso - I. Machón
y aceptaremos.
A continuación clicando en la pantalla, y sin soltar el botón del ratón, arrastramos y soltamos, creando el
acceso a la función deseada
luego, sólo tenemos que arrastrar el punto de control negro para que la función muestre más o menos
entradas.
Con el séptimo icono indicaremos la consulta de estado 0 de una entrada.
Pinchando en cualquiera de las entradas, podremos elegir la variable adecuada sobre la que hacer la consulta.
30 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sistemas secuenciales. Control por flanco. Funciones de
memoria.
Un sistema secuencial es aquel cuya salida no depende solamente de las variables de excitación externas o
entradas, sino también del estado anterior o estado interno.
Funciones SET, RESET, SR y RS
Función SET
Cuando se ejecuta la función SET, se realiza la puesta a 1 de forma memorizada del bit asociado. Si no se
ejecuta, el bit no se modIfica.
Representación en ST
IF Combinación Lógica THEN
Set (Qx_Luz) ;
END_IF;
Representación en FBD
El bloque de función SET, lo obtenemos pulsAndo sobre Asistente de entrada FFB, de la barra de iconos FBD-
Editor.
Del conjunto de Librerias/Familias, desplegaremos <Conjunto de librerias V6.0> y dentro de ésta, la carpeta
Base Lib, a continuación buscaremos nuestra opción en la subcarpeta Logic.
Combinación Lógica Salida (Qx_Luz)
0 No cambia
1 1
Problemas Schneider M340 - 31
Universidad de Oviedo
ISA - J. Alonso - I. Machón
(*Si queremos que nos salga la patilla de conexión EN -enable- en los bloques de programa SET y RESET,
deberemos habilitar la casilla correspondiente Mostrar EN/ENO *)
Función RESET
Cuando se ejecuta la función RESET, se realiza la puesta a 0 de forma memorizada del bit asociado. Si no se
ejecuta, el bit no se modIfica.
Representación en ST
IF Combinación Lógica THEN
Reset (Qx_Luz) ;
END_IF;
Bloque de función de memoria biestable SR con SET prioritario.
Se evalúan las combinaciones lógicas que hubiese en las entradas S1 y R y luego se procesa la función.
 La salida Q1 será "1" cuando la entrada S1 sea "1". Permanece en este estado de forma memorizada
incluso si la entrada S1 pasa a valer "0".
 La salida Q1 no pasará a "0" hasta que la entrada R sea "1".
 Si las entradas S1 y R son "1" a la vez, la entrada dominante S1 hará que la salida Q1 sea "1".
 El estado inicial de Q1 durante la primera llamada del bloque de función es "0".
 Se evalúan las combinaciones lógicas de las entradas S1 y R y luego se ejecuta la función
Como parámetros adicionales se pueden configurar EN y ENO"
Combinación Lógica Salida (Qx_Luz)
0 No cambia
1 0
SET RESET Salida
0 0 No cambia
0 1 0
1 0 1
1 1 1
32 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Bloque de función de memoria biestable RS con RESET prioritario.
"Se evalúan las combinaciones lógicas que hubiese en las entradas S y R1 y luego se procesa la función.
 La salida Q1 será "1" cuando la entrada S sea "1". Permanece en este estado de forma memorizada
incluso si la entrada S pasa a valer "0".
 La salida Q1 no pasará a "0" hasta que la entrada R1 sea "1".
 Si las entradas S y R1 son "1" a la vez, la entrada dominante R1 hará que la salida Q1 sea "0".
 El estado inicial de Q1 durante la primera llamada del bloque de función es "0".
 Se evalúan las combinaciones lógicas de las entradas S y R1 y luego se ejecuta la función
Como parámetros adicionales se pueden configurar EN y ENO"
Función XOR
"Realiza la función XOR entre dos entradas.
Los tipos de datos de todos los valores de entrada y el del valor de salida deben ser iguales.
El número de entradas podría ser como máximo 32.
Se podrían configurar los parámetros adicionales EN y ENO"
Representación en FBD
Representación en ST
Resultado := XOR (Valor_1, Valor_2) ;
SET RESET Salida
0 0 No cambia
0 1 0
1 0 1
1 1 0
Ent1 Ent2 Salida
0 0 0
0 1 1
1 0 1
1 1 0
Problemas Schneider M340 - 33
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tipos de datos comunes y rangos
Ver más ampliado en [1] páginas 311- 371
BOOL / EBOOL : Variable Booleana será FALSA (0) o VERDADERA (1).
EBOOL gestiona también la detección de flancos
WORD : Representa una “cadena de 16 bits”, significando una longitud de datos de 16 bits
INT : Tipo Entero con signo y formato de 16 bits. El rango de cada base es
Decimal. De -32768 hasta 32767
Binaria. De 2#1000000000000000 a 2#0111111111111111
Octal. De 8#100000 a 8#077777
Hexadecimal. De 16#8000 a 16#7FFF
DINT : Tipo Entero doble con signo y formato de 32 bits. El rango de cada base es
Decimal. De -2147483648 hasta 2147482647
Binaria. De 2#10000000000000000000000000000000 a
2#01111111111111111111111111111111
Octal. De 8#10000000000 a 8#07777777777
Hexadecimal. De 16#80000000 a 16#7FFFFFFF
UINT : Entero sin signo y formato de 16 bits. El rango de cada base es
Decimal. De 0 a 65535
Binaria. De 2#0 a 2#1111111111111111
Octal. De 8#0 a 8#177777
Hexadecimal. De 16#0 a 16#FFFF
REAL : Representa un valor decimal. El rango de valores es de -3.40e+38 a 3.40e+38
TIME: El tipo Time T# o TIME# se representa mediante un tipo entero doble sin signo (UDINT)
Las unidades de tiempo permitidas para representar el valor son
dias (D), horas (H), minutos (M), segundos (S) y milisegundos (MS)
Ejemplo T#4D_5H_2M_45S_250MS
Variables de tipo EBOOL
La variable ebool es también una variable binaria igual que una de tipo
bool, contiene el valor FALSE (=0) o TRUE (=1), pero también incluye
información relativa a la gestión de los flancos ascendentes o
descendentes y al forzado.
Este tipo ocupa 1 byte en la memoria para almacenarlo.
Todas las variables de entrada y salida, y todas aquellas de las cuales
queramos evaluar un flanco (bien sea de subida o de bajada), deben ser
declaradas como ebool, si no, daría un error.
34 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Constantes
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 ejecución.
Valores literales
"Los valores literales se usan para asignar valores a patillas, o asignar constantes a variables, y no cambiarlos
por programa"
Se pueden entrar valores literales como
base 2 (binario) 2#1111111111111111
base 8 (octal) 8#177777
base 10 (decimal) 65535 (10# no se necesita)
base 16 ( hex) 16#FFFF
Tiempo (de 5 segundos) t#5s o time#5s
Problemas Schneider M340 - 35
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Instrucciones IF, THEN, END_IF, ELSE, ELSIF
La instrucción IF ... THEN END_IF, determina que las acciones que vienen a continuación de THEN, se
ejecutarán si la combinación lógica que hay entre IF y THEN es cierta (1), si esa combinación es falsa (0), no
se ejecutarán. La palabra clave END_IF determina el final de la instrucción.
IF Combinación Lógica THEN IF NOT Mx_Sensor AND Mx_PuertaAbierta THEN
AccionA; SET (Qx_CerrarPuerta);
AccionB ; SET (Qx_LRoja),
END_IF ; END_IF;
Otra instrucción que se emplea mucho es ELSE, esta instrucción viene después de la IF ... THEN, ELSIF o CASE.
Si la instrucción ELSE viene después de la IF o la ELSIF, la instrucción o conjunto de instrucciones que la siguen,
sólo se ejecutaran si la combinación lógica de IF o ELSIF es falsa (0). Si la combinación lógica de IF o ELSIF es
cierta (1), la instrucción o conjunto de instrucciones no se ejecutarán.
IF Combinación Lógica THEN IF NOT Mx_Sensor AND Mx_PuertaAbierta THEN
AccionA; SET (Qx_CerrarPuerta);
ELSE AccionB ; ELSE SET (Qx_AbrirPuerta),
END_IF ; END_IF;
Se pueden anidar varias instrucciones IF THEN, ELSE, END_IF con precaución.
La instrucción ELSE viene siempre después la instrucción IF ... THEN. La instrucción ELSIF, determina que la
siguiente instrucción o grupo de instrucciones, sólo se ejecutarán si la combinación lógica de IF es falsa (0) y
la combinación lógica de la instrucción ELSIF es cierta (1).
Si la instrucción IF es cierta (1) o la combinación de ELSIF es falsa (0), la instrucción o conjunto de
instrucciones situadas después de ELSIF no se ejecutarán.
El comando, THEN identifica el final de la combinación lógica y el principio de las instrucciones a ejecutar.
Se pueden anidar varias instrucciones IF ... THEN ... ELSIF ... THEN ... END_IF generando una instrucción más
compleja (mucho cuidado).
Ejemplos
IF A>B THEN IF A>B THEN
IF B=C THEN
C:=SIN(A) * COS(B) ; C:=SIN(A) * COS(B) ;
B:=SUB(C,A) ; ELSE
ELSIF A=B THEN B:=SUB(C,A) ;
C:=ADD(A,B) ; END_IF ;
B:=MUL(C,A) ; ELSIF A=B THEN
END_IF ; C:=ADD(A,B) ;
B:=MUL(C,A) ;
ELSE
C:=DIV(A,B) ;
END_IF;
36 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Instrucción R_TRIG: Rising edge detection
Esta función se usa para detectar el flanco positivo o de subida de una señal de entrada 0 -> 1.
La salida Q será "1" si la entrada en CLK pasa de "0" a "1". La salida permanece en "1" durante 1 ciclo de
programa, en el siguiente ciclo, automáticamente pasa a "0".
En y ENO pueden ser activados adicionalmente como parámetros.
Representación en FBD
Representación en LD
Representación en ST
Salida := RE (Entrada) ;
Instrucción F_TRIG: Falling edge detection
Esta función se usa para detectar el flanco negativo o de bajada de una señal de entrada 1 -> 0.
La salida Q será "1" si la entrada en CLK pasa de "1" a "0". La salida permanece en "1" durante 1 ciclo de
programa, en el siguiente ciclo, automáticamente pasa a "0".
En y ENO pueden ser activados adicionalmente como parámetros.
Representación en FBD
Representación en LD
Representación en ST
Salida := FE (Entrada) ;
Problemas Schneider M340 - 37
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 1.2 · Conmutación de una luz mediante un pulsador.
EM y EF
Se desea controlar una luz que deberá conmutar su estado cada vez que se accione un pulsador.
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto BMX DDM16025
de entradas PNP a 24 VCC y salidas por relé a 24 VCC. La luz es de una potencia de 100 W a 230 VAC.
Se pide:
1. Diseñar el esquema de mando y de fuerza del sistema.
2. Programa de mando
38 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de Mando,
Esquema de fuerza
BMX DDM 16025
Problemas Schneider M340 - 39
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de variables
Introducción de variables de E / S
Un método sería abrir el editor de variables elementales, e ir introduciendo una a una especIficando su
dirección física %I0.1.X o %Q0.1.X.
Introducirlas de esta forma es un poco tedioso, por lo que propondremos otro método alternativo.
Se procederá a clicar dos veces sobre el módulo de hardware BMX DDM 16025.
En la pantalla que aparece se selecciona el nombre del módulo, en este caso BMX DDM 16025.
40 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
En la nueva pantalla, seleccionaremos la pestaña Objetos de E/S
En ella activaremos las opciones %I y %Q.
A continuación pulsaremos sobre el botón Actualizar cuadrícula.
La ventana se transforma y nos aparecen todas las direcciones físicas de entradas y salidas del módulo. Ahora
podremos introducir el nombre de nuestras variables asociadas a las direcciones físicas con la ventaja de que
vemos exactamente que direcciones son de entrada y cuales de salida.
Problemas Schneider M340 - 41
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa con secciones mixtas ST y LD - (pr0102a)
Este es un típico problema secuencial. La salida depende de la entrada actual y del estado de una variable en
el ciclo anterior (en este caso, Qx_Luz).
Sección "Preliminar" en ST
(* definimos las variables con las que vamos a trabajar en el programa. Las Ix_ serán las que utilicemos en
control local y las MxP_ las que utilicemos desde la pantalla de deoperador *)
Mx_Pulsador := (Ix_Pulsador And Ix_LocDis) Or (MxP_Pulsador And Not Ix_LocDis);
Sección "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 rápido que lo hagamos, el autómata 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 detección del flanco ascendente del pulsador.
Cuando pulsemos, será detectado por el AP y pondrá una memoria en 1 sólamente durante un ciclo de
programa. Al ciclo siguiente el propio autómata 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 continuación se debe borrar el flanco para que no siga activo en ese ciclo de programa. Si no lo
borrásemos, la luz se apagaría en la última instrucción. La luz no se activaría nunca pues lo único que
pusimos a 1 fue una memoria en la tabla de asignación 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 habría
sería un 0 y por tanto, la luz no se activaría nunca.
En la última instrucción, si tenemos el flanco y la luz estuviese encendida, la apagaremos Reseteándola.
No es necesario borrar el flanco, pues el propio AP lo borra. Recordemos que un flanco sólo está activo
como máximo un ciclo de programa. Si lo borrásemos, no pasaría nada, simplemente ejecutaríamos una
instrucción de más *)
42 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa con secciones mixtas ST y FBD (pr0102b)
Sección "Preliminar" en ST
(* Control local o a distancia*)
Mx_Pulsador := (Ix_Pulsador And Ix_LocDis) Or (MxP_Pulsador And Not
Ix_LocDis);
Sección "Control_de_la_luz" en FBD
Programa en lenguaje estructurado (pr0102c)
Sección "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);
(*Generación del flanco y utilización*)
Mx_Flanco:= RE (Mx_Pulsador);
IF Mx_Flanco And Not Qx_luz THEN
SET (Qx_luz);
RESET (Mx_Flanco);
END_IF;
IF Mx_Flanco And Qx_luz THEN
RESET (Qx_luz);
END_IF;
Pantalla de operador
Problemas Schneider M340 - 43
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en lenguaje ST y FBD con función SR (pr0102d)
Sección "Preliminar" en ST
(* Control local o a distancia*)
Mx_Pulsador := (Ix_Pulsador And Ix_LocDis) Or (MxP_Pulsador And
Not Ix_LocDis);
Sección "Control_de_la_luz" en FBD
(*Recordar: Se evalúan las dos entradas antes de proceder a ejecutar la función SR*)
Programa en lenguaje ST y FBD con función XOR (pr0102e)
Sección"Preliminar" en ST
(* Control local o a distancia*)
Mx_Pulsador := (Ix_Pulsador And Ix_LocDis) Or (MxP_Pulsador And
Not Ix_LocDis);
Sección "Control_de_la_luz" en FBD
Ent1 Ent2 Salida
0 0 0
0 1 1
1 0 1
1 1 0
44 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Interfaces de ENTRADA y SALIDA
Interfaces de entrada PNP
Se dice que un interface de entrada es PNP, cuando para leer un estado de señal 1, a la borna del Autómata
Programable (AP) le tiene que llegar un potencial positivo a través del elemento de campo.
Cuando tenemos un sensor de 3 hilos, no podemos observar directamente si es PNP o NPN. Tienen dos
terminales conectados al positivo y al negativo de la fuente de alimentación y el tercero, la carga "LOAD",
está conectado a la borna del autómata. 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.
Interfaces de entrada PNP DDI 1602
El módulo BMX DDI 1602 es un módulo binario de 24 VCC conectado
a través de un bloque de terminales de 20 pins.
Es un módulo de lógica positiva PNP (o común positivo): los 16
canales de entrada reciben corriente de los sensores.
Problemas Schneider M340 - 45
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Interfaces de entrada NPN
Por el contrario, en un interface NPN, para leer un estado de señal 1, a la borna del autómata programable
le llega un potencial negativo a través del elemento de campo.
Interfaces mixtos de entradas PNP ó NPN ó por alterna DAI 1602
El módulo BMX DAI 1602 es un módulo binario de 24 VCA conectado a través de un bloque de terminales de
20 pins. Este módulo tiene 16 canales de entrada que funcionan con corriente alterna. Este módulo también
se puede utilizar con 24 VCC, con lógica positiva o negativa.
46 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Interfaces mixtos de entradas PNP / salidas de relé BMX DDM 16025
El módulo BMX DDM 16025 es un módulo binario de 24 VCC conectado a través de un bloque de terminales
de 20 pins. Es un módulo de lógica positiva PNP: los 8 canales de entrada reciben corriente de los sensores
(común positivo). Las 8 salidas de relé aisladas funcionan con corriente continua (24 VCC) o con corriente
alterna (de 24 a 240 VCA)
Problemas Schneider M340 - 47
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Interfaces de salida estáticos NPN BMX DDO 1612
El módulo BMX DDO 1612 es un módulo binario de 24 VCC conectado a través de un bloque de terminales
de 20 pins. Es un módulo de lógica negativa NPN (o común positivo): sus 16 canales de salida reciben
corriente de los preactuadores.
48 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Interfaces de salidas estáticas PNP BMX DDO 1602
El módulo BMX DDO 1602 es un módulo binario de 24 VCC conectado a través de un bloque de terminales
de 20 pins. Es un módulo de lógica positiva PNP (o común negativo): los 16 canales de salida proporcionan
corriente a los preactuadores.
Corriente / canal 0,625 A
Corriente módulo 10 A
Problemas Schneider M340 - 49
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Interfaces de salidas por relé BMX DRA 1605
El módulo BMX DRA 1605 es un módulo binario de 24 VCC o de 24 a 240 VCA conectado a través de un
bloque de terminales de 20 pins. Los 16 canales de salida de relé no aislados funcionan con corriente alterna
o con corriente continua.
50 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Interfaces de salidas triac BMX DAO 1605
El módulo BMX DAO 1605 es un módulo binario de 100 a 240 VCA conectado a través de un bloque de
terminales de 20 pins. Sus 16 canales de salida triac funcionan con corriente alterna.
Problemas Schneider M340 - 51
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Interfaces mixtos de entradas/salidas estáticas PNP BMX DDM 3202K
El módulo BMX DDM 3202 K es un módulo binario de 24 VCC conectado a través de un conector de 40 pins.
Es un módulo de lógica positiva PNP: los 16 canales de entrada reciben corriente de los sensores (común
positivo) y los 16 canales de salida proporcionan corriente a los preactuadores (común negativo) PNP.
52 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas Schneider M340 - 53
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 1.3 · Luz de museo mediante pulsadores. EM y EF
Se desea controlar la activación y desactivación de la iluminación de un local, mediante el accionamiento de
tres pulsadores de configuración normalmente abiertos.
Como aplicación del enunciado, se puede suponer una sala de un museo, en la cual, se quiere que la
iluminación no esté activada cuando la sala se encuentre vacía. Para ello en las tres puertas de acceso que
tiene la sala figura el siguiente letrero:
Cuando acceda a la sala y ésta se encuentre vacía accione el pulsador, que
tiene en la puerta por la que entra, para encender la iluminación.
Cuando abandone la sala y no quede persona alguna en el interior,
accione el pulsador que tiene la puerta por la que sale.
Los pulsadores S1, S2 y S3 se consideran NA.
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto BMX DDM16025
de entradas PNP a 24 VCC y salidas por relé a 24 VCC.
Se pide:
1. Diseñar el esquema de mando y de fuerza del sistema.
2. Programa de mando
Este programa lo hemos estructurado en una sóla sección:
Control_Luz escrito en lenguaje ST
S1
S2
S3
LUZ
54 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de Mando,
Esquema de fuerza
BMX DDM 16025
Problemas Schneider M340 - 55
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de variables
Programa en lenguaje estructurado ST - (pr0103)
Sección "Control_Luz"
(*Inicia variables*)
Mx_Sensor0 := (Ix_Sensor0 And Ix_LocDis) Or (MxP_Sensor0 And Not Ix_LocDis);
Mx_Sensor1 := (Ix_Sensor1 And Ix_LocDis) Or (MxP_Sensor1 And Not Ix_LocDis);
Mx_Sensor2 := (Ix_Sensor2 And Ix_LocDis) Or (MxP_Sensor2 And Not Ix_LocDis);
(*Control de la luz*)
Mx_Flanco:= RE (Mx_Sensor0) Or RE (Mx_Sensor1) Or RE (Mx_Sensor2);
*RE Rising Edge - Flanco ascendente, FE Falling Edge - Flanco descendente*
If Mx_Flanco And Not Qx_Luz THEN
Set (Qx_Luz);
Reset (Mx_Flanco);
END_IF;
If Mx_Flanco And Qx_Luz THEN
Reset (Qx_Luz);
END_IF;
Pantalla de operador
Etiqueta
Símbolo
planos
Dirección
en PLC
Tipo Comentarios
Ix_Sensor0 S0 %I0.1.0 EBOOL Interruptor 0
Ix_Sensor1 S1 %I0.1.1 EBOOL Interruptor 1
Ix_Sensor2 S2 %I0.1.2 EBOOL Interruptor 2
Ix_LocDis S7 %I0.1.7 EBOOL Conmutador Local=1 Distancia=0
Qx_Luz H1 %Q0.1.16 EBOOL Luz
MxP_Sensor0 BOOL Marca del interruptor 0 en la pantalla
MxP_Sensor1 BOOL Marca del interruptor 1 en la pantalla
MxP_Sensor2 BOOL Marca del interruptor 2 en la pantalla
Mx_Sensor0 EBOOL Marca del interruptor 0 en el programa
Mx_Sensor1 EBOOL Marca del interruptor 1 en el programa
Mx_Sensor2 EBOOL Marca del interruptor 2 en el programa
Mx_Flanco BOOL Marca de flanco
56 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Funciones de temporización
Función TON de retraso en la conexión
Representación del retardo de conexión TON:
(1) Si IN se convierte en "1", se inicia el tiempo interno (ET).
(2) Si el tiempo interno alcanza el valor de PT, Q se convierte en "1".
(3) Si IN se convierte en "0", Q se convierte en "0" y se detiene/restablece el tiempo interno.
(4) Si IN se convierte en "0" antes de que el tiempo interno haya alcanzado el valor de PT, se
detiene/restablece el tiempo interno, sin que Q se haya convertido en "1".
Representación en lenguaje ST
TON_Instance (IN := (*BOOL*),
PT := (*TIME*),
Q => (*BOOL*),
ET => (*TIME*));
TON_LVerde (IN := Mx_Arranque,
PT := t#5s,
Q => Qx_LVerde,
ET => Mt_TiempoEnVerde);
Problemas Schneider M340 - 57
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Función TOF de retraso en la desconexión
Representación del retardo de conexión TOF:
(1) Si IN se convierte en "1", Q se convierte en "1".
(2) Si IN se convierte en "0", se inicia el tiempo interno (ET).
(3) Si el tiempo interno alcanza el valor de PT, Q se convierte en "0".
(4) Si IN se convierte en "1", se convierte Q en "1" y se detiene/restablece el tiempo interno.
(5) Si IN se convierte en "1" antes de que el tiempo interno haya alcanzado el valor de PT, se
detiene/restablece el tiempo interno, sin que Q se haya convertido en "0".
Representación en lenguaje ST
TOF_Instance (IN := (*BOOL*),
PT := (*TIME*),
Q => (*BOOL*),
ET => (*TIME*));
TOF_LMuseo (IN := Mx_Arranque,
PT := t#10s,
Q => Qx_LMuseo,
ET => Mt_LRetraso);
58 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Función TP de impulso monoestable
Representación del retardo de conexión TP:
(1) Si IN se convierte en "1", Q se convierte en "1" y se inicia el tiempo interno (ET).
(2) Si el tiempo interno alcanza el valor de PT, Q se convierte en "0" (independientemente de IN).
(3) El tiempo interno se detiene/restablece, si IN se convierte en "0".
(4) Si el tiempo interno aún no ha alcanzado el valor de PT, un ciclo en IN no tendrá influencia sobre el
tiempo interno.
(5) Si el tiempo interno ha alcanzado el valor de PT y si IN es "0", se detiene/restablece el tiempo interno y
Q se convierte en "0".
Representación en lenguaje ST
TP_Instance (IN := (*BOOL*),
PT := (*TIME*),
Q => (*BOOL*),
ET => (*TIME*));
TP_Luz (IN := Mx_Arranque,
PT := t#10s,
Q => Qx_Luz,
ET => Mt_Luz);
Problemas Schneider M340 - 59
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Cómo introducir un Bloque de Función en el lenguaje ST
(*Para introducir la orden anterior, lo más cómodo es utilizar el asistente de entrada FFB
Desplegamos el Conjunto de librerías V6.0 y luego seleccionamos Timers & Counters. En la parte derecha
elegimos el bloque deseado, en nuestro caso TOF
60 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
aparece otra ventana, donde le indicaremos el nombre elegido para nuestra función, p.e. TOF_10s
aparece en el código un texto que podremos modificar en función de nuestra necesidad, para ello,
sustituiremos los comentarios por las señales adecuadas
TOF_10S (IN := (*BOOL*),
PT := (*TIME*),
Q => (*BOOL*),
ET => (*TIME*));
TOF_10s (IN := Mx_OrdenEncendido,
PT := t#10s,
Q=> Qx_Luz);
Problemas Schneider M340 - 61
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 2.1 · Luz de museo con temporizador. EM y EF
Se desea controlar la activación y desactivación de la iluminación de un local, mediante el accionamiento de
tres interruptores de configuración NA.
Como aplicación del enunciado, se puede suponer una sala de un museo, en la cual, se quiere que la
iluminación no esté activada cuando la sala se encuentre vacía. Para ello en las tres puertas de acceso que
tiene la sala figura el siguiente letrero:
 Cuando acceda a la sala y ésta se encuentre vacía accione el interruptor, que tiene en la
puerta por la que entra, para encender la iluminación.
 Cuando abandone la sala y no quede persona alguna en el interior, accione el interruptor
que tiene la puerta por la que sale para apagar la iluminación
La orden de apagado, espera 10 segundos antes de hacerse efectiva.
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de
alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo de entradas PNP BMX DDI
1602 y salidas PNP BMX DDO 1602.
Se pide:
1. Diseñar el esquema de mando y de fuerza del sistema.
2. Programa de mando
62 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de Mando
Esquema de fuerza
BMX DDI 1602 BMX DDO 1602
Problemas Schneider M340 - 63
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de variables
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 todavía 10 segundos más y luego apagarse automáticamente.
Si se activase un interruptor en ese intervalo, la luz deberá permanecer encendida esperando de nuevo la
activación de un interruptor para comenzar el proceso de apagarla.
La función de temporización 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) ;
Etiqueta
Símbolo
en
los
planos
Dirección
en PLC
Tipo Comentarios
Ix_Sensor0 S0 %I0.1.0 EBOOL Interruptor 0
Ix_Sensor1 S1 %I0.1.1 EBOOL Interruptor 1
Ix_Sensor2 S2 %I0.1.2 EBOOL Interruptor 2
Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0
Qx_Luz H1 %Q0.2.0 EBOOL Luz
MxP_Sensor0 BOOL Marca del interruptor 0 en la pantalla
MxP_Sensor1 BOOL Marca del interruptor 1 en la pantalla
MxP_Sensor2 BOOL Marca del interruptor 2 en la pantalla
Mx_Sensor0 BOOL Marca del interruptor 0 en el programa
Mx_Sensor1 BOOL Marca del interruptor 1 en el programa
Mx_Sensor2 BOOL Marca del interruptor 2 en el programa
Mx_OrdenEncendido BOOL Marca para ver cuando está activa la orden
64 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
TOF_10s (IN := Mx_OrdenEncendido,
PT := t#10s,
Q=> Qx_Luz);
(*También podríamos haber utilizado la salida del temporizador de la siguiente forma
Qx_Luz:= TOF_10s.Q ; *)
Programa en lenguaje FBD - (pr0201a)
Problemas Schneider M340 - 65
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Cómo exportar e importar pantallas de operador
Para construir esta pantalla de operador podremos aprovechar la hecha en el problema 0101. Para ello en
dicho problema nos situamos encima de la carpeta que pone pantalla de operador y pulsAndo el botón
derecho seleccionamos "exportar pantalla" asignándole un nombre.
Luego en nuestro problema, nos pondremos encima de la carpeta de pantalla de operador y seleccionaremos
importar pantalla. Le diremos donde la hemos almacenado y seleccionaremos la que deseamos. Luego
añadiremos todo lo que necesitemos o modificamos lo que necesitemos.
Pantalla de operador
66 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
El tiempo temporizado antes de la desconexión de la luz (TOF_10s.ET), lo podemos visualizar con la opción
"Campo de entrada" (décima opción de la barra IOSEditor).
Selección del valor tiempo actual de un temporizador como
variable de control
O bien se escribe directamente en el campo variable p.e. "TOF_10s.ET", o bien se clica en el botón de los tres
puntos. Una vez hecho esto, se selecciona "Bloque de funciones" y se despliega la carpeta de salidas de la
función TOF "TOF_10s", a continuación se selecciona la salida ET y se acepta.
Problemas Schneider M340 - 67
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 2.2 · Semáforo simple
Realizar el control luminoso de un semáforo que siga la secuencia continua de 30 segundos en verde, 5
segundos ámbar, 25 segundos rojo mientras esté presente una señal de comienzo de ciclo (arranque).
La secuencia que van a seguir los temporizadores será:
Qx_LVerde
Qx_LAmbar
Qx_LRoja
Ix_Arranque
0 30
35 60
t (s)
t (s)
t (s)
35
30
TON_Verde.ET
TON_Ambar.ET
TON_Rojo.ET
TON_Verde.Q
TON_Ambar.Q
TON_Rojo.Q
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de
alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas
PNP BMX DDM3202K
68 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de variables
Programa en lenguaje FBD - (pr0202)
Etiqueta
Símbolo
en
los
planos
Dirección
en PLC
Tipo Comentarios
Ix_Arranque S1 %I0.1.0 EBOOL Interruptor de arranque del sistema
Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0
Qx_LVerde H1 %Q0.1.16 EBOOL Luz verde
Qx_LAmbar H2 %Q0.1.17 EBOOL Luz ámbar
Qx_LRoja H3 %Q0.1.18 EBOOL Luz roja
MxP_Arranque BOOL Marca del interruptor de arranque en la pantalla
Mx_Arranque EBOOL Marca del interruptor de arranque en el programa
Problemas Schneider M340 - 69
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de operador
70 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Cómo insertar una imagen en la pantalla de operador
Para insertar una imagen, pulsaremos sobre el 8º icono de la barra IOSEditor "imagen"
Nos saldrá una pantalla en la cuál elegiremos la imagen del directorio apropiado. La imagen deberá estar en
formato JPG o BMP, no admite otros tipos.
¡MUY IMPORTANTE! Si queremos que las imágenes insertadas se vean en otro computador diferente con el
que estamos trabajando, debemos seleccionarlas una vez insertadas, y a continuación hacer click con el
botón derecho, seleccionar "propiedades" y elegir la pestaña "imagen", después deberemos activar una
opción que pone "Imagen copiada en el espacio actual".
Problemas Schneider M340 - 71
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 2.3 · Semáforo coche-peatón con intermitencia
Obtención de una red semafórica mediante funciones de temporización con la siguiente secuencia:
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de
alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas
PNP BMX DDM3202K
Tabla de variables
tiqueta
Símbolo
en
los planos
Dirección
en PLC
Tipo Comentarios
Ix_Arranque S1 %I0.1.0 EBOOL Interruptor de arranque del sistema
Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0
Qx_LVerdeCo H1 %Q0.1.16 EBOOL Luz verde coches
Qx_LAmbarCo H2 %Q0.1.17 EBOOL Luz ámbar coches
Qx_LRojaCo H3 %Q0.1.18 EBOOL Luz roja coches
Qx_LRojaPe H4 %Q0.1.19 EBOOL Luz roja peatones
Qx_LVerdePe H5 %Q0.1.20 EBOOL Luz verde peatones
MxP_Arranque BOOL Marca del interruptor de arranque en la pantalla
Mx_Arranque EBOOL Marca del interruptor de arranque en el programa
72 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en lenguaje FBD - (pr0203)
Problemas Schneider M340 - 73
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de operador
74 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas Schneider M340 - 75
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 2.4 · Arranque estrella – triángulo. EM y EF (Resolver)
Se deberá controlar el arranque de un motor en configuración estrella-triángulo. Para pasar de estrella a
triángulo se esperaran 5 segundos. Cuando el sistema esté parado, estará encendida una luz roja, cuando los
motores estén funcionando, se encenderá una luz verde. Se indicará mediante una luz fija ámbar si ha habido
un defecto de sobrecorriente en el motor. En ese caso, nos deberemos de asegurar que el motor parará
mediante software y hardware.
Se pide:
 Programa de Mando, .
 Esquema de fuerza con todas las protecciones necesarias.
 Esquema de Mando, .
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 3500 (24VDC 36W, eficiencia del 82%) alimenta almódulo mixto de entradas
salidas BMX DDM16025 las entradas son PNP a 24 VCC y las salidas por relé a 230 VAC.
El rearme del térmico será manual.
Tabla de variables
Etiqueta
Símbolo
en
los planos
Dirección
en PLC
Tipo Comentarios
Ix_Emergencia S1 %I0.1.0 EBOOL Seta de emergencia
Ix_Marcha S2 %I0.1.1 EBOOL Pulsador para arrancar el motor
Ix_Paro S3 %I0.1.2 EBOOL Pulsador de paro
Ix_Termico S4 %I0.1.3 EBOOL Contacto NA del térmico
Ix_LocDis S7 %I0.1.7 EBOOL Conmutador Local=1 Distancia=0
Qx_Km1 KM1 %Q0.1.19 EBOOL Contactor del centro de la estrella
Qx_Km2 KM2 %Q0.1.20 EBOOL
Contactor que alimenta a las fases U1, V1, W1 del
motor
Qx_Km3 KM3 %Q0.1.21 EBOOL Contactor para pasar a triangulo
Qx_Lverde L1 %Q0.1.16 EBOOL Luz verde
Qx_Lroja L2 %Q0.1.17 EBOOL Luz roja
Qx_Lambar L3 %Q0.1.18 EBOOL Luz ámbar
76 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de fuerza
Esquema de Mando,
Problemas Schneider M340 - 77
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 2.5 · Puerta automática. EM y EF (Resolver)
Mediante un autómata, se desea controlar la puerta automática de un supermercado. El sistema deberá abrir
dicha puerta de forma automática cuando alguien entre o salga. La detección se realiza mediante 2
detectores de ultrasonidos, uno para entrar y otro para salir. Una vez abierta la puerta y pasados 5 segundos
sin detectar ninguna persona, la puerta se deberá cerrar automáticamente. Cuando esté cerrando, si se
detecta una persona, deberá parar y abrir de nuevo la puerta. Existe una seta de emergencia NC que abrirá
la puerta permanentemente mientras esté activada. Inicialmente la puerta deberá estar cerrada.
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM16025 con entradas PNP a 24 VCC y salidas por relé a 230 VAC.
El rearme del térmico será manual.
Tabla de variables
Se pide.
Programa de control.
Esquema de Mando, y de fuerza con todas las protecciones necesarias.
Etiqueta
Símbolo
en
los planos
Dirección
en PLC
Tipo Comentarios
Ix_DetEntrada B1 %I0.1.0 EBOOL Detector de la entrada
Ix_DetSalida B2 %I0.1.1 EBOOL Detector de la salida
Ix_FCA S1 %I0.1.2 EBOOL Final de carrera de puerta abierta
Ix_FCC S2 %I0.1.3 EBOOL Final de carrera de puerta cerrada
Ix_Seta S3 %I0.1.4 EBOOL Seta de emergencia NC
Ix_LocDis S15 %I0.1.7 EBOOL Conmutador Local=1 Distancia=0
Qx_Abrir KM1 %Q0.1.16 EBOOL Activa el contactor para que abra la puerta
Qx_Cerrar KM2 %Q0.1.17 EBOOL Activa el contactor para que cierre la puerta
78 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de fuerza y de Mando,
Problemas Schneider M340 - 79
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 2.6 · Motor CC
Mediante un autómata, se desea controlar la puesta en marcha, parada y sentido de giro de un motor de
corriente continua. Los dispositivos de Mando, S0, S1 y S2 son pulsadores NA. El motor se pondrá en
funcionamiento si se pulsan S0 y S1 simultáneamente de forma seguida durante más de dos segundos. El
paro del motor se producirá en el momento en el que se pulse exclusivamente S0 de forma seguida durante
más de dos segundos o exclusivamente S1 de forma seguida durante más de dos segundos. Un contactor
KM0 se encarga de la marcha/parada del motor.
El pulsador S2 se empleará para invertir el sentido de giro que el motor tuviera en ese momento de ser
pulsado. Por motivos de seguridad se requiere desconectar el motor durante 500 ms mientras se realiza la
maniobra de inversión de giro. La conmutación del cambio de sentido de giro se lleva a cabo usando un relé
de contactos conmutados K1. La conmutación de K1 se producirá 200 ms después de solicitar la inversión de
giro mediante pulsación de S2.
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM16025 con entradas PNP a 24 VCC y salidas por relé a 230 VAC.
Tabla de variables
Programa en lenguaje estructurado ST - (pr0206)
Sección "Preliminar "
(*Inicia variables*)
Mx_S0:= (Ix_S0 And Ix_LocDist) Or (MxP_S0 And Not Ix_LocDist);
Mx_S1:= (Ix_S1 And Ix_LocDist) Or (MxP_S1 And Not Ix_LocDist);
Mx_S2:= (Ix_S2 And Ix_LocDist) Or (MxP_S2 And Not Ix_LocDist);
MxP_LRoja:= Qx_KM0 And Qx_KM1;
MxP_LVerde:= Qx_KM0 And Not Qx_KM1;
80 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "Control "
(*Control del motor*)
(* Temporiza cuando ambos pulsadores S0 y S1 son pulsados simultáneamente, TON, PT=2s *)
TON_Marcha (IN := Mx_S0 And Mx_S1, PT := t#2s);
(* Temporiza cuando única y exclusivamente se pulsa S0 o S1, TON, PT=2s *)
TON_Parada (IN := Mx_S0 xor Mx_S1, PT := t#2s);
(*Si se desea realizar la función XOR usando OR y AND el código sería:
Temp_Parada (IN := (Mx_S0 And Not Mx_S1) Or (Not Mx_S0 And Mx_S1), PT := t#2s); *)
(* Temporiza un pulso de 500ms cuando se pulsa S2, TP, PT=500ms *)
TP_Parada_Inversion (IN := Mx_S2, PT := t#500ms);
(* Temporiza un pulso de 200ms cuando se pulsa S2, TP, PT=200ms *)
TP_Inversion (IN := Mx_S2, PT := t#200ms);
(*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 := (TP_Parada_Inversion.Q);
Mx_T_Inversion:=(TP_Inversion.Q);
(*El motor debe ponerse en marcha si se ha pulsado durante más de dos segundos S0 y S1,
o también si ya se encontraba en marcha y paró para invertir el giro debe seguir en marcha*)
If TON_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 más de dos segundos exclusivamente S0 o S1*)
If TON_Parada.Q THEN
Reset(Qx_KM0); Reset(Mx_Marcha);
END_IF;
(*El motor debe pararse si se va a proceder a una inversión de giro. Obsérvese 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 TP_Parada_Inversion.Q THEN
Reset(Qx_KM0);
END_IF;
(*Cuando se produzca un flanco de bajada en el temporizador Temp_Inversion y si el motor se encuentra
en estado de Marcha se produce la conmutación de K1*)
If (FE(Mx_T_Inversion) And Mx_Marcha) THEN
Qx_KM1:=Not Qx_KM1;
END_IF;
(*Cronograma del temporizador tipo TP *)
Problemas Schneider M340 - 81
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de operador
Detalle de los elementos que componen la Pantalla de Operador
82 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Funciones de comparación EQ, NE, LE, LT, GE, GT
La función comprueba los valores de entradas sucesivas respecto a una secuencia. Si el resultado de la
comparación es cierto, la salida de la función será un 1 lógico (true), si no será un 0 lógico (false).
Los tipos de datos de todos los valores de entrada deben ser iguales. Se puede aumentar el número de
entradas como máximo a 31. Al comparar variables de los tipos de datos BOOL, BYTE, WORD, DWORD, INT,
DINT, UINT, UDINT, REAL, TIME, DATE, DT y TOD, se compararán los valores entre sí.
Si se trata de variables de tipo STRING, se compararán según el orden alfabético; cuanto más atrás en el
alfabeto se encuentre un valor, más alta será su expresión.
Fórmula
OUT = 1, cuando (IN1 ≤ IN2) & (IN2 ≤ IN3) & .. & (IN(n-1) ≤ INn)
Representación 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 *)
Representación en lenguaje FBD
Problemas Schneider M340 - 83
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Construcción de un oscilador con comparadores
Lo primero que debemos plantearnos es a que frecuencia lo queremos. Si es de 1Hz, no hay problema.
Existe un bit del sistema, el bit %S6, que oscila a esa frecuencia. Lo mismo que el %S4 que tiene una
frecuencia de 100Hz, el %S5 de 10Hz y el %S7 que tiene un periodo de 1 minuto.
Si queremos otra frecuencia diferente, por ejemplo 2Hz, sabemos que el periodo es el inverso de la
frecuencia, por tanto,
𝑇 =
1
𝑓
=
1
2
= 0,5 𝑠 = 500 𝑚𝑠
deberemos generar una señal que tenga de periodo 500 ms y esté 250 ms en "1" y 250 ms en "0" de forma
continua mientras lo demandemos con una señal de control.
Para ello lanzaremos un temporizador de 500ms con retraso a la conexión y activado con la señal "Control".
Cuando el valor actual del temporización llegue al valor de preselección, 500 ms, el valor actual quedará fijo
y la salida binaria T_Osc2HZ.Q pasará a valer "1" lógico.
Mediante un comparador podemos saber si estamos dentro de los primeros 250 ms del ciclo cuando la señal
de control está activa y con ello poner a "1" la salida Mx_Osc2HZ.
84 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Ahora bien, debemos lanzar de nuevo el temporizador para generar otro ciclo. Lo vamos a hacer arrancando
el temporizador cuando esté la señal 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 también. Al ciclo siguiente vuelve a ser cierta la condición de arranque y se produce
un nuevo ciclo. Funciona así ininterrumpidamente hasta que la señal de control pase a "0".
Problemas Schneider M340 - 85
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 3.1 · Semáforo con comparadores
Una vez activada la entrada Ix_Arranque, se habilitará una red semafórica mediante un temporizador y
funciones de comparación con la siguiente secuencia:
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM3202K entradas y salidas PNP.
Tabla de variables
Etiqueta
Símbolo
en
los planos
Dirección
en PLC
Tipo Comentarios
Ix_Arranque S1 %I0.1.0 EBOOL Interruptor de arranque del sistema
Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0
Qx_LVerdeCo H1 %Q0.1.16 EBOOL Luz verde coches
Qx_LAmbarCo H2 %Q0.1.17 EBOOL Luz ámbar coches
Qx_LRojaCo H3 %Q0.1.18 EBOOL Luz roja coches
Qx_LRojaPe H4 %Q0.1.19 EBOOL Luz roja peatones
Qx_LVerdePe H5 %Q0.1.20 EBOOL Luz verde peatones
MxP_Arranque BOOL Marca del interruptor de arranque en la pantalla
Mx_Arranque BOOL Marca del interruptor de arranque en el programa
Mx_Oscilador2Hz BOOL
86 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Cronograma
Programa en ST - (pr0301)
(* definimos las variables con las que vamos a trabajar en el programa. Las Ix_ serán las que utilicemos en
control local y las MxP_ las que utilicemos desde la pantalla de operador *)
Mx_Arranque := (Ix_Arranque And Ix_LocDist) Or (MxP_Arranque And Not Ix_LocDist);
(* Temporiza el ciclo completo de la red semafórica, TON, PT=50s *)
TON_Ciclo (IN := Mx_Arranque AND NOT TON_Ciclo.Q, PT := t#50s);
(* Salidas de los semáforos*)
Qx_LVerdeCo := Mx_Arranque AND TON_Ciclo.ET <= t#20s;
Qx_LAmbarCo := (TON_Ciclo.ET > t#20s AND TON_Ciclo.ET <= t#23s) OR (TON_Ciclo.ET > t#23s AND
TON_Ciclo.ET <= t#25s AND Mx_Osc2Hz);
Qx_LRojaCo := TON_Ciclo.ET > t#25s AND TON_Ciclo.ET <= t#50s;
Qx_LRojaPe := (Mx_Arranque AND TON_Ciclo.ET <= t#27s) OR (TON_Ciclo.ET > t#48s AND TON_Ciclo.ET <=
t#50s);
Qx_LVerdePe := (TON_Ciclo.ET > t#27s AND TON_Ciclo.ET <= t#45s) OR (TON_Ciclo.ET > t#45s AND
TON_Ciclo.ET <= t#48s AND Mx_Osc2Hz);
(* Se programa el oscilador de 2 Hz, T=500 ms *)
TON_Oscilador (IN := Mx_Arranque AND NOT TON_Oscilador.Q, PT := t#500ms);
Mx_Osc2Hz := Mx_Arranque AND TON_Oscilador.ET <= t#250ms;
Problemas Schneider M340 - 87
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Crear y direccionar varias pantallas de operador
En este ejercicio vamos a implementar 2 pantallas de operador. En la primera estaremos viendo el semáforo
con el tiempo transcurrido del ciclo. En la segunda, veremos el cronograma y el tiempo transcurrido del ciclo.
En ambas pantallas, habrá un botón que nos permitirá cambiar de una a otra.
Una vez creadas dos pantallas y asignadas un nombre –es más fácil identificar un nombre que un número-
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 botón con el nombre de la otra pantalla. Con el botón
derecho del ratón seleccionamos propiedades. El campo Valor, nos permitirá seleccionar la pantalla
deseada de las que tengamos creadas.
En el campo Nombre, saldrá automáticamente el nombre que le hubiésemos asignado previamente.
88 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas Schneider M340 - 89
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 3.2 · Semáforo completo con petición de paso
Diseñar un circuito de control para un semáforo, que será utilizado por los peatones de manera esporádica.
La luz verde, que controla el paso de coches, se hallará normalmente activada, debiendo solicitar el peatón,
mediante un pulsador, el permiso de paso.
Cuando el peatón solicita permiso de paso, accionando el pulsador, se pone en marcha una secuencia de
activación y desactivación de las diferentes luces que componen el semáforo, como indica la figura.
La
secuencia temporal tiene como valores de tiempos los indicados a continuación:
Una vez activado el pulsador de peatones, la luz verde de coches debe permanecer activada cuatro segundos
más, desactivándose 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 activación 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 después de haberlo hecho la luz roja de coches,
permaneciendo activada, durante veintidós segundos, con luz fija, y, cuatro segundos, con luz parpadeante.
90 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
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 después de haberlo hecho la luz verde de peatones,
momento en el que se activará la luz verde de coches.
La frecuencia de oscilación 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 petición anterior, se
tendrá en cuenta, activándose 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 mínimo de sesenta y ocho
segundos, (petición 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, desactivándose cuando empiece a ser atendida la demanda
por darse las condiciones de paso peatonal.
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM3202K entradas y salidas PNP.
Tabla de variables
Etiqueta
Símbolo
en
los planos
Dirección
en PLC
Tipo Comentarios
Ix_Pulsador S1 %I0.1.0 EBOOL Inicio de ciclo
Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0
Qx_LVerdeCo H1 %Q0.1.16 EBOOL Luz verde coches
Qx_LAmbarCo H2 %Q0.1.17 EBOOL Luz ámbar coches
Qx_LRojaCo H3 %Q0.1.18 EBOOL Luz roja coches
Qx_LRojaPe H4 %Q0.1.19 EBOOL Luz roja peatones
Qx_LVerdePe H5 %Q0.1.20 EBOOL Luz verde peatones
Qx_LEspere H6 %Q0.1.21 EBOOL Luz de espere
MxP_Pulsador BOOL Marca del pulsador de arranque en la pantalla
Mx_Pulsador EBOOL Marca del pulsador de arranque en el programa
Mx_IniCiclo BOOL
Mx_PeticionPaso BOOL
Mx_Oscilador2hz BOOL
Problemas Schneider M340 - 91
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en ST - (pr0302)
Sección "Control"
Cuando se activa el pulsador de peatones se memoriza la petición, comenzando el ciclo y no permite que se
reinicie hasta que no termine el ciclo anterior. Cuando se permite pasar al peatón, luz verde, se borra la
petición, pero si hay otra petición cuando la luz roja de peatones esté encendida, se vuelve a memorizar para
atenderla cuando termine el ciclo en curso.
(*Generación de señales*)
Mx_Pulsador := (Ix_Pulsador And Ix_LocDist) Or (MxP_Pulsador And Not Ix_LocDist);
IF Mx_Pulsador THEN
SET (Mx_PeticionPaso);
ELSIF NOT Qx_LrojaPe THEN (*cuando se apaga la luz roja de los peatones reseteamos la PP*)
RESET (Mx_PeticionPaso);
END_IF;
IF Mx_PeticionPaso AND NOT TON_Ciclo.Q THEN
(* NOT t_Ciclo.Q es fundamental para una vez que terminó un ciclo, y haya caido la entrada que arranca el
temporizador de ciclo, vuelva a arrancar al ciclo siguiente si hubiese demanda *)
SET (Mx_IniCiclo);
ELSIF TON_Ciclo.Q THEN
(* Al finalizar el ciclo, salida Q=1, se desactiva la entrada y por tanto cae el temporizador*)
RESET (Mx_IniCiclo);
END_IF;
(* Temporiza el ciclo completo de 68 segundos de la red semafórica y crea los bit de control*)
TON_Ciclo (IN := Mx_IniCiclo,
PT := t#68s);
(* Salidas de los semáforos*)
Qx_LVerdeCo := Not Mx_IniCiclo Or t_Ciclo.ET <= t#4s Or t_Ciclo.ET > t#43s;
Qx_LAmbarCo := (t_Ciclo.ET > t#4s AND t_Ciclo.ET <= t#8s) OR (t_Ciclo.ET > t#8s AND t_Ciclo.ET <= t#13s AND
Mx_Osc2Hz);
Qx_LRojaCo := t_Ciclo.ET > t#13s AND t_Ciclo.ET <= t#43s;
Qx_LRojaPe := Not Mx_IniCiclo Or t_Ciclo.ET <= t#15s OR t_Ciclo.ET > t#41s;
Qx_LVerdePe := (t_Ciclo.ET > t#15s AND t_Ciclo.ET <= t#37s) OR (t_Ciclo.ET > t#37s AND t_Ciclo.ET <= t#41s
AND Mx_Osc2Hz);
Qx_LEspere:=Mx_PeticionPaso;
(* Se programa el oscilador de 2 Hz, T=500 ms *)
TON_Oscilador (IN := Mx_IniCiclo AND NOT TON_Oscilador.Q,
PT := t#500ms);
Mx_Osc2Hz := Mx_IniCiclo AND TON_Oscilador.ET <= t#250ms;
92 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de operador
Problemas Schneider M340 - 93
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Funciones de contador
Contador ascendente
Los bloques de función se utilizan para el conteo progresivo.
En caso de señal "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 parámetros adicionales se pueden configurar EN y ENO.
Nota: El contador sólo funciona hasta alcanzar los valores máximos del tipo de datos utilizado. No se produce
ningún desborde.
Representación en lenguaje FBD
Representación en lenguaje ST
CTU_Instance (CU := (*BOOL*),
R := (*BOOL*),
PV := (*INT*),
Q => (*BOOL*),
CV => (*INT*));
94 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Contador descendente
Los bloques de función se utilizan para el conteo regresivo.
En caso de señal "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 parámetros adicionales se pueden configurar EN y ENO.
Nota: El contador sólo funciona hasta alcanzar los valores mínimos del tipo de datos utilizado. No se produce
ningún desborde.
Representación en lenguaje FBD
Representación en lenguaje ST
CTD_Instance (CD := (*BOOL*),
R := (*BOOL*),
PV := (*INT*),
Q => (*BOOL*),
CV => (*INT*));
Problemas Schneider M340 - 95
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Contador ascendente-descendente
Los bloques de función se utilizan para el conteo progresivo y regresivo.
En caso de señal "1" en la entrada R se asigna el valor "0" a la salida CV. En caso de señal "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 señal simultánea "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 parámetros adicionales se pueden configurar EN y ENO.
Nota: El contador sólo funciona hasta alcanzar los valores mínimos (contador regresivo) o los valores
máximos (contador progresivo) del tipo de datos utilizado. No se produce ningún desborde.
Representación en lenguaje FBD
Representación en lenguaje ST
CTUD_Instance (CU := (*BOOL*),
CD := (*BOOL*),
R := (*BOOL*),
LD := (*BOOL*),
PV := (*INT*),
QU => (*BOOL*),
QD => (*BOOL*),
CV => (*INT*));
96 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas Schneider M340 - 97
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 4.1 · Control de acceso a sala comercial
Se desea controlar el acceso, de manera automática, a una sala comercial con una capacidad de cien plazas
de asiento. Admitiendo diez personas más de las autorizadas, que tendrían que permanecer de pie.
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 física entre ellas es la
mínima, de manera que siempre se interrumpirán también simultáneamente durante la entrada. De forma
semejante sucede cuando una persona sale de la sala. Primero interrumpirá la barrera "B" y después 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 más 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 activaríamos.
Dispondremos de un pulsador de Reset para inicializar el contador a 0 en cualquier momento.
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM3202K entradas y salidas PNP.
V
A
A B
A B
R
Entrar
Salir
SALA DE
100
PLAZAS
98 - Problemas Schneider M340 Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de variables
Funcionamiento
El sensor nos dará una señal de dos canales A y B desfasados como se ve en la imagen
Cuando la persona entra, se interrumpe el sensor A y luego el B. La señal del flanco ascendente del B cuando
el sensor A esté dando un 1, la utilizaremos para contar una persona –el móvil va de izquierda a derecha.
Cuando la persona sale, se interrumpe el sensor B y luego el A. La señal del flanco descendente del B cuando
el sensor A esté dando un 1, la utilizaremos para descontar una persona –el móvil va de derecha a izquierda.
Etiqueta
Símbolo
en
los planos
Dirección
en PLC
Tipo Comentarios
Ix_RearmaCont S1 %I0.1.0 EBOOL Rearma el contador a 0
Ix_SensorA S2 %I0.1.1 EBOOL Entrada del sensor A
Ix_SensorB S3 %I0.1.2 EBOOL Entrada del sensor B
Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0
Qx_LVerde H1 %Q0.1.16 EBOOL Luz verde
Qx_LAzul H2 %Q0.1.17 EBOOL Luz azul
Qx_LRoja H3 %Q0.1.18 EBOOL Luz roja
MxP_RearmaCont BOOL
Mx_RearmaCont BOOL
MxP_SensorA BOOL
Mx_SensorA EBOOL
MxP_SensorB BOOL
Mx_SensorB EBOOL
Canal A
Canal B
Problemas Schneider M340 - 99
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en ST - (pr0401b)
(*Generación de señales*)
Mx_RearmaCont := (Ix_RearmaCont And Ix_LocDis) Or(MxP_RearmaCont And Not Ix_LocDis);
Mx_SensorA := (Ix_SensorA And Ix_LocDis) Or(MxP_SensorA And Not Ix_LocDis);
Mx_SensorB := (Ix_SensorB And Ix_LocDis) Or(MxP_SensorB And Not Ix_LocDis);
(* Programamos el contador *)
Mx_Entra:=Mx_SensorA AND RE (Mx_SensorB);
Mx_Sale:=Mx_SensorA AND FE (Mx_SensorB);
Contador (R:=Mx_RearmaCont, CU:=Mx_Entra, CD:=Mx_Sale, PV:=200);
(* Programamos las salidas *)
Qx_LVerde := Contador.CV < 100;
Qx_LAzul := Contador.CV >= 100 And Contador.CV < 110;
Qx_LRoja := Contador.CV >= 110;
Pantalla de operador
100 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en FBD - (pr0401a)
Problemas M340 - 101
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Cómo cambiar el valor actual de un contador
Para cambiar el valor actual, lo seleccionamos con el cursor y tecleamos el valor deseado.
102 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 103
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 4.2 · Control de un contador reversible
Realizar un programa para que mediante dos pulsadores podamos modificar el contenido de un contador
reversible (C0).
Mediante el pulsador "Incrementa" podemos incrementar el contador de unidad en unidad en cada
pulsación. Si queremos aumentar de manera más rápida el contenido del contador debemos mantener
pulsado durante más de dos segundos, momento en el cual el contador se modificará a una velocidad 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 autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM3202K entradas y salidas PNP.
Tabla de variables
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;
CTUD_Contador (R:=Mx_Res, CU:=Mx_Inc, CD:=Mx_Dec, PV:=1000);
Etiqueta
Símbolo
en
los planos
Dirección
en PLC
Tipo Comentarios
Ix_Incrementa S1 %I0.1.0 EBOOL Pulsador para incrementar el contador
Ix_Decrementa S2 %I0.1.1 EBOOL Pulsador para decrementar el contador
Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0
MxP_Incrementa BOOL
Mx_Incrementa BOOL
MxP_Decrementa BOOL
Mx_Decrementa BOOL
104 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
(* Programamos el oscilador de 4 Hz *)
TON_2S (IN:=Mx_Incrementa Or Mx_Decrementa, PT:=t#2s);
TON_Osc4HZ (IN:= TON_2S.Q And Not TON_Osc4HZ.Q, PT:=t#250ms);
Mx_Osc4hz := TON_Osc4HZ.ET >t#125ms;
Pantalla de operador
Problemas M340 - 105
Universidad de Oviedo
ISA - J. Alonso - I. Machón
GRAFCET - SFC
Cuando en una automatización tenemos una parte secuencial, lo más fácil es hacer esta parte mediante un
GRAFCET. Emplearemos el GRAFCET de nivel 2 en el que se hace una descripción a nivel tecnológico y
operativo del automatismo.
En el quedan perfectamente definidas las diferentes tecnologías utilizadas para cada función y las tareas que
han de realizar los elementos escogidos.
A la hora de implementar nuestro programa, como emplearemos un AP, utilizaremos el GRAFCET de nivel 3
donde vendrán recogidas todas las entradas, salidas, memorias y demás elementos utilizados en nuestra
programación.
Emplearemos siempre etiquetas para referirnos a las entradas y salidas físicas, pues como vemos en la
siguiente figura, el trabajar sin etiquetas asociadas a las variables dificultaría mucho la comprensión de su
funcionamiento.
Puesto que hay muchas empresas en las que no se permite el empleo GRAFCET para la programación,
utilizaremos este GRAFCET de nivel 3 para hacer una programación por fases como veremos más adelante.
Tambíen veremos posteriormente el método GEMMA, con el que desarrollaremos el trabajo final de la
asignatura.
106 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 5.1 · Portón mediante GRAFCET
Diseñar el circuito lógico que realice la apertura y cierre de un portón de los tres modos siguientes:
a) Cuando se acciona el pulsador "P" y esté cerrado, ha de iniciar la maniobra de apertura y no
interrumpir ésta, hasta que el portón accione el final de carrera "A" (ABIERTO).
Cuando se acciona el pulsador "P" y esté abierto, ha de iniciar la maniobra de cierre y no interrumpir
ésta hasta que el portón accione el final de carrera "C" (CERRADO).
b) Manteniendo la maniobra base, expuesta en el apartado, "a)", en el caso de q ue se produjera, durante
la maniobra de apertura, el accionamiento del pulsador "P", el portón debe pararse, permaneciendo en
este estado hasta que se produzca de nuevo el accionamiento del pulsador, "P", momento en el cual
debe proceder a la maniobra de cierre.
De forma análoga, si, durante la maniobra de cierre, se acciona el pulsador "P", el portón 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 portón, éste no permanezca en este estado indefinidamente, sino que,
una vez transcurridos diez segundos, reanude la marcha que tenía en el momento en que se había
parado. Si, antes de transcurridos los diez segundos, se acciona el pulsador "P", el portón debe deshacer
la maniobra previa. El portón estará abierto un máximo de 30 segundos.
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM3202K entradas y salidas PNP.
El pulsador y los finales de carrera, se
consideran normalmente abiertos.
Problemas M340 - 107
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tablas de variables
Pantalla de operador y variables asociadas (apartado a)
Qx_Cerrar Punto rojo
Qx_Abrir Punto verde
MxP_FCA FCA
MxP_FCC FCC
MxP_Pulsador Pulsador
Etapa2.x Portón abierto
Etapa0.x Portón cerrado
Etapa3.x Portón cerrando
Etapa1.x Portón abriendo
Etiqueta
Símbolo
en
los planos
Dirección
en PLC
Tipo Comentarios
Ix_Pulsador S1 %I0.1.0 EBOOL Pulsador para abrir el portón
Ix_FCA S2 %I0.1.1 EBOOL Final de carrera de abierto el portón
Ix_FCC S3 %I0.1.2 EBOOL Final de carrera de cerrado el portón
Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0
Qx_Abrir KM1 %Q0.1.16 EBOOL Orden de abrir el portón
Qx_Cerrar KM2 %Q0.1.17 EBOOL Orden de cerrar el portón
MxP_Pulsador BOOL
Mx_Pulsador EBOOL
Mx_FlancoPul BOOL
MxP_FCA BOOL
Mx_FCA BOOL
MxP_FCC BOOL
Mx_FCC BOOL
108 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Apartado a por GRAFCET - (pr0501a_G)
Este programa lo hemos estructurado en tres secciones:
IniciaVariables, escrito en lenguaje ST
Control, escrito en lenguaje SFC
Salidas, escrito en lenguaje ST
En este caso el control lo podemos hacer por nivel o por flanco.
Sección 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);
(*Inicialización de la pantalla de operador*)
(* El bit %S13, es un bit que está en 1 el primer ciclo de programa y luego automáticamente se pone a 0,
en este caso lo utilizamos para que inicialmente esté cerrado el portón en la pantalla de operador *)
If %S13 THEN
Set (MxP_FCC);
END_IF;
Sección en SFC "Chart"
Introduciremos el chart empleando los iconos apropiados, estos aparecen
cuando indicamos que deseamos una sección en código SFC.
Para introducir una etapa inicial, introduciremos una etapa normal y clicaremos en la casilla de verIficación
Problemas M340 - 109
Universidad de Oviedo
ISA - J. Alonso - I. Machón
que indica "Paso inicial".
Las acciones asociadas a las etapas las programamos en la sección de salidas. Haremos esto de esta forma y
no emplearemos los descriptores asociados a las etapas, por ergonomía. Si no, para ver las acciones asociadas
deberíamos entrar en cada etapa y abrir la ventana correspondiente.
Las acciones asociadas las indicaremos mediante un comentario en el GRAFCET p.e.
Las receptividades asociadas a las transiciones, si son variables sencillas, las introduciremos en la ventana
que aparece cuando clicamos en el símbolo de transición.
110 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Si son variables más complejas lo mejor es asignar a la receptividad una variable p.e. "Tran2_3" indicando en
el nombre de la variable, de que etapa salimos, y a que etapa vamos. Como valor de esa variable le asignamos
la receptividad necesaria.
Por ejemplo ver el GRAFCET del problema 5.2, página 73
Tran0_4:= Mx_Sensor2 And Not Mx_Sensor1;
Tran3_0:= Mx_SensorSal And Not Mx_Sensor2;
Tran5_6:= Etapa5.t > t#3s;
Sección en ST "Salidas"
Qx_Abrir := Etapa1.x;
Qx_Cerrar := Etapa3.x;
Apartado a sin GRAFCET - (pr0501a_sG)
(* Generación de las memorias que se utilizan en el programa *)
Mx_Pulsador := (Ix_Pulsador And Ix_LocDis) Or(MxP_Pulsador And Not Ix_LocDis);
Mx_FCA := (Ix_FCA And Ix_LocDis) Or (MxP_FCA And Not Ix_LocDis);
Mx_FCC := (Ix_FCC And Ix_LocDis) Or (MxP_FCC And Not Ix_LocDis);
(* Control del portón *)
If Mx_FCC And Mx_Pulsador THEN
Set (Qx_Abrir);
END_IF;
If Mx_FCA Or Qx_Cerrar THEN
Reset (Qx_Abrir);
END_IF;
If Mx_FCA And Mx_pulsador THEN
Set (Qx_cerrar);
END_IF;
If Mx_FCC Or Qx_Abrir THEN
Reset (Qx_Cerrar);
END_IF;
Problemas M340 - 111
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Apartado b por GRAFCET - (pr0501b_G)
El control lo deberemos hacer obligatoriamente por flanco.
Sección en ST “IniciaVariables”
(* Generación de las memorias que se utilizan en el programa *)
Mx_Pulsador:= (Ix_Pulsador And Ix_LocDis) Or(MxP_Pulsador And Not
Ix_LocDis);
Mx_FCA := (Ix_FCA And Ix_LocDis) Or (MxP_FCA And Not Ix_LocDis);
Mx_FCC := (Ix_FCC And Ix_LocDis) Or (MxP_FCC And Not Ix_LocDis);
Mx_FlancoPul := RE (Mx_Pulsador);
(* OJO!!! no se puede evaluar un flanco de una variable de pantalla*)
(*Inicialización de la pantalla de operador*)
If %S13 THEN
MxP_FCC := True;
END_IF;
Sección en SFC (GRAFCET) "Chart"
Sección en ST "Salidas"
Qx_Abrir := Etapa1.x;
Qx_Cerrar := Etapa3.x;
Pantalla de operador y variables asociadas (apartado b)
Qx_Cerrar Punto rojo
Qx_Abrir Punto verde
MxP_FCA FCA
MxP_FCC FCC
MxP_Pulsador Pulsador
Etapa2.x Portón abierto
Etapa0.x Portón cerrado
Etapa3.x Portón cerrando
Etapa1.x Portón abriendo
Etapa5.x Parado cerrando
Etapa4.x Parado abriendo
Qx_Cerrar
QX_Abrir
Etapa0
Etapa1
Etapa3
Etapa2 Etapa4
Etapa5
Mx_FlancoPul
Mx_FlancoPul
Mx_Fcc
Mx_Fca Mx_FlancoPul
Mx_FlancoPul
Mx_FlancoPul
Mx_FlancoPul
Etapa1
112 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Apartado B sin GRAFCET - (pr0501b_sG)
(* Generación de las memorias que se utilizan en el programa *)
Mx_Pulsador := (Ix_Pulsador and Ix_LocDis) or (MxP_Pulsador and not Ix_LocDis);
Mx_FCA := (Ix_FCA and Ix_LocDis) or (MxP_FCA and not Ix_LocDis);
Mx_FCC := (Ix_FCC and Ix_LocDis) or (MxP_FCC and not Ix_LocDis);
Mx_FlancoPul:= Re(Mx_Pulsador);
(*Variables utilizadas en la pantalla de operador*)
(*Inicialización de la pantalla de operador*)
If %S13 THEN
MxP_FCC:=True;
END_IF;
MxP_1:=Mx_FCA and not Qx_Cerrar;
MxP_2:=Mx_FCC and not Qx_Abrir;
(* Control del portón *)
if Mx_FlancoPul and (Mx_FCC or Mx_ParadoCerrando) then
set (Qx_Abrir);
reset (Mx_ParadoCerrando);
reset(Mx_FlancoPul);
end_if;
if Mx_FlancoPul and Qx_Abrir then
reset(Qx_Abrir);
set (Mx_ParadoAbriendo);
reset (Mx_FlancoPul);
end_if;
if Mx_FCA then
reset (Qx_Abrir);
end_if;
if Mx_FlancoPul and (Mx_FCA or Mx_ParadoAbriendo) then
set (Qx_Cerrar);
reset (Mx_ParadoAbriendo);
reset (Mx_FlancoPul);
end_if;
if Mx_FlancoPul and Qx_Cerrar then
reset (Qx_Cerrar);
set(Mx_ParadoCerrando);
end_if;
if Mx_FCC then
reset (Qx_Cerrar);
end_if;
Problemas M340 - 113
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Apartado C por GRAFCET - (pr0501c_G)
Sección “IniciaVariables”
(* Generación de las memorias que se utilizan en el programa *)
Mx_Pulsador := (Ix_Pulsador and Ix_LocDis) or(MxP_Pulsador and not Ix_LocDis);
Mx_FCA := (Ix_FCA and Ix_LocDis) or(MxP_FCA and not Ix_LocDis);
Mx_FCC := (Ix_FCC and Ix_LocDis) or(MxP_FCC and not Ix_LocDis);
Mx_FlancoPul:= re (Mx_Pulsador);
Tran4_1 := Etapa4.t > t#10s;
Tran5_3 := Etapa5.t > t#10s;
Tran2_3 := Etapa2.t > t#30s Or Mx_FlancoPul;
(*Inicialización de la pantalla de operador*)
If %S13 THEN
MxP_FCC:=True;
END_IF;
Sección "Salidas"
Qx_Abrir := Etapa1.x;
Qx_Cerrar := Etapa3.x;
114 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección en SFC "Chart"
Apartado C sin GRAFCET
Se propone al alumno que realice este apartado por si mismo.
(* Parado abierto
un máximo de 30 s *)
(* Parado cerrado *)
Qx_Cerrar
(* Parado parado cerrando *)
Qx_Abrir
Tran5_3 :=
Etapa5.t > t#10s
(* Parado parado abriendo *)
Tran2_3 :=
Etapa2.t > t#30s or
Mx_FlancoPul
Tran4_1 :=
Etapa4.t > t#10s
Etapa0
Etapa1
Etapa3
Etapa2 Etapa4
Etapa5
Mx_FlancoPul
Tran2_3
Mx_FCC
Mx_FCA Mx_FlancoPul
Mx_FlancoPul
Mx_FlancoPul
Mx_FlancoPul
Tran4_1
Tran5_3
Etapa1
Etapa1
Etapa3
Problemas M340 - 115
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Método para insertar un objeto de la librería de pantalla de
operador
Seleccionaremos en "Herramientas" la opción "Librería de pantallas de
operador". Saldrá una ventana con los distintos objetos gráficos agrupados en
carpetas, Accionadores, Autómatas, Depuración, Fluidos, Máquinas, Paneles
frontales Regulación, Símbolos, Símbolos homologados, Tendencias Regulación
y Visualizadores.
Cuando se selecciona una carpeta, aparece en la parte de abajo una ventana
con los objetos que contiene para darnos una idea de que hay.
Si abrimos la carpeta y clicamos dos veces en el
apartado que nos interese, p.e. motores. Aparecerá
una ventana donde podremos seleccionar el objeto
que nos interese, copiarlo al portapapeles y luego
pegarlo en nuestra pantalla de operador.
Algunas de estas librerias tienen objetos dinámicos. Estos objetos, cuando los peguemos en nuestra
pantalla de operador y una vez desagrupados, podremos acceder a las propiedades de alguna parte
gráfica que estará animada en
función de una variable. Una vez
hecho esto, podremos modificar
los parámetros según nos
convenga.
116 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 117
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 5.2 · Salida de 2 plantas de un garaje con semáforos
La figura representa el esquema de salida de un aparcamiento público, por el que son evacuados los vehículos
situados en dos plantas.
La regulación de la salida se efectuará mediante la apertura de los semáforos, SF1 o SF2, según proceda.
Dos lazos sensores, S1 o S2, efectúan la demanda de salida, confirmando, el lazo, S3 el final de la maniobra
de salida del vehículo en curso.
Dos o más demandas, consecutivas, de una misma planta, sólo serán atendidas cuando no existan demandas
en la otra. Si esto ocurriera, debe concederse la salida alternativamente a un vehículo de cada planta.
N.B.: En ningún caso puede haber más de un vehículo entre los sensores, S1, S2 y S3.
Inicialmente el sistema tendrá activas las dos luces rojas de los semáforos de las plantas.
Secuencia de paso
a) Cuando un vehículo se superpone a un lazo sensor solicita la salida. El semáforo correspondiente se abrirá,
si no hay otro vehículo saliendo.
b) El semáforo correspondiente se mantendrá abierto durante tres segundos, contados desde el momento
en que el automóvil abandone el lazo sensor. Tras este lapso de tiempo el semáforo se cerrará.
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM3202K entradas y salidas PNP.
PLANTA 2
PLANTA 1 S1
S2
SALIDA
S3
SF1
SF2
118 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tablas de variables
Programa en ST y SFC - (pr0502)
Este programa lo hemos estructurado en cuatro secciones:
IniciaVariables, escrito en lenguaje ST
Control, escrito en lenguaje SFC
Salidas, escrito en lenguaje ST
Transiciones, escrito en lenguaje ST
Sección “IniciaVariables”
(* Generación 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);
Sección “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;
Problemas M340 - 119
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "Control" en SFC
Sección "Transiciones"
Crear secciones de transiciones y después abrir cada una de ellas para ver el código o pegarlo en word, es
bastante incómodo. Por ello, lo que vamos a hacer es asignarle a cada transición una variable y a esta le
asignaremos la receptividad adecuada.
Tran_0_4 := Mx_Sensor2 And Not Mx_Sensor1;
Tran_2_3 := Etapa2.t > t#3s;
Tran_3_0 := Mx_SensorSal And Not Mx_Sensor2;
Tran_3_4 := Mx_SensorSal And Mx_Sensor2;
Tran_5_6 := Etapa5.t > t#3s;
Tran5_6 :=
Etapa5.t > t#3s
Tran3_4 :=
Mx_SensorSal
and
Mx_Sensor2
Tran3_0 :=
Mx_SensorSal
and not
Mx_Sensor2
Tran2_3 :=
Etapa2.t > t#3s
Tran0_4 :=
Mx_Sensor2
and not
Mx_Sensor1
Qx_P1 Verde
Qx_P2 Rojo
Qx_P1 Verde
Qx_P2 Rojo
Qx_P1 Rojo
Qx_P2 Verde
Qx_P1 Rojo
Qx_P2 Verde
Qx_P1 Rojo
Qx_P2 Rojo
Qx_P1 Rojo
Qx_P2 Rojo
Qx_P1 Rojo
Qx_P2 Rojo
Etapa0
Etapa1
Etapa3
Etapa6
Etapa4
Etapa2
Etapa5
Mx_Sensor1
NOT Mx_Sensor1
Tran5_6
Tran3_0 Tran3_4
Tran0_4
Mx_SensorSal
Tran2_3
NOT Mx_Sensor2
120 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de Operador
Problemas M340 - 121
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 5.3 · Salida de plantas con semáforo y sensor de
abandono de planta
Diseñar el sistema de Mando, y control para la salida automatizada de vehículos de un estacionamiento
público, el cual consta de dos plantas.
La regulación de la salida se efectuará mediante semáforos situados como indica la figura. Disponemos de
cinco lazos sensores para recabar la información externa necesaria.
Mediante el accionamiento de los lazos S1E ó S2E efectuaremos la demanda de salida. Los lazos S1S y S2S
nos indicarán que el vehículo ha rebasado el semáforo, mientras que el lazo SSal nos confirmará que el
vehículo ha salido del estacionamiento.
La salida del vehículo debe efectuarse de forma tal que se evacue un vehículo de cada planta, para evitar
esperas en una de las plantas respecto a la otra.
La secuencia de los semáforos debe ser la siguiente:
Cuando un vehículo accede a un lazo sensor realiza la petición de salida, el semáforo correspondiente se
situará en verde, el vehículo rebasará dicho semáforo, y al accionar el lazo correspondiente el semáforo se
situará de nuevo en rojo, para evitar que otro vehículo lo siga, quedando bloqueado hasta que el vehículo
accione el lazo SSal indicando que ha salido.
N.B.: En ningún caso puede haber más de un vehículo entre los sensores, S1, S2 y S3.
Inicialmente el sistema tendrá activas las dos luces rojas de los semáforos de las plantas.
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM3202K entradas y salidas PNP.
PLANTA 1
PLANTA 2
S1E
F1
F2
S1S
SSal
S2E
S2S
122 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tablas de variables
Programa en ST y SFC - (pr0503)
Sección “IniciaVariables”
(* Generación de las memorias que se utilizan en el programa *)
Mx_Sensor1E := (Ix_Sensor1E And Ix_LocDis) Or(MxP_Sensor1E And Not Ix_LocDis);
Mx_Sensor1S := (Ix_Sensor1S And Ix_LocDis) Or(MxP_Sensor1S And Not Ix_LocDis);
Mx_Sensor2E := (Ix_Sensor2E And Ix_LocDis) Or(MxP_Sensor2E And Not Ix_LocDis);
Mx_Sensor2S := (Ix_Sensor2S And Ix_LocDis) Or(MxP_Sensor2S And Not Ix_LocDis);
Mx_SensorSal := (Ix_SensorSal And Ix_LocDis) Or(MxP_SensorSal And Not Ix_LocDis);
Sección Transiciones
Tran2_0 := Mx_SensorSal And Not Mx_Sensor2E;
Tran0_3 := Mx_Sensor2E And Not Mx_Sensor1E;
Tran2_3 := Mx_SensorSal And Mx_Sensor2E;
Sección Salidas
Qx_P1Roja := Not Qx_P1Verde;
Qx_P1Verde:= Etapa1.x;
Qx_P2Roja := Not Qx_P2Verde;
Qx_P2Verde:= Etapa3.x;
Problemas M340 - 123
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección en SFC "Control"
Pantalla de Operador
Qx_P1Rojo
Qx_P2Rojo
Qx_P1Rojo
Qx_P2Rojo
Qx_P1Rojo
Qx_P2Verde
Qx_P1Verde
Qx_P2Rojo
Qx_P1Rojo
Qx_P2Rojo
Tran2_0 :=
Mx_SensorSal
and not
Mx_Sensor2E
Tran2_3 :=
Mx_SensorSal
and
Mx_Sensor2E
Tran0_3 :=
Mx_Sensor2E
and not
Mx_Sensor1E
Etapa0
Etapa1
Etapa2
Etapa4
Etapa3
Mx_Sensor1E
Mx_Sensor1S
Mx_Sensor2S
Tran2_0 Tran2_3
Tran0_3
Mx_SensorSal
124 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 125
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 5.4 · Control de limpiaparabrisas
Se desea automatizar el limpiaparabrisas de un vehículo cuyas partes constituyentes son las siguientes:
1. Un selector de movimiento de cuatro posiciones (Paro, Automático, Barrido Continuo y Barrido
Retardado) que permite seleccionar entre cuatro posibles modos de funcionamiento más abajo
detallados.
2. Un Selector de Tiempo de 3 posiciones (ST5, ST2 y ST1) empleado para seleccionar la pausa de
funcionamiento del sistema cuando el selector de movimiento anterior esté en la posición Barrido
Retardado.
3. Un detector de lluvia (DetLluvia).
4. Dos finales de carrera (FCI y FCD) para conocer cuándo el limpia llega a cada uno de los extremos
de su carrera. (Para determinar cuál es la parte izquierda y cuál la derecha se supone que miramos
el limpia desde dentro del vehículo).
5. Un motor de corriente continua que mediante dos contactores (KMIzq y KMDer) permite desplazar
las escobillas del limpia a izquierda y derecha respectivamente.
El modo de funcionamiento del sistema en función del selector de movimiento es el que se describe a
continuación.
1. Posición Paro. El sistema permanece parado independientemente de que llueva.
2. Posición Automático, Transcurridos 2,5 segundos desde el momento en que comience a llover, y
si el usuario no ha seleccionado manualmente ninguno de los dos posibles modos de funcionamiento,
el limpia debe comenzar a describir ciclos de barrido retardados, según la pausa indicada por el
selector de tiempo.
Ambos selectores pueden ser cambiados de posición en cualquier momento. Sin embargo, en caso
de que ese cambio se produzca en medio de un ciclo de barrido, este no tendrá efecto hasta que no
se haya finalizado ese ciclo.
3. Posición Barrido Continuo, el limpia debe comenzar a moverse hacia la izquierda hasta que alcance
la posición FCI. En este momento, invertirá el giro y comenzará a moverse hacia la derecha hasta
alcanzar la posición FCD. Estará haciéndolo de forma ininterrumpida hasta que se seleccione otro
modo.
4. Posición Barrido Retardado, el limpia describirá ciclos de barrido temporizados. Es decir, describirá
movimientos izquierda-derecha, deteniéndose un cierto periodo de tiempo en la posición marcada
por FCD. El tiempo que el limpia permanecerá en la posición FCD vendrá indicado por el selector de
tiempo de tres posiciones. ST5: 5 segundos; ST2: 2 segundos; ST1: 1 segundo.
126 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM3202K entradas y salidas PNP
Se pide:
1. Programa de control.
Tablas de variables
Programa en ST y SFC (GRAFCET) - (pr0504)
Sección “Preliminar”
(* Generación de las memorias que se utilizan en el programa *)
Mx_BarrCont := (Ix_BarrCont and Ix_LocDis) or(MxP_BarrCont and not Ix_LocDis);
Mx_BarrRet := (Ix_BarrRet and Ix_LocDis) or(MxP_BarrRet and not Ix_LocDis);
Mx_Automatico := (Ix_Automatico and Ix_LocDis) or(MxP_Automatico and not Ix_LocDis);
Mx_Paro := (Ix_Paro and Ix_LocDis) or(MxP_Paro and not Ix_LocDis);
Mx_DetLluvia := (Ix_DetLluvia and Ix_LocDis) or(MxP_DetLluvia and not Ix_LocDis);
Mx_FCI := (Ix_FCI and Ix_LocDis) or(MxP_FCI and not Ix_LocDis);
Mx_FCD := (Ix_FCD and Ix_LocDis) or(MxP_FCD and not Ix_LocDis);
Mx_ST5 := (Ix_ST5 and Ix_LocDis) or(MxP_ST5 and not Ix_LocDis);
Mx_ST2 := (Ix_ST2 and Ix_LocDis) or(MxP_ST2 and not Ix_LocDis);
Mx_ST1 := (Ix_ST1 and Ix_LocDis) or(MxP_ST1 and not Ix_LocDis);
Mx_Flanco_DLL := RE(Mx_DetLluvia);
(*Inicialización de la pantalla de operador*)
If %S13 then
SET (MxP_ST5); SET (MxP_FCD); SET (MxP_Paro);
end_if;
Problemas M340 - 127
Universidad de Oviedo
ISA - J. Alonso - I. Machón
(* Generación de ALGUNAS de las memorias que se utilizan en la pantalla de operador*)
Mx_NoFC := NOT Mx_FCI and not Mx_FCD;
Mx_FCD_KMI := Mx_FCD and Qx_MotIzq;
Mx_FCI_KMD := Mx_FCI and Qx_MotDer;
Mx_NoFC_KMD := Mx_NoFC and Qx_MotDer;
Mx_NoFC_KMI := Mx_NoFC and Qx_MotIzq;
Sección Transiciones
Tran6_0 := E6.t >= t#5s and Mx_ST5 or E6.t >= t#2s and Mx_ST2 or E6.t >= t#1s and Mx_ST1;
Tran1_7 := Mx_Flanco_DLL and not Mx_BarrCont and not Mx_BarrRet and Mx_Automatico;
Tran7_4 := E7.t > t#2.5s or Mx_BarrRet;
Tran1_4 := Mx_DetLluvia and not Mx_Flanco_DLL and not Mx_BarrCont and not Mx_BarrRet and
Mx_Automatico;
Sección Salidas
Qx_MotIzq := E2.x or E4.x;
Qx_MotDer := E3.x or E5.x;
Sección GRAFCET
128 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de Operador
Si estando lloviendo o no, activamos el Barrido Continuo, procederá a hacerlo. Si estuviésemos en otro
modo, terminaría ese ciclo para empezar de forma continua.
Lo mismo pasaría con el modo de Barrido Retardado. Si estando lloviendo o no, activamos el Barrido
Retardado, procederá a hacerlo. Si estuviesemos en otro modo, terminaría ese ciclo para empezar de forma
retardada.
Si estamos de forma Automática. Cuando comienza a llover, inicialmente con el flanco positivo del
detector, pasamos a la etapa S_Paro2 donde si antes de 2,5 segundos activamos el modo de Barrido
Continuo, procederá a hacerlo hasta que cambiemos de modo. Si esperamos 2,5 segundos, entonces hará
un Barrido Retardado y luego, de ese primer barrido, procederá a hacer el Barrido retardado de forma
continua hasta que se cambie de modo o deje de llover.
Problemas M340 - 129
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 5.5 · Control de la mezcla de dos líquidos. EM y EF
Se trata de automatizar un reactor agitado en el que dos compuestos A y B reaccionan para dar un nuevo
compuesto C. El proceso es el siguiente:
 El sistema está en reposo cuando está vacío, todas las válvulas están cerradas y el agitador está
apagado
 El ciclo comienza con un pulsador de arranque (Ix_Marcha). En ese momento, se abre la válvula A
(Qx_AbrirA) y el reactor comienza a llenarse con el primer componente.
 Cuando el nivel del primer componente llega al detector de nivel N1 (Ix_N1), se interrumpe el
suministro del componente A y se inicia el suministro del componente B (Qx_AbrirB) junto con la
activación del motor del agitador (Qx_Motor).
 Cuando la mezcla alcanza el nivel N2 (Ix_N2) se interrumpe el suministro del componente B, se
mantiene el agitador y se activa la resistencia calefactora (Qx_Calentar). El sistema permanecerá en
este estado durante 5 minutos.
 Una vez completados los 5 minutos, se desactiva la resistencia calefactora, se apaga el agitador y
se inicia el vaciado del depósito.
 Cuando el depósito está vacío, indicado por el detector de nivel N0 (Ix_N0), se vuelve al estado de
reposo.
El motor que mueve el agitador es de PM = 0,55 KW, UN = 400 V, 1400 rpm, cos ϕ = 0,92,  = 0,93 en triángulo
con arranque directo y Iarr = 5 IN y tiempo de arranque 5 s.
La resistencia calefactora es trifásica con una alimentación de Un = 400 V y de una potencia de 2 KW en
130 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
triángulo. La resistencia irá conectada en estrella.
El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de alimentación
BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta a todo el conjunto, módulo de entradas PNP BMX
DDI 1602 y de salidas PNP BMX DDO 1602.
Los valores normalizados de los Interruptores automáticos con curva C o D son 1, 2, 4, 6, 10, 16, 20, 25, 32,
40, 50, 63 A.
Los calibres de los Interruptores Diferenciales con 30 mA de sensibilidad son 6, 10, 16, 20, 25, 32, 40, 50 A.
Las salidas están conectadas a 24 V DC, siendo el consumo de las electroválvulas de 10 W y el de los
contactores 5,4 W.
Se pide:
 Esquema de Mando,
 Esquema de Fuerza.
 Elegir los elementos de protección adecuados de los motores, resistencia calefactora y del mando.
Indicar sobre las gráficas las corrientes puestas en juego en los diferentes elementos.
 Programa de control.
Esquema de Mando
Problemas M340 - 131
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de Fuerza
El motor que mueve el agitador es de PM = 0,55 KW, UN = 400 V, 1400 rpm, cos ϕ = 0,92  = 0,93 en triángulo
con arranque directo y Iarr = 5 IN y tiempo de arranque 5 s.
Relé térmico F1
𝜂 =
𝑃𝑢
𝑃𝑒
=
𝑃𝑢
√3 𝑈𝑁 𝐼𝑁 cos 
𝐼𝑁 =
𝑃𝑢
√3 𝑈𝑁 cos  𝜂
=
550
√3 400 0,92 0,93
= 0,93 𝐴
La corrientes que pasa por el térmico es 𝐼N = 0,93 𝐴
Teniendo en cuenta esta corriente, elegiremos el LRD-05. Ajustaremos la corriente regulada a 0,93 A
Iarranque = 5 · IN = 5 · 0,93 = 4,65 A tiempo 5 segundos
Se observa que en clase 10, estará en el límite de la curva, si bien en la realidad tendrá un valor más favorable.
Escojeremos el LRD -05 clase 10
132 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Automático Q1
Cuando tengamos la corriente nominal, por el térmico estarán pasando los 0,93 A. Aguas arriba por el
automático estarán pasando los 0,93 A.
Para que haya selectividad, la corriente mínima del automático será: I = 1,6 * 0,93 = 1,5 A
Por tanto el calibre del automático elegido será el de 2 A (valor normalizado por encima de 1,5 A).
Tensión nominal: 400 V 3 polos.
La curva puede ser la C 2A
𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒
𝐼𝐶𝑎𝑙𝑖𝑏𝑟𝑒
=
4,65
2
= 2,32 𝑡𝑖𝑒𝑚𝑝𝑜 5 𝑠𝑒𝑔𝑢𝑛𝑑𝑜𝑠
Problemas M340 - 133
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Diferencial F2
Se elige un Diferencial de calibre 25A y sensibilidad 30 mA (p.e. el A9R81225 de Schneider)
Contactor KM1
Clase de servicio temporal.
Alimentación bobina: 24 VCC
Tensión de servicio: 400 V
Corriente de servicio: 𝑰𝐍 = 𝟎, 𝟗𝟑 𝑨
Del catálogo de Schneider sería válido el LC1D09BD
Consumo 5,4 W => I = 5,4 / 24 = 0,225 A
El módulo DDI 1602 aguanta Corriente/canal 0,625 A Corriente módulo 10 A
Resistencia calefactora
La resistencia calefactora es trifásica con una alimentación de Un = 400 V y de una potencia de 2 KW.
Será conectada en estrella.
𝐼𝑁 = 𝐼𝐿𝑇 =
𝑃𝑢
√3 𝑈𝑁
=
2000
√3 400
= 2,9 𝐴
𝐼𝑓𝐸 = 𝐼𝐿𝐸 =
𝐼𝑛
3
=
2,9
3
= 0,97 𝐴
Automático Q2
Tensión nominal: 400 V 3 polos
Corriente de servicio: 𝑰𝐍 = 𝟎, 𝟗𝟕 𝑨
La curva puede ser la C 1
Diferencial F3
Se elige un Diferencial de calibre 25A y sensibilidad 30 mA (p.e. el A9R81225 de Schneider).
Contactor KM2 de la resistencia calefactora
Clase de servicio temporal.
Alimentación bobina: 24 VCC
Tensión de servicio: 400 V
Corriente de servicio: 𝑰𝐍 = 𝟎, 𝟗𝟕 𝑨
Del catálogo de Schneider sería válido el LC1D09BD
Consumo 5,4 W => I = 5,4 / 24 = 0,225 A
134 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Electroválvulas de paso de fluidos
Consumo I = 10 / 24 = 0,42 A
Automático Q3 de Mando,
La fuente de alimentación entrega 20 W con una eficiencia del 82%.
Por tanto consume unos 20 / 0,82 = 24,39 W que significa unos 24,39 / 230 = 0,11 A
La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar
pasar 9 · 0,11 = 0,95 A en los instantes iniciales.
Podemos coger el automático C60 1A
Problemas M340 - 135
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tablas de variables
Programa en ST y GRAFCET - (pr0505)
Sección en ST "IniciaVariables"
(*Inicia variables*)
Mx_N0 := (Ix_N0 And Ix_LocDis) Or (MxP_N0 And Not Ix_LocDis);
Mx_N1 := (Ix_N1 And Ix_LocDis) Or (MxP_N1 And Not Ix_LocDis);
Mx_N2 := (Ix_N2 And Ix_LocDis) Or (MxP_N2 And Not Ix_LocDis);
Mx_Marcha := (Ix_Marcha And Ix_LocDis) Or (MxP_Marcha And Not Ix_LocDis);
Tran3_4 := Etapa3.t >=t#15s;
136 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección en SFC "Control"
Sección en ST "Salidas"
Qx_AbrirA := Etapa1.x;
Qx_AbrirB := Etapa2.x;
Qx_Calentar := Etapa3.x;
Qx_Vaciar := Etapa4.x;
Qx_Motor := Etapa2.x Or Etapa3.x;
Problemas M340 - 137
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección en ST "Simulación"
(* Esta parte del programa es necesaria para la correcta visualización de la simulación de la planta *)
(*Arranca un temporizador para un oscilador de 2 Hz. Es introducido como bloque DFB de tipo TON *)
TON_Osc2Hz (IN := Qx_motor and not TON_Osc2Hz.Q,
PT := t#500ms);
Mx_Osc1 := TON_Osc2Hz.ET>T#250ms;
Mx_Osc2 := TON_Osc2Hz.ET<T#250ms AND Qx_Motor;
Mx_N3 := Etapa1.x AND Mx_N0;
Mx_N4 := Etapa2.x AND Mx_N1;
Mx_N5 := Etapa2.x AND Etapa2.t>=t#2s;
Mx_N6 := Etapa3.x or Mx_N2;
Mx_N7 := Etapa4.x And Not Mx_N2 and Mx_N1 and Mx_N0;
Mx_N8 := Etapa4.x And Not Mx_N2 and Not Mx_N1 and Mx_N0;
Detalle de los elementos que componen la Pantalla de Operador
138 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 139
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Funciones fundamentales para controlar los SFC (GRAFCETs)
CLEARCHART: Desactivación de todas las etapas
Mx_GRAFCETBorrado:= CLEARCHART (NombreGRAFCET, Mx_BorraGRAFCET);
Cuando el parámetro de entrada booleano de la función CLEARCHART, Mx_BorraGRAFCET sea 1, se detiene
la secuencia y se desactivan todas las etapas de la sección SFC denominada NombreGRAFCET.
Mientras que el valor de ese booleano Mx_BorraGRAFCET permanezca a 1, en ese ciclo de programa, la
secuencia no se podrá iniciar mediante las funciones INITCHART o SETSTEP.
Así mismo, este estado de inactividad total de la secuencia se mostrará poniendo a 1 el parámetro booleano
de salida Mx_GRAFCETBorrado (normalmente en nuestros programas lo llamaremos Mx_PonCI). Este valor
se podrá usar para proceder a realizar el proceso de rearme (llamada a una subrutina de puesta en
Condiciones Iniciales, activación de una etapa de rearme, activación de una sección SFC de rearme, etc).
La sección SFC NombreGRAFCET permanecerá en este estado de inactividad total de todas sus etapas aun
cuando la entrada Mx_BorraGRAFCET vuelva a 0.
Sin embargo, si la entrada Mx_BorraGRAFCET es 0, entonces, ya se podrá ejecutar INITCHART o SETSTEP
para iniciar la secuencia del SFC. La ejecución de INITCHART o SETSTEP pondrá el valor de
Mx_GRAFCETBorrado a 0.
INITCHART: Desactivación de todas las etapas e inicio de secuencia
Mx_GRAFCETIniciado := INITCHART (NombreGRAFCET, Mx_IniciaGRAFCET) ;
Si el parámetro de entrada booleano de la función INITCHART, IniciaGRAFCET es igual a 1, la secuencia de la
sección SFC denominada NombreGRAFCET se detiene, se desactivan todas las etapas y se activa su etapa
inicial. Mientras el valor de Mx_IniciaGRAFCET sea 1 y se procese la instrucción, la secuencia se mantendrá
paralizada en la etapa inicial estando únicamente activa esta etapa inicial de la sección NombreGRAFCET. Se
observa que la etapa inicial aparece resaltada en color verde pero su tiempo de activación indica cero
segundos.
Cuando el valor del booleano de entrada Mx_IniciaGRAFCET pase de 1 a 0, entonces además de seguir activa
la etapa inicial se activará la secuencia normal de la sección SFC NombreGRAFCET. Se puede observar que el
tiempo de activación de la etapa ya ha comenzado.
INITCHART tiene como parámetro de salida el booleano Mx_GRAFCETIniciado. El valor de
Mx_GRAFCETIniciado será 1 cuando Mx_IniciaGRAFCET valga 1, permaneciendo Mx_GRAFCETIniciado igual
a 1 hasta que Mx_IniciaGRAFCET valga 0 o no se ejecute esa función. En ese momento Mx_GRAFCETIniciado
volverá a valer 0.
FREEZECHART: Congelación de una secuencia
Mx_GRAFCETCongelado := FREEZECHART (NombreGRAFCET, Mx_CongelaGRAFCET) ;
Cuando el valor del booleano de entrada Mx_CongelaGRAFCET sea 1, se inmoviliza el estado actual de la
secuencia de la sección SFC con nombre NombreGRAFCET. Se dejarán de evaluar los estados de las
transiciones. De esta forma, ya no será posible avanzar en la secuencia, aunque la condición de transición de
la transición "activa" sea verdadera.
Cuando el valor del booleano de entrada Mx_CongelaGRAFCET sea 0, se libera la secuencia de la sección SFC
con nombre NombreGRAFCET. Se volverán a evaluar los estados de las transiciones. De esta forma, ya será
posible avanzar en la secuencia, cuando la receptividad de la transición "activa" sea verdadera.
El bit de salida Mx_GRAFCETCongelado muestra en todo momento el estado actual de la secuencia, su valor
es 1 cuando se ha inmovilizado la secuencia y será 0 si la secuencia no se encuentra inmovilizada.
Se observa que el Chart del SFC se encuentra con color cian cuando la secuencia se encuentra inmovilizada,
140 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
y que la salida asociada a la etapa en la que está parado PERMANECE ACTIVA.
SETSTEP: Activación de una etapa específica de la secuencia
SETSTEP (NombreEtapa);
La función SETSTEP tiene como único argumento de entrada el nombre de una etapa de una sección SFC
(NombreEtapa). El procedimiento activa la etapa especIficada como NombreEtapa. Además la etapa o
etapas que se encontraban ya previamente activas no se verán afectadas por este procedimiento.
Dado que la etapa NombreEtapa permanece activada mientras el procedimiento SETSTEP se está
ejecutando, deberá tomarse una de las siguientes medidas para impedir un establecimiento o activación
permanente de la etapa:
 Llamada condicional del procedimiento SETSTEP a través de la entrada EN, en los lenguajes de
programación FBD y LD.
 Llamada condicional del procedimiento SETSTEP a través, por ejemplo, de la instrucción IF en el
lenguaje de programación ST.
 Utilización de reconocimiento de flancos (RE) en la entrada.
NOTA: El procedimiento sólo se puede ajustar en la modalidad de servicio "Multi-Token" (ver apéndice B).
RESETSTEP: Desactivación de una etapa específica de la secuencia
RESETSTEP (NombreEtapa);
La función RESETSTEP tiene como único argumento de entrada el nombre NombreEtapa de una etapa de
una sección SFC. El procedimiento desactiva ("restablece") la etapa especIficada como NombreEtapa.
Además la etapa o etapas que se encontraban ya previamente activas no se verán afectadas por este
procedimiento.
Dado que la etapa NombreEtapa permanece desactivada mientras el procedimiento RESETSTEP se está
ejecutando (el procedimiento se ejecuta de forma cíclica), deberá tomarse una de las siguientes medidas
para impedir que la etapa se desactive permanentemente:
 Llamada condicional del procedimiento RESETSTEP a través de la entrada EN, en los lenguajes de
programación FBD y LD.
 Llamada condicional del procedimiento SETSTEP a través, por ejemplo, de la instrucción IF en el
lenguaje de programación ST.
 Utilización de reconocimiento de flancos (R_TRIG) en la entrada.
Si se desactiva ("restablece") el último/único paso de la secuencia, ésta sólo se podrá volver a iniciar a través
del bloque de funciones SFCCNTRL (entrada INIT), la función INITCHART, el procedimiento SETSTEP u otro
comando, de activación de pasos (desde el exterior).
NOTA: El procedimiento sólo se puede ajustar en la modalidad de servicio "Multi-Token" (ver apéndice B).
Problemas M340 - 141
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 5.6 · Ejemplo de control de un GRAFCET
El siguiente ejemplo nos permitirá dejar claro el funcionamiento de esas Funciones.
Haremos un programa para controlar dos luces. Inicialmente las luces estárá apagadas. Cuando se pulse
Marcha, se encenderá la luz Verde de forma contina. A continuación, cuando se pulse Sensor0, se encenderá
la luz Roja de forma memorizada y permanecerá activa la luz Verde. Posteriormente, cuando se pulse
Sensor1, la luz Verde se apagará y la Roja permanecerá activa al estar memorizada. Con la pulsación del
Sensor3, volveremos a tener sólo activa la luz Verde y repetiremos la secuencia.
Demostración de las funciones
Haremos una secuencia completa y luego, por ejemplo, estando en la etapa 2 hacemos un Paro.
Observemos que el GRAFCET se rellena de azul y aunque la Etapa 2 esté activa, no puede evolucionar (Fig.
5.6.a). Esto es, aunque pulsemos el Sensor1, no pasa a la Etapa 3. Por otra parte, fijemonos que las salidas
de la Etapa 2 siguen activas. Esto nos puede interesar o no recordemos lo que dijimos para el caso de una
pinza sujetando un objeto y par el caso de un motor girando.
Para salir de esta situación de paro, pulsaremos Marcha, ahora se descongela el GRAFCET y se permite su
evolución. Si pulsamos Sensor1, el GRAFCET evolucionará a la Etapa3.
Fig. 5.6.a Fig. 5.6.b
142 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Estando en la Etapa 2, p.e. si pulsamos Rearme, veremos que se ejecuta la función CLEARCHART. Se
desactivan todas las etapas y se desactivan las acciones continuas asociadas a las etapa, pero NO las acciones
memorizadas. Vemos como se apaga la Luz Verde pero permanece encendida la Luz Roja (Fig. 5.6.b).
Con la variable Mx_PonCI se ejecutará la subrutina que nos pone el sistema en Condiciones Iniciales
(Sr_PonCI). Este proceso tardará mas o menos tiempo, al final, cuando el sistema esté en Condiciones
Iniciales, estarán una serie de variables a 1, estas se consultarán mediante una función AND lógica y se
seteará una variable que nos lo indique, Mx_PuestoEnCI, se reseteará la variable Mx_PonEnCI para que no
se ejecute más esta subrutina.
En el programa preliminar, consultaremos esa variable y asegurándonos que no estamos en el ciclo de
programa que está activa la función CLEARCHART, inicializamos el GRAFCET, o ponemos el GRAFCET con una
etapa activa mediante la función SETSTEP, eso dependerá de como y desde donde hemos hecho la llamada
a la subrutina de poner en Condiciones Iniciales. A continuación resetearemos la variable Mx_PuestoEnCI
para que no se ejecute de nuevo, resetearemos todas las variables que pudieran estar a 1 y ya estaremos en
condiciones de funcionar normalmente.
Fig. 5.6.c Fig. 5.6.d
Cuando ejecutamos la instrucción Mx_IniciaChart := INITCHART (Prueba, MxP_InitChart), si activamos la
marca MxP_InitChart, veremos que se desactiva la etapa que estuviese activa, se activa la Etapa 0
poniendose en verde, pero no puede evolucionar, vemos como el tiempo está detenido (Fig. 5.6.c). TODAS
las acciones asociadas a las etapas se desactivan.
Una vez que el bit MxP_InitChart pase a 0, el GRAFCET ya puede evolucionar y veremos que el tiempo que
lleva activa la Etapa 0 vuelve a correr (Fig. 5.6.d).
Problemas M340 - 143
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Si ejecutammos las instrucciones:
If MxP_InitChartCondicional then
Mx_IniciaChart := INITCHART (Prueba,True);
end_if;
Cuando se active el bit MxP_InitChartCondicional, se ejecuta INITCHART y volvemos a la situación descrita
con anterioridad (Fig. 5.6.c). PERO si se deja de procesar estas instrucciones por pasar
MxP_InitChartCondicional a 0, el GRAFCET puede evolucionar estando en la situación descrita en la
Fig.5.6.d
Tabla de variables
Sección "Preliminar"
(* Marcas necesarias para la Ppantalla de Operador *)
If %S13 then
set(MxP_Paro); (* para que con el primer ciclo de programa, el interruptor se comporte como NC *)
end_if;
(* Marcas usadas en el control Local / Distancia *)
Mx_Rearme := (Ix_Rearme and Ix_LocalDist) or (MxP_Rearme and not Ix_LocalDist);
Mx_Paro := (Ix_Paro and Ix_LocalDist) or (MxP_Paro and not Ix_LocalDist);
Mx_Marcha := (Ix_Marcha and Ix_LocalDist) or (MxP_Marcha and not Ix_LocalDist);
(* Programa *)
Mx_PonCI := CLEARCHART (Prueba, RE (Mx_Rearme));
(*con el flanco del pulsador de Rearme, borramos todas las etapas activas del GRAFCET “prueba” y
144 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
se pone automáticamente a 1 la variable Mx_PonCI*)
if Mx_PonCI then
(*con Mx_PonCI a 1, ejecutamos la subrutina para poner al sistema en Condiciones Iniciales, que
durará todo el tiempo necesario *)
Sr_IniciaSistema();
Reset (Mx_EnParo);
end_if;
if Mx_PuestoEnCI and not Mx_Rearme then
Mx_IniciaChart := INITCHART (Prueba,true);
(* se ejecuta la función en un ciclo que no esté activo CLEARCHART, por tanto inicializa el GRAFCET
y le permite evolucionar puesto que no está activo el CLEARCHART *)
Reset (Qx_LuzRoja); (* reseteamos también todas las variables que pudieran estar a 1 mediante
instrucciones SET *)
reset (Mx_PuestoEnCI); (*borramos esta memoria para que no se vuelva a ejecutar éste código*)
end_if;
if not Mx_Paro then
set (Mx_EnParo); (* ponemos a 1 de forma memorizada la variable Mx_EnParo para que
permanezca activa la orden después de soltar el pulsador de Paro*)
END_IF;
if Mx_EnParo then
Mx_GRAFCETCongelado := Freezechart (Prueba,true);
(*con esta instrucción congelamos el GRAFCET. Observar que la salida asignada a una etapa
permanece ACTIVA. Esto nos puede interesar o no. Recordar: salida a una pinza sujetando una
pieza | salida activando un motor *)
else
Mx_GRAFCETCongelado := Freezechart (Prueba,false);
(*con esta instrucción descongelamos el GRAFCET. Ahora ya puede evolucionar *)
END_IF;
if Mx_Marcha then
reset (Mx_EnParo);
end_IF;
Mx_IniciaChart := INITCHART (Prueba, MxP_InitChart);
(* Observemos como con el MxP_InitChart a 1 se inicializa el GRAFCET borrando todas las etapas que
estuviesen activas, se pone a 1 el bit Mx_IniciaChart y no permite evolucionar el GRAFCET hasta que el bit
de control MxP_InitChart no sea 0 *)
If MxP_InitChartCondicional then
Mx_IniciaChart := INITCHART (Prueba,True);
(* Observamos que mientras esté a 1 el bit MxP_InitChartCondicional y por tanto se ejecuta la función, se
inicializa el CHART pero no se permite su evolución. Una vez que el bit MxP_InitChartCondicional pasa a
valer 0, y no se ejecute la función, el GRAFCET ya puede evolucionar*)
end_if;
Sección "Salidas"
If Etapa1.x THEN
Reset (Qx_LuzRoja);
Problemas M340 - 145
Universidad de Oviedo
ISA - J. Alonso - I. Machón
END_IF;
Qx_LuzVerde := Etapa2.x Or Etapa3.x;
If Etapa2.x THEN
Set (Qx_LuzRoja);
END_IF;
Subrutina “Sr_IniciaSistema”
(* Mientras que Mx_PonCI esté en 1, ejecutamos la subrutina para poner al sistema en CI
Se pondría al sistema en CI p.e. bajaríamos una barrera, calentaríamos un líquido, etc.
Cuando el sistema esté en CI una serie de variables estarán a 1 informando, nos de ello, vamos a suponer
que es cuando MxP_SistemaEnCI esté a 1*)
If MxP_SistemaEnCI THEN
Set (Mx_PuestoEnCI);
Reset (Mx_PonCI); (* esta instrucción no sería necesaria puesto que INITCHART o SETSTEP borra el
bit puesto a 1 por la función CLEARCHART *)
END_IF;
Sección GRAFCET “Prueba”
Pantalla de operador
Qx_LuzVerde
R Qx_LuzRoja
Qx_LuzVerde
S Qx_LuzRoja
Etapa1
Etapa2
Etapa3
Etapa0
MxP_Sensor0
MxP_Sensor1
MxP_Sensor2
MxP_Marcha
146 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 147
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Subrutinas y puesta en condiciones iniciales
Problema 6.0 · Portón con puesta en CI
Diseñar el esquema de Mando, , el esquema de Fuerza y el programa de control que realice la apertura y
cierre de un portón del modo siguiente:
Inicialmente el portón podrá estar abierto, cerrado o en una posición intermedia.
Cuando se pulse el Rearme el portón procederá a ponerse en CI, esto es, se cerrará y a partir de esa
situación podrá evolucionar normalmente.
 Cuando se acciona el pulsador y esté cerrado, ha de iniciar la maniobra de apertura y no
interrumpir ésta, hasta que el portón accione el final de carrera "FCA" (ABIERTO).
 Cuando se acciona el pulsador y esté abierto, ha de iniciar la maniobra de cierre y no interrumpir
ésta hasta que el portón accione el final de carrera "FCC" (CERRADO).
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM3202K entradas y salidas PNP.
148 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tablas de variables
Programa en ST y GRAFCET - (pr0600)
Este programa lo hemos estructurado en cinco secciones:
Preliminar, escrito en lenguaje ST
Control, escrito en lenguaje SFC
Salidas, escrito en lenguaje ST
Subrutina"Sr_IniciaSistema" escrito en lenguaje ST
Sección "Preliminar"
(*Inicialización y gestión de la pantalla de operador*)
If %S13 THEN
Set (MxP_Paro); (*Ponemos el Pulsador de Paro inicialmente cerrado en la pantalla*)
END_IF;
(* variables utilizadas en la pantalla de operador *)
Mx_AuxCerrar := (Etapa4.x Or Mx_Cerrar) And Not Mx_EnParo;
Mx_AuxAbrir := (Etapa2.x Or Mx_Abrir) And Not Mx_EnParo;
Problemas M340 - 149
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Mx_AuxParo := Etapa0.x Or (Mx_EnParo And Not Mx_FCC) And (Mx_EnParo And Not Mx_FCA);
(* Variables utilizadas en el control Local o a Distancia *)
Mx_Pulsador := (Ix_Pulsador And Ix_LocDis) Or (MxP_Pulsador And Not Ix_LocDis);
Mx_Paro := (Ix_Paro And Ix_LocDis) Or (MxP_Paro And Not Ix_LocDis);
Mx_Rearme := (Ix_Rearme And Ix_LocDis) Or (MxP_Rearme And Not Ix_LocDis);
(* en rojo están las que ponemos para poder simularlo en casa, en realidad estas no se usarían, en su lugar,
se usarían las entradas Ix correspondientes *)
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);
(*con el flanco del pulsador de Rearme, borramos todas las etapas activas del GRAFCET “Control” y se pone
automáticamente a 1 la variable Mx_PonCI*)
Mx_PonCI := CLEARCHART (Control, RE (Mx_Rearme));
If Mx_PonCI THEN
Sr_IniciaSistema();
END_IF;
If Mx_PuestoCI And Not Mx_Rearme THEN
Setstep (Etapa1); (*Si cuando se activase el Rearme estuviese ya en Condiciones Iniciales, esta
instrucción no se ejecutaría si no impusiésemos la condición que no esté activo el rearme. Recordar que
cuando está activo CLEARCHART no se ejecuta ni INITCHART ni SETSTEP *)
Reset (Mx_EnParo);
Reset (Mx_PuestoCI);
END_IF;
If Not Mx_Paro THEN
Set (Mx_EnParo);
END_IF;
If Mx_EnParo THEN
Mx_Congelado := FREEZECHART (Control, true);
ELSE Mx_Congelado := FREEZECHART (Control, false);
END_IF;
If Mx_Pulsador THEN
Reset (Mx_EnParo);
END_IF;
150 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección GRAFCET "Control"
Sección "Salidas"
Qx_Abrir := (Etapa2.x And Not Mx_EnParo) And Not Qx_Cerrar;
Qx_Cerrar := ((Etapa4.x And Not Mx_EnParo) Or Mx_Cerrar) And Not Qx_Abrir;
Qx_Cerrar
Qx_Abrir
(*Portón
Cerrado*)
Etapa0
Etapa2
Etapa3
Etapa4
Mx_Pulsador
Mx_FCA
Mx_Pulsador
Mx_FCC
False
Etapa1
Introducir "False" como
nombre de variable
Problemas M340 - 151
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Subrutina “Sr_IniciaSistema”
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
152 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 153
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 6.1 · Control de 2 cilindros. EM y EF
Un sistema automático consta de:
 1 cilindro de doble efecto con electroválvula de potencia biestable servopilotada y detector de posición
a1.
 1 cilindro de simple efecto con vástago recogido con electroválvula de potencia monoestable
servopilotada y detectores de posición b0 y b1.
 Pulsadores de Rearme (NA), Marcha (NA) y Paro (NC).
 Una luz verde y otra roja.
Inicialmente el sistema estará parado con la luz verde apagada y la luz roja en intermitencia de 2 Hz. Cuando
se active el pulsador de REARME, el CSE se pondrá con el vástago recogido y el CDE con vástago sacado
y se encenderá la luz verde a 2 Hz y se apagará la luz roja.
Desde esta posición inicial, cuando se active el pulsador de marcha se procederá a hacer una secuencia B+,
A-, A+, B- ininterrumpidamente hasta que se active el pulsador de paro estAndo la luz verde encendida y la
roja apagada.
Cuando se active el pulsador de paro se mantendrá la configuración que tuviese y no podrá volver a arrancar
hasta que se active el pulsador de Marcha, la luz roja estará encendida y la luz verde apagada.
Se pide:
1. Esquema de Mando,
2. Esquema de fuerza
3. Tabla de variables
4. Programa de Mando,
PD: PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la
fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de
entradas salidas BMX DDM16025 con entradas PNP a 24 VCC y salidas por relé a 230 VAC.
Esquema de fuerza neumático
0
Seta de emergencia
A+
A- B+
a1 b0 b1
154 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de Mando, eléctrico
Problemas M340 - 155
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tablas de variables
Programa en ST y GRAFCET - (pr0601)
Sección "Preliminar"
(*Inicialización y gestión de la pantalla de operador*)
If %S13 THEN
Set (MxP_Paro);
Set (MxP_B0);
END_IF;
(* Generación de las memorias que se utilizan en control Loc / Dis *)
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);
(* en rojo están las que ponemos para poder simularlo en casa, en realidad estas no se usarían, en su lugar,
se usarían las entradas Ix correspondientes *)
Mx_A1 := (Ix_A1 And Ix_LocDis) Or (MxP_A1 And Not Ix_LocDis);
Mx_B0 := (Ix_B0 And Ix_LocDis) Or (MxP_B0 And Not Ix_LocDis);
Mx_B1 := (Ix_B1 And Ix_LocDis) Or (MxP_B1 And Not Ix_LocDis);
156 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
If RE (Mx_Rearme) THEN (* para simularlo *)
Reset (MxP_B1);
Set (MxP_B0);
END_IF;
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 inicialización del CHART, ni ninguna orden SETSTEP *)
If Mx_PonCI THEN
Setstep (Etapa1);
(* Esta instrucción se ejecuta en el ciclo siguiente al que se ejecuta la anterior, el autómata
activa la etapa1 y borra automáticamente la variable Mx_PonCi *)
END_IF;
If Not Mx_Paro THEN
Set (Mx_EnParada); (*Activar Luz Roja*)
END_IF;
If Mx_EnParada THEN
SequenceFreezed := FREEZECHART (Control,true);
(*Congela el GRAFCET dejando activa la etapa en la que estaba y por tanto las salidas asociadas*)
else SequenceFreezed := FREEZECHART (Control,false); (* Descongela el GRAFCET *)
END_IF;
If Mx_Marcha THEN
Reset (Mx_EnParada);
END_IF;
Sección "Salidas"
Qx_Bmas := Etapa2.x or Etapa3.x or Etapa4.x;
Qx_Amas := Etapa4.x or Etapa1.x;
Qx_Amenos := Etapa3.x;
Qx_LRoja := Etapa0.x and Mx_Osc2hz or Mx_EnParada;
Qx_LVerde := ((Etapa1.x and Mx_Osc2hz) or Etapa2.x or Etapa3.x or Etapa4.x or Etapa5.x) and not
Mx_EnParada;
(* Se programa el oscilador de 2 Hz, T=500 ms *)
TON_Oscilador (IN := NOT TON_Oscilador.Q, PT := t#500ms);
Mx_Osc2Hz := TON_Oscilador.ET >= t#250ms;
Sección "Transiciones"
Tran3_4 := Etapa3.T >= t#5s;
Tran1_2 := Mx_Marcha and Mx_A1 and Mx_B0;
Problemas M340 - 157
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección GRAFCET
(*Recoje el cilindro B*)
Qx_LVerde
Qx_Bmas
Qx_Amas
Qx_LVerde
Tran3_4 :=
Etapa3.T>=
t#5s
Qx_Bmas
Qx_Amenos
Qx_LVerde
Qx_Bmas
Qx_LVerde
Tran1_2 :=
Mx_Marcha
and Mx_A1
and Mx_B0
(* Sistema parado *)
Qx_LVerde 2Hz
Qx_Amas
(* Sistema parado
Luz Verde apagada *)
Qx_LRoja 2 Hz
Etapa1
Etapa2
Etapa3
Etapa4
Etapa5
Etapa0
Tran1_2
Mx_B1
Tran3_4
Mx_A1
Mx_B0
false
158 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de Operador
Problemas M340 - 159
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Como mostrar un texto en la pantalla de operador en función de
una variable
El texto se puede animar y hacer que surja cuando interese un mensaje. Este mensaje estará asociado a un
número de mensaje. Para introducirlo, iremos y clicaremos con el botón derecho en "pantallas de operador".
En la pantalla que sale seleccionaremos "Lista de mensajes" y la abriremos. Posteriormente introduciremos
todos aquellos que nos interesen.
Cuando queramos sacar uno en la pantalla de operador, introduciremos un texto haciendo uso del icono
correspondiente de la barra IOSEditor.
160 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Podremos animarlo para que surja cuando se active una determinada variable dentro de la pestaña
"Animación". Posteriormente elegiremos el mensaje en la pestaña "Tipo de animación".
Problemas M340 - 161
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 6.2 · Control de plantas con barrera. Puesta en CI con
subrutina
En la figura se representa el esquema de la salida de un aparcamiento público, por el cual, son evacuados los
vehículos situados en dos plantas.
La regulación de la salida se efectuará mediante la apertura de las barreras B1 o B2 según proceda. Tenemos
en la misma dos lazos sensores S1E y S2E mediante los cuales se efectuará la demanda de salida y un tercer
lazo sensor S3, que nos confirmará la salida del vehículo en curso. Otros dos lazos S1S y S2S nos informarán
cuando se ha sobrepasado las barreras respectivas.
La salida de los vehículos debe efectuarse de forma tal que se evacue un vehículo de cada planta, para evitar
esperas en una de las plantas respecto a la otra.
La secuencia de apertura debe realizarse de la forma siguiente:
 Se realiza la petición de salida cuando un vehículo accede a un lazo sensor, abriéndose la barrera
correspondiente, si no hay otro vehículo saliendo.
 Cuando el vehículo en curso corresponda a la misma planta que el que hace la petición de salida, la
barrera no debe de abrirse, a no ser que en la otra planta no haya una petición de salida.
Nota: Disponemos de un pulsador (Rearme) para llevar al sistema a las condiciones iniciales en las cuales las
barreras deberán estar cerradas.
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de
alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas
PNP BMX DDM3202K.
Cuando cierre la barrera después de pasar un coche, no sabemos si se activa primer el FCC o el sensor que
nos indica que rebasó la barrera.
PLANTA 1
PLANTA 2
S1E
S2E
SALIDA
S3
B1
B2
S1S
S2S
162 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tablas de variables
Problemas M340 - 163
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en ST y SFC - (pr0602)
Sección "Preliminar"
(* Generación de las memorias que se utilizan en el control local o a distancia *)
Mx_Rearme := (Ix_Rearme and Ix_LocDis) or (MxP_Rearme and not Ix_LocDis);
Mx_FCA_B1 := (Ix_FCA_B1 and Ix_LocDis) or (MxP_FCA_B1 and not Ix_LocDis);
Mx_FCA_B2 := (Ix_FCA_B2 and Ix_LocDis) or (MxP_FCA_B2 and not Ix_LocDis);
Mx_FCC_B1 := (Ix_FCC_B1 and Ix_LocDis) or (MxP_FCC_B1 and not Ix_LocDis);
Mx_FCC_B2 := (Ix_FCC_B2 and Ix_LocDis) or (MxP_FCC_B2 and not Ix_LocDis);
Mx_S1E := (Ix_S1E and Ix_LocDis) or (MxP_S1E and not Ix_LocDis);
Mx_S1S := (Ix_S1S and Ix_LocDis) or (MxP_S1S and not Ix_LocDis);
Mx_S2E := (Ix_S2E and Ix_LocDis) or (MxP_S2E and not Ix_LocDis);
Mx_S2S := (Ix_S2S and Ix_LocDis) or (MxP_S2S and not Ix_LocDis);
Mx_SSal := (Ix_SSal and Ix_LocDis) or (MxP_SSal and not Ix_LocDis);
(* Control del rearme*)
Mx_PonCI := CLEARCHART (Control, RE (Mx_Rearme)); (*con el flanco del pulsador de Rearme, borramos
todas las etapas activas del GRAFCET “Control” y se pone automáticamente a 1 la variable Mx_PonCI*)
IF Mx_Rearme THEN
RESET (Mx_PEv);
END_IF;
IF Mx_PonCI THEN
Sr_IniciaSistema(); (* Se ejecuta la subrutina que cierra las barreras *)
END_IF;
(*Si estuviésemos en lenguaje FBD, deberíamos pulsar sobre el 5º icono de la barra FBD-Editor, saldría el
símbolo de la figura que rellenaríamos con el valor adecuado *)
IF Mx_PuestoCI And Not Mx_Rearme THEN
(* Not Mx_Rearme nos asegura que no se esté ejecutando CLEARCHART *)
Mx_Initstate:= INITCHART (Control, true); (* se inicializa el GRAFCET borrando todas las etapas que
estuviesen activas, se pone a 1 el bit Mx_Initstate y borra automáticamente el bit Mx_PonCI *)
RESET (Mx_PuestoCI); (*para que no se ejecute mas este grupo de instrucciones*)
SET (Mx_PEv);
END_IF;
164 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Subrutina “Sr_IniciaSistema”
IF NOT Mx_FCC_B1 THEN
SET (Mx_Cerrar_B1); (* cierra barrera 1 *)
ELSE
RESET (Mx_Cerrar_B1);
END_IF;
IF NOT Mx_FCC_B2 THEN
SET (Mx_Cerrar_B2); (* cierra barrera 2 *)
ELSE
RESET (Mx_Cerrar_B2);
END_IF;
IF Mx_FCC_B1 AND Mx_FCC_B2 THEN (* comprueba que el sistema esté en CI *)
RESET (Mx_PonCI); (* no sería necesario *)
SET (Mx_PuestoCI);
END_IF;
Sección "Transiciones"
Tran0_8 := Mx_S2E and Mx_PEv and not Mx_S1E;
Tran0_1 := Mx_S1E and Mx_PEv;
Sección "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;
Problemas M340 - 165
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección SFC (Control)
(* Etapa 10 *)
Qx_Cerrar_B2
(* Etapa 3 *)
Qx_Cerrar_B1
Qx_Abrir_B2
Qx_Abrir_B1
Tran0_1:=
Mx_S1E and
Mx_PEv
Tran0_8 :=
Mx_S2E and Mx_PEv and not
Mx_S1E
Etapa0
Etapa1
Etapa2
Etapa3 Etapa4
Etapa5 Etapa6
Etapa8
Etapa9
Etapa10 Etapa11
Etapa12 Etapa13
Etapa7
Tran0_1
Mx_FCA_B1
Mx_S1S
Mx_FCC_B1 Mx_SSal
NOT Mx_S2E Mx_S2E
Mx_S2S
Mx_FCC_B2 Mx_SSal
true
Tran0_8
Mx_FCA_B2
true
166 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de Operador
Sección "Control_Pantalla"
(* Generación de las memorias que se utilizan en la pantalla de operador*)
(* Este trozo de código sólo es útil para hacer la animación agradable, no para controlar el proceso *)
Mx_NoFC_B1 := not Mx_FCA_B1 and not Mx_FCC_B1;
Mx_NoFC_B2 := not Mx_FCA_B2 and not Mx_FCC_B2;
Mx_FCC_B1_Abriendo := Mx_FCC_B1 and Qx_Abrir_B1;
Mx_FCA_B1_Cerrando := Mx_FCA_B1 and Qx_Cerrar_B1;
Mx_FCC_B2_Abriendo := Mx_FCC_B2 and Qx_Abrir_B2;
Mx_FCA_B2_Cerrando := Mx_FCA_B2 and Qx_Cerrar_B2;
Mx_NoFC_B1_Abriendo := Mx_NoFC_B1 and Qx_Abrir_B1;
Mx_NoFC_B1_Cerrando := Mx_NoFC_B1 and Qx_Cerrar_B1;
Mx_NoFC_B2_Abriendo := Mx_NoFC_B2 and Qx_Abrir_B2;
Mx_NoFC_B2_Cerrando := Mx_NoFC_B2 and Qx_Cerrar_B2;
IF Mx_Rearme THEN
SET (Mx_Coches12_Entrada);
RESET (Mx_Coches12_Salida);
SET (Mx_Coches34_Entrada);
RESET (Mx_Coches34_Salida);
END_IF;
Problemas M340 - 167
Universidad de Oviedo
ISA - J. Alonso - I. Machón
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_1E THEN
IF not Mx_Coches12_Entrada and Mx_Coches12_Salida THEN
SET (Mx_Coches12_Entrada);
RESET (Mx_Coches12_Salida);
RESET (Mx_Flanco_1E);
END_IF;
END_IF;
Mx_Coche1_1E := Mx_S1E and Mx_Coches12_Entrada;
Mx_Coche2_1E := Mx_S1E and not Mx_Coches12_Entrada;
Mx_Flecha_B1 := Mx_S1E and Mx_FCA_B1 and not Mx_Coches12_S and not Etapa4.x;
Mx_Coche1_1S := not Mx_Flecha_B1 and Etapa2.x and Mx_Coches12_Salida;
Mx_Coche2_1S := not Mx_Flecha_B1 and Etapa2.x and not Mx_Coches12_Salida;
Mx_Coches12_S := not Mx_Flecha_B1 and Etapa2.x;
Mx_Coche1_S := Etapa4.x and Mx_Coches12_Salida;
Mx_Coche2_S := Etapa4.x and not Mx_Coches12_Salida;
Mx_Flanco_2E := FE (Mx_S2E);
IF Mx_Flanco_2E THEN
IF Mx_Coches34_Entrada and not Mx_Coches34_Salida THEN
RESET (Mx_Coches34_Entrada);
SET (Mx_Coches34_Salida);
RESET (Mx_Flanco_2E);
END_IF;
END_IF;
IF Mx_Flanco_2E THEN
IF not Mx_Coches34_Entrada and Mx_Coches34_Salida THEN
SET (Mx_Coches34_Entrada);
RESET (Mx_Coches34_Salida);
RESET (Mx_Flanco_2E);
END_IF;
END_IF;
Mx_Coche3_1E := Mx_S2E and Mx_Coches34_Entrada;
Mx_Coche4_1E := Mx_S2E and not Mx_Coches34_Entrada;
Mx_Flecha_B2 := Mx_S2E and Mx_FCA_B2 and not Mx_Coches34_S and not Etapa11.x;
Mx_Coche3_1S := not Mx_Flecha_B2 and Etapa9.x and Mx_Coches34_Salida;
Mx_Coche4_1S := not Mx_Flecha_B2 and Etapa9.x and not Mx_Coches34_Salida;
168 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Mx_Coches34_S := not Mx_Flecha_B2 and Etapa9.x;
Mx_Coche3_S := Etapa11.x and Mx_Coches34_Salida;
Mx_Coche4_S := Etapa11.x and not Mx_Coches34_Salida;
Problemas M340 - 169
Universidad de Oviedo
ISA - J. Alonso - I. Machón
S.P.
S.S.
SSC
SSG
SEG SEC
S.E.
SALIDA
ENTRADA
SALIDA
100 PLAZAS
ENTRADA
FCA
FCC
Problema 6.3 · Control de acceso a garaje con semáforos
Un garaje público de 100 plazas de capacidad, tiene un acceso a través de una acera de uso peatonal. Para
evitar conflictos, se optó por una regulación automática de entrada y salida de vehículos, de forma tal, que
cuando uno quiera entrar o salir, la red semafórica instalada al efecto adopte la disposición conveniente. En
la figura vemos esta red, disponiendo ésta, de un semáforo que controla el paso de peatones, otro que
controla la entrada de vehículos, y un tercero que controla la salida de estos del interior del garaje.
a) Para que un vehículo pueda entrar tiene que tener plaza de aparcamiento, lo cual, se indicará mediante
la activación del foco azul (salida = "1" ). El número de plazas de que dispone el aparcamiento es de cien.
Además 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 vehículo entrará y contabilizará en uno más el número de vehículos
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 vehículo, deberá esperar a que el
vehículo 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 semáforo de peatones se halla en verde, el vehículo que
ha efectuado la demanda de entrada, debe permanecer en espera hasta que las condiciones le permitan
170 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
20
54
24 seg.
seg.
40
60
Qx_SPVerde
Semáforo de Peatones
Mx_PA
Qx_SPRojo
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 número de vehículos 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 vehículo, deberá esperar a que el
vehículo 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 semáforo de peatones se halla en verde, el vehículo 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 SIMULTÁNEA , LA SALIDA ES SIEMPRE PRIORITARIA.
d) El portón 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 semáforo 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, según
corresponda a una entrada (SEG) o una salida (SSC).
Si se halla en verde el semáforo de peatones el portón debe permanecer cerrado como medida de
seguridad.
e) El paso de peatones lo regula el semáforo "SP", éste se rige por una secuencia fija de 20 s.. en verde y
40 s.. en rojo. Este semáforo, 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 portón
cerrado.
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de
alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas
PNP BMX DDM3202K.
Cronograma
Problemas M340 - 171
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tablas de variables
172 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en ST y GRAFCET - (pr0603)
Sección en SFC (GRAFCET)
Sección "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;
Qx_SERojo
Qx_SSRojo
Tran0_1 :=
Mx_SSGaraje and Mx_PA
Qx_SERojo
Qx_SSRojo
Qx_Abrir
Qx_SERojo
Qx_SSVerde
Qx_SERojo
Qx_SSRojo
Qx_SERojo
Qx_SSRojo
Dec Contador
Tran4_2 :=
Mx_SSGaraje and
Mx_PA
Qx_SERojo
Qx_SSRojo
Qx_Cerrar
Tran9_2 :=
Mx_SSGaraje and
Mx_PA
Tran4_5 :=
(not Mx_SEntCalle and
not Mx_SSalGaraje) or
not Mx_PermApertura
Tran9_5 :=
(not Mx_SECalle and not
Mx_SSGaraje) or
not Mx_PA
Tran4_7 :=
Mx_SEntCalle and
Mx_PermApertura and
not Mx_SSalGaraje
Tran9_7 :=
not Mx_SSGaraje and
Mx_SECalle and Mx_PA and
Contador.CV < 100
Qx_SERojo
Qx_SSRojo
Inc Contador
Qx_SERojo
Qx_SSRojo
Qx_SEVerde
Qx_SSRojo
Qx_SERojo
Qx_SSRojo
Qx_Abrir
Tran0_6 :=
not Mx_SSGaraje and
Mx_SECalle and Mx_PA and
Contador.CV < 100
Etapa0
Etapa1
Etapa2
Etapa3
Etapa4
Etapa5
Etapa6
Etapa7
Etapa8
Etapa9
Tran0_1
Mx_FCA
NOT Mx_SSGaraje
Mx_SSCalle
Tran4_5
Mx_FCC
Tran0_6
Mx_FCA
NOT Mx_SECalle
Mx_SEGaraje
Tran9_5
Tran4_2 Tran4_7 Tran9_7
Tran9_2
Problemas M340 - 173
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "Preliminar"
(*Generación de señales*)
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 sólo en el primero, después de STOP
cuando el autómata pasa a RUN *)
ClearState := CLEARCHART (Control,true); (* Anula el GRAFCET *)
END_IF;
Mx_PonCI := CLEARCHART (Control, RE (Mx_Rearme)); (* Anula el GRAFCET *)
IF RE (Mx_Rearme) THEN
RESET (Mx_IniCiclo);
END_IF;
IF Mx_PonCI THEN
Sr_IniciaSistema(); (* ejecuta la subrutina que pone en condiciones iniciales *)
END_IF;
IF Mx_PuestoCI AND NOT Mx_Rearme THEN
RESET (Mx_PuestoCI);
InitState := INITCHART (Control, true); (* activa la etapa inicial y Resetea el resto de etapas*)
SET (Mx_IniCiclo);
END_IF;
Posterior
(*Portón*)
Qx_Abrir := Etapa1.x OR Etapa6.x;
Qx_Cerrar := Etapa5.x OR Mx_Cerrar;
(*Semáforo de peatones*)
Qx_SPVerde := Mx_IniCiclo AND t_Temporizador.ET <= t#20s;
Qx_SPRojo := Mx_IniCiclo AND NOT Qx_SPVerde;
(*Semáforo de entrada*)
Qx_SEVerde := Etapa7.x;
Qx_SERojo := NOT Qx_SEVerde;
Qx_SEAzul := Contador.CV <100;
(*Semáforo de salida*)
Qx_SSVerde := Etapa2.x;
Qx_SSRojo := NOT Qx_SSVerde;
(*Contador*)
Contador (CU := Mx_SEGaraje, CD := Mx_SSCalle, R := Mx_Rearme);
174 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
(*Arranca temporizador de ciclo tipo TON*)
TON_60s (IN := MX_IniCiclo AND NOT TON_60s.Q, PT := t#60s);
(* Permiso de apertura del portón*)
Mx_PermApertura := TON_60s.ET >= t#24s AND TON_60s.ET <= t#54s;
(* Marca generada para saber cuando se está moviendo el portón en la pantalla de operador *)
Mx_PortonMoviendose := Etapa1.x Or Etapa5.x Or Etapa6.x ;
Subrutina "Sr_ IniciaSistema "
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
Problemas M340 - 175
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 6.4 · Manipulador 2 ejes con cilindros
Se desea automatizar un dispositivo clasificador de piezas con un autómata Modicon M340. El módulo de
entradas es NPN y el de salida PNP. El sistema consta de un cilindro sin vástago B en cuyo cursor está acoplado
otro cilindro A de simple efecto y una pequeña plataforma.
El cilindro B, está gobernado por una electroválvula servopilotada de potencia biestable 5/2. El cilindro A
está gobernado por una electroválvula servopilotada de potencia monoestable 3/2.
Inicialmente el sistema estará parado con una luz roja y otra verde encendiéndose alternativamente a 1 Hz.
Cuando se pulse Rearme, el sistema será llevado a condiciones iniciales: cilindro B en la posición inferior,
cilindro A recogido. En ese instante quedará encendida la luz verde de forma permanente. Cuando se pulse
Marcha el sistema estará en disposición de clasificar las piezas.
Las piezas pueden ser de dos tipos: metálicas o de plástico.
La alimentación de las piezas se realiza mediante una rampa central y van cayendo una a una cuando el
cilindro A (CSE) está en la posición inferior b0, retraido a0, y no hay pieza en la plataforma (ni el sensor
inductivo ni el capacitivo detectan).
Cuando una pieza cae en la plataforma, un sensor detecta la presencia de esta y el otro distingue si es
metálica o no. A continuación se procede a la clasificación de las piezas en dos bandejas:
 La bandeja inferior es para las piezas de plástico (el cilindro A avanza hasta a1, espera 1s y
retrocede hasta a0).
 La bandeja superior es para las metálicas (el cilindro B sube, arrastrando al A hasta b1, el A
avanza entonces hasta a1 espera 1s, retrocede hasta a0, y el B baja, arrastrando al A hasta b0).
Terminado el ciclo, caerá una nueva pieza en la bandeja, repitiéndose el proceso.
Paro: Cuando se active el pulsador de Paro (NC), se procederá a inmovilizar el sistema apagándose la la luz
Verde y encendiéndose la luz Roja. Se saldrá de esta situación cuando se pulse de nuevo Marcha. En ese
momento, el sistema continuará en el mismo punto en el que estaba.
.
176 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM3202K entradas y salidas PNP
SE PIDE: El programa de control.
Tabla de variables
Problemas M340 - 177
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en ST y GRAFCET - (pr0604)
Sección "Preliminar"
(* Marcas necesarias para animar la pantalla de operador*)
if %s13 then
set (MxP_Paro); set (MxP_b1); set (MxP_a0);
end_If;
MxP_b0a0 :=Etapa1.x or Etapa2.x or Etapa2.x or Etapa4.x or Etapa7.x and not MxP_EnMedio;
MxP_b0a0Plastico := MxP_b0a0 and Mx_Capacitivo ;
MxP_b0a0Metal := MxP_b0a0 and Mx_Inductivo and Mx_Capacitivo;
MxP_b0a1 :=Etapa5.x or Etapa6.x;
MxP_b1a0Metal := MxP_b1a0 and Etapa8.x;
MxP_b1a1Metal := MxP_b1a1 and (Etapa9.x or Etapa10.x);
MxP_b1a0 :=Etapa8.x or Etapa11.x and not MxP_EnMedio or (MxP_b1 and MxP_a0);
MxP_b1a1 :=Etapa9.x or Etapa10.x;
MxP_Subiendo :=Qx_Bmas and not Mx_b0;
MxP_Bbajando :=Qx_Bmenos and not Mx_b1;
MxP_EnMedio :=MxP_Subiendo or MxP_Bbajando;
If Etapa2.t > t#2s and not Mx_Inductivo then
set (MxP_PiezaPlastico);
else set(MxP_PiezaMetal);
end_if;
If Etapa2.x then
reset (MxP_PiezaPlastico);
reset(MxP_PiezaMetal);
end_if;
If Etapa8.x then
reset (MxP_Capacitivo); reset (MxP_Inductivo);
end_if;
If Etapa5.x then
reset (MxP_Capacitivo);
end_if;
(* Marcas usadas en el control Local / Distancia *)
Mx_a0 := (Ix_a0 and Ix_LocDis) or (MxP_a0 and not Ix_LocDis);
Mx_a1 := (Ix_a1 and Ix_LocDis) or (MxP_a1 and not Ix_LocDis);
Mx_b0 := (Ix_b0 and Ix_LocDis) or (MxP_b0 and not Ix_LocDis);
Mx_b1 := (Ix_b1 and Ix_LocDis) or (MxP_b1 and not Ix_LocDis);
Mx_Capacitivo := (Ix_Capacitivo and Ix_LocDis) or (MxP_Capacitivo and not Ix_LocDis);
Mx_Inductivo := (Ix_Inductivo and Ix_LocDis) or (MxP_Inductivo and not Ix_LocDis);
Mx_Rearme := (Ix_Rearme and Ix_LocDis) or (MxP_Rearme and not Ix_LocDis);
Mx_Paro := (Ix_Paro and Ix_LocDis) or (MxP_Paro and not Ix_LocDis);
Mx_Marcha := (Ix_Marcha and Ix_LocDis) or (MxP_Marcha and not Ix_LocDis);
178 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
(* Condición de Rearme *)
Mx_PonCI := Clearchart (Control, RE(Mx_Rearme)); (* con el flanco ascendente del pulsador de rearme,
reseteamos el GRAFCET de control y ponemos a 1 la variable Mx_PonCI *)
if Mx_PonCI and not Mx_Rearme then
Sr_IniciaSistema(); (* ejecutamos la subrutina de inicializar *)
end_if;
if Mx_PuestoCI then
setstep (Etapa1); (* ponemos el GRAFCET de control en la etapa Etapa1 y el AP borra
automaticamente la variable Mx_PonCI *)
reset (Mx_PuestoCI);
end_if;
if not Mx_Paro then
set(Mx_EnParada);
end_if;
if Mx_EnParada then
Mx_ParoGrafcet := freezechart (Control,true); (* Congela el GRAFCET *)
else Mx_ParoGrafcet := freezechart (Control,false);
end_if;
if Mx_Marcha then
reset (Mx_EnParada);
end_if;
Sección "Transiciones"
Tran1_2 := Mx_Marcha and Mx_a0 and Mx_b0;
Tran2_4 := Etapa2.t > t#3s and Mx_Capacitivo and not Mx_Inductivo;
Tran5_6 := Etapa5.t > t#1s;
Tran2_7 := Etapa2.t > t#3s and Mx_Inductivo;
Tran9_10 := Etapa9.t > t#1s;
Sección "Salidas"
Qx_Amas := Mx_Amas or Etapa4.x or Etapa8.x or Etapa5.x or Etapa9.x;
Qx_Bmas := Etapa7.x;
Qx_Bmenos := Mx_Bmenos or Etapa11.x;
Qx_LRoja := (Etapa0.x and %S6) or Mx_EnParada;
(*La segunda condicón se debe al rearme y se debe asegurar la ausencia de pieza*);
Qx_LVerde := ((Etapa0.x and not %S6) or (not Etapa0.x and not Mx_PonCi) and not Mx_EnParada);
Problemas M340 - 179
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Subrutina "Sr_ IniciaSistema "
(* Durante el rearme se debe asegurar la ausencia de pieza*)
if not Mx_b0 and not Mx_Capacitivo then
set (Mx_Bmenos);
else reset (Mx_Bmenos);
end_if;
if not Mx_a0 then
reset (Mx_Amas);
end_if;
if Mx_b0 and Mx_a0 then
set (Mx_PuestoCI);
reset (Mx_ponCi);
end_if;
Pantalla de Operador
180 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
GRAFCET de Mando
(* Plástico *)
Tran2_4 := Etapa3.t > t#3s
and Mx_Capacitivo
and not Mx_Inductivo
(* Metal *)
Tran2_7 := Etapa3.t > t#3s and
Mx_Inductivo
Tran9_10 :=
Etapa9.t > t#1s;
Qx_Amas
(* Temporización de 1 segundo
manteniendo la presurización
en el cilindro A *)
Qx_LVerde
(* Los cilindros están en sus posiciones iniciales *)
(* En espera de detectar la presencia de una pieza
Si Mx_Inductivo = 1 entonces la pieza es metálica
Si Mx_Inductivo = 0 entonces la pieza es de plástico *)
(* Recoge el vástago A
válvula monoestable *)
Qx_Amas
Qx_Bmenos
(* Recoge el vástago B *)
Qx_Amas
(* Sacar el vástago A *)
Qx_Amas
(* Temporización de 1 segundo
manteniendo la presurización
en el cilindro A *)
(* Recoge el vástago A
válvula monoestable *)
Elevar plataforma (B+)
Tran1_2
Mx_Marcha and Mx_a0 and
Mx_b0;
Tran5_6 :=
Etapa5.t > t#1s;
Qx_LRoja y Qx_LVerde a 1Hz alternativamente
(* Esperamos la pulsación de REARME *)
Etapa0
Etapa4
Etapa5
Etapa6
Etapa7
Etapa8
Etapa9
Etapa10
Etapa11
Etapa1
Etapa2
Mx_a1
Tran5_6
Mx_a0
Tran2_4 Tran2_7
Mx_b1
Mx_a1
Tran9_10
Mx_a0
Mx_b0
Tran1_2
false
Etapa2
Etapa2
Problemas M340 - 181
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 6.5 · Control de un silo y vagoneta
La imagen muestra un vagón cisterna que transportará un material suministrado por un silo hacia una zona
de descarga. El vagón debe estar inicialmente en la parte izquierda de la figura indicada por el final de carrera
FC_INICIO (NC). En ese lugar se dispone de un sensor capaz de pesar el vagón y de generar la señal VACÍO si
el vagón está vacío o la señal LLENO si el peso del vagón es el máximo permitido. Se desea automatizar el
proceso mediante el PLC M340 de Schneider.
Cuando se establezca el modo RUN en el PLC, el sistema deberá estar parado con la luz verde y la luz roja en
intermitencia de 1 Hz alternadamente.
Para ir a CI, cuando se active el pulsador de REARME, el vagón se llevará a la zona de descarga -derecha-
indicándolo un FC_DESCARGA (NC). Se descargará (durante 5 minutos) y volverá a la posición 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 posición 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 continuación:
Se procederá a abrir el silo mediante la apertura de la válvula V_SILO, permitiendo la descarga de material y
llevando a cabo el llenado del vagón. Solamente será posible la apertura de V_SILO si el vagón se encuentra
en la posición de inicio totalmente descargado y se ha procedido a accionar el pulsador MARCHA.
Si el llenado del vagón no se completa en menos de 10 minutos debe procederse al cierre de la válvula del
silo y el vagón deberá llevarse a la zona de descarga. En esta zona de descarga, el vagón verterá su contenido
abriendo la válvula V_VAGON durante 5 minutos. Transcurridos estos 5 minutos, el vagón deberá retroceder
a la posición inicial.
Si se ha realizado el llenado del vagón en menos de 10 minutos, este deberá avanzar hacia la zona de
descarga. De idéntica forma a la descrita anteriormente, verterá su contenido durante 5 minutos y volverá a
la posición inicial.
Cuando se active el pulsador de PARO (NC) se mantendrá la configuración 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.
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM3202K entradas y salidas PNP.
SE PIDE: Esquema de Mando, y de fuerza con todos los elementos necesarios y el programa de control.
182 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de variables
Problemas M340 - 183
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en ST y GRAFCET - (pr0605)
Sección "Preliminar"
(* Marcas necesarias para la pantalla de operador *)
If %s13 THEN
Set (MxP_Paro); Set (MxP_FCInicio); Set (MxP_FCDescarga);
END_IF;
(* Marcas usadas en el control Local / Distancia *)
Mx_Marcha := (Ix_Marcha And Ix_LocDist) Or (MxP_Marcha And Not Ix_LocDist);
Mx_Paro := (Ix_Paro And Ix_LocDist) Or (MxP_Paro And Not Ix_LocDist);
Mx_Rearme := (Ix_Rearme And Ix_LocDist) Or (MxP_Rearme And Not Ix_LocDist);
Mx_Lleno := (Ix_Lleno And Ix_LocDist) Or (MxP_Lleno And Not Ix_LocDist);
Mx_Vacio := (Ix_Vacio And Ix_LocDist) Or (MxP_Vacio And Not Ix_LocDist);
Mx_FCInicio := (Ix_FCInicio And Ix_LocDist) Or (MxP_FCInicio And Not Ix_LocDist);
Mx_FCDescarga := (Ix_FCDescarga And Ix_LocDist) Or (MxP_FCDescarga And Not Ix_LocDist);
(* Condición de Rearme *)
Mx_PonCI := CLEARCHART (Control, RE(Mx_Rearme)); (*con el flanco ascendente del pulsador de rearme,
desactivamos el GRAFCET denominado Control y ponemos a 1 la variable Mx_PonCI*)
Mx_PonCI := CLEARCHART (Rearme, RE(Mx_Rearme)); (*con el flanco ascendente del pulsador de rearme,
desactivamos el GRAFCET denominado Rearme y ponemos a 1 la variable Mx_PonCI*)
If Mx_PonCI And Not Mx_Rearme THEN
Setstep (Etapa11);
Reset (Mx_EnParada);
END_IF;
If Mx_PuestoCI THEN (*se activa el GRAFCET principal de Control en la etapa 1 que corresponde al estado
de condiciones iniciales y se liberan las acciones de salida*)
Setstep (Etapa1); (*se borra automáticamente la variable Mx_PonCi*)
Reset (Mx_PuestoCI);
END_IF;
If Not Mx_Paro THEN
Set (Mx_EnParada);
END_IF;
If Mx_EnParada THEN
Mx_ParoGRAFCET := FREEZECHART (Control,true);
(* Congela el GRAFCET, dejando activa la etapa en la que queda congelado *)
else Mx_ParoGRAFCET := FREEZECHART (Control, false);
END_IF;
If Mx_Marcha THEN
Reset (Mx_EnParada);
END_IF;
184 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "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;
Sección "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
Problemas M340 - 185
Universidad de Oviedo
ISA - J. Alonso - I. Machón
GRAFCET de rearme GRAFCET de control
Mx_PuestoCI
Qx_Retroceso
Qx_LVerde 1Hz
Qx_Avance
Qx_LVerde 1Hz
Qx_VVagón
Qx_LVerde 1Hz
Etapa12.t>5m
Not
Mx_FCDescarga
Not
Mx_FCInicio
Etapa10
Etapa11
Etapa12
Etapa13
Etapa14
false
NOT Mx_FCDescarga
Tran_12_13
NOT Mx_FCInicio
Etapa1.x
186 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "ControlPantalla"
(* Marcas necesarias para gestionar la pantalla *)
MxP_Inicio_Avance :=Not Mx_FCInicio And (Etapa3.x Or Etapa11.x);
MxP_Inicio :=(Etapa1.x Or Etapa2.x) And Not MxP_Inicio_VagonSemiLleno And Not
MxP_Inicio_VagonLleno ;
MxP_CargAndo1 :=Etapa2.x And Etapa2.t<t#5s;
If Mx_Vacio And Etapa2.x THEN
Reset(MxP_VagonLleno);
Reset (MxP_VagonSemiLleno);
END_IF;
If Etapa2.t>t#5s And Not MxP_VagonLleno THEN
Set (MxP_VagonSemiLleno);
END_IF;
If Mx_Lleno And Etapa2.x And Etapa2.t<t#10s THEN
Set (MxP_VagonLleno);
Reset (MxP_VagonSemiLleno);
END_IF;
If Etapa2.t>t#10s And Not MxP_VagonLleno THEN
Set (MxP_VagonSemiLleno);
END_IF;
MxP_Inicio_VagonSemiLleno := (Not Mx_FCInicio And Etapa2.x And MxP_VagonSemiLleno) Or (Not
Mx_FCInicio And Etapa11.x);
MxP_Inicio_VagonLleno := Not Mx_FCInicio And Etapa2.x And MxP_VagonLleno;
MxP_Inicio_Avance_VagonLleno := Not Mx_FCInicio And Etapa3.x And MxP_VagonLleno;
MxP_Inicio_Avance_VagonSemiLleno := Not Mx_FCInicio And Etapa3.x And MxP_VagonSemiLleno;
MxP_AvanceLleno := Etapa3.x And MxP_VagonLleno And Mx_FCInicio;
MxP_AvanceSemiLleno := ((Etapa3.x And MxP_VagonSemiLleno) Or (Etapa11.x)) And
Mx_FCInicio;
MxP_DescargAndo1 := (Etapa4.x And Etapa4.t<t#2.5s) And MxP_VagonLleno;
MxP_DescargAndo2 := (Etapa4.x And Etapa4.t>t#2.5s) Or Etapa12.x Or (Etapa4.x And
MxP_VagonSemiLleno);
MXP_Retroceso := Mx_FCDescarga And (Etapa5.x Or Etapa13.x);
MxP_Descargado_Retroceso := Not Mx_FCDescarga And (Etapa5.x Or Etapa13.x);
If Etapa4.x THEN
MtP_TiempoDescarga := Etapa4.t;
END_IF;
If Etapa12.x THEN
MtP_TiempoDescarga:=Etapa12.t;
END_IF;
If Etapa2.x THEN
MtP_TiempoLlenado:=Etapa2.t;
END_IF;
Problemas M340 - 187
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 6.6 · Pesado preciso de sustancias. Sencillo. EM y EF
Se desea automatizar un proceso de pesado preciso de un producto sobre una báscula. Para verter el
producto se dispone de una tolva con dos tajaderas. La "A" vierte el producto de una forma rápida -gran
sección de paso-. La "B" lo vierte de una forma más lenta -sección de paso inferior- para poder afinar en la
cantidad de producto vertido.
La tolva tiene un sensor de peso calibrado capaz de pesar desde 0 hasta 500 Kg.
El proceso consiste en lo siguiente:
 Al pulsar Marcha (Pulsador NA), deben abrirse las tajaderas A y B que cierran el vertido de un
producto sobre un sistema de pesaje basculante.
 Cuando la báscula marque 390 Kg (señal binaria B1), deberá cerrarse la tajadera A controlada por un
cilindro de simple efecto, vástago extendido y válvula monoestable.
 Cuando la báscula marque 400 Kg (señal binaria B2), deberá cerrarse B con lo que se cerrará la
compuerta de afinado. La tajadera B es controlada por un cilindro de simple efecto, vástago
extendido y válvula monoestable.
 Alcanzado el peso deseado, se vacía la báscula por medio de un cilindro basculante (C) de simple
efecto, vástago recogido y válvula monoestable.
 El vaciado termina cuando el sensor de peso llegue a cero (señal binaria B3) .
 En ese momento se desactiva el cilindro basculante para que la báscula recupere la posición inicial.
PARO: Durante cualquier momento del proceso, si se pulsa un interruptor de Paro (NC), se deberá parar el
proceso y activar una luz de paro. Se saldrá de esta situación al pulsar Marcha. El sistema volverá a continuar
donde estaba y se apagará la luz de paro.
PARADA DE EMERGENCIA: Si en cualquier momento se pulsa la Parada de Emergencia (interruptor NC) se
deberán cerrar las tajaderas A y B y/o parar el vaciado de la báscula. Se indicará mediante la activación
parpadeante de la luz roja de parada de emergencia. Para salir de esta situación, se pulsará Rearme.
REARME: Si en un momento determinado se pulsa Rearme, el sistema volverá al estado de reposo inicial,
independientemente del estado en el que se produjese la parada.
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de
alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo de entradas PNP BMX DDI
1602 y salidas PNP BMX DDO 1602.
188 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de fuerza neumático
Esquema de Mando, eléctrico
Problemas M340 - 189
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Módulos DDI 1602 y DDO 1602
Tabla de variables
190 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "Preliminar"
(* Marcas necesarias para la pantalla de operador *)
If %S13 THEN
Set (MxP_Paro); Set (MxP_Emergencia);
END_IF;
(* IniciaVariables *)
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_Emergencia := (Ix_Emergencia And Ix_LocDis) Or (MxP_Emergencia And Not Ix_LocDis);
Mx_B1 := (Ix_B1 And Ix_LocDis) Or (MxP_B1 And Not Ix_LocDis);
Mx_B2 := (Ix_B2 And Ix_LocDis) Or (MxP_B2 And Not Ix_LocDis);
Mx_B3 := (Ix_B3 And Ix_LocDis) Or (MxP_B3 And Not Ix_LocDis);
(* Parada de emergencia *)
Mx_EnEmergencia := CLEARCHART (Control, Not Mx_Emergencia);
(* Rearme *)
If Mx_Rearme THEN
Reset (Mx_EnParada);
END_IF;
Mx_PonCI := INITCHART (Control, RE (Mx_Rearme));
(* Paro *)
If Not Mx_Paro THEN
Set (Mx_EnParada);
END_IF;
If Mx_EnParada THEN
Mx_ParoGRAFCET := FREEZECHART (Control, true);
(* Congela el GRAFCET, dejando activa la etapa en la que queda
congelado *)
ELSE Mx_ParoGRAFCET := FREEZECHART (Control, false);
END_IF;
If Mx_Marcha THEN
Reset (Mx_EnParada);
END_IF;
Sección SFC "Control"
Sección "Salidas"
Qx_A_Menos := Etapa1.x And Not Mx_EnParada;
Qx_B_Menos := (Etapa1.x Or Etapa2.x) And Not Mx_EnParada;
Qx_C_Mas := Etapa3.x And Not Mx_EnParada;
Qx_LParo := Mx_EnParada;
Qx_LEmergencia := Mx_EnEmergencia And %S6;
Problemas M340 - 191
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de Operador
192 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 193
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 6.7 · Pesado preciso de sustancias. EM y EF
Se desea automatizar un proceso de pesado preciso de un producto sobre una báscula. Para verter el
producto se dispone de una tolva con dos tajaderas. La "A" vierte el producto de una forma rápida -gran
sección de paso-. La "B" lo vierte de una forma más lenta -sección de paso inferior- para poder afinar en la
cantidad de producto vertido.
La tolva tiene un sensor de peso calibrado capaz de pesar desde 0 hasta 500 Kg.
El proceso consiste en lo siguiente:
 Al pulsar Marcha (Pulsador NA), deben abrirse las tajaderas A y B que cierran el vertido de un
producto sobre un sistema de pesaje basculante.
 Cuando la báscula marque 390 Kg (señal binaria B1), deberá cerrarse la tajadera A controlada por un
cilindro de doble efecto, válvula monoestable 4/2, posición de partida con vastago extendido.
 Cuando la báscula marque 400 Kg (señal binaria B2), deberá cerrarse B con lo que se cerrará la
compuerta de afinado. La tajadera B es controlada por un cilindro de doble efecto, válvula
monoestable 4/2, posición de partida con vastago extendido.
 Alcanzado el peso deseado, se vacía la báscula por medio de un cilindro basculante (C) de doble
efecto, válvula monoestable 4/2, posición de partida con vastago recogido.
 El vaciado termina cuando el sensor de peso llegue a cero (señal binaria B3) .
 En ese momento se desactiva el cilindro basculante para que la báscula recupere la posición inicial.
PARO: Durante cualquier momento del proceso, si se pulsa un interruptor de Paro (NC), se deberá parar el
proceso y activar una luz de paro. Se saldrá de esta situación al pulsar Marcha. El sistema volverá a continuar
donde estaba y se apagará la luz de paro.
PARADA DE EMERGENCIA: Si en cualquier momento se pulsa la Parada de Emergencia (interruptor NC) se
deberán cerrar las tajaderas A y B y/o parar el vaciado de la báscula. Se indicará mediante la activación
parpadeante de la luz roja de parada de emergencia. Para salir de esta situación, se pulsará Rearme.
REARME: Su pulsación, hará que se vacie la plataforma llevando al sistema a sus CI.
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de
alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo de entradas PNP BMX DDI
1602 y salidas PNP BMX DDO 1602.
194 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de fuerza neumático
Esquema de Mando, eléctrico
Problemas M340 - 195
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de variables
Sección "Preliminar"
(* Parada de emergencia *)
If Not Mx_Emergencia Then
Set (Mx_EnEmergencia);
End_if;
(* Rearme *)
If (Mx_Rearme) Then
Reset (Mx_EnEmergencia);
End_If;
Mx_PonEnCI := Clearchart (Control, RE(Mx_Rearme));
If Mx_PonEnCI Then
SR_Inicializa();
End_if;
If Mx_PuestoEnCI And Not Mx_Rearme Then
Reset (Mx_PuestoEnCI);
Mx_IniciaChart := Initchart (Control, True);
End_if;
(* Paro *)
if not Mx_Paro then
set (Mx_EnParada);
end_if;
196 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
if Mx_EnParada then
Mx_ParoGRAFCET := FREEZECHART (Control, true);
ELSE Mx_ParoGRAFCET := FREEZECHART (Control, false);
end_if;
if Mx_Marcha then
reset (Mx_EnParada);
end_if;
Sección "Salidas"
Qx_A_Menos := Etapa1.x And Not (Mx_EnParada Or Mx_EnEmergencia);
Qx_B_Menos := (Etapa1.x Or Etapa2.x) And Not (Mx_EnParada Or Mx_EnEmergencia);
Qx_C_Mas := (Etapa3.x And Not (Mx_EnParada Or Mx_EnEmergencia))or Mx_CMas;
Qx_LParo := Mx_EnParada;
Qx_LEmergencia := Mx_EnEmergencia And %S6;
Sección subrutina "SR_Inicializa"
set (Mx_CMas);
If Mx_B3 Then
reset (Mx_CMas);
reset (Mx_PonEnCI);
set (Mx_PuestoEnCI);
end_if;
Sección subrutina "SFC"
Pantalla de Operador
Qx_A_Menos
Qx_B_Menos
Qx_B_Menos
Qx_C_Mas
Etapa0
Etapa1
Etapa2
Etapa3
MxP_Marcha
MxP_B1
MxP_B2
MxP_B3
Problemas M340 - 197
Universidad de Oviedo
ISA - J. Alonso - I. Machón
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 establecerán unos GRAFCETs que controlen esos subprocesos
de forma que actúen 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 de nuevo la etapa inicial número 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 acción sería:
198 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 199
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 7.1 · Control de 2 cintas
Diseñar el circuito de Mando, para el control de dos cintas de una instalación.
CI : Inicialmente las dos cintas estarán desconectadas y las lámparas de desconexión Qx_LDes_C1 y
Qx_LDes_C2 estarán encendidas y el resto apagadas.
Cuando se pulse Ix_Con se conectará la cinta 1 y la cinta 2 de forma automática, quedando encendidas las
lámparas de conexión Qx_LCon_C1 y Qx_LCon_C2 y apagadas el resto.
DESCONEXIÓN: Después de accionar el pulsador de desconexión Ix_Des:
 La cinta 1 debe permanecer en régimen de descarga durante 20 segundos, activándose
intermitentemente a 2 Hz una lámpara ámbar Qx_LDesccg_C1, estando las de conexión y desconexión
apagadas. Cuando acabe el proceso de descarga sólo quedará encendida la lámpara Qx_LDes_C1.
 La cinta 2 permanecerá en régimen de descarga durante 40 segundos, activándose intermitentemente a
2 Hz una lámpara ámbar Qx_LDesccg_C2, estando las de conexión y desconexión apagadas. Cuando
acabe el proceso de descarga sólo quedará encendida la lámpara Qx_LDes_C2.
EMERGENCIA: Mediante un pulsador de emergencia Ix_Emer (NC) parará tanto la cinta 2 como la 1,
quedando encendida permanentemente las lámparas de descarga 1 y 2 y apagadas las demás.
VIGILANCIA: Unas vigilancias de cintas (control de rotación) señalizan el movimiento de las mismas, no
debiendo bajar las ruedas motrices de una velocidad tal que los impulsos lleguen con una frecuencia de 1 Hz
(30% ON, 70% OFF). Estas señales no se evaluarán durante la fase de arranque, que dura 5 segundos.
Si en marcha normal desaparece la señal de vigilancia de la cinta 1, hay que parar inmediatamente dicha
cinta, dejando funcionar en régimen de descarga la cinta 2. Para avisar de la avería la lámpara Qx_LDes_C1
de la cinta 1 se encenderá parpadeando a una frecuencia de 2 Hz y el resto apagadas.
Si el fallo se produce en la cinta 2, deberá pararse inmediatamente las dos cintas. Avisando de la avería,
mediante el encendido de la lámpara de desconexión Qx_LDes_C2 con una frecuencia de parpadeo de 2 Hz
y el resto apagadas.
Retorno CI: Para retornar a las condiciones iniciales se pulsará Ix_Rearme.
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM3202K entradas y salidas PNP.
Vigilancia de
200 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
cintas
La vigilancia de cintas se efectúa evaluando la frecuencia de los impulsos que llegan a través de un
controlador de rotación como el de la figura.
Los dientes del controlador pasan delante del detector inductivo, de forma tal, que generan una señal de
onda cuadrada con una frecuencia proporcional a la velocidad de rotación del eje motor.
Cuando el motor está parado o con una velocidad de rotación inferior a la nominal
en el proceso de arranque, no se deberán evaluar los impulsos recibidos.
Una vez que el motor esté en condiciones nominales, se recibirán los impulsos a
una determinada frecuencia. Si la velocidad del motor baja de la nominal por una
sobrecarga, los impulsos llegarán con una frecuencia menor a la esperada.
Deberemos entonces disparar una señal de emergencia por vigilancia de cintas
que pare el proceso según deseemos.
El quid de la cuestión es coger la señal complementaria de esta vigilancia de cintas y con ella arrancar un
temporizador TON. Cuando se evalúan los impulsos estando el motor girando fuera del periodo de arranque
o parado, arrancará el temporizador y antes de que la señal binaria TON.Q se active, esto es, antes de que
termine el tiempo de temporización, cae la señal de entrada a este temporizador y por lo tanto su salida no
pasa a 1.
Si el motor tiene una sobrecarga y va más lento, entonces el temporizador podrá pasar su salida binaria a 1
para luego volver a caer a 0.
Cogeremos la señal de salida binaria del temporizador, para poner de forma memorizada una señal de Avería
de la Cinta, con la que controlaremos el proceso de parada por avería.
P.e.: En este problema recibimos una señal con frecuencia 1 Hz con 700ms en OFF y 300ms en ON. Cogiendo
la señal complementaria de Ix_Vig_Cn, y arrancando con ella el temporizador TON_Ave_Cn, cuando se
supere el tiempo de 700ms en ON se generará la señal de avería de forma memorizada.
Problemas M340 - 201
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en ST y GRAFCET - (pr0701)
Tabla de variables
202 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
GRAFCET de Mando
GRAFCETs de la Cinta_C1 y de la Cinta_C2
(* Descarga
C2 *)
(* Descgarga
C1 *)
(* Funcionamiento normal *)
(* Parada *)
Etapa0
Etapa1
Etapa2
Etapa3
Mx_Con
Not Mx_Desc
NOT Qx_Mot_C1
NOT Qx_Mot_C2
Etapa12.t >= 20s
Qx_LDes_C1
Qx_Mot_C1
Qx_LDescg_C1 2Hz
Qx_Mot_C1
Qx_LCon_C1
(* G Mando{1} *)
(* G Mando{2} *)
Etapa10
Etapa11
Etapa12
Etapa1.x
Etapa2.x
Tran12_10
Etapa22.t >= 40s
Qx_Mot_C2
Qx_LDescg_C2 2Hz
Qx_Mot_C2
Qx_LCon_C2
Qx_LDes_C2
(* G Mando{3} *)
(* G Mando{1} *)
Etapa20
Etapa21
Etapa22
Etapa1.x
Etapa3.x
Tran22_20
Problemas M340 - 203
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Preliminar
(* Marcas para el control de la pantalla de operador *)
IF %S13 then
set (MxP_Vig_C1); set (MxP_Vig_C2); set (MxP_Emergencia); set (MxP_Desc);
END_IF;
Mx_Nominal := TON_Inh_Vig.Q AND NOT Mx_Av_C1 AND NOT Mx_Av_C2;
Mx_Sobrecarga := Mx_Av_C1 OR Mx_Av_C2;
(* Marcas para el control Local / Distancia *)
Mx_Con := (Ix_Con And Ix_LocDist) Or (MxP_Con And Not Ix_LocDist);
Mx_Desc := (Ix_Desc And Ix_LocDist) Or (MxP_Desc And Not Ix_LocDist);
Mx_Emergencia := (Ix_Emerg And Ix_LocDist) Or (MxP_Emergencia And Not Ix_LocDist);
Mx_Rearme := (Ix_Rearme And Ix_LocDist) Or (MxP_Rearme And Not Ix_LocDist);
Mx_Vig_C1 := (Ix_Vig_C1 And Ix_LocDist) Or (MxP_Vig_C1 And Not Ix_LocDist);
Mx_Vig_C2 := (Ix_Vig_C2 And Ix_LocDist) Or (MxP_Vig_C2 And Not Ix_LocDist);
If Not Mx_Emergencia THEN (* Borra GRAFCETs*)
Mx_ClearState := CLEARCHART (Mando, true) ;
Mx_ClearState := CLEARCHART (Cinta_C1, true) ;
Mx_ClearState := CLEARCHART (Cinta_C2, true) ;
Set (Mx_EnEmergencia);
END_IF;
If Mx_Av_C1 THEN (* Borra el GRAFCET de la C1 y pone el GRAFCET de Mando, en descarga de C2 *)
Resetstep (Etapa11); Resetstep (Etapa12);
Resetstep (Etapa1); Resetstep (Etapa2); Setstep (Etapa3);
END_IF;
If RE (Mx_Av_C2) THEN (* Borra todos los GRAFCETs*)
Mx_ClearState := CLEARCHART (Mando, , true) ;
Mx_ClearState := CLEARCHART (Cinta_C1, true) ;
Mx_ClearState := CLEARCHART (Cinta_C2, true) ;
END_IF;
If Mx_Rearme THEN (* INITCHART Activa las etapas iniciales y Resetea el resto de etapas *)
Mx_InitState := INITCHART (Mando, , true) ;
Mx_InitState := INITCHART (Cinta_C1, true) ;
Mx_InitState := INITCHART (Cinta_C2, true) ;
Reset (Mx_Av_C1) ; Reset (Mx_Av_C2); Reset (Mx_EnEmergencia);
END_IF;
(* Generación de la marca del oscilador de 2Hz *)
TON_Osc2Hz (IN:= Not TON_Osc2Hz.Q, PT:= t#500ms) ;
Mx_Osc2Hz := TON_Osc2Hz.ET > t#250ms;
(* Generación de las marcas de averías *)
TON_Inh_Vig (IN:= Qx_Mot_C2, PT:= t#5s);
204 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
TON_Ave_C1 (IN:= Not Mx_Vig_C1 And Qx_Mot_C1 And TON_Inh_Vig.Q, PT:= t#700ms);
IF TON_Ave_C1.q THEN
Set (Mx_Av_C1);
END_IF;
TON_Ave_C2 (IN:= Not Mx_Vig_C2 And Qx_Mot_C2 And TON_Inh_Vig.Q, PT:= t#700ms);
IF TON_Ave_C2.q THEN
Set (Mx_Av_C2);
END_IF;
Sección "Salidas"
Qx_Mot_C1 := Etapa11.x Or Etapa12.x;
Qx_Mot_C2 := Etapa21.x Or Etapa22.x;
Qx_LCon_C1 := Etapa11.x;
Qx_Lcon_C2 := Etapa21.x;
Qx_LDes_C1 := Etapa10.x Or (Mx_Av_C1 And Mx_Osc2Hz);
Qx_Ldes_C2 := Etapa20.x Or (Mx_Av_C2 And Mx_Osc2Hz);
Qx_LDescg_C1 := Mx_EnEmergencia Or (Etapa12.x And Mx_Osc2Hz);
Qx_LDescg_C2 := Mx_EnEmergencia Or (Etapa22.x And Mx_Osc2Hz);
Pantalla de Operador
Problemas M340 - 205
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Como forzar el valor de una entrada o salida o modificar el valor
de una variable
Podremos hacerlo creando una tabla de animación o sobre el propio código del programa cuando se está
ejecutando.
Sobre el programa, nos situaremos encima de la variable que queramos forzar y clicaremos con el botón
derecho. En la ventana que aparece indicaremos Forzar valor | Forzar a 1 ó Forzar a 0
También podremos cancelar el forzado.
Para trabajar con una tabla de animación, primeramente crearemos la tabla. Para ello, iremos a la carpeta
Tablas de animación, clicaremos con el botón derecho y en la pantalla que se despliega seleccionaremos
Nueva tabla de animación.
Indicaremos el nombre de las variables de entrada / salida y de memoria que queramos visualizar.
Posteriormente pulsaremos sobre el comando, Forzar E/S o Modificación de variables.
206 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
En las ventanas que aparecen podremos seleccionar los iconos correspondientes para forzar a 1 ó a 0.
También podremos modificar el valor binario a 1 ó a 0 como vemos en las siguientes figuras.
Problemas M340 - 207
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 7.2 · Tolva a cinta alimentadora giratoria y 3 cintas de
salida
Diseñar el programa que realiza el control y mando, del sistema descrito a continuación.
Descripción General
El sistema de la figura representa un nudo de distribución para el transporte del material procedente de una
tolva por medio de 4 cintas.
La cinta 0 está situada sobre una plataforma giratoria que es accionada por medio del motor MG,
permitiéndonos situarla enfrente de cualquiera de las otras tres, para la evacuación del material en el sentido
deseado.
Selección de la posición de la cinta 0
La selección de la posición para la cinta 0 la realizamos mediante un pulsador "Selec". Utilizamos en el
sinóptico tres lámparas LS1, LS2 y LS3, las cuales reflejan la posición de la cinta 0. El giro lo efectuará por
accionamiento del motor MG.
La posición queda definida mediante tres finales de carrera FC1, FC2 y FC3.
La selección debe quedar inhabilitada mientras el sistema se encuentre activo.
Movimiento de las cintas
Todas las cintas tienen una lámpara que indica la conexión y otra la desconexión, un motor que acciona la
banda deslizante y unas vigilancias de cintas (control de rotación), señalizan el movimiento de las mismas, no
debiendo bajar las ruedas motrices de una velocidad tal que los impulsos lleguen con una frecuencia de 1 Hz
(30% ON, 70% OFF). Estas señales no se evaluarán durante la fase de arranque, que dura 5 segundos.
La puesta en marcha se realizará con la secuencia siguiente:
 Tiene que estar seleccionada la posición adecuada.
 Accionamos el pulsador de “Marcha” con lo cual la cinta 0 gira hasta situarse en la posición seleccionada
(esto se define por el accionamiento del final de carrera correspondiente a la posición seleccionada).
 Al alcanzar la posición seleccionada se pone en movimiento la cinta 0 por medio de la activación del
motor M0, y de manera simultánea lo harán la cinta correspondiente (activando los motores M1, M2 o
M3).
La tolva debe de abrirse 5 segundos después de la activación 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
más 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 automática de la cinta objeto de alarma, siguiendo en proceso de descarga la otra si
procede. Dicha avería se reflejará en el sinóptico mediante el parpadeo a 2 Hz de la lámpara de desconexión
correspondiente a la cinta averiada, quedando activadas las lámparas de conexión de las cintas que estaban
trabajando. El acuse de recibo de la avería 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”.
208 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 3500 (24VDC 36W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM3202K entradas y salidas PNP.
FCTolCe
FCTolAb
TOLVA
MTolAb
MTolCe
CINTA 1 CINTA 3
CINTA 0
CINTA 2
MG
M1 M3
CINTA
0
M0
CINTA
2
M2
FC2
FC1 FC3
LS1 LS2 LS3
LCON
LDES
Selec Marcha Paro
MGDer MGIzq
Problemas M340 - 209
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de variables y arquitectura software
210 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en ST y GRAFCET - (pr0702)
Sección “Preliminar”:
(*Inicialización de la pantalla de operador*)
If %S13 THEN
Set (MxP_Paro); Set (MxP_Vig_C0); Set (MxP_Vig_C1); Set (MxP_Vig_C2); Set (MxP_Vig_C3);
Set (MxP_FC1); Set (MxP_FC_Tol_Ce);
END_IF;
(*Marcas para el control Local-Distancia*)
Mx_Selec := (MxP_Selec And Not Ix_LocDist) Or (Ix_Selec And Ix_LocDist);
Mx_Marcha := (MxP_Marcha And Not Ix_LocDist) Or (Ix_Marcha And Ix_LocDist);
Mx_Paro := (MxP_Paro And Not Ix_LocDist) Or (Ix_Paro And Ix_LocDist);
Mx_FC1 := (MxP_FC1 And Not Ix_LocDist) Or (Ix_FC1 And Ix_LocDist);
Mx_FC2 := (MxP_FC2 And Not Ix_LocDist) Or (Ix_FC2 And Ix_LocDist);
Mx_FC3 := (MxP_FC3 And Not Ix_LocDist) Or (Ix_FC3 And Ix_LocDist);
Mx_FC_Tol_Ab := (MxP_FC_Tol_Ab And Not Ix_LocDist) Or (Ix_FC_Tol_Ab And Ix_LocDist);
Mx_FC_Tol_Ce := (MxP_FC_Tol_Ce And Not Ix_LocDist) Or (Ix_FC_Tol_Ce And Ix_LocDist);
Mx_Vig_C0 := (MxP_Vig_C0 And Not Ix_LocDist) Or (Ix_Vig_C0 And Ix_LocDist);
Mx_Vig_C1 := (MxP_Vig_C1 And Not Ix_LocDist) Or (Ix_Vig_C1 And Ix_LocDist);
Mx_Vig_C2 := (MxP_Vig_C2 And Not Ix_LocDist) Or (Ix_Vig_C2 And Ix_LocDist);
Mx_Vig_C3 := (MxP_Vig_C3 And Not Ix_LocDist) Or (Ix_Vig_C3 And Ix_LocDist);
(*Generación de la marca del oscilador de 2Hz*)
TON_Osc2Hz (IN:= Not TON_Osc2Hz.Q, PT:= t#500ms) ;
Mx_Osc2Hz := TON_Osc2Hz.ET > t#250ms;
(* Temporizadores de avisos *)
TON_Inh_Vig (IN:= E2.x or E3.x or E4.x, PT:= t#5s) ;
TON_Ave_c0 (IN:= not Mx_Vig_C0 and Qx_Mot_C0 and TON_Inh_Vig.Q, PT:= t#700ms) ;
TON_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 TON_Inh_Vig.Q, PT:= t#700ms) ;
(* Marca de avería en la cinta 0 *)
If TON_Ave_c0.Q then
SET(Mx_Ave_C0);
end_if;
(* Marca de avería en la cinta secundaria *)
If TON_Ave_c123.Q then
SET(Mx_Ave_C123);
end_if;
(*Marca para parar el giro del motor*)
Mx_Para_Giro := (Mx_FC1 and Qx_LS1) or (Mx_FC2 and Qx_LS2) or (Mx_FC3 and Qx_LS3);
(*Si existe avería en la cinta 0 se debe parar la cinta 0 poner el sistema de mando a descarga de cinta
secundaria*)
Problemas M340 - 211
Universidad de Oviedo
ISA - J. Alonso - I. Machón
IF Mx_Ave_C0 THEN
resetstep (E31); resetstep (E32); (* borra grafcet de C0, parando C0 *)
set (Mx_Av_C0);
resetstep (E2); resetstep (E3); setstep (E4); (* pone el mando en descarga de Cn *)
END_IF;
Mx_Flanco_Ave_C123 := RE (Mx_Ave_C123);
(* Al aparecer la avería 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 habilitándose el SFC de la
tolva otra vez *)
IF Mx_SFC_Tolva_OFF THEN
setstep(E73); (* Cierra la tolva *)
END_IF;
(* Habiendo avería en la cinta secundaria, se desactivan el resto de SFCs después que se haber cerrado la
tolva. La marca Mx_dummy no es usada en esta aplicación *)
if FE (Mx_SFC_Tolva_OFF) then
Mx_Dummy := CLEARCHART (Mando, true) ;
Mx_Dummy := CLEARCHART (Seleccion_Cinta, true) ;
Mx_Dummy := CLEARCHART (Posicionar_Cinta_Alimentadora, true) ;
Mx_Dummy := CLEARCHART (Cintas, true) ;
end_if;
(* Se localiza la cinta secundaria averiada *)
IF Mx_Flanco_Ave_C123 THEN
IF Qx_LS1 THEN
SET (Mx_Av_C1);
ELSIF Qx_LS2 THEN
SET (Mx_Av_C2);
ELSE SET (Mx_Av_C3);
END_IF;
END_IF;
(* Cuando se repara el sistema se vuelve a las CI con el pulsador de paro *)
IF (Mx_Ave_C0 OR Mx_Ave_C123) AND NOT Mx_Paro THEN
(* Activamos las etapas iniciales *)
Mx_Dummy := INITCHART (Mando, true) ;
Mx_Dummy := INITCHART (Seleccion_Cinta, true) ;
Mx_Dummy := INITCHART (Posicionar_Cinta_Alimentadora, true) ;
Mx_Dummy := INITCHART (Tolva, true) ;
Mx_Dummy := INITCHART (Cintas, true) ;
(* Reseteamos las marcas de avería *)
RESET (Mx_Av_C0); RESET (Mx_Ave_C0);
RESET (Mx_Av_C1); RESET (Mx_Ave_C123);
RESET (Mx_Av_C2);
212 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
RESET (Mx_Av_C3);
END_IF;
(*Marcas empleadas en la pantalla*)
MxP_C0_C1 := Mx_FC1 and Qx_Mot_C0;
MxP_C0_C2 := Mx_FC2 and Qx_Mot_C0;
MxP_C0_C3 := Mx_FC3 and Qx_Mot_C0;
GRAFCETs de "Mando, " y "Selección_cinta"
Tran4_0 :0
not Qx_Mot_C1 and not
Qx_Mot_C2 and not
Qx_Mot_C3
(* Descargar cinta 0 y Cerrar
Tolva *)
(* Descargar cinta secundaria
*)
(* Posicionar la cinta
alimentadora (Cinta 0) *)
(* Conectar Cintas y Abrir
Tolva *)
(* Selección de cinta de
evacuación *)
E0
E1
E2
E3
E4
Mx_Marcha
E23.x
NOT Mx_Paro
NOT Qx_Mot_C0
Tran4_0
Tran10_11 :=
RE(Mx_Selec) and E0.x
Tran13_11 :=
RE(Mx_Selec) and E0.x
Tran12_13 :=
RE(Mx_Selec) and E0.x
Tran11_12 :=
RE(Mx_Selec) and E0.x
(* Selección Cinta 1 *)
Qx_LS1
(* Selección Cinta 2 *)
Qx_LS2
(* Selección Cinta 3 *)
Qx_LS3
E10
E11
E12
E13
Tran11_12
Tran12_13
Tran13_11
Tran10_11
Problemas M340 - 213
Universidad de Oviedo
ISA - J. Alonso - I. Machón
GRAFCET de "Posicionar_cinta_alimentadora"
GRAFCETs de movimiento de las cintas "Cintas"
(* C1 en
movimiento *)
Qx_Mot_C1
Qx_LCon 1
Tran42_40 :=
E42.t > t#20s;
(* C2 en
descarga *)
Qx_Mot_C2
Qx_LDes 2
Tran62_60 :=
E62.t > t#20s;
Tran40_41 :=
E2.x and
Qx_LS1;
(* C3 parada *)
Qx_LDes 3
(* C0 en
descarga *)
Qx_Mot_C0
Qx_LDes 0
(* C0 parada*)
Qx_LDes 0
Tran52_50:=
E52.t > t#20s;
(* C3 en
descarga *)
Qx_Mot_C3
Qx_LDes 3
(* C0 en
movimiento *)
Qx_Mot_C0
Qx_LCon 0
T_Tran15
S_c2_Des.t >
t#20s
Tran50_51:=
E2.x and
Qx_LS2;
(* C2 en
movimiento *)
Qx_Mot_C2
Qx_LCon 2
(* C1 parada *)
Qx_LDes 1
Tran32_30:=
E32.t > t#20s;
(* C2 parada *)
Qx_Ldes 2
(* C1 en
descarga *)
Qx_Mot_C1
Qx_LDes 1
(* C3 en
movimiento *)
Qx_Mot_C3
Qx_LCon 3
E30
E31
E32
E40
E41
E42
E50
E51
E52
E60
E61
E62
E2.x
E3.x
Tran32_30
Tran40_41
E4.x
Tran42_40
Tran50_51
E4.x
Tran52_50
Tran60_61
E4.x
Tran62_60
Tran21_22 :=
Mx_FC1 and (Qx_Ls2 or
Qx_Ls3) or (Mx_FC2 and
Qx_Ls3)
Tran21_24 :=
Mx_FC3 and (Qx_Ls1 or
Qx_Ls2) or (Mx_FC2 and
Qx_Ls1)
Mx_Para_Giro :=
(Mx_FC1 and Qx_LS1) or
(Mx_FC2 and Qx_LS2) or
(Mx_FC3 and Qx_LS3)
Qx_MG_Izda Qx_MG_Dcha
E20
E21
E22
E23
E24
E1.x
Tran21_22
Mx_Para_Giro
E2.x
Mx_Para_Giro
Tran21_24
Mx_Para_Giro
214 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
GRAFCET del control de la tolva "Tolva"
Sección "Transiciones“
Tran4_0 := not Qx_Mot_C1 and not Qx_Mot_C2 and not Qx_Mot_C3;
Tran10_11 := RE (Mx_Selec) and E0.x;
Tran11_12 := RE (Mx_Selec) and E0.x;
Tran12_13 := RE (Mx_Selec) and E0.x;
Tran13_11 := RE (Mx_Selec) and E0.x;
Tran21_22 := Mx_FC1 and (Qx_LS2 or Qx_LS3) or (Mx_FC2 and Qx_LS3);
Tran21_24 := Mx_FC3 and (Qx_LS1 or Qx_LS2) or (Mx_FC2 and Qx_LS1);
Tran70_71 := E2.x and E2.t > t#5s;
Tran71_72 := Mx_FC_Tol_Ab or Mx_Ave_C0 or Mx_Ave_C123;
Tran72_73 := E3.x or Mx_Ave_C0 or Mx_Ave_C123;
Tran32_30 := E32.t > t#20s;
Tran40_41 := E2.x and Qx_LS1;
Tran42_40 := E42.t > t#20s;
Tran50_51 := E2.x and Qx_LS2;
Tran52_50 := E52.t > t#20s;
Tran60_61 := E2.x and Qx_LS3;
Tran72_73 :=
E3.x or Mx_Ave_C0 or
Mx_Ave_C123;
Tran71_72 :=
Mx_Fc_Tol_Ab or Mx_Ave_C0
or Mx_Ave_C123
Tran70_71 :=
E2.x and E2..t > t#5s
(* Cierra la tolva *)
Qx_MTol_Ce
(* Abre la tolva *)
Qx_MTol_Ab
(* Tolva abierta o semiabierta *)
(* Control de la TOLVA *)
E70
E71
E72
E73
Tran70_71
Tran71_72
Tran72_73
Mx_FC_Tol_Ce
Problemas M340 - 215
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tran62_60 := E62.t > t#20s;
Sección “Salidas”:
Qx_MG_Izda := E22.x;
Qx_MG_Dcha := E24.x;
Qx_Mot_C0 := E31.x or E32.x;
Qx_Mot_C1 := E41.x or E42.x;
Qx_Mot_C2 := E51.x or E52.x;
Qx_Mot_C3 := E61.x or E62.x;
Qx_MTol_Ab := E71.x;
Qx_MTol_Ce := E73.x;
Qx_LS1 := E11.x;
Qx_LS2 := E12.x;
Qx_LS3 := E13.x;
Qx_LCon_C0 := E31.x or Mx_Av_C0;
Qx_LCon_C1 := E41.x or Mx_Av_C1;
Qx_LCon_C2 := E51.x or Mx_Av_C2;
Qx_LCon_C3 := E61.x or Mx_Av_C3;
Qx_LDes_C0 := E30.x or E32.x or Mx_Av_C0 and Mx_Osc2Hz;
Qx_LDes_C1 := E40.x or E42.x or Mx_Av_C1 and Mx_Osc2Hz;
Qx_LDes_C2 := E50.x or E52.x or Mx_Av_C2 and Mx_Osc2Hz;
Qx_LDes_C3 := E60.x or E62.x or Mx_Av_C3 and Mx_Osc2Hz;
Pantalla de Operador
216 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 217
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 7.3 · Dos cintas alimentadoras a tolva y cinta de salida
(Resolver)
Diseñar el circuito de Mando, para el control de tres cintas transportadoras de la instalación indicada en la
figura.
Las cintas 1 y 2 deberán conectarse y desconectarse, cada una, mediante dos pulsadores manuales (conexión
NA, desconexión NC).
El estado de marcha se indicará con tres lámparas: LCon, LDes y LDescg.
Las cintas 1 y 2 no deben suministrar material a la vez. La cinta 3 ha de ponerse en marcha simultáneamente
con la 1 ó la 2.
Condiciones Iniciales: Inicialmente las tres cintas estarán desconectadas y las lámparas de desconexión 1 y
2 estarán encendidas y el resto apagadas.
Conexión: Cuando se accione el pulsador de conexión 1 o 2 se encenderá la lámpara de conexión y se apagará
la de desconexión correspondiente.
Desconexión: Una vez accionado el pulsador de desconexión, las cintas 1 ó 2 deberán seguir en
funcionamiento 20 segundos más, la cinta 3 debe permanecer en funcionamiento durante 40 segundos más
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 lámparas 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 (30% ON, 70% OFF), para
un funcionamiento en régimen normal de velocidad. Durante los tres primeros segundos no deberán
evaluarse los impulsos procedentes de las vigilancias de las cintas, ya que no ha habido tiempo para alcanzar
la velocidad de régimen.
Cinta 3
Cinta 2
Cinta 1
M
M
M
LDescgC3
LConC1
LDesC1
LDescgC1
LConC2
LDesC2
LDescgC2
PConC1 PConC2 Pdes PEmer Rearme
LAveríaC1
LAveríaC2
LAveríaC3
218 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Si estando en funcionamiento normal desaparece la señal de vigilancia de la cinta 1 ó 2, hay que parar
inmediatamente dicha cinta, dejando funcionar en vaciado la cinta 3 según la secuencia establecida
previamente. Para avisar de la existencia de avería, haremos que la lámpara de avería correspondiente
parpadee a una frecuencia de 1 Hz, permaneciendo encendida la de conexión.
Si durante el periodo de descarga de la cinta alimentadora:
 Desaparece su señal de vigilancia, hay que parar inmediatamente dicha cinta, dejando funcionar en
vaciado la cinta 3 según la secuencia establecida previamente. Para avisar de la existencia de avería,
haremos que la lámpara de avería correspondiente parpadee a una frecuencia de 1 Hz,
permaneciendo encendida la de descarga.
 Desaparece la señal de vigilancia de la cinta 3, hay que parar inmediatamente todas las cintas. La
avería producida se indicará mediante el parpadeo de la lámpara de avería de C3 a una frecuencia
de 1 Hz, permaneciendo encendida la de descarga de la cinta alimentadora.
Si estando en funcionamiento normal desaparece la señal de vigilancia de la cinta 3, hay que parar
inmediatamente todas las cintas. La avería producida se indicará mediante el parpadeo de la lámpara de
avería de C3 a una frecuencia de 1 Hz, permaneciendo encendida la de conexión de la cinta alimentadora.
Si durante el periodo de descarga de la cinta 3 desaparece la señal de vigilancia, hay que parar
inmediatamente la cinta. La avería producida se indicará mediante el parpadeo de su lámpara de avería 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, deberán parar todas las cintas quedando encendidas las 3
lámparas 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 avería accionando el pulsador de Rearme, momento en el
cual se volverá a las condiciones iniciales.
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM3202K entradas y salidas PNP.
Salidas:
Lámpara Conexión para cinta 1
Lámpara Desconexión para cinta 1
Lámpara Descarga para cinta 1
Lámpara Conexión para cinta 2
Lámpara Desconexión para cinta 2
Lámpara Descarga para cinta 2
Lámpara Descarga para cinta 3
Lámpara de Avería en C1
Lámpara de Avería en C2
Lámpara de Avería en C3
Motor para cinta 1
Motor para cinta 2
Motor para cinta 3
Entradas:
Pulsador Conexión para cinta 1
Pulsador Conexión para cinta 2
Pulsador Desconexión para cinta 1
Pulsador Desconexión para cinta 2
Pulsador de Emergencia
Pulsador de Rearme
Vigilancia de cinta 1
Vigilancia de cinta 2
Vigilancia de cinta 3
Problemas M340 - 219
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 7.4 · Control de 1 cinta (en construcción)
220 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 221
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Interrupciones
Problema 8.1 · Control de tráfico en 2 carriles
Diseñar el programa de control de un autómata programable que realice el enunciado siguiente:
Un semáforo ha de regir el paso de vehículos, pero éste estará sujeto a una variación en su temporización,
según el número de vehículos que se encuentren en cola de espera. La calle, como se puede apreciar en el
dibujo, está dividida en dos carriles con sus respectivos sensores (Sensor1, Sensor2) y (Sensor3, Sensor4).
Cuando en uno cualquiera de los carriles se encuentran 20 o más vehículos la temporización 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 vehículos en ambos carriles la temporización 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 temporización es la que realiza
desde el momento en que el semáforo se pone en rojo hasta un instante antes de producirse el cambio a
verde.
Nota:
 Se supone que los carriles son de dirección única y no se puede cambiar de uno a otro. Los vehículos
que circulan son solamente automóviles.
 Los sensores irán asociados a entradas de interrupción
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas PNP BMX DDM3202K y al módulo de contaje BMX EHC 0800.
S1
S3
S2
S4
222 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de variables
Configuración del módulo BMX EHC 0800
En el módulo BMX EHC 0800, se selecciona Contador 0 y abajo se despliega la lista asociada a Función. Se
elige "Modo de conteo de eventos". Luego en la pestaña de Configuración, donde pone la ficha de Evento se
selecciona Valor "Habilitar". En la etiqueta Número de evento, aparece el número de programa de Evento
asociado que se ejecutará cuando se detecte el paso de 0 a 1 en la entrada asociada a contador 0.
Problemas M340 - 223
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en FBD - (pr0801a)
Sección "Control" en FBD
224 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Subrutina "Asignar_Tiempos" en FBD
Evento 0
INC (Mw_NcochesC0);
Evento 1
DEC (Mw_NcochesC0);
Evento 2
INC (Mw_NcochesC1);
Evento 3
DEC (Mw_NcochesC1);
IN1
Mw_NcochesC0
IN2
20
OUT
.1
GT_INT
1
IN1
Mw_NcochesC1
IN2
20
OUT
.2
GT_INT
2
IN1
IN2
OUT
.3
OR
3
EN
IN
t#30s
ENO
OUT Mt_Verde
.4
MOVE
4
EN
IN
t#15s
ENO
OUT Mt_Rojo
.5
MOVE
5
IN1
Mw_NcochesC0
IN2
20
OUT
.6
LE
6
IN1
Mw_NcochesC1
IN2
20
OUT
.7
LE
7
EN
IN
t#20s
ENO
OUT Mt_Verde
.9
MOVE
9
EN
IN
t#20s
ENO
OUT Mt_Rojo
.10
MOVE
10
IN1
IN2
OUT
.8
AND
8
Problemas M340 - 225
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de operador
Simulación de los eventos (interrupciones)
Para simular los eventos, haremos click con el botón derecho en el icono de simulación (a la derecha en la
barra de tareas de windows). Se desplegará una ventana donde elegiremos "Simulator panel...".
A continuación haremos click en el botón amarillo de Eventos.
Nos saldrá otra pantalla, donde haciendo click en el evento que
deseemos, se simulará la entrada de evento.
226 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en ST - (pr0801b)
Sección "Control"
Mx_FinCiclo := TON_Ciclo.Q;
IF %S13 OR RE(Mx_FinCiclo) THEN
Asignar_Tiempos();
END_IF;
(*Temporizador*)
TON_Ciclo (IN := Not TON_Ciclo.Q, PT := Mt_Verde + t#8s + Mt_Rojo) ;
(*Generación de la marca del oscilador de 2Hz*)
TON_Osc2Hz (IN:= Not TON_Osc2Hz.Q, PT:= t#500ms) ;
Mx_Oscilador_2hz := TON_Osc2Hz.ET > t#250ms;
(*Salidas*)
Qx_LVerde := TON_Ciclo.ET < t_Verde;
Qx_LAmbar := TON_Ciclo.ET>t_Verde And TON_Ciclo.ET<t_Verde+t#5s Or
TON_Ciclo.ET > t_Verde+t#5s And TON_Ciclo.ET<t_Verde+t#8s And Mx_Oscilador_2hz;
Qx_LRoja := TON_Ciclo.ET > t_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;
Evento 0
INC (Mw_NcochesC0);
Evento 1
DEC (Mw_NcochesC0);
Evento 2
INC (Mw_NcochesC1);
Evento 3
DEC (Mw_NcochesC1);
Problemas M340 - 227
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Funciones de desplazamiento y rotación
Función SHL (desplazamiento a la izquierda)
"La función desplaza la muestra de bits en la entrada IN en n bits (el valor de la entrada N) hacia la izquierda.
En esta operación se utiliza el bit del sistema %S17 como bit CARRY, es decir, el estado del bit desplazado se
ubica aquí. Desde la derecha se rellena con ceros.
Los tipos de datos de la entrada IN y de la salida OUT deben ser iguales.
Como parámetros adicionales se pueden configurar EN y ENO"
Representación en FBD
Representación en ST
ShIftedPattern := SHL (IntputPattern, Number) ;
Función SHR (desplazamiento a la derecha)
"La función desplaza la muestra de bits en la entrada IN en n bits (el valor de la entrada N) hacia la derecha.
En esta operación se utiliza el bit del sistema %S17 como bit CARRY, es decir, el estado del bit desplazado se
ubica aquí. Desde la izquierda se rellena con ceros.
Caso especial: Si en el diálogo Herramientas / Ajustes del proyecto / Extensiones de lenguaje está activada
la opción permitir INT/DINT en lugar de ANY_BIT y se utilizan en la entrada IN los tipos de datos INT o DINT,
se rellenará con ceros desde la izquierda , donde el bit 0 será el de mayor valor. Si el bit de mayor valor es 1,
se rellenará con unos. El bit de mayor valor contiene el bit de signo en los tipos de datos INT y DINT. Mediante
este funcionamiento se asegura que el signo no se pierda durante el desplazamiento. Si no se tiene en cuenta
el signo y se rellena siempre con ceros, se puede utilizar en los controles de Premium la función SHRZ_*** de
la biblioteca obsoleta.
Los tipos de datos de la entrada In y de la salida OUT deben ser iguales.
Como parámetros adicionales se pueden configurar EN y ENO"
Representación en FBD
Representación en ST
ShIftedPattern := SHR (IntputPattern, Number) ;
228 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Función ROR (rotación a la derecha)
"La función gira la muestra de bits en la entrada In en n bits (el valor de la entrada Number) hacia la derecha
en forma de círculo.
En esta operación se utiliza el bit del sistema %S17 como bit CARRY, es decir, el estado del bit desplazado se
ubica aquí.
Los tipos de datos de la entrada IN y de la salida OUT deben ser iguales.
Como parámetros adicionales se pueden configurar EN y ENO"
Representación en FBD
Representación en ST
ShIftedPattern := ROR (IntputPattern, Number) ;
Función ROL (rotación a la izquierda)
"La función gira la muestra de bits en la entrada In en n bits (el valor de la entrada Number) hacia la izquierda
en forma de círculo.
En esta operación se utiliza el bit del sistema %S17 como bit CARRY, es decir, el estado del bit desplazado se
ubica aquí.
Los tipos de datos de la entrada IN y de la salida OUT deben ser iguales.
Como parámetros adicionales se pueden configurar EN y ENO"
Representación en FBD
Representación en ST
ShIftedPattern := ROL (IntputPattern, Number) ;
Problemas M340 - 229
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 8.2 · Desplazamientos de bits e interrupciones
Con este problema se pretende que el alumno se familiarice con el concepto de “ Interrupción”. Muy
habitual, en los sistemas que precisan en un momento dado detener la secuencia que se está ejecutando,
para pasar, a realizar otra secuencia distinta durante un tiempo, y una vez transcurrido éste, volver a
la rutina habitual. También manejaremos otro tipo de conceptos, como son: “Desplazamiento de bits”,
tanto a la izquierda como a la derecha; “Subrutinas”; “Palabra de Constante ”; y demás componentes.
Secuencia normal del programa
Se deberá iniciar el Bit 0.1.16 del módulo mixto con el valor “1” lógico (activada). A continuación se irá
desplazando la activación al bit siguiente (Bit 0.1.17) y la desactivación del anterior (Bit 0.1.16) en cada
segundo, y así sucesivamente hasta alcanzar el Bit 0.1.23, momento en el cual se invierte el proceso.
Interrupción 0
Si durante la ejecución de la secuencia anterior , se produce una demanda de interrupción procedente
del canal 0 del módulo 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, retomándola
desde donde la había dejado.
Interrupción 1
Si durante la ejecución de la secuencia anterior , se producen una demanda de interrupción procedente
del canal 1 del módulo 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” lógico ( activados ) y los otros cuatro del nibble alto %Q0.1.20 ... %Q0.1.23 = 0 0 0
0 se deben situar a “0” lógico ( desactivados ). Estos se alternarán 1 segundo durante ocho veces.
Ejecutado esto, se debe volver a la secuencia habitual, retomándola desde donde la había dejado.
Prioridades
La secuencia generada por la demanda de interrupción 1 tiene prioridad sobre la demanda de interrupción
procedente de la interrupción 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
ejecución de la secuencia del Evt1, se debe retomar la ejecución de la demanda del Evt0, desde el estado
en que se había procedido a su interrupción. Si estando ejecutándose la demanda de interrupción
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, según la secuencia que se deba realizar. En la tercera, tratamos las salidas para que reflejen los
valores según la secuencia a realizar.
Sección 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 aplicación. Con la entrada %I0.1.2
(Ix_Arranque) daremos la orden para que comience la realización de la secuencia de inicio, se define
la recepción de dicha orden con el flanco ascendente de Ix_Arranque. Situamos en la Mw_PalBase el
230 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
valor de comienzo, el cual, lo introducimos desde la palabra constante Mw_ValorInicio. Simultáneamente
activamos el bit de marca Mx_DesDerIzq para que la subrutina a realizar sea el desplazamiento del
bit_X hacia la izquierda. Como oscilador utilizaremos el bit de sistema %S6, el cual funciona como
una base de tiempo de 1 sg. lo asignaremos al bit de marca Mx_S6, para poder trabajar sin las trabas
que tienen los bits de sistema. Mediante la entrada %I1.7 pondremos a cero el valor de los bits de
marca: Mx_DesADer, Mx_DesAIzq, Mx_OscUnosCeros y Mx_OscNibbles.
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas PNP BMX DDM3202K y al módulo de contaje BMX EHC 0800.
Tabla de variables
En el módulo BMX EHC 0800, se selecciona Contador 0 y abajo se despliega la lista asociada a Función. Se
elige "Modo de conteo de eventos". Luego en la pestaña de Configuración, donde pone la ficha de Evento se
selecciona Valor "Habilitar". En la etiqueta Número de evento, aparece el número de programa de Evento
asociado que se ejecutará cuando se detecte el paso de 0 a 1 en la entrada asociada a contador 0.
Problemas M340 - 231
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en ST - (pr0802)
Sección "SecuenciaNormal"
(*Inicializamos variables*)
Mx_Arranque := (Ix_Arranque And Ix_LocDist) Or (MxP_Arranque And Not Ix_LocDist);
Mx_PuestaCero := (Ix_PuestaCero And Ix_LocDist) Or (MxP_PuestaCero And Not Ix_LocDist);
IF %S13 THEN
Mw_PalBase:=Mw_ValorInicio; (*cargamos el valor de inicio en la palabra base 16#0001*)
END_IF;
IF RE(Mx_Arranque) AND NOT Mx_DesADer THEN
SET (Mx_DesAIzq); (*damos la orden de marcha*)
END_IF;
(*asignamos una memoria al oscilador del sistema para poder evaluar el flanco*)
Mx_Osc1Hz:=%S6;
(*borramos todos los bits de marca de secuencia*)
IF Mx_PuestaCero THEN
RESET (Mx_DesADer);RESET (Mx_DesAIzq);
RESET (Mx_OscUnosCeros); RESET (Mx_OscNibbles);
END_IF;
(*desplazamiento de bits a la izquierda*)
IF Mx_DesAIzq THEN
Sr0_DesAIzq ();
END_IF;
(*desplazamiento de bits a la derecha*)
IF Mx_DesADer THEN
Sr1_DesADer ();
END_IF;
(*Si se produce el Evt0, pone los ocho bits de salida 00000000 <=> 11111111 cuatro veces*)
IF Mx_OscUnosCeros THEN
Sr2_OscUnosCerosEvt0 ();
END_IF;
(*Si se produce el Evt1, activa alternativamente el nibble bajo y alto
de salida 11110000 <=> 00001111 cuatro veces*)
IF Mx_OscNibbles THEN
Sr3_OscNibblesEvt1 ();
END_IF;
232 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "Salidas"
(*las salidas las condicionamos a que esté activa la orden de arranque (Ix_Arranque).
Asignamos los ocho bits bajos de la palabra de marca Mw_PalBase: Mw_PalBase.0 ... Mw_PalBase.7
a los bits de salida %Q0.1.16 .... %Q0.1.23*)
Qx_L16 := Mw_PalBase.0 AND Mx_Arranque;
Qx_L17 := Mw_PalBase.1 AND Mx_Arranque;
Qx_L18 := Mw_PalBase.2 AND Mx_Arranque;
Qx_L19 := Mw_PalBase.3 AND Mx_Arranque;
Qx_L20 := Mw_PalBase.4 AND Mx_Arranque;
Qx_L21 := Mw_PalBase.5 AND Mx_Arranque;
Qx_L22 := Mw_PalBase.6 AND Mx_Arranque;
Qx_L23 := Mw_PalBase.7 AND Mx_Arranque;
Subrutina "Sr0_DesAIzq"
(* Sr0_DesAIzq Esta subrutina es la encargada de ir activando los 8 bits de salida %Q2.16 .... %Q2.23, de
derecha a izquierda con un intervalo de tiempo de un segundo. Para que se realice esta subrutina, tiene que
estar activo el bit de marca Mx_DesAIzq, circunstancia que se dará, en el inicio del programa o cuando
finalice la subrutina Sr1. Como base de tiempos usamos el bit de marca %S6 (1 Hz).
El desplazamiento lo hacemos por flanco ascendente, de esta forma tenemos la certeza de que se dará una
sola orden en cada segundo. Cuando activamos el bit %Q0.1.23, pondremos a cero el bit de marca
Mx_DesAIzq. Para ello usaremos el flanco negativo de %S6, y a la vez, activaremos el bit Mx_DesADer, para
que se ejecute la subrutina Sr1 *)
(*desplazamiento a la izquierda del bit activado*)
IF Mx_DesAIzq AND RE (Mx_Osc1Hz) AND Mx_Arranque THEN
Mw_PalBase := SHL (Mw_PalBase,1);
END_IF;
(*comprobamos que el bit7="1"*)
IF (Mw_PalBase = 16#0080) AND FE (Mx_Osc1Hz) THEN
RESET (Mx_DesAIzq); SET (Mx_DesADer);
END_IF;
Subrutina "Sr1_DesADer"
(* Sr1DesADer Esta subrutina es la encargada de ir activando los bits de salida %Q0.1.16 .. %Q0.1.23 de
izquierda a derecha con un intervalo de tiempo de un segundo. Para que se realice esta subrutina, tiene que
estar activo el bit Mx_DesADer, circunstancia que se dará, cuando finalice la subrutina Sr0.
Como base de tiempos usamos el bit %S6 (1 Hz). 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.16, pondremos a cero el bit Mx_DesADer. Para ello usaremos el flanco negativo de %M6, y a la vez,
activaremos y activaremos el bit Mx_DesAIzq, para que se ejecute la subrutina Sr0 *)
(*desplazamiento a la derecha del bit activado*)
IF Mx_DesADer AND RE (Mx_Osc1Hz) AND Mx_Arranque THEN
Mw_PalBase := SHR (Mw_PalBase,1);
END_IF;
Problemas M340 - 233
Universidad de Oviedo
ISA - J. Alonso - I. Machón
(*comprobamos que el bit0="1"*)
IF (Mw_PalBase = 16#0001) AND FE (Mx_Osc1Hz) THEN
RESET (Mx_DesADer); SET (Mx_DesAIzq);
END_IF;
Subrutina "Sr2_OscUnosCerosEvt0"
(* Sr2_OscUnosCerosEvt0 Esta subrutina es la encargada de ir activando y desactivando los bits de salida
%Q0.1.16 ... %Q0.1.23 cada segundo, así durante ocho veces. Para que se realice esta subrutina, tiene que
estar activo el bit de marca Mx_OscUnosCeros, circunstancia que se dará, cuando tenga lugar un flanco
ascendente en la entrada %I0.1.0(Evt0 ),teniendo en cuenta que esta es una demanda de interrupción, de
menor prioridad que la producida por el Evt1. En caso de que se esté ejecutando esta última, debe esperar a
su término 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 tenía cuando se produjo la demanda de interrupción, valor contenido en la palabra de marca
Mw_Secuencia. Reseteamos la palabra Mi_ContOscUnosCeros y por último, mediante los bit Mx_MemADer
o Mx_MemAIzq, indicamos la subrutina a seguir ejecutando*)
IF Mx_OscUnosCeros AND Mx_Osc1Hz THEN
Mw_PalBase := 16#00FF; (*oscilación de 00000000 <=> 11111111 ocho veces*)
END_IF;
IF Mx_OscUnosCeros AND(NOT Mx_Osc1Hz)THEN
Mw_PalBase := 16#0000;
END_IF;
IF RE (Mx_Osc1Hz) THEN
INC (Mi_ContOscUnosCeros);
END_IF;
IF Mi_ContOscUnosCeros=9 THEN
RESET (Mx_OscUnosCeros);
END_IF;
(*restituimos valores*)
IF Mi_ContOscUnosCeros = 9 AND Mx_MemADer THEN
Mi_ContOscUnosCeros := 0; Mw_PalBase:=Mw_Secuencia;
SET (Mx_DesADer); RESET (Mx_MemADer);
END_IF;
IF Mi_ContOscUnosCeros = 9 AND Mx_MemAIzq THEN
234 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Mi_ContOscUnosCeros := 0; Mw_PalBase := Mw_Secuencia;
SET (Mx_DesAIzq); RESET (Mx_MemAIzq);
END_IF;
Subrutina "Sr3_OscNibblesEvt1"
(* Sr3_OscNibblesEvt1
En esta subrutina haremos que el contenido del grupo de cuatro bits de salida %Q0.1.16 ... %Q0.1.19 (nibble
bajo), y el contenido del grupo de cuatro bits también 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
interrupción de mayor prioridad, tiene que parar la ejecución de cualquier otra parte del programa, y
proceder a la ejecución 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 función del momento
de la demanda de interrupción. Restituimos a la palabra de marca Mw_PalBase, el valor que tenía cuando se
produjo la demanda de interrupción, valor contenido en las palabras de marca Mw_Secuencia o
Mw_SecuenciaEvt0.
(*oscilación de 11110000 <=> 00001111 ocho veces*)
IF Mx_OscNibbles AND Mx_Osc1Hz THEN
Mw_PalBase := 16#0F;
END_IF;
IF Mx_OscNibbles AND (NOT Mx_Osc1Hz) THEN
Mw_PalBase := 16#F0;
END_IF;
IF RE (Mx_Osc1Hz) THEN
INC (Mi_ContOscNibbles);
END_IF;
(*restituimos valores*)
IF Mi_ContOscNibbles = 9 THEN
RESET (Mx_OscNibbles);
END_IF;
(* restituimos bits de marcas *)
IF Mi_ContOscNibbles =9 AND Mx_MemADer AND NOT Mx_MemAIzq AND NOT Mx_MemEvt0 THEN
SET (Mx_DesADer); RESET (Mx_MemADer);
Mw_PalBase := Mw_Secuencia; Mi_ContOscNibbles := 0;
END_IF;
IF Mi_ContOscNibbles = 9 AND Mx_MemAIzq AND NOT Mx_MemADer AND NOT Mx_MemEvt0 THEN
Mi_ContOscNibbles := 0; Mw_PalBase := Mw_Secuencia;
SET (Mx_DesAIzq); RESET (Mx_MemAIzq);
END_IF;
IF Mi_ContOscNibbles = 9 AND Mx_MemEvt0 THEN
Problemas M340 - 235
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Mi_ContOscNibbles := 0; Mw_PalBase := Mw_SecuenciaEvt0;
SET (Mx_OscUnosCeros); RESET (Mx_MemEvt0);
END_IF;
Evt 0 - Interrupción por la entrada %I0.1.0
(* Evt0_Oscila unos y ceros. Cuando activamos este suceso pretendemos que se realice una secuencia
determinada, en concreto, la asociada a la marca Mx_OscUnosCeros. Pero como se considera en el
anunciado, que esta secuencia es la menos prioritaria, de las dos que pueden darse bajo demanda de
interrupción. En el supuesto de que se esté ejecutando la secuencia asociada con Mx_OscNibbles, debemos
definir un nuevo bit de marca Mx_MemEvt0, que nos permita esperar a la terminación de la ejecución de la
secuencia asociada a Mx_OscNibbles. Si no hay otra demanda de interrupción y estamos en la secuencia
normal, salvaguardaremos el valor de la palabra base Mw_PalBase en la palabra Mw_Secuencia, para cuando
retornemos nuevamente a la secuencia normal.
A continuación salvaguardamos el bit de marca presente, asociado con la secuencia en curso. *)
(*definimos ejecución o espera*)
IF Mx_OscNibbles THEN
SET (Mx_MemEvt0);
ELSE SET (Mx_OscUnosCeros);
END_IF;
(*salvaguardamos los bits de marca*)
IF Mx_DesADer AND Mx_OscUnosCeros THEN
Mw_Secuencia := Mw_PalBase;
SET (Mx_MemADer); RESET (Mx_DesADer);
END_IF;
IF Mx_DesAIzq AND Mx_OscUnosCeros THEN
Mw_Secuencia := Mw_PalBase;
SET (Mx_MemAIzq); RESET (Mx_DesAIzq);
END_IF;
Evt 1 - Interrupción por la entrada %I0.1.1
(*Evt1_Oscila Nibbles. Este evento es prioritario, por tanto, debe ejecutarse inmediatamente la secuencia
asociada, esto es, activamos el bit de marca Mx_OscNibbles = ”1” y desactivamos los demás.
Salvaguardaremos la palabra base Mw_PalBase, en las palabras Mw_Secuencia o Mw_SecuenciaEvt0 según
proceda. Por último, salva guardaremos el bit de marca de la secuencia en ejecución *)
(*Demanda de máxima prioridad*)
IF Mx_DesADer THEN
Mw_Secuencia := Mw_PalBase;
SET (Mx_OscNibbles);
SET (Mx_MemADer); RESET (Mx_DesADer);
END_IF;
IF Mx_DesAIzq THEN
236 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
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
Problemas M340 - 237
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 8.3 · Control de acceso de entrada a garaje y pulsador
(Resolver)
Un garaje dispone de treinta plazas de aparcamiento. El acceso al mismo se realiza través de una entrada y
salida común, estando ésta cerrada mediante un portón elevadizo.
La entrada-salida de vehículos se controla mediante dos semáforos; uno de entrada, SE, y otro de salida, SS.
(Qx_SELVerde, Qx_SELRoja, Qx_SELAzul, Qx_SSLVerde, Qx_SSLRoja)
Para que un vehículo pueda entrar debe disponer de aparcamiento, lo que indicaremos mediante la
activación del foco azul.
La demanda de entrada se hace mediante la activación del lazo sensor Ix_SE1, momento en el cual se pueden
dar las opciones siguientes:
1. No esté vehículo alguno en proceso de salida, y tenga plaza de aparcamiento. Procederá en este
caso al inicio de la maniobra de entrada, contabilizándose ésta al accionar el lazo sensor Ix_SE2.
238 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
2. Si encuentra otro vehículo en proceso de salida, deberá entonces el semáforo de entrada
permanecer en rojo, hasta que el vehículo haya salido, pudiendo a continuación proceder al inicio de
la maniobra de entrada.
La demanda de salida se hace mediante la activación del lazo sensor Ix_SS1, momento en el que se pueden
dar las opciones siguientes:
1. No esté vehículo alguno en proceso de entrada. Procederá en este caso al inicio de la maniobra de salida,
contabilizándose ésta al accionar el lazo sensor Ix_SS2.
2. Si encuentra otro vehículo en proceso de entrada, deberá entonces el semáforo de salida permanecer
en rojo, hasta que el vehículo haya entrado, pudiendo a continuación proceder al inicio de la maniobra
de salida.
Tanto el semáforo de entrada como de salida, deben cambiar de verde a rojo, una vez que el vehículo
abandone tanto el lazo sensor, (Ix_SE1), como el, (Ix_SS1).
Ante demandas simultáneas de entrada y salida, tiene prioridad la salida. Si se produce una cola de vehículos
deberá permitirse una salida y entrada alternada para evitar demasiada espera por parte de los vehículos
que deseen entrar.
El portón es controlado de manera automática por los sensores de entrada y de salida, (Ix_SE1) y (Ix_SS1),
para su apertura. Y los sensores, (Ix_SE2) y (Ix_SS2), para su cierre.
Mientras haya una demanda de salida o de entrada, en curso, el portón deberá permanecer abierto. Así
mismo, es necesario que el portón se encuentre abierto para que los semáforos, tanto de entrada, como de
salida, cambien de rojo a verde.
Disponemos de un pulsador, (Ix_P), que nos permite la apertura y cierre manual del portón, en todo
momento -si está abierto lo cerrará y si está cerrado lo abrirá- (Qx_Abrir, Qx_Cerrar, Ix_FCA, Ix_FCC).
Se dispondrá, así mismo, de un pulsador para Resetear el sistema (Ix_Reset) y llevarlo a las condiciones
Iniciales con el portón cerrado.
El motor trifásico de la puerta tiene unas características de: Pm = 1,1 KW, Un = 400 V, cos φ=0,85 y  = 0,92.
Corriente de arranque 5 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante automático
y térmico.
Las luces de los semáforos tienen una potencia de 40 W.
Resto de elementos Anexo 1.
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de
alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo de entradas PNP BMX DDI
1602 y salidas PNP BMX DDO 1602.
Se pide:
 Diseñar el esquema de mando y de fuerza del sistema.
 Elegir los elementos de protección del sistema de mando y de fuerza.
 Indicar sobre las gráficas del térmico y del automático CLARAMENTE, la corriente de arranque, la
corriente de regulación del térmico y la corriente nominal.
 Programa de mando
Entradas Salidas
Ix_SE1 Qx_SELVerde
Ix_SE2 Qx_SELRoja
Ix_SS1 Qx_SELAzul
Ix_SS2 Qx_SSLVerde
Ix_P Qx_SSLRoja
Problemas M340 - 239
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Ix_Reset Qx_Abrir
Qx_Cerrar
Cómo crear un Bloque de Función de Usuario (DFB)
Un bloque de función de usuario DFB (Derived Function Block) es un bloque de programa que define el
funcionamiento completo de una parte del proyecto. El bloque se crea de forma que contenga la
programación requerida en secciones de programación.
El resultado de la creación de un DFB es un bloque de función en el que el usuario puede definir el número
de entradas y de salidas necesarias y el comportamiento interno del mismo.
Ejemplo.
Se ha de crear un bloque motor con las características siguientes:
- El motor tiene 2 sentidos de giro (izquierda y derecha).
- Físicamente, el pulsador de PARO es normalmente cerrado por seguridad de máquina.
- Se ha de definir tiempos de funcionamiento.
- El motor se pondrá en marcha a la izquierda o a la derecha cuando se ponga active la orden de Marcha.
Primeramente, se debe acudir al explorador de proyectos y abrir la ventana de Editor de datos en la pestaña
de Tipos de DFB. Se puede llegar de diversas formas, por ejemplo, doble clic en Tipos de FB derivados en el
explorador de proyectos. A continuación se debe introducir el nombre del bloque DFB en la posición indicada.
Introducir el nombre del bloque DFB
240 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
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.
Creación de la sección DFB (Solución implementada con el editor FBD)
Por otra parte, se deben introducir como siempre las variables del programa principal (Explorador de
Problemas M340 - 241
Universidad de Oviedo
ISA - J. Alonso - I. Machón
proyectos → Variable e Instancias FB).
En la sección del programa principal insertaremos el bloque DFB creado. Por ejemplo, aquí se inserta el
bloque DFB_MOTOR en la sección FBD denominada “Control”. Para ello se debe editar la sección “Control”
y pulsar el botón derecho del ratón. Se despliega la ventana que se muestra en la figura y después
seleccionamos “Asistente de entrada FFB…”. Posteriormente buscamos el bloque creado de manera similar
a seleccionar bloques de funciones elementales.
242 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Una vez insertado el bloque de función derivado debemos compilar el proyecto para que se puedan ver las
entradas y salidas del bloque. A continuación conectaremos las entradas y salidas del bloque a nuestras
variables del programa principal. El aspecto que quedaría se muestra en la figura siguiente.
Al transferir el proyecto al PLC y ejecutarlo, se puede visualizar la sección de programación de la instancia de
la DFB haciendo clic con el botón derecho del ratón y seleccionando “Detallar”.
Problemas M340 - 243
Universidad de Oviedo
ISA - J. Alonso - I. Machón
De esa forma se puede observar la sección indicada según la siguiente figura:
244 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 245
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 9.1 · Control de 3 lámparas. EM y EF
Efectuar el encendido de tres lámparas de forma secuencial con un único pulsador. En cada activación del
pulsador se procederá al encendido de una lámpara y apagado de la anterior.
Se impondrá una limitación al accionamiento del pulsador, de forma tal, que si se efectuasen cuatro
pulsaciones consecutivas en un tiempo inferior a 12 segundos, se inhibirá el efecto del pulsador durante un
tiempo de 60 segundos. En este supuesto se mantendrá encendida la última lámpara activada.
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0600, fuente de
alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%), módulo de entradas PNP BMX DDI 1602 y
salidas PNP BMX DDO 1602. (Módulos ALCOA). Lámparas 5W.
Esquemas de fuerza y de Mando
P
L 1
L 2
L 3
246 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
La corriente que puede dar cada canal de salida es de 0,625A y 10A el módulo de salidas. Por tanto, podemos
alimentar directamente esas lámparas a la salida del Autómata Programable.
Cronograma de activación y desactivación de las lámparas según una secuencia
Tabla de variables
Problemas M340 - 247
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa con FBDs - (pr0901a)
Sección "Preliminar"
Mx_Pulsador := (Ix_Pulsador And Ix_LocDist) Or (MxP_Pulsador And Not Ix_LocDist);
Sección “Control” (en FBD)
248 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de operador
Problemas M340 - 249
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en ST - (pr0901b)
Sección "Preliminar"
(* Memorias para el control Local o a Distancia *)
Mx_Pulsador := (Ix_Pulsador And Ix_LocDist) Or (MxP_Pulsador And Not Ix_LocDist);
Sección "Control"
Mx_Impulso := RE (Mx_Pulsador) And Not TP_BloqueoPulsador.Q;
Mx_Alarm_LVerde := Mx_Impulso And TP_AlarmLVerde.Q And Not Qx_LVerde And Not Qx_LAmbar And
Qx_LRoja;
Mx_Alarm_LAmbar := Mx_Impulso And TP_AlarmLAmbar.Q And Qx_LVerde And Not Qx_LAmbar And Not
Qx_LRoja;
Mx_Alarm_LRoja := Mx_Impulso And TP_AlarmLRoja.Q And Not Qx_LVerde And Qx_LAmbar And Not
Qx_LRoja;
TP_BloqueoPulsador (IN:= Mx_Alarm_LVerde Or Mx_Alarm_LAmbar Or Mx_Alarm_LRoja, PT:=t#20s);
(* ponemos 20s para acortar la simulación *)
IF (Mx_Impulso And Not Qx_LVerde And Not Qx_LAmbar And Not Qx_LRoja ) Or (Mx_Impulso And Not
Qx_LVerde And Not Qx_LAmbar And Qx_LRoja And Not TP_AlarmLVerde.Q) THEN
SET (Qx_LVerde);
RESET (Qx_LRoja);
RESET (Mx_Impulso);
END_IF;
TP_AlarmLVerde (IN:= Qx_LVerde, PT:= t#12s); (*Temporizador tipo TP*)
IF Mx_Impulso And Qx_LVerde And Not Qx_LAmbar And Not Qx_LRoja And Not TP_AlarmLAmbar.Q THEN
SET (Qx_LAmbar);
RESET (Qx_LVerde);
RESET (Mx_Impulso);
END_IF;
TP_AlarmLAmbar (IN:= Qx_LAmbar, PT:= t#12s); (* Temporizador tipo TP *)
IF Mx_Impulso And Not Qx_LVerde And Qx_LAmbar And Not Qx_LRoja And Not TP_AlarmLRoja.Q THEN
SET (Qx_LRoja);
RESET (Qx_LAmbar);
END_IF;
TP_AlarmLRoja (IN:= Qx_LRoja, PT:= t#12s); (* Temporizador tipo TP *)
250 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa mixto ST y SFC - (pr0901c)
Sección "Preliminar"
Mx_Pulsador := (Ix_Pulsador And Ix_LocDist) Or (MxP_Pulsador And Not Ix_LocDist);
Mx_Impulso := RE (Mx_Pulsador);
TP_AlarmLVerde (IN:= Etapa1.x, PT:= t#12s);
TP_AlarmLAmbar (IN:= Etapa2.x, PT:= t#12s);
TP_AlarmLRoja (IN:= Etapa3.x, PT:= t#12s);
Sección "Salidas"
Qx_LVerde := E tapa1.x Or Etapa4.x;
Qx_LAmbar := Etapa2.x Or Etapa5.x;
Qx_LRoja := Etapa3.x Or Etapa6.x;
Sección "Transiciones"
Tran1_2 := Mx_Impulso and not TP_AlarmLAmbar.Q;
Tran1_4 := Mx_Impulso and TP_AlarmLAmbar.Q;
Tran2_3 := Mx_Impulso and not TP_AlarmLRoja.Q;
Tran2_5 := Mx_Impulso and TP_AlarmLRoja.Q;
Tran3_1 := Mx_Impulso and not TP_AlarmLVerde.Q;
Tran3_6 := Mx_Impulso and TP_AlarmLVerde.Q;
Tran4_2 := Mx_Impulso and Etapa4.t >=t#20s; (* ponemos 20s para acortar la simulación *)
Tran5_3 := Mx_Impulso and Etapa5.t >=t#20s;
Tran6_1 := Mx_Impulso and Etapa6.t >=t#20s;
Sección "Pantalla de operador"
Problemas M340 - 251
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección SFC "Control"
Tran6_1 :=
Mx_Impulso and
Etapa6.t >=t#20s
Tran3_1 :=
Mx_Impulso and
not TP_AlarmLVerde.Q
Tran3_6 :=
Mx_Impulso and
TP_AlarmLVerde.Q
Tran5_3 :=
Mx_Impulso and
Etapa5.t >=t#20s
Tran2_3 :=
Mx_Impulso and
not TP_AlarmLRoja.Q
Tran2_5 :=
Mx_Impulso and
TP_AlarmLRoja.Q
Tran4_2 :=
Mx_Impulso and
Etapa4.t >=t#20s
Tran1_2 :=
Mx_Impulso and
not TP_AlarmLAmbar.Q
Tran1_4 :=
Mx_Impulso and
TP_AlarmLAmbar.Q
Qx_LRoja
12s TP_AlarmLRoja.Q
Qx_LAmbar
12s TP_AlarmLAmbar.Q
Qx_LVerde
Qx_LVerde
12s TP_AlarmLVerde.Q
Qx_LAmbar
Qx_LRoja
Etapa0
Etapa1
Etapa4
Etapa2
Etapa5
Etapa3
Etapa6
Mx_Impulso
Tran1_2 Tran1_4
Tran4_2
Tran2_3 Tran2_5
Tran5_3
Tran3_1 Tran3_6
Tran6_1
252 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 253
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 9.2 · Control de la mezcla en un depósito. EM y EF
Diseñar el programa lógico que efectúe el control de la mezcla realizada en el depósito destinado al efecto,
cuyo esquema mostramos en la figura. En el mismo mezclaremos líquidos procedentes de una electroválvula
monoestable de fluido " A " y otra " B ", en las proporciones que definimos a continuación.
{ (A:B) } = { (5:0), (4:1), (3:2), (2:3), (1:4), (0:5), (ninguna) }
La elección de la mezcla se realizará de manera secuencial, mediante el accionamiento del pulsador,
"Ix_PMezcla". Se conocerá la mezcla por la iluminación del cajetín, asociado con la misma, en el panel de
Mando.
Mediante el accionamiento del pulsador “Ix_PEjecución” se efectuará la orden de ejecución de la mezcla
seleccionada, siendo necesario para que esto se realice que el mezclador se encuentre completamente vacío
y la servoválvula C cerrada.
Durante la ejecución de la mezcla el pulsador “Ix_PEjecución” debe quedar inhibido hasta que el mezclador
se encuentre vacío.
Cuando se haya dado la orden de ejecución, ésta comenzará abriendo la electroválvula A "Qx_Abrir_EvA", y
permaneciendo abierta hasta que el depósito alcance el nivel que corresponda con el primer dígito de la
mezcla establecida, momento en el que deberá procederse al cierre de la electroválvula "A", y a la apertura
de la electroválvula B "Qx_Abrir_EvB", permaneciendo ésta abierta hasta que el depósito se incremente en
las partes correspondientes para formar la mezcla pedida. Momento en el cual se procederá al cierre de la
electroválvula "B".
La mezcla quedaría concluida en este momento, pero quizá no fuera todo lo homogénea que sería de desear;
para corregir esto se dispone de un homogeneizador H, "Qx_Homogeneizar", el cual deberá funcionar
durante 30 segundos, a partir del momento en que se cierra la electroválvula "B".
254 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Concluida la homogeneización de la mezcla, se evacuará por la electroválvula C "Qx_Abrir_EvC",
procediéndose a la apertura de l misma, una vez transcurridos los treinta segundos de homogeneización.
Vaciado el depósito, se procederá al cierre de la electroválvula "C".
Los sensores de nivel S1 ..... S5 se sitúan a "1", cuando la mezcla alcanza el nivel respectivo o superior.
El sensor de nivel S0 = "1" indica que el depósito se encuentra vacío, mientras que si S0 = "0", el depósito
se encuentra llenándose.
El motor que mueve el homogeneizador es de PM = 2,2 KW, UN = 380 V, 3000 rpm, cos ϕ = 0,92,  = 0,93 en
triángulo con arranque directo y Iarr = 5 IN y tiempo de arranque 3 s.
Los valores normalizados de Interruptores automáticos curvas C y D son son 1, 2, 4, 6, 10, 16, 20, 25, 32, 40,
50, 63 A.
El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación
BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta a todo el conjunto de entradas y a los módulos
BMX DDI 1602 y BMX DRA 1605.
Características de las electroválvulas
Características pilotos iluminación
Características del consumo de los contactores a 230V AC
Se pide:
 Diseñar el esquema de mando y de fuerza del sistema.
 Elegir los elementos de protección del sistema de mando y de fuerza.
 Indicar sobre las gráficas del térmico y del automático CLARAMENTE, la corriente de arranque, la
corriente de regulación del térmico y la corriente nominal.
 Programa de mando
Problemas M340 - 255
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de fuerza
Esquema de Mando,
256 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Relé térmico F1
PM = 2,2 KW, UN = 380 V, 3000 rpm, cos ϕ = 0,92,  = 0,93 en triángulo con arranque directo y Iarr = 5 IN .
𝜂 =
𝑃𝑢
𝑃𝑒
=
𝑃𝑢
√3 𝑈𝑁 𝐼𝑁 cos 
𝐼𝑁 =
𝑃𝑢
𝜂 √3 𝑈𝑁 cos 
=
2200
0,92 √3 380 0,93
= 3,9 𝐴
Teniendo en cuenta la corriente que demanda el motor, elegiremos el LRD-12
Ajustaremos la corriente regulada a 3,9 A
Iarranque = 5 · IN = 5 · 3,9 = 19,5 A tiempo 3 segundos
𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒
𝐼𝑁
=
19,5
3,9
= 5
Escogeremos el LRD -08 clase 20 p.e.
Automático Q1
curvas C y D 1, 2, 4, 6, 10, 16, 20, 25, 32, 40, 50, 63 A.
Cuando tengamos la corriente nominal, por el térmico estarán pasando 3,9 A
Para que haya selectividad la corriente mínima del automático será: I = 1,6 * 3,9 = 6,24 A
Por tanto el calibre del automático elegido será el de 10A (valor normalizado por encima de 6,24 A).
Tensión nominal: 380 V 3 polos.
𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒
𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒
=
19,5
10
= 1,95 tiempo 5 segundos
La curva podría ser la C o la D. C60 10A o D60 10A.
Problemas M340 - 257
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Diferencial F2
El calibre será igual o superior a Q1
Contactor KM1
Clase de servicio temporal.
Categoría de servicio: AC3. Es la adecuada para maniobras de arranque de motores de inducción.
Tensión de servicio: 380 V
Corriente de servicio: I = 3,9 A
Del catálogo de Telemecanique sería válido el calibre LC1-K06
Automático Q2
La fuente de alimentación entrega 20 W con una eficiencia del 82%. Por tanto consume unos 24,39W que
significa unos 24,39/230 = 0,11A
La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar
258 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
pasar 9 · 0,11 = 0,95 A en los instantes iniciales. Podemos coger el automático C60 1A
Automático Q3
Tenemos en cuenta que tanto el contactor como las electroválvulas en el arranque consumen mas
corriente que en mantenimiento. Contactor (25VA - 5VA). Electroválvulas (9VA - 6VA). Las lámparas
consumen siempre 2 W.
El caso más desfavorable es cuando tenemos una lámpara activa, conectada una electroválvula y entra el
contactor.
(2+6+25)/230 = 0,14A
Podríamos poner C60 1A para el consumo actual
Tabla de variables
Problemas M340 - 259
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa mixto ST y FBD (pr0902a)
Preliminar
(*Inicialización de la pantalla de operador*)
If %S13 THEN
Set (MxP_Sensor0);
END_IF;
(*Marcas para el control Local-Distancia*)
Mx_PMezcla := (Ix_PMezcla And Ix_LocDist) Or (MxP_PMezcla And Not Ix_LocDist);
Mx_PEjecucion := (Ix_PEjecucion And Ix_LocDist) Or (MxP_PEjecucion And Not Ix_LocDist);
Mx_Sensor0 := (Ix_Sensor0 And Ix_LocDist) Or (MxP_Sensor0 And Not Ix_LocDist);
Mx_Sensor1 := (Ix_Sensor1 And Ix_LocDist) Or (MxP_Sensor1 And Not Ix_LocDist);
Mx_Sensor2 := (Ix_Sensor2 And Ix_LocDist) Or (MxP_Sensor2 And Not Ix_LocDist);
Mx_Sensor3 := (Ix_Sensor3 And Ix_LocDist) Or (MxP_Sensor3 And Not Ix_LocDist);
Mx_Sensor4 := (Ix_Sensor4 And Ix_LocDist) Or (MxP_Sensor4 And Not Ix_LocDist);
Mx_Sensor5 := (Ix_Sensor5 And Ix_LocDist) Or (MxP_Sensor5 And Not Ix_LocDist);
(* Marcas de pantalla *)
If Qx_Homogeneizar THEN
MtP_Tiempo_Homogen:= T_Homogenizar.ET;
else
MtP_Tiempo_Homogen:= t#0s;
END_IF;
(* Arranca Oscilador para animar el homegenizador cuando proceda.
Usamos un temporizador"T1", introducido como bloque DFB de tipo TON *)
T1 (IN := Qx_Homogeneizar And Not T1.Q, PT := t#500ms);
Mx_Osc1 := T1.ET>T#250ms;
260 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Selección
Problemas M340 - 261
Universidad de Oviedo
ISA - J. Alonso - I. Machón
262 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Llenado
Problemas M340 - 263
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Vaciado
264 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de operador
Problemas M340 - 265
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa mixto ST y SFC (pr0902b)
Preliminar
(* Inicialización de la pantalla de operador *)
If %S13 THEN
Set(MxP_Sensor0);
END_IF;
(* Marcas para el control Local-Distancia *)
Mx_PMezcla := (Ix_PMezcla And Ix_LocDist) Or (MxP_PMezcla And Not Ix_LocDist);
Mx_PEjecucion := (Ix_PEjecucion And Ix_LocDist) Or (MxP_PEjecucion And Not Ix_LocDist);
Mx_Sensor0 := (Ix_Sensor0 And Ix_LocDist) Or (MxP_Sensor0 And Not Ix_LocDist);
Mx_Sensor1 := (Ix_Sensor1 And Ix_LocDist) Or (MxP_Sensor1 And Not Ix_LocDist);
Mx_Sensor2 := (Ix_Sensor2 And Ix_LocDist) Or (MxP_Sensor2 And Not Ix_LocDist);
Mx_Sensor3 := (Ix_Sensor3 And Ix_LocDist) Or (MxP_Sensor3 And Not Ix_LocDist);
Mx_Sensor4 := (Ix_Sensor4 And Ix_LocDist) Or (MxP_Sensor4 And Not Ix_LocDist);
Mx_Sensor5 := (Ix_Sensor5 And Ix_LocDist) Or (MxP_Sensor5 And Not Ix_LocDist);
(* Marcas de pantalla *)
If S_Homogen.x THEN
MtP_Tiempo_Homogen:= S_Homogen.t;
else
MtP_Tiempo_Homogen:= t#0s;
END_IF;
(* ArrancaOscilador para animar el homegenizador cuando proceda.
Usamos un temporizador"T1", introducido como bloque DFB de tipo TON *)
T1 (IN := Qx_Homogeneizar And Not T1.Q, PT := t#500ms);
Mx_Osc1 := T1.ET>T#250ms;
(* Inhibición de la selección *)
Mx_Seleccion_Parada := FREEZECHART (Seleccion,Not S_Dep_vacio.x);
Mx_Flanco := RE (Mx_PMezcla);
(* Transiciones *)
Tr1 := Mx_PEjecucion AND NOT S_Ninguna.x And Mx_Sensor0;
Tr2 := 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;
Tr3 := S_Homogen.t> t#30s Or Qx_Mezcla0 Or Qx_Mezcla5;
266 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Chart “Seleccion”
(* Ninguna
mezcla
seleccionada
*)
Qx_Mezcla_4_1
Qx_Mezcla_5_0
Qx_Mezcla_3_2
Qx_Mezcla_2_3
Qx_Mezcla_1_4
Qx_Mezcla_0_5
E0
E1
E2
E3
E4
E5
E6
Mx_Flanco
Mx_Flanco
Mx_Flanco
Mx_Flanco
Mx_Flanco
Mx_Flanco
Mx_Flanco
Problemas M340 - 267
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Chart “Control”
Tran11_12 := E1.x and Mx_Sensor5 or E2.x and Mx_Sensor4 or
E3.x and Mx_Sensor3 or E4.x and Mx_Sensor2 or E5.x and
Mx_Sensor1 or E6.x and Mx_Sensor0;
Tran10_11 :=
Mx_PEjecucion AND NOT E0.x and
Mx_Sensor0;
Tran13_14 :=
S_Homogen.t>t#30s or
Mx_Mezcla0 or Mx_Mezcla5
Qx_Abrir_EvA
(* El depósito se encuentra
vacío *)
Qx_Homogeiniza
Qx_Abrir_EvC
Qx_Abrir_EvB
E10
E11
E12
E13
E14
Tran10_11
Tran11_12
Mx_Sensor5
Tran13_14
Mx_Sensor0
E10
268 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Salidas
Qx_Abrir_EvA := E11.x;
Qx_Abrir_EvB := E12.x;
Qx_Abrir_EvC := E14.x;
Qx_Homogeneizar := E13.x and not Ix_Termico;
Qx_Mezcla_5_0 := E1.x; (* mezcla 5:0 *)
Qx_Mezcla_4_1 := E2.x; (* mezcla 4:1 *)
Qx_Mezcla_3_2 := E3.x; (* mezcla 3:2 *)
Qx_Mezcla_2_3 := E4.x; (* mezcla 2:3 *)
Qx_Mezcla_1_4 := E5.x; (* mezcla 1:4 *)
Qx_Mezcla_0_5 := E6.x; (* mezcla 0:5 *)
Problemas M340 - 269
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Funciones MOVE y NOT
Función MOVE
"Esta función asigna el valor de entrada a la salida. Los tipos de datos del valor de entrada y salida deben ser
iguales.
NOTA: No es posible copiar una matriz de los elementos EBOOL mediante la función MOVE, ya que MOVE no
actualizará el historial de asignaciones de los elementos de matriz. Para copiar una matriz de elementos
EBOOL, utilice la función COPY_AREBOOL_AREBOOL.
Como parámetros adicionales se pueden configurar EN y ENO"
Representación en lenguaje FBD
Representación en lenguaje LD
Representación en lenguaje ST
Output := MOVE (Input);
Descripción de parámetros
Parámetros de entrada
Parámetro Tipo de datos Significado
Input ANY Valor de entrada
Parámetros de salida
Parámetro Tipo de datos Significado
Output ANY Valor de salida
270 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Función NOT
"Esta función devuelve el valor negado del valor de entrada"
Representación en lenguaje FBD
Representación en lenguaje LD
Representación en lenguaje ST
NegValue := NOT (Value);
Descripción de parámetros
Parámetros de entrada
Parámetro Tipo de datos Significado
Value BOOL, BYTE, WORD, DWORD Secuencia de bits de entrada
Parámetros de salida
Parámetro Tipo de datos Significado
NegValue BOOL, BYTE, WORD, DWORD Secuencia de bits de salida
Problemas M340 - 271
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 9.3 · Control de 2 bombas y su desgaste. EM y EF
Una estación de bombeo consta de dos bombas B1 y B2 (Qx_B1 y Qx_B2), las cuales deben funcionar de
manera alternada para evitar un desgaste excesivo de una respecto de otra.
El depósito que recoge los líquidos a evacuar está dotado de dos sensores de nivel, uno para determinar el
nivel mínimo (Ix_Nmin) y otro para determinar el nivel máximo (Ix_Nmax).
CONDICIONES INICIALES. El sistema parte de la condición de Paro: las bombas deben estar paradas y la luz
de paro activada.
ARRANQUE DE LAS BOMBAS. El sistema tiene dos modos de trabajo:
Marcha automática (Ix_MarAut), el arranque debe producirse de manera automática cuando se activa el
sensor de nivel máximo. Funcionará la bomba que menos tiempo de uso tenga.
Forzado manual también podremos hacer, mediante un pulsador(Ix_ForMan) que, estando el sistema
parado, o desactivadas las bombas en Marcha automática, arranque la bomba que le corresponda,
funcionando éstas hasta el vaciado del depósito y quedando luego en la situación de partida. Durante el
forzado manual, se activará, además de la luz que estuviese, la de forzado manual.
Si una vez arrancado la bomba correspondiente, el nivel máximo permanece 5 minutos sin desactivarse, debe
entrar en funcionamiento la otra bomba hasta que se desactive el sensor de nivel máximo.
PARADA DE LAS BOMBAS. La parada debe producirse cuando se activa el sensor de nivel mínimo quedando
en el modo de trabajo que estuviese.
Mediante un pulsador de Paro (Ix_Paro), también podremos hacer que las bombas en funcionamiento se
paren volviendo el sistema a las condiciones iniciales.
SECUENCIA DE BOMBEO. Cada bomba no debe funcionar más de quince minutos seguidos .
SEÑALIZACIÓN. Deberá existir una lámpara para indicar la condición de Paro, Marcha automática o Forzado
manual.
Nota: El diseño se ha hecho de forma tal que el depósito se puede evacuar siempre con una sóla
bomba.
El sensor de nivel máximo da un 1 lógico, cuando el agua esté en ese nivel o superior.
El sensor de nivel mínimo da un 1 lógico, cuando el agua esté en ese nivel o inferior.
El motor de las bombas tiene unas características de: Pm = 2,2 KW, Un = 400 V, cos φ=0,85 y  = 0,92.
Corriente de arranque 5 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante automático
y térmico.
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentación BMX CPS 2000, módulo de entradas PNP BMX DDI 1602 y de salidas PNP BMX DDO 1602.
Entradas:
Ix_Nmin
Ix_Nmax
Ix_MarAut
Ix_ForMan
Ix_Paro
Salidas:
Qx_B1
Qx_B2
Qx_LMarAut
Qx_LParo
Qx_LForMan
272 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de Mando
Esquema de fuerza
Problemas M340 - 273
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Motor Bombas
El motor de la compuerta tiene unas características de: Pm = 2,2 KW, Un = 400 V, cos φ=0,85 y  = 0,92.
Corriente de arranque 5 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante automático
y térmico.
Relés térmico F1 y F3
𝜂 =
𝑃𝑢
𝑃𝑒
=
𝑃𝑢
√3 𝑈𝑁 𝐼𝑁 cos 
𝐼𝑁 =
𝑃𝑢
√3 𝑈𝑁 cos  𝜂
=
2200
√3 400 0,85 0,92
= 4,1 𝐴
La corrientes que pasa por el térmico es
𝐼N = 4,1 𝐴
Teniendo en cuenta esta corriente, elegiremos el LRD-10.
Ajustaremos la corriente regulada a 4,1 A
Ia = 5 · IN = 5 · 4,1 = 20,5 A tiempo 5 segundos
Se observa que en clase 10, estará en el límite de la curva, si bien en la realidad tendrá un valor más favorable.
Escogeremos el LRD -10 clase 20
Automáticos Q1 y Q2
Cuando tengamos la corriente nominal, por el térmico estarán pasando los 4,1 A. Aguas arriba por el
automático estarán pasando los 4,1 A.
Para que haya selectividad, la corriente mínima del automático será: I = 1,6 * 4,1 = 6,56 A
Por tanto el calibre del automático elegido será el de 10A (valor normalizado por encima de 6,56 A).
274 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tensión nominal: 400 V 3 polos.
𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒
𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒
=
20,5
10
= 2,5 tiempo 5 segundos
La curva puede ser la C 10A
Diferencial F2 y F4
Se elige un Diferencial de calibre > 1,4 * 10 => 25A y sensibilidad 30 mA (p.e. el A9R81425 de Schneider)
Calibre de los contactores KM1 y KM2
Clase de servicio temporal.
Categoría de servicio: AC3.
Tensión de servicio: 400 V
Corriente de servicio: 𝐼N = 4,1 𝐴
Del catálogo de Telemecanique sería válido el calibre LC1-K06
Problemas M340 - 275
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Automático Q3
Selección de Q3. Teniendo en cuenta que el consumo de los contactores es de 70 VA | 7 VA
Debemos determinar la corriente mas desfavorable. Esta es cuando está activo un contactor y se llama a el
otro.
Corriente de mantenimiento => 7 / 230 = 0,03 A
Corriente de llamada Ia = 70 / 230 = 0,30 A
I = 0,3 + 0,03 = 0,33 A
Por tanto elegiremos el automático de calibre C1 que permitirá su paso sin problemas.
Tabla de variables
Instancias de bloques elementales:
276 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa mixto ST y FBD - (pr0903a)
Preliminar:
(*Inicialización de la pantalla de operador*)
If %S13 THEN
Set (MxP_Paro);
END_IF;
(*Memorias para la pantalla de operador*)
MxP_NivelMedio := Not Mx_Nmin And Not Mx_Nmax;
MxP_Bomba := Qx_B1 Or Qx_B2;
(* Memorias para el control local o a distancia *)
Mx_ForMan := (Ix_ForMan And Ix_LocDist) Or (MxP_ForMan And Not Ix_LocDist);
Mx_MarAut := (Ix_MarAut And Ix_LocDist) Or (MxP_MarAut And Not Ix_LocDist);
Mx_Paro := (Ix_Paro And Ix_LocDist) Or (MxP_Paro And Not Ix_LocDist);
Mx_Nmin := (Ix_Nmin And Ix_LocDist) Or (MxP_Nmin And Not Ix_LocDist);
Mx_Nmax := (Ix_Nmax And Ix_LocDist) Or (MxP_Nmax And Not Ix_LocDist);
Sección "Estado-Marcha"
Problemas M340 - 277
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "ControlDesgaste"
Sección "ControlActivación"
278 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "Salidas"
Problemas M340 - 279
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de explotación
Simulación en el panel modular de entrenamiento
280 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa mixto ST y SFC - (pr0903b)
Sección "Preliminar"
(*Inicialización de la pantalla de operador*)
If %S13 THEN
Set (MxP_PParo);
END_IF;
(*Marcas para el control Local-Distancia*)
Mx_ForMan := (Ix_ForMan And Ix_LocDist) Or (MxP_ForMan And Not Ix_LocDist);
Mx_MarAut := (Ix_MarAut And Ix_LocDist) Or (MxP_MarAut And Not Ix_LocDist);
Mx_Paro := (Ix_Paro And Ix_LocDist) Or (MxP_Paro And Not Ix_LocDist);
Mx_Nmin := (Ix_Nmin And Ix_LocDist) Or (MxP_Nmin And Not Ix_LocDist);
Mx_Nmax := (Ix_Nmax And Ix_LocDist) Or (MxP_Nmax And Not Ix_LocDist);
(*Parada. Mx_Paro estará a 1 mientras este pulsado el pulsador de Paro.
En esas condiciones quedará fija la etapa S_Paro y las transiciones inhabilitadas*)
Mx_EnParo := INITCHART (Control, Not Mx_Paro);
(*Una vez que se ha dejado de pulsar el pulsador de Paro, la etapa de Paro sigue activa pero las transiciones
(pulsar Marcha o ForMan) pueden hacer evolucionar el GRAFCET *)
(*Control del desgaste*)
(*si el valor del contador es superior a 1000 se debe usar la bomba 2. En caso contrario, la bomba 1 debe
ser utilizada*)
CONTADOR (CU:= Qx_B1 And %S6 And Not Qx_B2,
CD := Qx_B2 And %S6 And Not Qx_B1,
LD := %S13,
PV := 1000,
QU => Mx_TocaB2);
Mx_TocaB1 := Not Mx_TocaB2;
(*Marcas para la pantalla de operador*)
MxP_NivelMedio := not Mx_Nmin and not Mx_Nmax;
MxP_Bomba := Qx_B1 or Qx_B2;
MtP_B1_ON := E3.t;
MtP_B2_ON := E4.t;
if Mx_Nmax and not E0.x and E3.x then
MtP_Nmax := E3.t;
ELSIF Mx_Nmax and not E0.x and E4.x then
MtP_Nmax :=E4.t;
end_if;
Problemas M340 - 281
Universidad de Oviedo
ISA - J. Alonso - I. Machón
if not Mx_Nmax then
MtP_Nmax:=t#0s;
end_if;
Sección "Transiciones”
Tran1_2 := Mx_Nmax or Mx_ForMan;
Tran3_5 := Mx_Nmax and E3.t>t#10s;
Tran3_4 := E3.t>t#15s;
Tran4_3 := E4.t>t#15s;
Tran4_5 := Mx_Nmax and E4.t>t#10s;
Sección "Salidas"
if E0.x then
reset (Mx_EnMarAut);
reset (Mx_EnForMan);
end_if;
if E1.x then
reset (Mx_EnForMan);
set (Mx_EnMarAut);
end_if;
if E2.x and Mx_ForMan then
set (Mx_EnForMan);
end_if;
Qx_B1 := E3.x or E5.x;
Qx_B2 := E4.x or E5.x;
Qx_LParo := E0.x;
Qx_LForMan := Mx_EnForMan;
Qx_LMarAut := Mx_EnMarAut and not Mx_EnForMan;
282 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "Chart"
Tran4_5
Mx_Nmax and E4.t > t#5m
Tran4_3:=
E4.t > t#15m
Tran3_4:=
E3.t > t#15m
Tran3_5:=
Mx_Nmax and E3.t > t#5m
If E2.x and Mx_ForMan then
S Mx_EnForMan
Tran1_2 :=
Mx_Nmax or Mx_PForMan
S Mx_EnMarAut
R Mx_EnForMan
Qx_LParo
R Mx_EnMarAut
R Mx_EnForMan
Qx_B1 Qx_B2
Qx_B1
Qx_B2
E0
E1
E2
E3 E4
E5
Tran1_2
Mx_MarAut Mx_ForMan
Mx_TocaB1 Mx_TocaB2
Tran3_4
Tran3_5
Mx_Nmin Tran4_3 Tran4_5 Mx_Nmin
not Mx_Nmax
E1 E1
E2
Problemas M340 - 283
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 9.4 · Proceso de electrólisis
El proceso que se quiere automatizar consiste en el procedimiento para el tratamiento de superficies, con el
fin de hacerlas resistentes a la oxidación.
El sistema constará de tres baños:
 Primer baño para el desengrasado de las piezas.
 Segundo baño para el aclarado de las piezas.
 Tercer baño donde se les dará el baño electrolítico.
La grúa introducirá la jaula portadora de las piezas a tratar en cada uno de los baños, comenzando por el de
desengrasado, a continuación en el de aclarado y por último les dará el baño electrolítico; en este último, la
grúa debe permanecer 5 segundos para conseguir una uniformidad de las piezas tratadas.
El ciclo se inicia al presionar el pulsador de marcha; la primera acción a realizar es la subida de la grúa; cuando
toca el final de carrera FC2, la grúa comenzará a avanzar, hasta llegar al FC4, en dicho punto la grúa desciende;
una vez que toca el FC1, la grúa vuelve a ascender, hasta tocar de nuevo el FC2, momento en el cual la grúa
vuelve a avanzar, hasta alcanzar la posición de FC5, momento en el cual se repiten los movimientos de
descenso y ascenso de la grúa; cuando la grúa esté de nuevo arriba avanza hasta FC6; vuelve a bajar y cuando
toca FC1, se conecta el proceso de electrólisis.
Cuando ha pasado el tiempo fijado, se desconecta el proceso de electrólisis, y la grúa comienza a ascender
hasta que toca FC2, Al llegar a este punto, la grúa inicia el movimiento de retroceso, hasta llegar al FC3,
momento en el cual volverá a descender hasta activar el FC1.
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%), módulo mixto de entradas salidas BMX DDM
3202K.
FC1
Jaula
FC2
M1: Motor de desplazamiento a izquierda o derecha de la jaula
M2: Motor de subida o bajada de la jaula
Depósito de
desengrase
Depósito de
aclarado
Depósito
electrolítico
FC3 FC4 FC5 FC6
284 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de variables
Instancias de bloques elementales:
Problemas M340 - 285
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en FBD ( pr0904a )
Sección "Preliminar"
(*Marcas para la pantalla de operador*)
IF %S13 then
set (MxP_FC3); set (MxP_FC1);
END_IF;
MtP_TiempoElectrolisis := TON_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_MotSubir;
MxP_FC1_FC4_Sub := Mx_FC1 and Mx_FC4 and Qx_MotSubir;
MxP_FC1_FC5_Sub := Mx_FC1 and Mx_FC5 and Qx_MotSubir;
MxP_FC1_FC6_Sub := Mx_FC1 and Mx_FC6 and Qx_MotSubir;
MxP_FC2_FC3 := Mx_FC2 and Mx_FC3;
MxP_FC2_FC4 := Mx_FC2 and Mx_FC4;
MxP_FC2_FC5 := Mx_FC2 and Mx_FC5;
MxP_FC2_FC6 := Mx_FC2 and Mx_FC6;
MxP_FC2_FC3_Baj := Mx_FC2 and Mx_FC3 and Qx_MotBajar;
MxP_FC2_FC4_Baj := Mx_FC2 and Mx_FC4 and Qx_MotBajar;
MxP_FC2_FC5_Baj := Mx_FC2 and Mx_FC5 and Qx_MotBajar;
MxP_FC2_FC6_Bbaj := Mx_FC2 and Mx_FC6 and Qx_MotBajar;
MxP_FC2_FC3_Dcha := Mx_FC2 and Mx_FC3 and Qx_MotDcha;
MxP_FC2_FC4_Dcha := Mx_FC2 and Mx_FC4 and Qx_MotDcha;
MxP_FC2_FC5_Dcha := Mx_FC2 and Mx_FC5 and Qx_MotDcha;
MxP_FC2_FC4_Izda := Mx_FC2 and Mx_FC4 and Qx_MotIzda;
MxP_FC2_FC5_Izda := Mx_FC2 and Mx_FC5 and Qx_MotIzda;
MxP_FC2_FC6_Izda := Mx_FC2 and Mx_FC6 and Qx_MotIzda;
MxP_NoFC1FC2_FC3 := not Mx_FC1 and not Mx_FC2 and Mx_FC3;
MxP_NoFC1FC2_FC3_Sub := not Mx_FC1 and not Mx_FC2 and Mx_FC3 and Qx_MotSubir;
MxP_NoFC1FC2_FC3_Baj := not Mx_FC1 and not Mx_FC2 and Mx_FC3 and Qx_MotBajar;
MxP_NoFC1FC2_FC4 := not Mx_FC1 and not Mx_FC2 and Mx_FC4;
MxP_NoFC1FC2_FC4_Sub := not Mx_FC1 and not Mx_FC2 and Mx_FC4 and Qx_MotSubir;
MxP_NoFC1FC2_FC4_Baj := not Mx_FC1 and not Mx_FC2 and Mx_FC4 and Qx_MotBajar;
MxP_NoFC1FC2_FC5 := not Mx_FC1 and not Mx_FC2 and Mx_FC5;
MxP_NoFC1FC2_FC5_Sub := not Mx_FC1 and not Mx_FC2 and Mx_FC5 and Qx_MotSubir;
MxP_NoFC1FC2_FC5_Baj := not Mx_FC1 and not Mx_FC2 and Mx_FC5 and Qx_MotBajar;
286 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
MxP_NoFC1FC2_FC6 := not Mx_FC1 and not Mx_FC2 and Mx_FC6;
MxP_NoFC1FC2_FC6_Sub := not Mx_FC1 and not Mx_FC2 and Mx_FC6 and Qx_MotSubir;
MxP_NoFC1FC2_FC6_Baj := not Mx_FC1 and not Mx_FC2 and Mx_FC6 and Qx_MotBajar;
if MxP_FC2_FC3_Dcha or MxP_FC2_FC4_Izda then
set (MxP_T1);
end_if;
if MxP_FC2_FC3_Baj or MxP_FC2_FC4_Dcha then
reset (MxP_T1);
end_if;
if MxP_FC2_FC4_Dcha or MxP_FC2_FC5_Izda then
set (MxP_T2);
end_if;
if MxP_FC2_FC4_Izda or MxP_FC2_FC5_Dcha then
reset (MxP_T2);
end_if;
if MxP_FC2_FC6_Izda or MxP_FC2_FC5_Dcha then
set (MxP_T3);
end_if;
if MxP_FC2_FC6_Bbaj or MxP_FC2_FC5_Izda then
reset (MxP_T3);
end_if;
MxP_NoFC3FC4_Dcha := MxP_T1 and Qx_MotDcha and not MxP_FC2_FC3 and not MxP_FC2_FC4;
MxP_NoFC4FC5_Dcha := MxP_T2 and Qx_MotDcha and not MxP_FC2_FC4 and not MxP_FC2_FC5;
MxP_NoFC5FC6_Dcha := MxP_T3 and Qx_MotDcha and not MxP_FC2_FC5 and not MxP_FC2_FC6;
MxP_NoFC3FC4_Izda := MxP_T1 and Qx_MotIzda and not MxP_FC2_FC3 and not MxP_FC2_FC4;
MxP_NoFC4FC5_Izda := MxP_T2 and Qx_MotIzda and not MxP_FC2_FC4 and not MxP_FC2_FC5;
MxP_NoFC5FC6_Izda := MxP_T3 and Qx_MotIzda and not MxP_FC2_FC5 and not MxP_FC2_FC6;
MxP_NoFC3FC4 := MxP_NoFC3FC4_Dcha or MxP_NoFC3FC4_Izda;
MxP_NoFC4FC5 := MxP_NoFC4FC5_Dcha or MxP_NoFC4FC5_Izda;
MxP_NoFC5FC6 := MxP_NoFC5FC6_Dcha or MxP_NoFC5FC6_Izda;
(* Inicia variables*)
Mx_Marcha := (Ix_Marcha and Ix_LocDist) or (MxP_Marcha and not Ix_LocDist);
Mx_Paro := (Ix_Paro and Ix_LocDist) or (MxP_Paro and not Ix_LocDist);
Mx_Rearme := (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist);
Mx_FC1 := (Ix_FC1 and Ix_LocDist) or (MxP_FC1 and not Ix_LocDist);
Problemas M340 - 287
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Mx_FC2 := (Ix_FC2 and Ix_LocDist) or (MxP_FC2 and not Ix_LocDist);
Mx_FC3 := (Ix_FC3 and Ix_LocDist) or (MxP_FC3 and not Ix_LocDist);
Mx_FC4 := (Ix_FC4 and Ix_LocDist) or (MxP_FC4 and not Ix_LocDist);
Mx_FC5 := (Ix_FC5 and Ix_LocDist) or (MxP_FC5 and not Ix_LocDist);
Mx_FC6 := (Ix_FC6 and Ix_LocDist) or (MxP_FC6 and not Ix_LocDist);
Sección "Control"
288 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 289
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de Operador con sus elementos
290 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de Operador en funcionamiento
Problemas M340 - 291
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en SFC ( pr0904b )
Vamos a añadir un pulsador de Paro que parará el proceso hasta que se pulse de nuevo Marcha, en ese
momento el proceso continuará donde estaba. Si se pulsa Rearme, el sistema irá a Condiciones Iniciales.
Sección "Simulacion"
(*Marcas para la pantalla de operador*)
If %S13 then
set (MxP_Paro); set (MxP_FC4); set (MxP_FC2); (*lo sitúa de mano abajo y en FC4*)
end_if;
MtP_TiempoElectrolisis := E10.t;
MxP_FC1_FC3 :=Mx_FC1 and Mx_FC3;
MxP_FC1_FC4 :=Mx_FC1 and Mx_FC4;
MxP_FC1_FC5 :=Mx_FC1 and Mx_FC5;
MxP_FC1_FC6 :=Mx_FC1 and Mx_FC6;
MxP_FC1_FC3_Sub := Mx_FC1 and Mx_FC3 and Qx_MotSubir;
MxP_FC1_FC4_Sub := Mx_FC1 and Mx_FC4 and Qx_MotSubir;
MxP_FC1_FC5_Sub := Mx_FC1 and Mx_FC5 and Qx_MotSubir;
MxP_FC1_FC6_Sub := Mx_FC1 and Mx_FC6 and Qx_MotSubir;
MxP_FC2_FC3 :=Mx_FC2 and Mx_FC3;
MxP_FC2_FC4 :=Mx_FC2 and Mx_FC4;
MxP_FC2_FC5 :=Mx_FC2 and Mx_FC5;
MxP_FC2_FC6 :=Mx_FC2 and Mx_FC6;
MxP_FC2_FC3_Baj := Mx_FC2 and Mx_FC3 and Qx_MotBajar;
MxP_FC2_FC4_Baj := Mx_FC2 and Mx_FC4 and Qx_MotBajar;
MxP_FC2_FC5_Baj := Mx_FC2 and Mx_FC5 and Qx_MotBajar;
MxP_FC2_FC6_Baj := Mx_FC2 and Mx_FC6 and Qx_MotBajar;
MxP_FC2_FC3_Dcha := Mx_FC2 and Mx_FC3 and Qx_MotDcha;
MxP_FC2_FC4_Dcha := Mx_FC2 and Mx_FC4 and Qx_MotDcha;
MxP_FC2_FC5_Dcha := Mx_FC2 and Mx_FC5 and Qx_MotDcha;
MxP_FC2_FC4_Izda := Mx_FC2 and Mx_FC4 and Qx_MoIzda;
MxP_FC2_FC5_Izda := Mx_FC2 and Mx_FC5 and Qx_MoIzda;
MxP_FC2_FC6_Izda := Mx_FC2 and Mx_FC6 and Qx_MoIzda;
MxP_NoFC1FC2_FC3 := not Mx_FC1 and not Mx_FC2 and Mx_FC3;
MxP_NoFC1FC2_FC3_Sub := not Mx_FC1 and not Mx_FC2 and Mx_FC3 and Qx_MotSubir;
MxP_NoFC1FC2_FC3_Baj := not Mx_FC1 and not Mx_FC2 and Mx_FC3 and Qx_MotBajar;
MxP_NoFC1FC2_FC4 := not Mx_FC1 and not Mx_FC2 and Mx_FC4;
MxP_NoFC1FC2_FC4_Sub := not Mx_FC1 and not Mx_FC2 and Mx_FC4 and Qx_MotSubir;
MxP_NoFC1FC2_FC4_Baj := not Mx_FC1 and not Mx_FC2 and Mx_FC4 and Qx_MotBajar;
MxP_NoFC1FC2_FC5 := not Mx_FC1 and not Mx_FC2 and Mx_FC5;
MxP_NoFC1FC2_FC5_Sub := not Mx_FC1 and not Mx_FC2 and Mx_FC5 and Qx_MotSubir;
MxP_NoFC1FC2_FC5_Baj := not Mx_FC1 and not Mx_FC2 and Mx_FC5 and Qx_MotBajar;
MxP_NoFC1FC2_FC6 := not Mx_FC1 and not Mx_FC2 and Mx_FC6;
MxP_NoFC1FC2_FC6_Sub := not Mx_FC1 and not Mx_FC2 and Mx_FC6 and Qx_MotSubir;
292 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
MxP_NoFC1FC2_FC6_Baj := not Mx_FC1 and not Mx_FC2 and Mx_FC6 and Qx_MotBajar;
if MxP_FC2_FC3_Dcha or MxP_FC2_FC4_Izda then
set (MxP_T1);
end_if;
if MxP_FC2_FC3_Baj or MxP_FC2_FC4_Dcha then
reset (MxP_T1);
end_if;
if MxP_FC2_FC4_Dcha or MxP_FC2_FC5_Izda then
set (MxP_T2);
end_if;
if MxP_FC2_FC4_Izda or MxP_FC2_FC5_Dcha then
reset (MxP_T2);
end_if;
if MxP_FC2_FC6_Izda or MxP_FC2_FC5_Dcha then
set (MxP_T3);
end_if;
if MxP_FC2_FC6_Baj or MxP_FC2_FC5_Izda then
reset (MxP_T3);
end_if;
MxP_NoFC3FC4_Dcha := MxP_T1 and Qx_MotDcha and not MxP_FC2_FC3 and not MxP_FC2_FC4;
MxP_NoFC4FC5_Dcha := MxP_T2 and Qx_MotDcha and not MxP_FC2_FC4 and not MxP_FC2_FC5;
MxP_NoFC5FC6_Dcha := MxP_T3 and Qx_MotDcha and not MxP_FC2_FC5 and not MxP_FC2_FC6;
MxP_NoFC3FC4_Izda : = MxP_T1 and Qx_MoIzda and not MxP_FC2_FC3 and not MxP_FC2_FC4;
MxP_NoFC4FC5_Izda := MxP_T2 and Qx_MoIzda and not MxP_FC2_FC4 and not MxP_FC2_FC5;
MxP_NoFC5FC6_Izda := MxP_T3 and Qx_MoIzda 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;
Sección "Preliminar"
(* Inicia Variables*)
Mx_Marcha := (Ix_Marcha and Ix_LocDist) or (MxP_Marcha and not Ix_LocDist);
Mx_Paro := (Ix_Paro and Ix_LocDist) or (MxP_Paro and not Ix_LocDist);
Mx_Rearme := (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist);
Mx_FC1 := (Ix_FC1 and Ix_LocDist) or (MxP_FC1 and not Ix_LocDist);
Mx_FC2 := (Ix_FC2 and Ix_LocDist) or (MxP_FC2 and not Ix_LocDist);
Mx_FC3 := (Ix_FC3 and Ix_LocDist) or (MxP_FC3 and not Ix_LocDist);
Mx_FC4 := (Ix_FC4 and Ix_LocDist) or (MxP_FC4 and not Ix_LocDist);
Mx_FC5 := (Ix_FC5 and Ix_LocDist) or (MxP_FC5 and not Ix_LocDist);
Mx_FC6 := (Ix_FC6 and Ix_LocDist) or (MxP_FC6 and not Ix_LocDist);
Tran0_1 := Mx_FC1 and Mx_FC3 and Mx_Marcha;
Tran10_11 := E10.t>t#5s;
Problemas M340 - 293
Universidad de Oviedo
ISA - J. Alonso - I. Machón
(*Rearme y parada*)
Mx_PonCI := CLEARCHART (Control,Re(Mx_Rearme));
if Mx_PonCI then
setstep (E11);
end_if;
if not Mx_Paro then
set (Mx_EnParada);
end_if;
if Mx_EnParada then
Mx_SequenceFreezed := FREEZECHART (Control,true);
else Mx_SequenceFreezed := FREEZECHART (Control,false);
end_if;
if Mx_Marcha then
reset (Mx_EnParada);
end_if;
Sección "Salidas"
Qx_MotSubir := (E1.x or E4.x or E7.x or E11.x) and not Mx_EnParada;
Qx_MotBajar := (E3.x or E6.x or E9.x or E13.x) and not Mx_EnParada;
Qx_MotDcha := (E2.x or E5.x or E8.x) and not Mx_EnParada;
Qx_MoIzda := E12.x and not Mx_EnParada;
Pantalla de Operador
294 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "CHART"
Tran10_11 :=
E10.t > t#5s
Tran0_1 :=
Mx_FC1 and Mx_FC3 and
Mx_Marcha;
Qx_MotSubir
Qx_MotBajar
Qx_MotSubir
(* en electrolisis *)
Qx_MotDcha
Qx_MotSubir
Qx_MotDcha
Qx_MotDcha
Qx_MotIzda
(* proceso parado*)
Qx_MotBajar
Qx_MotBajar Qx_MotBajar
Qx_MotSubir
E0
E1
E2
E3
E4
E5
E6
E7
E8
E9
E10
E11
E12
E13
Tran0_1
Mx_FC2
Mx_FC4
Mx_FC1
Mx_FC2
Mx_FC5
Mx_FC1
Mx_FC2
Mx_FC6
Mx_FC1
Tran10_11
Mx_FC2
Mx_FC3
Mx_FC1
E7 E0
Problemas M340 - 295
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 9.5 · Control de un túnel de lavado
Se desea automatizar una estación de lavado de vehículos. La estación consta de 4 puestos por los que irá
pasando sucesivamente los vehículos.
El sistema se llevará a Condiciones Iniciales Condiciones Iniciales, pulsando el rearme (Ix_Rearme) NA. En
estas condiciones, la cinta estará parada, la barrera levantada y el semáforo en verde (Qx_LVerde),
permitiéndose evolucionar al sistema.
Una vez puesta en CI, cuando se accione el pulsador de marcha (Ix_Marcha), la cinta transportadora será
activada (Qx_Cinta) y los vehículos pasarán sucesivamente por los puestos de mojado, detergente, cepillado
y aclarado, y, por último por el de secado.
Habrá unas barreras fotoeléctricas (Ix_Fn) de tipo PNP 3 hilos, que permitirán activar y desactivar los distintos
puestos.
Cuando se activa la célula fotoeléctrica 1 (Ix_F1), se activa el puesto 1 (Qx_Mojado). Cuando se active la
Ix_F2 y la Ix_F1 no esté activada (no hay un segundo vehículo) se desactiva el puesto 1.
Cuando se active Ix_F2 se activará el puesto de detergente (Qx_Detergente). Cuando se active la Ix_F3 y la
Ix_F2 esté desactivada, se desactivará el puesto de detergente.
Cuando se active Ix_F3 entrará en funcionamiento el puesto de cepillado y aclarado (Qx_CepiAclarado).
Cuando se active la Ix_F4 y la Ix_F3 esté desactivada, se desactivará el puesto de cepillado y aclarado.
Una vez que se ha activado la fotocélula 4 (Ix_F4), comenzará a funcionar el puesto de secado (Qx_Secado),
desactivándose cuando se conecte la Ix_F5 y la fotocélula 4 (Ix_F4) esté desactivada.
La barrera, en condiciones normales, deberá estar levantada y el semáforo en verde. Cuando en la estación
se detecte que hay 4 vehículos, uno en cada puesto, la barrera deberá bajar y el semáforo se pondrá en rojo
(Qx_LRoja), indicando que no se puede pasar.
Tanto la barrera como el semáforo permanecerán en éstas condiciones hasta que se detecte que los cuatro
vehículos han abandonado la estación, momento en el cual, el semáforo se pondrá en verde (Qx_LVerde), la
cinta parará y la barrera se levantará, pudiendo la estación admitir de nuevo coches para el lavado cuando
se vuelva a pulsar Marcha.
Se dispondrá de una seta de emergencia NC que permitirá parar todo el sistema (Ix_SetaEme). Si se ha
activado esta parada de emergencia, se deberá pulsar el rearme para poder evolucionar de nuevo.
296 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente
de alimentación BMX CPS 2000 (24VDC 60W, eficiencia del 84%), módulo mixto de entradas
salidas BMX DDM3202K.
Se pide:
 Programa de Mando.
Programa en ST (pr0905)
Tabla de variables
Problemas M340 - 297
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "Preliminar"
(* Marcas para la PANTALLA de OPERADOR *)
If %S13 then
Set (MxP_SetaEme); Set (MxP_FCC);
Set (Mx_Mensaje1); (* Indica que se pulse Rearme *)
END_IF;
MxP_F1FCC := Mx_F1 and Mx_FCC;
MxP_F1FCA := Mx_F1 and Mx_FCA;
MxP_FCCnoF1 := Mx_FCC and not Mx_F1;
MxP_BSemiab := Not Mx_FCC and not Mx_FCA;
MxP_F1BSemiab := Mx_F1 and Not Mx_FCC and not Mx_FCA;
If Mx_PEv and Mx_FCA and not Qx_Cinta then
Set (Mx_Mensaje2);
ELSE Reset (Mx_Mensaje2); (* Indica que se pulse Marcha *)
END_IF;
(* Memorias para el control Local o a Distancia *)
Mx_Rearme := (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist);
Mx_Marcha := (Ix_Marcha and Ix_LocDist) or (MxP_Marcha and not Ix_LocDist);
Mx_SetaEme := (Ix_SetaEme and Ix_LocDist) or (MxP_SetaEme and not Ix_LocDist);
Mx_F1 := (Ix_F1 and Ix_LocDist) or (MxP_F1 and not Ix_LocDist);
Mx_F2 := (Ix_F2 and Ix_LocDist) or (MxP_F2 and not Ix_LocDist);
Mx_F3 := (Ix_F3 and Ix_LocDist) or (MxP_F3 and not Ix_LocDist);
Mx_F4 := (Ix_F4 and Ix_LocDist) or (MxP_F4 and not Ix_LocDist);
Mx_F5 := (Ix_F5 and Ix_LocDist) or (MxP_F5 and not Ix_LocDist);
Mx_FCA := (Ix_FCA and Ix_LocDist) or (MxP_FCA and not Ix_LocDist);
Mx_FCC := (Ix_FCC and Ix_LocDist) or (MxP_FCC and not Ix_LocDist);
(* Programa principal *)
If RE (Mx_Rearme) then
set (Mx_PonCI); reset (Mx_PEv); Reset (Mx_Mensaje1); (* Indica que se pulse Rearme *)
end_if;
if Mx_PonCI then
SR_Inicializar(); (* abre la barrera y activa Mx_PEv *)
end_if;
if not Mx_SetaEme then
reset (Mx_PEv);
end_if;
(* Control de la cinta *)
if Mx_Marcha and Mx_PEv then
set (Qx_Cinta);
end_if;
if (not Qx_Mojado and not Qx_Detergente and not Qx_CepiAclarado and not Qx_Secado and Mx_F5) or not
Mx_SetaEme or Mx_Rearme then
reset (Qx_Cinta);
end_if;
298 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
(* Control del puesto de mojado *)
if Qx_Cinta and Mx_F1 then
set (Qx_Mojado);
end_if;
if (Mx_F2 and not Mx_F1) or not Mx_SetaEme then
reset (Qx_Mojado);
end_if;
(* Control del puesto de detergente *)
if Qx_Cinta and Mx_F2 then
set (Qx_Detergente);
end_if;
if (Mx_F3 and not Mx_F2) or not Mx_SetaEme then
reset (Qx_Detergente);
end_if;
(* Control del puesto de cepillado-aclarado *)
if Qx_Cinta and Mx_F3 then
set (Qx_CepiAclarado);
end_if;
if (Mx_F4 and not Mx_F3) or not Mx_SetaEme then
reset (Qx_CepiAclarado);
end_if;
(* Control del puesto de secado *)
if Qx_Cinta and Mx_F4 then
set (Qx_Secado);
end_if;
if (Mx_F5 and not Mx_F4) or not Mx_SetaEme then
reset (Qx_Secado);
end_if;
(* Puestos LLENOS *)
If Qx_Mojado and Qx_Detergente and Qx_CepiAclarado and Qx_Secado then
set (Mx_Lleno);
end_if;
If not Qx_Cinta then
reset (Mx_Lleno); (* cuando se vaciaron los puestos se desactivó la cinta *)
end_if;
(* Control de la barrera *)
if Mx_Lleno then
set (Qx_Bajar);
end_if;
if Mx_FCC then
reset (Qx_Bajar);
end_if;
Problemas M340 - 299
Universidad de Oviedo
ISA - J. Alonso - I. Machón
if not Mx_Lleno and Mx_Pev then
set (Qx_Subir);
end_if;
if Mx_FCA then
reset (Qx_Subir);
end_if;
(* Control del semáforo *)
Qx_LRoja:= not Mx_FCA;
Qx_LVerde:= not Qx_LRoja;
Subrutina "Inicializar"
If Not (Mx_Fca) THEN
Set (Qx_Subir);
END_IF;
If Mx_Fca THEN
Reset (Qx_subir);
Set (Mx_PEv);
Reset (Mx_ponCi);
END_IF;
Pantalla de operador
300 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en SFC (pr0905B)
Este problema no se puede abordar con un único GRAFCET
para implementar la automatización. Sería imposible recoger
todos los casos que se pueden presentar.
Lo abordaremos con un GRAFCET de control y un GRAFCET para
cada uno de los puestos de trabajo.
Sección "Simulación"
(* Marcas para la PANTALLA de OPERADOR *)
If %S13 then
Set (MxP_SetaEme); Set (MxP_FCC);
Set (Mx_Mensaje1); (* Indica que se pulse Rearme *)
Mx_BorraCharts := CLEARCHART (Puestos, RE (Mx_Rearme));
END_IF;
MxP_F1FCC := Mx_F1 and Mx_FCC;
MxP_F1FCA := Mx_F1 and Mx_FCA;
MxP_FCCnoF1 := Mx_FCC and not Mx_F1;
MxP_BSemiab := Not Mx_FCC and not Mx_FCA;
MxP_F1BSemiab := Mx_F1 and Not Mx_FCC and not Mx_FCA;
If E1.x then
Set (Mx_Mensaje2);
else Reset (Mx_Mensaje2); (* Indica que se pulse Marcha *)
End_if;
Sección "Preliminar"
(* Memorias para el control local o a distancia *)
Mx_Rearme := (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist);
Mx_Marcha := (Ix_Marcha and Ix_LocDist) or (MxP_Marcha and not Ix_LocDist);
Mx_SetaEme := (Ix_SetaEme and Ix_LocDist) or (MxP_SetaEme and not Ix_LocDist);
Mx_F1 := (Ix_F1 and Ix_LocDist) or (MxP_F1 and not Ix_LocDist);
Mx_F2 := (Ix_F2 and Ix_LocDist) or (MxP_F2 and not Ix_LocDist);
Mx_F3 := (Ix_F3 and Ix_LocDist) or (MxP_F3 and not Ix_LocDist);
Mx_F4 := (Ix_F4 and Ix_LocDist) or (MxP_F4 and not Ix_LocDist);
Problemas M340 - 301
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Mx_F5 := (Ix_F5 and Ix_LocDist) or (MxP_F5 and not Ix_LocDist);
Mx_FCA := (Ix_FCA and Ix_LocDist) or (MxP_FCA and not Ix_LocDist);
Mx_FCC := (Ix_FCC and Ix_LocDist) or (MxP_FCC and not Ix_LocDist);
(* Programa principal *)
Mx_PonCI := CLEARCHART (Control, RE (Mx_Rearme));
Mx_PonCI := CLEARCHART (Puestos, RE (Mx_Rearme));
If RE (Mx_Rearme) then
Reset (Mx_Mensaje1); (* Indica que se pulse Rearme *)
end_if;
if Mx_PonCI then
SR_Inicializar(); (* abre la barrera *)
end_if;
if Mx_PuestoCI and not Mx_Rearme then
resetstep (E0);
setstep (E1);
Mx_IniciaPuestos := INITCHART (Puestos, true);
reset (Mx_PuestoCI);
end_if;
(* Activación de la Seta de Emergencia *)
Mx_BorraCharts := CLEARCHART (Control, not Mx_SetaEme);
Mx_BorraCharts := CLEARCHART (Puestos, not Mx_SetaEme);
Sección SFC "Puestos"
Tran30_31 :=
Qx_Cinta and
Mx_F3;
Tran20_21 :=
Qx_Cinta and
Mx_F2;
Qx_Secado
Qx_Mojado
Tran10_11 :=
Qx_Cinta and
Mx_F1;
Tran31_30 :=
Mx_F4 and not
Mx_F3;
Qx_Detergente
Tran21_20 :=
Mx_F3 and not
Mx_F2;
Tran41_40 :=
Mx_F5 and not
Mx_F4;
Qx_CepiAclarado
Tran40_41 :=
Qx_Cinta and
Mx_F4;
Tran11_10 :=
Mx_F2 and not
Mx_F1;
E10
Tran10_11
E11
Tran11_10
E20
Tran20_21
E21
Tran21_20
E30
Tran30_31
E31
Tran31_30
E40
Tran40_41
E41
Tran41_40
302 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección SFC "Control"
Sección "Salidas"
Qx_LRoja := not Mx_FCA;
Qx_LVerde := not Qx_LRoja;
Qx_Cinta := E2.x or E3.x or E4.x;
Qx_Subir := E5.x or Mx_Subir;
Qx_Bajar := E3.x;
Qx_Mojado := E11.x;
Qx_Detergente := E21.x;
Qx_CepiAclarado := E31.x;
Qx_Secado := E41.x;
Tran4_5 :=
Not Qx_Mojado and Not Qx_Detergente and Not
Qx_CepiAclarado and Not Qx_Secado and Mx_F5;
Tran2_1 :=
Not Qx_Mojado and not Qx_Detergente and not
Qx_CepiAclarado and not Qx_Secado and
Mx_F5;
Qx_Cinta
Qx_Cinta
Qx_Cinta
Qx_Bajar
Qx_Subir
Tran2_3 :=
Qx_Mojado and Qx_Detergente
and Qx_CepiAclarado and
Qx_Secado;
E0
False
E1
Mx_Marcha
E2
E3
Mx_FCC
E4
Tran4_5
E5
Mx_FCA
Tran2_3 Tran2_1
E1
Problemas M340 - 303
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "Transiciones"
(* Cuando se desactivan todos los puestos y sale el último coche, indicado por F5, se para la cinta *)
Tran2_1 := Not Qx_Mojado and not Qx_Detergente and not Qx_CepiAclarado and not Qx_Secado and Mx_F5;
Tran2_3 := Qx_Mojado and Qx_Detergente and Qx_CepiAclarado and Qx_Secado;
Tran4_5 := Not Qx_Mojado and Not Qx_Detergente and Not Qx_CepiAclarado and Not Qx_Secado and
Mx_F5;
Tran10_11 := Qx_Cinta and Mx_F1;
Tran11_10 := Mx_F2 and not Mx_F1;
Tran20_21 := Qx_Cinta and Mx_F2;
Tran21_20 := Mx_F3 and not Mx_F2;
Tran30_31 := Qx_Cinta and Mx_F3;
Tran31_30 := Mx_F4 and not Mx_F3;
Tran40_41 := Qx_Cinta and Mx_F4;
Tran41_40 := Mx_F5 and not Mx_F4;
Subrutina "Inicializar"
if not (Mx_FCA) then
set(Mx_Subir);
end_if;
if Mx_FCA then
reset (Mx_subir);
set (Mx_PuestoCI);
reset (Mx_PonCI);
end_if;
Pantalla de
operador
304 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 305
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 9.7 · Control de un paso a nivel
Se desea automatizar el paso a nivel indicado en la figura de forma tal que cumpla:
1. Cuando un tren accione el sensor Ix_S_Izda o Ix_S_Dcha debe iniciarse, con una frecuencia de oscilación
de 2 Hz, el apagado y encendido de las luces de los semáforos Sc1 y Sc2 (Qx_LSemCoche11,
Qx_LSemCoche12, Qx_LSemCoche21 y Qx_LSemCoche22 ), permaneciendo en esta situación durante
20 segundos, transcurridos estos, deben bajarse las barreras B1 y B2 (Qx_MotBajB1 y Qx_MotBajB2) .
Quedando entonces los semáforos Sc1 y Sc2 en luz roja fija.
2. Una vez que las barreras se hallan bajado debe procederse al encendido de la luz verde del semáforo St1
( Qx_LSemTr1V ) o St2 ( Qx_LSemTr2V ) (según proceda), para que el tren pueda proseguir su marcha.
Cuando abandone el sensor opuesto por el que entró, deberá proceder a dar la orden de elevación de
las barreras (Qx_MotSubB1 y Qx_MotSubB2), situar el semáforo St1 y St2 en rojo ( Qx_LSemTr1R y
Qx_LSemTr2R ) y desconectar Sc1 y Sc2, restableciendo las condiciones iniciales.
3. Si por accidente no se cerrara una barrera o se quedara un automóvil en la vía ( que detectaría el sensor
Ix_S_Coche NC), las barreras no se bajarán y el semáforo St1 y St2 permanecerán en rojo hasta que
desaparezca la situación que lo provocó.
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%), módulo mixto de entradas
salidas BMX DDM3202K.
B2
S_dcha
St1
Fcc_b1
Fca_b1
Fcc_b2
Fca_b2
Sc2
Sc1
St2
S_coche
S_izda
B1
306 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de variables
Problemas M340 - 307
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa mixto ST y FBD (pr0907a)
Preliminar
(*Inicialización de la pantalla de operador*)
If %S13 THEN
set (MxP_S_Coche); set (MxP_FCA_B1); set (MxP_FCA_B2);
END_IF;
(*Marcas para el control Local-Distancia*)
Mx_SIzda := (Ix_S_Izda and Ix_LocDist) or (MxP_S_Izda and not Ix_LocDist);
Mx_SDcha := (Ix_S_Dcha and Ix_LocDist) or (MxP_S_Dcha and not Ix_LocDist);
Mx_FCA_B1 := (Ix_FCA_B1 and Ix_LocDist) or (MxP_FCA_B1 and not Ix_LocDist);
Mx_FCC_B2 := (Ix_FCC_B2 and Ix_LocDist) or (MxP_FCC_B2 and not Ix_LocDist);
Mx_FCA_B2 := (Ix_FCA_B2 and Ix_LocDist) or (MxP_FCA_B2 and not Ix_LocDist);
Mx_FCC_B1 := (Ix_FCC_B1 and Ix_LocDist) or (MxP_FCC_B1 and not Ix_LocDist);
Mx_SCoche := (Ix_S_Coche and Ix_LocDist) or (MxP_S_Coche and not Ix_LocDist);
(*Marcas pantalla*)
MxP_NO_FCB1 := not Mx_FCA_B1 and not Mx_FCC_B1;
MxP_NO_FCB2 := not Mx_FCA_B2 and not Mx_FCC_B2;
MxP_FCA_BajB1 := Mx_FCA_B1 and Qx_M_BajaB1;
MxP_FCA_BajB2 := Mx_FCA_B2 and Qx_M_BajaB2;
MxP_FCC_SubB1 := Mx_FCC_B1 and Qx_M_SubeB1;
MxP_FCC_SubB2 := Mx_FCC_B2 and Qx_M_SubeB2;
MxP_NO_FCSubB1 := MxP_NO_FCB1 and Qx_M_SubeB1;
MxP_NO_FCBajB1 := MxP_NO_FCB1 and Qx_M_BajaB1;
MxP_NO_FCSubB2 := MxP_NO_FCB2 and Qx_M_SubeB2;
MxP_NO_FCBajB2 := MxP_NO_FCB2 and Qx_M_BajaB2;
308 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Detección
Detección del sentido de circulación de los trenes
IN
Mx_SDcha OUT
.1
RE
1
IN1
IN2
Mx_VieneIzda
OUT
.2
AND
2
EN ENO
OUT Mx_VieneDcha
.3
SET
3
IN
Mx_SIzda OUT
.4
FE
4
EN ENO
OUT Mx_VieneDcha
.5
RESET
5
IN
Mx_SIzda OUT
.6
RE
6
IN1
IN2
Mx_VieneDcha
OUT
.7
AND
7
EN ENO
OUT Mx_VieneIzda
.8
SET
8
IN
Mx_SDcha OUT
.9
FE
9
EN ENO
OUT Mx_VieneIzda
.10
RESET
10
IN1
Mx_VieneIzda
IN2
Mx_VieneDcha
OUT Mx_VieneTren
.11
OR
11
Problemas M340 - 309
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Semáforo Coches
IN1
Mx_VieneTren
IN2
Temp_Osc_2Hz.Q
OUT
.1
AND
1
IN
PT
t#500ms
Q
ET
TEMP_OSC_2HZ
TON
2
IN1
Temp_Osc_2Hz.ET
IN2
t#250ms
OUT Mx_Osc2Hz
.2
LT_TIME
3
IN
Mx_VieneTren
PT
t#20s
Q
ET
TEMP_20S
TON
4
IN1
IN2
Mx_VieneTren
OUT
.3
AND
6
IN1
Mx_Osc2Hz
IN2
Temp_20s.Q
OUT
.4
OR
5
IN OUT Qx_LSemCoche11
.5
MOVE
7
IN OUT Qx_LSemCoche21
.6
MOVE
8
IN1
IN2
Mx_VieneTren
OUT
.7
AND
10
IN1
Mx_Osc2Hz
IN2
Temp_20s.Q
OUT
.8
OR
9
IN OUT Qx_LSemCoche12
.9
MOVE
11
IN OUT Qx_LSemCoche22
.10
MOVE
12
310 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Barreras
Semáforo Tren
Orden de bajar las barreras B1 y B2
IN1
Temp_20s.Q
IN2
Mx_SCoche
OUT
.1
AND
1
EN ENO
OUT Qx_M_BajaB1
.2
SET
2
IN1
Mx_FCC_B1
IN2
Mx_SCoche
OUT
.3
OR
3
EN ENO
OUT Qx_M_BajaB1
.4
RESET
4
IN1
Temp_20s.Q
IN2
Mx_SCoche
OUT
.5
AND
5
EN ENO
OUT Qx_M_BajaB2
.6
SET
6
IN1
Mx_FCC_B2
IN2
Mx_SCoche
OUT
.7
OR
7
EN ENO
OUT Qx_M_BajaB2
.8
RESET
8
IN1
Mx_VieneDcha
IN2
Mx_VieneIzda
OUT
.9
AND
9
EN ENO
OUT Qx_M_SubeB1
.10
SET
10
EN ENO
OUT Qx_M_SubeB2
.11
SET
11
EN
Mx_FCA_B1 ENO
OUT Qx_M_SubeB1
.12
RESET
12
EN
Mx_FCA_B2 ENO
OUT Qx_M_SubeB2
.13
RESET
13
Activación y desactivación de las lámparas de los semáforos de los trenes
IN3
Mx_VieneDcha
IN4
Mx_SCoche
IN1
Mx_FCC_B1
IN2
Mx_FCC_B2
OUT Qx_LT_DchaV
.1
AND
1
IN
Qx_LT_DchaV OUT Qx_LT_DchaR
.2
MOVE
2
IN3
Mx_VieneIzda
IN4
Mx_SCoche
IN1
Mx_FCC_B1
IN2
Mx_FCC_B2
OUT Qx_LT_IzdaV
.3
AND
3
IN
Qx_LT_IzdaV OUT Qx_LT_IzdaR
.4
MOVE
4
Problemas M340 - 311
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa mixto ST y SFC (pr0907b)
Sección "Preliminar"
(*Inicialización de la pantalla de operador*)
If %S13 then
set (MxP_S_Coche); set (MxP_FCA_B1); set (MxP_FCA_B2);
end_if;
(*Marcas para el control Local-Distancia*)
Mx_SIzda := (Ix_S_Izda and Ix_LocDist) or (MxP_S_Izda and not Ix_LocDist);
Mx_SDcha := (Ix_S_Dcha and Ix_LocDist) or (MxP_S_Dcha and not Ix_LocDist);
Mx_FCA_B1 := (Ix_FCA_B1 and Ix_LocDist) or (MxP_FCA_B1 and not Ix_LocDist);
Mx_FCC_B2 := (Ix_FCC_B2 and Ix_LocDist) or (MxP_FCC_B2 and not Ix_LocDist);
Mx_FCA_B2 := (Ix_FCA_B2 and Ix_LocDist) or (MxP_FCA_B2 and not Ix_LocDist);
Mx_FCC_B1 := (Ix_FCC_B1 and Ix_LocDist) or (MxP_FCC_B1 and not Ix_LocDist);
Mx_SCoche := (Ix_S_Coche and Ix_LocDist) or (MxP_S_Coche and not Ix_LocDist);
(*Marcas pantalla*)
MxP_NO_FCB1 := not Mx_FCA_B1 and not Mx_FCC_B1;
MxP_NO_FCB2 := not Mx_FCA_B2 and not Mx_FCC_B2;
MxP_FCA_BajB1 := Mx_FCA_B1 and Qx_M_BajaB1;
MxP_FCA_BajB2 := Mx_FCA_B2 and Qx_M_BajaB2;
MxP_FCC_SubB1 := Mx_FCC_B1 and Qx_M_SubeB1;
MxP_FCC_SubB2 := Mx_FCC_B2 and Qx_M_SubeB2;
MxP_NO_FCSubB1 := MxP_NO_FCB1 and Qx_M_SubeB1;
MxP_NO_FCBajB1 := MxP_NO_FCB1 and Qx_M_BajaB1;
MxP_NO_FCSubB2 := MxP_NO_FCB2 and Qx_M_SubeB2;
MxP_NO_FCBaB2 := MxP_NO_FCB2 and Qx_M_BajaB2;
MtP_Temp20s := E3.t;
Sección "Transiciones"
Tran0_1 := RE (Mx_SDcha) And Not Mx_VieneIzda;
Tran0_2 := RE(Mx_SIzda) and not Mx_VieneDcha;
Tran11_14 := FE (Mx_SIzda);
Tran3_4_5 := E3.t > t#20s;
Tran12_16 := FE (Mx_SDcha);
312 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Chart
(* Barrera 1
bajada *)
(* Barrera 2
bajada *)
(* Detiene la
bajada de la
barrera 2 *)
S Mx_VieneIzda
Tran0_1 :=
RE(Mx_SDcha) And Not
Mx_VieneIzda;
Qx_LuzSeCoche11 a 2Hz
Qx_LuzSeCoche12 a 2Hz
Qx_LuzSeCoche21 a 2 Hz
Qx_LuzSeCoche22 a 2 Hz
Qx_M_BajaB2
S Mx_VieneDcha
(* Detiene la
bajada de la
barrera 1 *)
Tran3_4_5 :=
E3.t > t#20s
Qx_M_BajaB1
Tran0_2 :=
RE(Mx_SIzda) and not
Mx_VieneDcha;
E0
E1 E2
E3
E4 E5
E6 E7 E9
E8
Tran0_1 Tran0_2
True True
Tran3_4_5
NOT Mx_SCoche Mx_FCC_B1 Mx_FCC_B2
Mx_SCoche
NOT Mx_SCoche
Mx_SCoche
true
E10
Problemas M340 - 313
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Qx_M_SubeB2
Qx_M_SubeB1
(* El tren ya ha
atravesado el
paso a nivel *)
R
Mx_VieneIzda
R
Mx_VieneDcha
Qx_LT_IzdaR
(* Barrera 1
subida *)
(* Barrera 2
subida *)
Tran11_14 :=
FE Mx_SIzda
Tran12_16:=
FE Mx_SDcha
Qx_LT_IzdaV
(* Ambas
barreras se
encuentran
bajadas *)
Qx_LT_DchaR
Qx_LT_DchaV
E10
E11
E13 E14
E12
E15 E16
E17
E18
E19
E20
E21
Mx_VieneDcha
NOT Mx_SCoche Tran11_14
Mx_SCoche NOT Mx_VieneDcha
Mx_VieneIzda
NOT Mx_SCoche Tran12_16
Mx_SCoche NOT Mx_VieneIzda
true
Mx_FCA_B1 Mx_FCA_B2
true
E0
314 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Salidas
if E1.x then
set (Mx_VieneDcha);
end_if;
if E2.x then
set (Mx_VieneIzda);
end_if;
if E14.x then
reset (Mx_VieneDcha);
end_if;
if E16.x then
reset (Mx_VieneIzda);
end_if;
(* Se programa el oscilador de 2 Hz, T=500 ms *)
Mx_VieneTren := Mx_VieneDcha or Mx_VieneIzda;
TON_Osc2HZ (IN:= Mx_VieneTren and not TON_Osc2HZ.Q,PT:=t#500ms);
Mx_Osc2Hz := Mx_VieneTren AND TON_Osc2HZ.ET <= t#250ms;
Qx_LSemCoche11 := E3.x and Mx_Osc2Hz or (not E0.x and not E3.x);
Qx_LSemCoche12 := E3.x and not Mx_Osc2Hz or (not E0.x and not E3.x);
Qx_LSemCoche21 := E3.x and Mx_Osc2Hz or (not E0.x and not E3.x);
Qx_LSemCoche22 := E3.x and not Mx_Osc2Hz or (not E0.x and not E3.x);
Qx_LT_DchaV := E11.x;
Qx_LT_DchaR := not Qx_LT_DchaV;
Qx_LT_IzdaV := E12.x;
Qx_LT_IzdaR := not Qx_LT_IzdaV;
Qx_M_BajaB1 := E4.x;
Qx_M_BajaB2 := E5.x;
Qx_M_SubeB1 := E18.x;
Qx_M_SubeB2 := E20.x;
Problemas M340 - 315
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de explotación
316 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 317
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 9.8 · Control de una compuerta. EM y EF
Realizar la automatización del control del nivel en un embalse.
Se dispone de una compuerta que es accionada mediante un motor que la desplaza en sentido ascendente
o descendente, hasta alcanzar el nivel predeterminado.
Hay tres niveles posibles a definir, para lo que disponemos de tres finales de carrera (FC), cada FC sólo se
activa única y exclusivamente cuando se alcanza su nivel.
Disponemos de un pulsador de preselección, mediante el cual estableceremos el nivel que se desea alcanzar.
La elección se hará de forma rotativa, partiendo del estado en el que no tengamos ninguno seleccionado y
siguiendo con la selección del nivel1, nivel 2, nivel 3 y volviendo luego al nivel 1. Esto queda reflejado en el
panel de control mediante, tres lámparas de preselección LP1, LP2, LP3. La preselección estará inhibida
cuando esté en funcionamiento la compuerta.
Mediante un pulsador de marcha, haremos que una vez seleccionado el nivel deseado, éste se alcance,
mediante el accionamiento del motor con la maniobra adecuada a tal fin. El panel de control reflejará el nivel
en el que se encuentra la compuerta mediante una lámpara LN1, LN2 o LN3.
El sistema dispone a su vez de dos finales de carrera de final de recorrido FCEI y FCES con 2 contactos NC
cada uno de ellos, que pararían la maniobra dejando al sistema parado y con la lámpara de emergencia
correspondiente activada LEI o LES. Una vez reparada la avería, se rearmará el sistema que lo llevará a CI.
Se dispondrá de un conmutador PLC_Manual que permitirá abandonar el control por autómata y hacerlo por
Mando, manual -lógica cableada- con el cuál podremos situar la compuerta a la altura que se quiera.
Condiciones iniciales: La compuerta estará de partida, situada en cualquier posición entre FC1 y FC3 incluidas
posiciones intermedias, si no, se llevará a una posición intermedia de forma manual. Todas las lámparas de
preselección estarán apagadas, la compuerta se situará en el nivel 2 una vez pulsado rearme.
El motor de la compuerta tiene unas características de: Pm = 4 KW, Un = 400 V, cos φ=0,85 y  = 0,92.
Corriente de arranque 5 veces la nominal. Arranque directo (para simplificar). Tiempo de arranque 5
segundos. Protegido mediante automático y térmico.
SE PIDE: Esquema de Mando, y de fuerza con todas las protecciones necesarias y el programa de control.
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentación BMX CPS 2000 (24VDC 40W, eficiencia del 82%) alimenta a todo el conjunto, módulo de
entradas PNP BMX DDI 1602 y de salidas PNP BMX DDO 1602.
ENTRADAS
Preseleccción = Ix_Pul
Marcha = Ix_Marcha
Sensor1 = Ix_FC1
Sensor2 = Ix_FC2
Sensor3 = Ix_FC3
Emergencia1 = Ix_FCEI (NC)
Emergencia2 = Ix_FCES (NC)
Rearme = Ix_Rearme
PLC/Manual = Ix_PLC_Manual
SALIDAS
Lámpara de Preseleccción 1 = Qx_LP1
Lámpara de Preseleccción 2 = Qx_LP2
Lámpara de Preseleccción 3 = Qx_LP3
Lámpra de Nivel 1 = Qx_LN1
Lámpra de Nivel 2 = Qx_LN2
Lámpra de Nivel 3 = Qx_LN3
Lámpara de Emergencia 1 = Qx_LEI
Lámpara de Emergencia 2 = Qx_LES
Acción ascendente = Qx_Subir
Acción descendente = Qx_Bajar
318 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de Mando, y fuerza
Problemas M340 - 319
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Motor Compuerta
El motor de la compuerta tiene unas características de: Pm = 4 KW, Un = 400 V, cos φ=0,85 y  = 0,92.
Corriente de arranque 5 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante automático
y térmico.
Relé térmico F1
𝜂 =
𝑃𝑢
𝑃𝑒
=
𝑃𝑢
√3 𝑈𝑁 𝐼𝑁 cos 
𝐼𝑁 =
𝑃𝑢
√3 𝑈𝑁 cos  𝜂
=
4000
√3 400 0,85 0,92
= 7,38 𝐴
La corriente con la que regularemos el térmico es 𝐼N = 7,38 𝐴 que queda en el medio del rango de
regulación. Elegiremos el LRD-12.
Iarranque = 5 · IN = 5 · 7,38 = 36,92 A tiempo 5 segundos
Se observa que en clase 10, estará en el límite de la curva, si bien en la realidad tendrá un valor más favorable.
Escogeremos el LRD 12 clase 10
4 .. 6 A LRD10 clase 10A 90 euros -> LRD1510 clase 20 194 euros
5,5 .. 8 A LRD12 clase 10A 90 euros -> LRD1512 clase 20 197 euros
12 .. 18 A LRD21 clase 10A 97 euros -> LRD1521 clase 20 213 euros
23 .. 32 A LRD32 clase 10A 141 euros -> LRD1532 clase 20 339 euros
63 .. 80 A LRD3363 clase 10A 261 euros -> LR2D3563 clase 20 531 euros
320 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Automático Q1 del circuito de fuerza
Cuando tengamos la corriente nominal, por el térmico estarán pasando los 7,38 A. Aguas arriba por el
automático estarán pasando los 7,38 A.
Para que haya selectividad, la corriente mínima del automático será: I = 1,6 * 7,38 = 11,81 A
Por tanto el calibre del automático elegido será el de 16A (valor normalizado por encima de 11,81 A).
Tensión nominal: 400 V 3 polos.
𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒
𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒
=
36,92
16
= 2,3 tiempo 5 segundos
La curva puede ser la C 16A
16 A -> C curva 173 euros D curva 360 euros B curva 215 euros
63 A -> C curva 518 euros D curva 711 euros B curva 614 euros
Problemas M340 - 321
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Diferencial F2 del circuito de fuerza
Se elige un Diferencial de calibre >1,4 * 16 => 25A y sensibilidad 30 mA (p.e. el A9R81425 de Schneider)
Contactores KM1 y KM2 de DC enclavados mecánicamente
Tensión de servicio: 24 VCC
Corriente de servicio: 𝐼N = 4,06 𝐴
Del catálogo de Schneider sería válido el LC2 D09BNE
4x25A 30mA 66 euros
4x40A 30mA 101 euros
4x63A 30mA 155 euros
294 euros
322 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Automático Q2 de DC
Elegiremos el interruptor automático especial de CC - C60H - 250 V - 1P - 2 A - curva C A9N61502
Automático Q3 de la FA
La fuente de alimentación entrega 40 W con una eficiencia del 82%.
Por tanto consume unos 40 / 0,82 = 48,8 W que significa unos 48,8 / 230 = 0,21 A
La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar
pasar 9 · 0,21 = 1,9 A en los instantes iniciales.
Elegimos p.e. el Magnetotérmico, Acti9 iC60N, 2P, 1 A, C curva, 6000 A (IEC 60898-1), 50 kA (IEC 60947-2)
102 euros 153 euros
Problemas M340 - 323
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa mixto ST y SFC (pr0908)
Preliminar
(*Inicialización de la pantalla de operador*)
If %S13 THEN
Set(MxP_FCEI); Set(MxP_FCES); Set(MxP_PLC_Man);Set(MxP_PosIni); set (Mx_PulseRearme);
ClearState := CLEARCHART (Preseleccion, true); ClearState := CLEARCHART (Control, true);
END_IF;
(* Variables utilizadas en la pantalla de Operador *)
Mx_Preseleccion := (Ix_Preseleccion And Ix_LocDist) Or(MxP_Preseleccion And Not Ix_LocDist);
Mx_Marcha := (Ix_Marcha And Ix_LocDist) Or(MxP_Marcha And Not Ix_LocDist);
Mx_Rearme := (Ix_Rearme And Ix_LocDist) Or(MxP_Rearme And Not Ix_LocDist);
Mx_FC1 := (Ix_FC1 And Ix_LocDist) Or(MxP_FC1 And Not Ix_LocDist);
Mx_FC2 := (Ix_FC2 And Ix_LocDist) Or(MxP_FC2 And Not Ix_LocDist);
Mx_FC3 := (Ix_FC3 And Ix_LocDist) Or(MxP_FC3 And Not Ix_LocDist);
Mx_FCEI := (Ix_FCEI And Ix_LocDist) Or(MxP_FCEI And Not Ix_LocDist);
Mx_FCES := (Ix_FCES And Ix_LocDist) Or(MxP_FCES And Not Ix_LocDist);
Mx_PLC_Man := (Ix_PLC_Man And Ix_LocDist) Or(MxP_PLC_Man And Not Ix_LocDist);
(* Variables utilizadas en el programa *)
Mx_Para := (Qx_LP1 And Mx_FC1) Or (Qx_LP2 And Mx_FC2) Or (Qx_LP3 And Mx_FC3);
If (Not Mx_FCEI) Or (Not Mx_FCES) THEN
Set (Mx_EnEmergencia);
END_IF;
If Not Mx_PLC_Man Or Mx_EnEmergencia THEN
ClearState := CLEARCHART (Preseleccion, true); ClearState := CLEARCHART (Control, true);
Reset (Mx_Subir); Reset (Mx_Bajar);
END_IF;
If Mx_Rearme THEN
Mx_PonCI := CLEARCHART (Preseleccion, true); Mx_PonCI := CLEARCHART (Control, true);
Reset (Mx_EnEmergencia); Reset (Mx_Subir); Reset (Mx_Bajar); Reset (Mx_PulseRearme);
END_IF;
If Mx_PonCI THEN
SR_Inicializa();
END_IF;
If Mx_PuestoCI And Not Mx_Rearme THEN
InitState := INITCHART (Preseleccion,true); InitState := INITCHART (Control,true);
Reset (Mx_puestoCI);
END_IF;
324 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Chart "Preselección"
Chart "Control"
Mx_Para :=
(Qx_LP1 And Mx_FC1) Or
(Qx_LP2 And Mx_FC2) Or
(Qx_LP3 And Mx_FC3)
Tran11_13 :=
LP3 (FC2 + FC1) + LP2 FC1
Tran11_12 :=
LP1 (FC2 + FC3) + LP2 FC3
Qx_Bajar Qx_Subir
Etapa10
Etapa11
Etapa12 Etapa13
Mx_Marcha
Tran11_12 Tran11_13 Mx_Para
Mx_Para Mx_Para
Tran3_0 :=
REMx_Preseleccion and
Etapa10.x
Tran0_1 :=
REMx_Preseleccion and
Etapa10.x and Mx_FCE2 and
Mx_FCE1
Tran1_2 :=
REMx_Preseleccion and
Etapa10.x
Tran2_3 :=
REMx_Preseleccion and
Etapa10.x
Qx_LP1
Qx_LP2
Qx_LP3
Etapa0
Etapa1
Etapa2
Etapa3
Tran0_1
Tran1_2
Tran2_3
Tran3_0
Problemas M340 - 325
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "Salidas"
Qx_LN1 := Mx_FC1;
Qx_LN2 := Mx_FC2;
Qx_LN3 := Mx_FC3;
Qx_LEI := Not Mx_FCEI;
Qx_LES := Not Mx_FCES;
Qx_LP1 := Etapa1.x;
Qx_LP2 := Etapa2.x;
Qx_LP3 := Etapa3.x;
(* enclavamiento por software *)
Qx_Subir := (Etapa13.x Or Mx_Subir) And Not Qx_Bajar;
Qx_Bajar := (Etapa12.x Or Mx_Bajar) And Not Qx_Subir;
Subrutina "SR_Inicializa"
(*Partimos de que la compuerta pueda estar en cualquier posición entre FC1 y FC3, si no la pondremos
manualmente, lo mandamos bajar a FC1 y una vez finalizada la maniobra, sube automáticamente a FC2 *)
If Not Mx_FC1 And Not Mx_Aux THEN
Set (Mx_Bajar);
ELSE Reset (Mx_Bajar); Set (Mx_Aux); (*Mx_AUX nos indica que ya hizo la maniobra de bajar *)
END_IF;
IF Mx_FC2 then
reset (MxP_PosIni);
end_if;
If Mx_FC1 And Mx_Aux THEN
Set (Mx_Subir);
END_IF;
If Mx_FC2 THEN
Reset (Mx_Subir); Reset (Mx_Bajar); Reset (Mx_Aux);
Set (Mx_PuestoCI); Reset (Mx_PonCI);
END_IF;
326 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de explotación
Lista de mensajes
Problemas M340 - 327
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 9.9 · Control de un garaje. EM y EF
Se desea automatizar el acceso, la salida y el interior de un garaje de coches que dispone de los siguientes
elementos:
Un lector de tarjeta magnética para la petición de entrada al garaje (TME) y otro para la salida (TMS), que
proporcionaran un uno lógico ante la demanda.
Un portón accionado por un motor que dispondrá de dos sentidos de giro (Abrir) y (Cerrar), y dos finales de
carrera para indicar que el portón está abierto (FCA) y cerrado (FCC).
Una puerta de acceso peatonal con llave.
Un sensor (SenCo) que informará cuando hay un coche en la trayectoria del portón.
Un sensor de luz (SenLuz) que nos informa mediante un uno lógico que la luz natural en el interior es
insuficiente.
Cuatro pulsadores (S1, S2, S3, S4) que activarán la luz artificial interior del garaje.
Varios puntos de luz artificial en el interior del garaje (Luz).
En las condiciones iniciales el portón se deberá cerrar si no lo estuviese al activar un pulsador de Rearme,
quedando luego en funcionamiento automático.
Ante una petición de entrada, el portón deberá abrirse durante 10 segundos y si no hay suficiente luz natural
en el interior del garaje, deberá activarse la luz artificial de forma automática durante 1 minuto.
Aunque existiese suficiente luz, ante una pulsación de S1, S2, S3 o S4 deberá activarse el estado de la luz
artificial del garaje durante 1 minuto.
Ante una petición de salida deberá abrirse el portón un máximo de 10 segundos y luego cerrarse
automáticamente.
Cuando esté cerrando el portón y haya un coche en el trayecto del mismo, deberá parar la maniobra y abrir
el portón hasta que el coche haya pasado. A continuación deberá seguir la maniobra de cierre.
Si hubiese una petición de entrada o de salida cuando esté cerrando, se deberá atender automáticamente;
para ello abrirá el portón y procederá en consecuencia.
El motor de la puerta tiene unas características de: Pm = 2 KW, Un = 400 V, cos φ=0,86 y  = 0,93. Corriente
328 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
de arranque 6 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante automático y térmico.
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentación BMX CPS 2000 (24VDC 40W, eficiencia del 82%) alimenta a todo el conjunto, módulo de
entradas PNP BMX DDI 1602, de salidas PNP BMX DDO 1602. Las luces son de 10 W a 230VAC
Esquema de mando
Esquema de fuerza
Problemas M340 - 329
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Motor portón
El motor de la puerta tiene unas características de: Pm = 2 KW, Un = 400 V, cos φ=0,86 y  = 0,93. Corriente
de arranque 6 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante automático y térmico.
Relés térmico F1
𝜂 =
𝑃𝑢
𝑃𝑒
=
𝑃𝑢
√3 𝑈𝑁 𝐼𝑁 cos 
𝐼𝑁 =
𝑃𝑢
√3 𝑈𝑁 cos  𝜂
=
2000
√3 400 0,86 0,93
= 3,6 𝐴
La corrientes que pasa por el térmico es
𝐼N = 3,6 𝐴
Teniendo en cuenta esta corriente, elegiremos el LRD-08.
Ajustaremos la corriente regulada a 3,6 A
Ia = 6 · IN = 6 · 3,6 = 21,6 A tiempo 5 segundos
Se observa que la clase 10 no nos valdría. Escojeremos el LRD -08 clase 20
Automático Q1
Cuando tengamos la corriente nominal, por el térmico estarán pasando los 3,6 A. Aguas arriba por el
automático estarán pasando los 3,6 A.
Para que haya selectividad, la corriente mínima del automático será: I = 1,6 * 3,6 = 5,76 A
Por tanto el calibre del automático elegido será el de 6A (valor normalizado por encima de 5,76 A).
Tensión nominal: 400 V 3 polos.
330 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒
𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒
=
21
6
= 3,6 tiempo 5 segundos
La curva puede ser la D 6A
Diferencial F2
Se elige un diferencial de calibre > 1,4 * 6 => 10A y sensibilidad 30 mA
Calibre de los contactores KM1 y KM2
Clase de servicio temporal.
Categoría de servicio: AC3.
Tensión de servicio: 400 V
Corriente de servicio: 𝐼N = 3,6 𝐴
Del catálogo de Telemecanique sería válido el calibre LC1-K06
Problemas M340 - 331
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Automático Q2
Selección de Q3. Teniendo en cuenta que el consumo de los contactores es de 70 VA | 7 VA
Debemos determinar la corriente mas desfavorable. Esta es cuando se llama un contactor y está la luz
activada.
Corriente de mantenimiento => 7 / 230 = 0,03 A
Corriente de llamada Ia = 70 / 230 = 0,30 A
I = 0,3 + 60 / 230 = 0,56 A
Por tanto elegiremos el automático de calibre C1 que permitirá su paso sin problemas.
Automático Q3
La fuente de alimentación de continua entrega 40 W con una eficiencia del 82%. Por tanto consume unos
48,78W.
El consumo de corriente es de 48,78/230 = 0,21A
La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar
pasar 9 · 0,21 = 1,89 A en los instantes iniciales.
Podemos escoger el automático C60 2A
Tabla de variables
332 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
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);
Mx_Rearme := (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist);
(* Iniciamos el sistema *)
Mx_PonCI := CLEARCHART (Proceso, RE(Mx_Rearme));
Mx_PonCI := CLEARCHART (Control_Porton, RE(Mx_Rearme));
If Mx_PonCI THEN
Sr_CierraPorton();
END_IF;
If Mx_PuestoCI And Not Mx_Rearme THEN
Setstep (E1);
Mx_Aux := INITCHART (Control_Porton,True);
Reset (Mx_PuestoCI);
END_IF;
GRAFCETs del "Proceso" y "Control de la luz"
(* Saliendo *)
(* Entrando *)
(* Portón cerrado *)
(* Proceso parado *)
E0
E2 E3
Mx_TME Mx_TMS
Etapa25.x Etapa25.x
E1 E1
False
E1
Tran31_30 :=
Etapa31.t >= t#60s
(* Control de la luz *)
Tran30_31 :=
(E2.x and Mx_SenLuz) or
Mx_PLuz
Qx_Luz
Etapa30
Etapa31
Tran30_31
Tran31_30
Problemas M340 - 333
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "Transiciones"
Tran20_21 := E2.x or E3.x;
Tran22_23 := Etapa22.t >= t#10s;
Tran24_21 := Etapa24.t >= t#200ms;
Tran26_21 := Etapa26.t >= t#200ms;
Tran27_21 := Etapa27.t >= t#200ms;
Tran30_31 := (E2.x and Mx_SenLuz) or Mx_PLuz;
Tran31_30 := Etapa31.t >= t#20s;
GRAFCET "Control_Portón"
Tran22_23 :=
Etapa22.t >= t#10s
Mx_FCC
(* Portón
Abierto *)
Qx_Cerrar
Tran24_21 o 26_21 o 27_21
Etapa24.t >= t#200ms
Tran20_21 :=
E2.x or E3.x
Qx_Abrir
Mx_FCA
Etapa20
Etapa21
Etapa22
Etapa23
Etapa25 Etapa24 Etapa26 Etapa27
Tran20_21
Mx_FCA
Tran22_23
Mx_FCC Mx_SenCoche Mx_TME Mx_TMS
E1.x Tran24_21 Tran26_21 Tran27_21
Etapa20 Etapa21 Etapa21 Etapa21
334 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "Salidas"
Qx_Luz := Etapa31.x;
Qx_Abrir := Etapa21.x;
Qx_Cerrar := Etapa23.x OR Mx_Cerrar;
If Etapa26.x then
resetstep (E3);
setstep (E2);
end_if;
If Etapa27.x then
resetstep (E2);
setstep (E3);
end_if;
Subrutina "Sr_CierraPortón"
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
Problemas M340 - 335
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 9.10 · Control sencillo de un ascensor de 6 plantas
Se desea controlar un ascensor con puertas automáticas situado en un edificio de 6 plantas disponiendo de
un control manual y otro automático ( Ix_AutMan) mediante autómata que permitan posicionarlo en un
lugar determinado. Así mismo, se dispondrá de un control local y a distancia desde una pantalla de operador
(Ix_LocDis).
CONTROL MANUAL
Cuando está activo el control Manual, (conmutador Ix_AutMan posición Man) el control automático
mediante autómata debe quedar desactivado y poder subir o bajar el ascensor (Qx_Subir y Qx_Bajar)
mediante dos pulsadores situados en la botonera de maniobra quedando limitado el sobrerecorrido superior
e inferior por unos finales de carrera Ix_FCES y Ix_FCEI (NC potencia). Cuando por excederse en el recorrido
se activase uno de éstos, sólo podrá entrar la orden contraria. Así mismo se deberá poder abrir y cerrar las
diferentes puertas del ascensor.
CONDICIONES DE INICIO
El ascensor estará situado en una planta cualquiera y deberá tener cerradas sus puertas.
CONTROL AUTOMÁTICO
Cuando está activo el control automático, (conmutador Ix_AutMan posición Aut, 1 lógico), Mando manual
desactivado, el autómata gobernará el ascensor, para ello dispondrá de unos finales de carrera que indicarán
su situación en las diferentes plantas (FCPlantaN, NO). El FCES y el FCEI tendrán 2 contactos de entrada al
autómata para parar la maniobra por malfuncionamiento. Así mismo habrá una botonera interior para
indicar a que planta se desea ir (PBotoneraN), un pulsador para poder interrumpir la maniobra de cierre de
las puertas y proceder a su apertura (PAbrirPuertas) y un botón exterior por planta para llamar al ascensor
(PPlantaN). Cuando se demande una atención, se encenderá la luz amarilla de dichos pulsadores
(Qx_LPPlantaN, Qx_LBotPlantaN y Qx_LBotAbrirPuertas )
Cuando el ascensor llegue a la planta de destino, deberá parar su movimiento y proceder a abrir la puerta
corredera interior (Qx_AbrirPtaInterior, Ix_FCPtaIntAbierta, Ix_FCPtaIntCerrada), y la puerta exterior
(Qx_AbrirPtaPlantaN, Ix_FCPtaPlantaNAbierta, Ix_FCPtaPlantaNCerrada), esperar 5 segundos y si hay una
llamada interior o exterior, proceder al cierre de la puerta exterior y cerrar la interior (Qx_CerrarPtaInterior,
Qx_CerrarPtaPlantaN).
Si estando cerrando, hay un objeto interpuesto, lo detectará una fotocélula (Ix_Fotocelula) que abrirá de
nuevo las puertas según la maniobra ya descrita, volviendo a esperar 5 segundos para seguir con la maniobra
de cierre.
Los finales de carrera de cerradas las puertas exteriores y la interior nos informaran que todas las puertas
están cerradas; condición indispensable para que el ascensor pueda subir o bajar.
En condiciones iniciales el ascensor estará posicionado en una planta cualquiera (situado por el técnico de
forma manual) y las puertas estarán cerradas.
Para el movimiento ascendente o descendente del ascensor tendremos en cuenta que:
 En subida y bajada irá parando memorizadamente cuando sea necesario en función de las órdenes
de cabina y exteriores con prioridad en el movimiento ascendente o descendente de las ordenes de
cabina. Finalizará el movimiento en uno u otro sentido, antes de invertirlo.
Se pide:
 Programa de control del ascensor.
336 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sinóptico
Problemas M340 - 337
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de Entradas y Salidas
Este problema tiene 40 entradas y 29 salidas
338 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 339
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Configuración del Hardware y del Software
340 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Preliminar
(* Memorias para el control Local o a Distancia *)
Mx_FCEI := (Ix_DisLoc And Ix_FCEI) Or (Not Ix_DisLoc And MxP_FCEI);
Mx_FCES := (Ix_DisLoc And Ix_FCES) Or (Not Ix_DisLoc And MxP_FCES);
Mx_FCPlanta1 := (Ix_DisLoc And Ix_FCPlanta1) Or (Not Ix_DisLoc And MxP_FCPlanta1);
Mx_FCPlanta2 := (Ix_DisLoc And Ix_FCPlanta2) Or (Not Ix_DisLoc And MxP_FCPlanta2);
Mx_FCPlanta3 := (Ix_DisLoc And Ix_FCPlanta3) Or (Not Ix_DisLoc And MxP_FCPlanta3);
Mx_FCPlanta4 := (Ix_DisLoc And Ix_FCPlanta4) Or (Not Ix_DisLoc And MxP_FCPlanta4);
Mx_FCPlanta5 := (Ix_DisLoc And Ix_FCPlanta5) Or (Not Ix_DisLoc And MxP_FCPlanta5);
Mx_FCPlanta6 := (Ix_DisLoc And Ix_FCPlanta6) Or (Not Ix_DisLoc And MxP_FCPlanta6);
Mx_FCPtaIntAbierta := (Ix_DisLoc And Ix_FCPtaIntAbierta) Or (Not Ix_DisLoc And MxP_FCPtaIntAbierta);
Mx_FCPtaIntCerrada := (Ix_DisLoc And Ix_FCPtaIntCerrada) Or (Not Ix_DisLoc And MxP_FCPtaIntCerrada);
Mx_FCPtaPlanta1Abierta := (Ix_DisLoc And Ix_FCPtaPlanta1Abierta) Or (Not Ix_DisLoc And
MxP_FCPtaPlanta1Abierta);
Mx_FCPtaPlanta1Cerrada := (Ix_DisLoc And Ix_FCPtaPlanta1Cerrada) Or (Not Ix_DisLoc And
MxP_FCPtaPlanta1Cerrada);
Mx_FCPtaPlanta2Abierta := (Ix_DisLoc And Ix_FCPtaPlanta2Abierta) Or (Not Ix_DisLoc And
MxP_FCPtaPlanta2Abierta);
Mx_FCPtaPlanta2Cerrada := (Ix_DisLoc And Ix_FCPtaPlanta2Cerrada) Or (Not Ix_DisLoc And
MxP_FCPtaPlanta2Cerrada);
Mx_FCPtaPlanta3Abierta := (Ix_DisLoc And Ix_FCPtaPlanta3Abierta) Or (Not Ix_DisLoc And
MxP_FCPtaPlanta3Abierta);
Mx_FCPtaPlanta3Cerrada := (Ix_DisLoc And Ix_FCPtaPlanta3Cerrada) Or (Not Ix_DisLoc And
MxP_FCPtaPlanta3Cerrada);
Mx_FCPtaPlanta4Abierta := (Ix_DisLoc And Ix_FCPtaPlanta4Abierta) Or (Not Ix_DisLoc And
MxP_FCPtaPlanta4Abierta);
Mx_FCPtaPlanta4Cerrada := (Ix_DisLoc And Ix_FCPtaPlanta4Cerrada) Or (Not Ix_DisLoc And
MxP_FCPtaPlanta4Cerrada);
Mx_FCPtaPlanta5Abierta := (Ix_DisLoc And Ix_FCPtaPlanta5Abierta) Or (Not Ix_DisLoc And
MxP_FCPtaPlanta5Abierta);
Mx_FCPtaPlanta5Cerrada := (Ix_DisLoc And Ix_FCPtaPlanta5Cerrada) Or (Not Ix_DisLoc And
MxP_FCPtaPlanta5Cerrada);
Mx_FCPtaPlanta6Abierta := (Ix_DisLoc And Ix_FCPtaPlanta6Abierta) Or (Not Ix_DisLoc And
MxP_FCPtaPlanta6Abierta);
Mx_FCPtaPlanta6Cerrada := (Ix_DisLoc And Ix_FCPtaPlanta6Cerrada) Or (Not Ix_DisLoc And
MxP_FCPtaPlanta6Cerrada);
Mx_PBotonera1 := (Ix_DisLoc And Ix_PBotonera1) Or (Not Ix_DisLoc And MxP_PBotonera1);
Mx_PBotonera2 := (Ix_DisLoc And Ix_PBotonera2) Or (Not Ix_DisLoc And MxP_PBotonera2);
Mx_PBotonera3 := (Ix_DisLoc And Ix_PBotonera3) Or (Not Ix_DisLoc And MxP_PBotonera3);
Mx_PBotonera4 := (Ix_DisLoc And Ix_PBotonera4) Or (Not Ix_DisLoc And MxP_PBotonera4);
Mx_PBotonera5 := (Ix_DisLoc And Ix_PBotonera5) Or (Not Ix_DisLoc And MxP_PBotonera5);
Mx_PBotonera6 := (Ix_DisLoc And Ix_PBotonera6) Or (Not Ix_DisLoc And MxP_PBotonera6);
Mx_PAbrirPuertas := (Ix_DisLoc And Ix_PAbrirPuertas) Or (Not Ix_DisLoc And MxP_PAbrirPuertas);
Mx_Fotocelula := (Ix_DisLoc And Ix_Fotocelula) Or (Not Ix_DisLoc And MxP_Fotocelula);
Mx_PPlanta1 := (Ix_DisLoc And Ix_PPlanta1) Or (Not Ix_DisLoc And MxP_PPlanta1);
Mx_PPlanta2 := (Ix_DisLoc And Ix_PPlanta2) Or (Not Ix_DisLoc And MxP_PPlanta2);
Problemas M340 - 341
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Mx_PPlanta3 := (Ix_DisLoc And Ix_PPlanta3) Or (Not Ix_DisLoc And MxP_PPlanta3);
Mx_PPlanta4 := (Ix_DisLoc And Ix_PPlanta4) Or (Not Ix_DisLoc And MxP_PPlanta4);
Mx_PPlanta5 := (Ix_DisLoc And Ix_PPlanta5) Or (Not Ix_DisLoc And MxP_PPlanta5);
Mx_PPlanta6 := (Ix_DisLoc And Ix_PPlanta6) Or (Not Ix_DisLoc And MxP_PPlanta6);
(* Marcas de trabajo *)
Mx_PuertasExtCerradas := Mx_FCPtaPlanta1Cerrada Or Mx_FCPtaPlanta2Cerrada Or
Mx_FCPtaPlanta3Cerrada Or Mx_FCPtaPlanta4Cerrada Or
Mx_FCPtaPlanta5Cerrada Or Mx_FCPtaPlanta6Cerrada;
Lectura Pulsadores
(* lectura de los pulsadores de la botonera interior y su memorización en la palabra Mw_PetBotonera*)
If Mx_PBotonera1 THEN
Mw_PetBotonera.1 := 1;
END_IF;
If Mx_PBotonera2 THEN
Mw_PetBotonera.2 := 1;
END_IF;
If Mx_PBotonera3 THEN
Mw_PetBotonera.3 := 1;
END_IF;
If Mx_PBotonera4 THEN
Mw_PetBotonera.4 := 1;
END_IF;
If Mx_PBotonera5 THEN
Mw_PetBotonera.5 := 1;
END_IF;
If Mx_PBotonera6 THEN
Mw_PetBotonera.6 := 1;
END_IF;
(* lectura de los pulsadores de planta y su memorización en la palabra Mw_PetPlantas *)
If MxP_PPlanta1 THEN
Mw_PetPlantas.1 := 1;
END_IF;
If MxP_PPlanta2 THEN
Mw_PetPlantas.2 := 1;
END_IF;
342 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
If MxP_PPlanta3 THEN
Mw_PetPlantas.3 := 1;
END_IF;
If MxP_PPlanta4 THEN
Mw_PetPlantas.4 := 1;
END_IF;
If MxP_PPlanta5 THEN
Mw_PetPlantas.5 := 1;
END_IF;
If MxP_PPlanta6 THEN
Mw_PetPlantas.6 := 1;
END_IF;
(* fusión de peticiones *)
(* se forma una única palabra que recoja todas las peticiones*)
Mw_Peticiones := Mw_PetBotonera Or Mw_PetPlantas;
(* lectura de los FC de las plantas para la prioridad de subir o bajar y su memorización en la palabra
Mw_FC_Plantas *)
Mw_FC_Plantas.1 := Mx_FCPlanta1;
Mw_FC_Plantas.2 := Mx_FCPlanta2;
Mw_FC_Plantas.3 := Mx_FCPlanta3;
Mw_FC_Plantas.4 := Mx_FCPlanta4;
Mw_FC_Plantas.5 := Mx_FCPlanta5;
Mw_FC_Plantas.6 := Mx_FCPlanta6;
(* lectura de los FC de cerradas las puertas exteriores y su memorización en la palabra Mw_FCC_PtasExte *)
Mw_FCC_PtasExte.1 := Mx_FCPtaPlanta1Cerrada;
Mw_FCC_PtasExte.2 := Mx_FCPtaPlanta2Cerrada;
Mw_FCC_PtasExte.3 := Mx_FCPtaPlanta3Cerrada;
Mw_FCC_PtasExte.4 := Mx_FCPtaPlanta4Cerrada;
Mw_FCC_PtasExte.5 := Mx_FCPtaPlanta5Cerrada;
Mw_FCC_PtasExte.6 := Mx_FCPtaPlanta6Cerrada;
Problemas M340 - 343
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Control
(* bits de una palabra y su peso asociado 1-2 2-4 3-8 4-16 5-32 6-64 *)
(* Da prioridad a la orden desde la botonera *)
If Mw_PetBotonera <> 0 THEN
If Not Mx_Baja And (Mx_FCPlanta1 AND Mw_PetBotonera > 2) Or (Mx_FCPlanta2 AND
Mw_PetBotonera > 6) Or (Mx_FCPlanta3 AND Mw_PetBotonera > 14) Or (Mx_FCPlanta4 AND
Mw_PetBotonera > 30) Or (Mx_FCPlanta5 AND Mw_PetBotonera > 62) THEN
Set(Mx_Sube);
END_IF;
If Not Mx_Sube And (Mx_FCPlanta6 AND Mw_PetBotonera < 64) Or (Mx_FCPlanta5 AND
Mw_PetBotonera < 32) Or (Mx_FCPlanta4 AND Mw_PetBotonera < 16) Or (Mx_FCPlanta3 AND
Mw_PetBotonera < 8) Or (Mx_FCPlanta2 AND Mw_PetBotonera < 4) THEN
Set (Mx_Baja);
END_IF;
END_IF;
(* abre puertas cuando está en la planta y se activa el pulsador exterior *)
If Mw_PetBotonera = 0 And Not Mx_Baja And Not Mx_Sube And ((Mx_PPlanta1 And Mx_FCPlanta1) Or
(Mx_PPlanta2 And Mx_FCPlanta2) Or (Mx_PPlanta3 And Mx_FCPlanta3) Or (Mx_PPlanta4 And
Mx_FCPlanta4) Or (Mx_PPlanta5 And Mx_FCPlanta5) Or (Mx_PPlanta6 And Mx_FCPlanta6)) THEN
Set (Mx_AbrePuertas);
END_IF;
(* Si se pulsa desde afuera, sube o baja *)
If Mw_PetBotonera = 0 And Mw_PetPlantas <>0 And Not Mx_Baja And ((Mx_FCPlanta1 AND
Mw_PetPlantas>2) Or (Mx_FCPlanta2 AND Mw_PetPlantas>6) Or (Mx_FCPlanta3 AND Mw_PetPlantas>14)
Or (Mx_FCPlanta4 AND Mw_PetPlantas>30) Or (Mx_FCPlanta5 AND Mw_PetPlantas>62)) THEN
Set(Mx_Sube);
END_IF;
If Mw_PetBotonera = 0 And Mw_PetPlantas <>0 And Not Mx_Sube And ((Mx_FCPlanta6 AND
Mw_PetPlantas<64) Or (Mx_FCPlanta5 AND Mw_PetPlantas<32) Or (Mx_FCPlanta4 AND
Mw_PetPlantas>16) Or (Mx_FCPlanta3 AND Mw_PetPlantas<8) Or (Mx_FCPlanta2 AND Mw_PetPlantas<4))
THEN
Set (Mx_Baja);
END_IF;
(* Para y abre puertas cuando llega al destino más arriba *)
If Mx_Sube And ((Mx_FCPlanta2 And Mw_Peticiones.2=1) Or (Mx_FCPlanta3 And Mw_Peticiones.3=1) Or
(Mx_FCPlanta4 And Mw_Peticiones.4=1) Or (Mx_FCPlanta5 And Mw_Peticiones.5=1) Or (Mx_FCPlanta6 And
Mw_Peticiones.6=1)) THEN
Set (Mx_ParaAscensor);
Set (Mx_AbrePuertas);
END_IF;
344 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
(* Para y abre puertas cuando llega al destino más abajo *)
If Mx_Baja And ((Mx_FCPlanta1 And Mw_Peticiones.1=1) OR (Mx_FCPlanta2 And Mw_Peticiones.2=1) Or
(Mx_FCPlanta3 And Mw_Peticiones.3=1) Or (Mx_FCPlanta4 And Mw_Peticiones.4=1) Or (Mx_FCPlanta5 And
Mw_Peticiones.5=1)) THEN
Set (Mx_ParaAscensor);
Set (Mx_AbrePuertas);
END_IF;
(* con los FC miramos si terminó de subir, para permitirle bajar *)
If Mw_FC_Plantas >= Mw_Peticiones THEN
Reset (Mx_Sube);
END_IF;
(* con los FC miramos si terminó de bajar, para permitirle subir *)
If Mx_Baja And (Mx_FCPlanta1 And Mw_Peticiones.1=1) Or (Mx_FCPlanta2 And Mw_Peticiones.2=1 AND
Mw_Peticiones.1=0) Or (Mx_FCPlanta3 And Mw_Peticiones.3=1 AND Mw_Peticiones.2=0 And
Mw_Peticiones.1=0) Or (Mx_FCPlanta4 And Mw_Peticiones.4=1 AND Mw_Peticiones.3=0
And Mw_Peticiones.2=1 AND Mw_Peticiones.1=0) OR (Mx_FCPlanta5 And Mw_Peticiones.5=1 And
Mw_Peticiones.4=0 And Mw_Peticiones.3=0 And Mw_Peticiones.2=0 AND Mw_Peticiones.1=0) THEN
Reset (Mx_Baja);
END_IF;
If Mx_PuertasAbiertas THEN
Reset (Mx_AbrePuertas);
Reset (Mx_UrgeAbrirPuertas);
END_IF;
(* motor para abrir y cerrar las puertas exteriores e interiores de la cabina *)
If Mx_UrgeAbrirPuertas Or Mx_AbrePuertas THEN
AbrirPuertas();
END_IF;
TON_5s (IN := Mx_PuertasAbiertas,
PT := t#5s);
If TON_5s.Q AND Mx_Fotocelula THEN
Set (Mx_CierraPuertas);
Reset (Mx_PuertasAbiertas);
END_IF;
If Mx_PuertasCerradas THEN
Reset (Mx_CierraPuertas);
Reset (Mx_PuertasCerradas);
Reset (Mx_ParaAscensor);
END_IF;
Problemas M340 - 345
Universidad de Oviedo
ISA - J. Alonso - I. Machón
If Mx_CierraPuertas THEN
CerrarPuertas();
END_IF;
Salidas
(* motor para subir y bajar la cabina *)
(* utilizar contactores enclavados mecanicamente para la inversión *)
Qx_Subir := Mx_Sube And Not Qx_Bajar And Not Mx_ParaAscensor And Not Mx_UrgeAbrirPuertas And
Mx_FCES And Mx_FCPtaIntCerrada And Mw_FCC_PtasExte=126;
Qx_Bajar := Mx_Baja And Not Qx_Subir And Not Mx_ParaAscensor And Not Mx_UrgeAbrirPuertas And
Mx_FCEI And Mx_FCPtaIntCerrada And Mw_FCC_PtasExte=126;
(* luces pulsadores de la planta *)
If RE (Mx_PPlanta1) THEN
Set (Qx_LPPlanta1);
END_IF;
If RE (Mx_PPlanta2) THEN
Set (Qx_LPPlanta2);
END_IF;
If RE (Mx_PPlanta3) THEN
Set (Qx_LPPlanta3);
END_IF;
If RE (Mx_PPlanta4) THEN
Set (Qx_LPPlanta4);
END_IF;
If RE (Mx_PPlanta5) THEN
Set (Qx_LPPlanta5);
END_IF;
If RE (Mx_PPlanta6) THEN
Set (Qx_LPPlanta6);
END_IF;
(* luces pulsadores de la botonera interior *)
If RE (Mx_PBotonera1) THEN
Set (Qx_LBotPlanta1);
END_IF;
If RE (Mx_PBotonera2) THEN
346 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Set (Qx_LBotPlanta2);
END_IF;
If RE (Mx_PBotonera3) THEN
Set (Qx_LBotPlanta3);
END_IF;
If RE (Mx_PBotonera4) THEN
Set (Qx_LBotPlanta4);
END_IF;
If RE (Mx_PBotonera5) THEN
Set (Qx_LBotPlanta5);
END_IF;
If RE (Mx_PBotonera6) THEN
Set (Qx_LBotPlanta6);
END_IF;
(* Reseteo de todas las salidas en posición manual *)
If Ix_AutManual THEN
Reset (Qx_Subir);
Reset (Qx_Bajar);
Reset (Qx_AbrirPtaInterior);
Reset (Qx_CerrarPtaInterior);
Reset (Qx_AbrirPtaPlanta1);
Reset (Qx_CerrarPtaPlanta1);
Reset (Qx_AbrirPtaPlanta2);
Reset (Qx_CerrarPtaPlanta2);
Reset (Qx_AbrirPtaPlanta3);
Reset (Qx_CerrarPtaPlanta3);
Reset (Qx_AbrirPtaPlanta4);
Reset (Qx_CerrarPtaPlanta4);
Reset (Qx_AbrirPtaPlanta5);
Reset (Qx_CerrarPtaPlanta5);
Reset (Qx_AbrirPtaPlanta6);
Reset (Qx_CerrarPtaPlanta6);
END_IF;
Problemas M340 - 347
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Simulación
(* variables asociadas a los objetos de la simulación *)
IF %S13 THEN
Set(MXP_FCEI); Set(MXP_FCES); Set (MxP_Fotocelula); Set(MxP_FCPlanta1);
Set(MxP_FCPtaIntCerrada); Set(MxP_FCPtaPlanta1Cerrada);Set(MxP_FCPtaPlanta2Cerrada);
Set(MxP_FCPtaPlanta3Cerrada); Set(MxP_FCPtaPlanta4Cerrada); Set(MxP_FCPtaPlanta5Cerrada);
Set(MxP_FCPtaPlanta6Cerrada);
END_IF;
Mx_PtasIntAbiertas1 := Mx_FCPlanta1 And Mx_FCPtaIntAbierta;
Mx_PtasIntAbiertas2 := Mx_FCPlanta2 And Mx_FCPtaIntAbierta;
Mx_PtasIntAbiertas3 := Mx_FCPlanta3 And Mx_FCPtaIntAbierta;
Mx_PtasIntAbiertas4 := Mx_FCPlanta4 And Mx_FCPtaIntAbierta;
Mx_PtasIntAbiertas5 := Mx_FCPlanta5 And Mx_FCPtaIntAbierta;
Mx_PtasIntAbiertas6 := Mx_FCPlanta6 And Mx_FCPtaIntAbierta;
Mx_PtasExtCerradas1 := Mx_FCPlanta1 And MxP_FCPtaPlanta1Cerrada;
Mx_PtasExtCerradas2 := Mx_FCPlanta2 And MxP_FCPtaPlanta2Cerrada;
Mx_PtasExtCerradas3 := Mx_FCPlanta3 And MxP_FCPtaPlanta3Cerrada;
Mx_PtasExtCerradas4 := Mx_FCPlanta4 And MxP_FCPtaPlanta4Cerrada;
Mx_PtasExtCerradas5 := Mx_FCPlanta5 And MxP_FCPtaPlanta5Cerrada;
Mx_PtasExtCerradas6 := Mx_FCPlanta6 And MxP_FCPtaPlanta6Cerrada;
Mx_PtasExtAbIntCerr1 := Mx_FCPlanta1 And MxP_FCPtaPlanta1Abierta And Mx_FCPtaIntCerrada;
Mx_PtasExtAbIntCerr2 := Mx_FCPlanta2 And MxP_FCPtaPlanta2Abierta And Mx_FCPtaIntCerrada;
Mx_PtasExtAbIntCerr3 := Mx_FCPlanta3 And MxP_FCPtaPlanta3Abierta And Mx_FCPtaIntCerrada;
Mx_PtasExtAbIntCerr4 := Mx_FCPlanta4 And MxP_FCPtaPlanta4Abierta And Mx_FCPtaIntCerrada;
Mx_PtasExtAbIntCerr5 := Mx_FCPlanta5 And MxP_FCPtaPlanta5Abierta And Mx_FCPtaIntCerrada;
Mx_PtasExtAbIntCerr6 := Mx_FCPlanta6 And MxP_FCPtaPlanta6Abierta And Mx_FCPtaIntCerrada;
Mx_AbrePtaIntP1 := Mx_FCPlanta1 and Qx_AbrirPtaInterior;
Mx_AbrePtaIntP2 := Mx_FCPlanta2 and Qx_AbrirPtaInterior;
Mx_AbrePtaIntP3 := Mx_FCPlanta3 and Qx_AbrirPtaInterior;
Mx_AbrePtaIntP4 := Mx_FCPlanta4 and Qx_AbrirPtaInterior;
Mx_AbrePtaIntP5 := Mx_FCPlanta5 and Qx_AbrirPtaInterior;
Mx_AbrePtaIntP6 := Mx_FCPlanta6 and Qx_AbrirPtaInterior;
Mx_CierraPtaIntP1 := Mx_FCPlanta1 and Qx_CerrarPtaInterior;
Mx_CierraPtaIntP2 := Mx_FCPlanta2 and Qx_CerrarPtaInterior;
Mx_CierraPtaIntP3 := Mx_FCPlanta3 and Qx_CerrarPtaInterior;
Mx_CierraPtaIntP4 := Mx_FCPlanta4 and Qx_CerrarPtaInterior;
Mx_CierraPtaIntP5 := Mx_FCPlanta5 and Qx_CerrarPtaInterior;
Mx_CierraPtaIntP6 := Mx_FCPlanta6 and Qx_CerrarPtaInterior;
348 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Mx_AbrePtaExtP1 := Mx_FCPlanta1 and Qx_AbrirPtaPlanta1;
Mx_AbrePtaExtP2 := Mx_FCPlanta2 and Qx_AbrirPtaPlanta2;
Mx_AbrePtaExtP3 := Mx_FCPlanta3 and Qx_AbrirPtaPlanta3;
Mx_AbrePtaExtP4 := Mx_FCPlanta4 and Qx_AbrirPtaPlanta4;
Mx_AbrePtaExtP5 := Mx_FCPlanta5 and Qx_AbrirPtaPlanta5;
Mx_AbrePtaExtP6 := Mx_FCPlanta6 and Qx_AbrirPtaPlanta6;
Mx_CierraPtaExtP1 := Mx_FCPlanta1 and Qx_CerrarPtaPlanta1;
Mx_CierraPtaExtP2 := Mx_FCPlanta2 and Qx_CerrarPtaPlanta2;
Mx_CierraPtaExtP3 := Mx_FCPlanta3 and Qx_CerrarPtaPlanta3;
Mx_CierraPtaExtP4 := Mx_FCPlanta4 and Qx_CerrarPtaPlanta4;
Mx_CierraPtaExtP5 := Mx_FCPlanta5 and Qx_CerrarPtaPlanta5;
Mx_CierraPtaExtP6 := Mx_FCPlanta6 and Qx_CerrarPtaPlanta6;
Subrutina “AbrirPuertas”
(* abre las puertas *)
(* utilizar contactores enclavados mecánicamente para la inversión *)
If Mx_FCPlanta1 THEN
Set (Qx_AbrirPtaPlanta1);
END_IF;
If Mx_FCPlanta2 THEN
Set (Qx_AbrirPtaPlanta2);
END_IF;
If Mx_FCPlanta3 THEN
Set (Qx_AbrirPtaPlanta3);
END_IF;
If Mx_FCPlanta4 THEN
Set (Qx_AbrirPtaPlanta4);
END_IF;
If Mx_FCPlanta5 THEN
Set (Qx_AbrirPtaPlanta5);
END_IF;
If Mx_FCPlanta6 THEN
Set (Qx_AbrirPtaPlanta6);
END_IF;
If Mx_FCPtaIntAbierta=0 THEN
Set (Qx_AbrirPtaInterior);
END_IF;
Problemas M340 - 349
Universidad de Oviedo
ISA - J. Alonso - I. Machón
If Mx_FCPtaPlanta1Abierta THEN
Reset (Qx_AbrirPtaPlanta1);
Mw_PetBotonera.1:=0;
Mw_PetPlantas.1:=0;
Reset(Qx_LPPlanta1);
Reset(Qx_LBotPlanta1);
END_IF;
If Mx_FCPtaPlanta2Abierta THEN
Reset (Qx_AbrirPtaPlanta2);
Mw_PetBotonera.2:=0;
Mw_PetPlantas.2:=0;
Reset(Qx_LPPlanta2);
Reset(Qx_LBotPlanta2);
END_IF;
If Mx_FCPtaPlanta3Abierta THEN
Reset (Qx_AbrirPtaPlanta3);
Mw_PetBotonera.3:=0;
Mw_PetPlantas.3:=0;
Reset(Qx_LPPlanta3);
Reset(Qx_LBotPlanta3);
END_IF;
If Mx_FCPtaPlanta4Abierta THEN
Reset (Qx_AbrirPtaPlanta4);
Mw_PetBotonera.4:=0;
Mw_PetPlantas.4:=0;
Reset(Qx_LPPlanta4);
Reset(Qx_LBotPlanta4);
Reset (Mx_ParaAscensor);
END_IF;
If Mx_FCPtaPlanta5Abierta THEN
Reset (Qx_AbrirPtaPlanta5);
Mw_PetBotonera.5:=0;
Mw_PetPlantas.5:=0;
Reset(Qx_LPPlanta5);
Reset(Qx_LBotPlanta5);
END_IF;
If Mx_FCPtaPlanta6Abierta THEN
Reset (Qx_AbrirPtaPlanta6);
350 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Mw_PetBotonera.6:=0;
Mw_PetPlantas.6:=0;
Reset(Qx_LPPlanta6);
Reset(Qx_LBotPlanta6);
END_IF;
If Mx_FCPtaIntAbierta THEN
Reset (Qx_AbrirPtaInterior);
END_IF;
If Mx_FCPtaIntAbierta And ((Mx_FCPlanta1 And Mx_FCPtaPlanta1Abierta) Or (Mx_FCPlanta2 And
Mx_FCPtaPlanta2Abierta) OR (Mx_FCPlanta3 And Mx_FCPtaPlanta3Abierta) Or (Mx_FCPlanta4 And
Mx_FCPtaPlanta4Abierta) OR (Mx_FCPlanta5 And Mx_FCPtaPlanta5Abierta) OR (Mx_FCPlanta6 And
Mx_FCPtaPlanta6Abierta)) THEN
Set (Mx_PuertasAbiertas);
END_IF;
Subrutina “CerrarPuertas”
(* cierra las puertas pero en caso pillar a algo interrumpe la maniobra *)
(* ¡OJO! UTILIZAR contactores enclavados mecánicamente para la inversión *)
If Mx_FCPtaIntCerrada=0 THEN
Set (Qx_CerrarPtaInterior);
END_IF;
If Mx_FCPlanta1 And Mx_FCPtaPlanta1Cerrada=0 THEN
Set (Qx_CerrarPtaPlanta1);
END_IF;
If Mx_FCPlanta2 And Mx_FCPtaPlanta2Cerrada=0 THEN
Set (Qx_CerrarPtaPlanta2);
END_IF;
If Mx_FCPlanta3 And Mx_FCPtaPlanta3Cerrada=0 THEN
Set (Qx_CerrarPtaPlanta3);
END_IF;
If Mx_FCPlanta4 And Mx_FCPtaPlanta4Cerrada=0 THEN
Set (Qx_CerrarPtaPlanta4);
END_IF;
If Mx_FCPlanta5 And Mx_FCPtaPlanta5Cerrada=0 THEN
Set (Qx_CerrarPtaPlanta5);
END_IF;
If Mx_FCPlanta6 And Mx_FCPtaPlanta6Cerrada=0 THEN
Problemas M340 - 351
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Set (Qx_CerrarPtaPlanta6);
END_IF;
If Mx_FCPtaIntCerrada Or Not Mx_Fotocelula Or Mx_PAbrirPuertas THEN
Reset (Qx_CerrarPtaInterior);
END_IF;
If Mx_FCPtaPlanta1Cerrada Or Not Mx_Fotocelula Or Mx_PAbrirPuertas THEN
Reset (Qx_CerrarPtaPlanta1);
END_IF;
If Mx_FCPtaPlanta2Cerrada Or Not Mx_Fotocelula Or Mx_PAbrirPuertas THEN
Reset (Qx_CerrarPtaPlanta2);
END_IF;
If Mx_FCPtaPlanta3Cerrada Or Not Mx_Fotocelula Or Mx_PAbrirPuertas THEN
Reset (Qx_CerrarPtaPlanta3);
END_IF;
If Mx_FCPtaPlanta4Cerrada Or Not Mx_Fotocelula Or Mx_PAbrirPuertas THEN
Reset (Qx_CerrarPtaPlanta4);
END_IF;
If Mx_FCPtaPlanta5Cerrada Or Not Mx_Fotocelula Or Mx_PAbrirPuertas THEN
Reset (Qx_CerrarPtaPlanta5);
END_IF;
If Mx_FCPtaPlanta6Cerrada Or Not Mx_Fotocelula Or Mx_PAbrirPuertas THEN
Reset (Qx_CerrarPtaPlanta6);
END_IF;
If Mx_FCPtaIntCerrada And Mw_FCC_PtasExte=126 THEN
Reset (Mx_CierraPuertas);
Set (Mx_PuertasCerradas);
END_IF;
(* en caso de atrapar algo, interrumpe la maniobra y abre las puertas *)
(* si las puertas ya están cerradas, no hace nada *)
If (Not Mx_Fotocelula Or Mx_PAbrirPuertas) And Not Mx_PuertasCerradas THEN
Reset (Mx_CierraPuertas);
Set (Mx_UrgeAbrirPuertas);
END_IF;
352 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de operador
En la pantalla de operador se puede apreciar lo siguiente:
 La caja del ascensor está formada por dos rectángulos llenos de color gris y blanco. En la parte
superior, estaría el anclaje al motor de subir y bajar, y lateralmente, el contacto con los Finales de
carrera de las plantas.
Hay 3 cabinas, 1º con las puertas exteriores e interiores cerradas, 2 º Con la puerta exterior abierta
y la interior cerrada y 3ª con las puertas abiertas y una persona en su interior.
 Los motores de apertura de las puertas y de subir y bajar, tienen una luz verde para indicar abrir o
subir y una roja para indicar cerrar o bajar.
 Los Finales de Carrera se muestran cuando están activos o no.
 Los pulsadores tienen un marco oscuro cuando no están pulsados, y un marco de color amarillo
claro cuando están activos.
 Flechas que nos indican si el ascensor está subiendo o bajando.
 Flechas que nos indican si las puertas interiores y exteriores están cerrando o abriendo.
Problemas M340 - 353
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Como introducir un valor analógico mediante un indicador de
escala
Se hace uso del icono correspondiente, número 14 de la barra IOSEditor
Como introducir un gráfico de tendencias
Se introduce un rectángulo como objeto animado asociado a la variable requerida y se anima como gráfico
de tendencias.
354 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Cómo hacer el escalado de una señal analógica de entrada
Realizar un pequeño programa que proceda al escalado de una señal analógica de campo de forma que se
puedan definir los factores de valor mínimo de escalado y de valor máximo de escalado entre los que se
desea acotar el resultado final que se ha de visualizar.
La señal de campo se ha de configurar en la correspondiente tarjeta de entradas/salidas analógicas.
Ejemplo: Escalado y tratamiento de una señal analógica de temperatura
Una sonda de temperatura proporciona una señal analógica 0-10V y está calibrada de forma que indica
valores de temperatura comprendidos entre 32 y 212 grados Fahrenheit. Esta sonda se va a utilizar para
regular la temperatura en una sala de forma que:
- La temperatura ideal de la sala es de 25 ⁰C.
- Por encima de 30 ⁰C se ha de poner en marcha el sistema de refrigeración que se ha de detener si la
temperatura desciende de 28 ⁰C.
- Por debajo de 20 ⁰C se ha de poner en marcha el sistema de calefacción que se ha de detener si la
temperatura asciende por encima de los 22 ⁰C.
El valor en grados Celsius se debe obtener realizando un cálculo aritmético a partir del valor en grados
Fahrenheit. La fórmula de conversión es la siguiente:
grados Celsius =
grados Fahrenheit − 32
9
∗ 5
La señal de campo como entrada analógica se ha de tratar con un formato de 16 bits y se le ha de asignar un
tipo de dato ENTERO, pero el tratamiento del resto de programa ha de ser con valores de tipo REAL.
El hardware elegido para el PLC es:
Se debe comenzar realizando la configuración del módulo de entradas analógicas haciendo doble clic sobre
él en la vista general del hardware del PLC. Se ha instalado el módulo BMX AMI 0410 que contiene 4
canales de entrada analógica. Aparecerá la siguiente ventana:
Problemas M340 - 355
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Se selecciona el rango de entrada (+/-10V, 0 a 10V, 0 a 5V / De 0 a 20 mA, De 1 a 5V / 4 a 20mA, +/- 5V
+/- 20 mA), escala (valores de tipo entero equivalentes a la señal eléctrica medida) y filtro (según los
requerimientos de la señal a tratar).
En este
caso, se ha seleccionado el canal 0 del módulo de entradas analógicas con un rango de 0 a 10V
Se selecciona una
tarea asociada al canal analógico
356 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 357
Universidad de Oviedo
ISA - J. Alonso - I. Machón
En nuestro caso, tarea maestra
Se selecciona el ciclo de exploración del canal de entrada. Lo dejamos en normal
A continuación se define la escala
La escala de 0 a 10000. Se puede observar la escala clicando sobre ella:
358 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Se especIfica el desborde
Se elige el filtrado
Problemas M340 - 359
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Todos estos conceptos quedan definidos en la ayuda del Unity Pro como vemos en el siguiente cuadro:
Una vez configurado el módulo de entradas analógicas, se debe realizar el escalado de la señal mediante la
inserción de una instancia a un bloque de función elemental denominado SCALING.
360 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Los parámetros del escalado forman parte de una estructura de datos denominada PARA_SCALING.
Lo más cómodo es insertar el bloque y asignar como entrada de parámetros PARA la variable de nombre
p.e.“parámetros” del tipo PARA_SCALING. Por otra parte, la entrada IN y la salida OUT son del tipo REAL.
El bloque PARA_SCALING realiza la siguiente función:
𝑂𝑈𝑇 = (𝐼𝑁 − 𝑖𝑛_𝑚𝑖𝑛) ×
(𝑜𝑢𝑡_𝑚𝑎𝑥 − 𝑜𝑢𝑡_𝑚𝑖𝑛)
(𝑖𝑛_𝑚𝑎𝑥 − 𝑖𝑛_𝑚𝑖𝑛)
+ 𝑜𝑢𝑡_𝑚𝑖𝑛
Los parámetros de la función anterior quedan descritos en la siguiente tabla:
Elemento Tipo de datos Significado
in_min REAL Límite inferior de la escala de entrada
in_max REAL Límite superior de la escala de entrada
out_min REAL Límite inferior de la escala de salida
out_max REAL Límite superior de la escala de salida
clip BOOL "1": el valor de la salida OUT está limitado por out_min y out_max.
Problemas M340 - 361
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Teniendo en cuenta lo anteriormente expuesto, para el presente ejemplo, se deben asignar los valores a los
parámetros de escalado en la tabla de datos derivados:
362 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 363
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 9.11 Ejemplo de escalado de señal analógica
Preliminar
If Ix_LocalDist THEN
Mi_TempaSalaF := Iw_TempSalaF;
(*El valor de la temperatura de la sala en grados Fahrenheit se mide a través 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;
Sección “Escalado”
364 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de operador
Problemas M340 - 365
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 9.12 · Pesado preciso de sustancias. EM y EF
Se desea automatizar un proceso de pesado preciso de un producto sobre una báscula. La base sobre la que
se vierte el producto pesa 20 Kg. Para verter el producto se dispone de una tolva con dos tajaderas
controladas neumáticamente. La "A" cerrada mediante un Cilindro de Simple Efecto [CSE] vierte el producto
de una forma rápida -gran sección de paso- gobernado por una EV monoestable. La "B" cerrada mediante un
CSE, lo vierte de una forma más lenta -sección de paso inferior- para poder afinar en la cantidad de producto
vertido, está controlado por una EV monoestable.
La tolva tiene un sensor de peso analógico calibrado capaz de pesar desde 0 hasta 700 Kg (Iw_SensorPeso).
Supongamos que nos proporciona una señal a través de un interface de 0 a 10V DC. Nos dará 10 V cuando
pese 700 Kg y 0 V cuando esté a 0 Kg.
El proceso consiste en lo siguiente:
 Al pulsar Marcha (Ix_Marcha NA), deben abrirse las tajaderas A (Qx_A_Menos) y B (Qx_B_Menos)
que cierran el vertido de un producto sobre un sistema de pesaje basculante.
 Cuando se haya vertido 480 Kg de producto, deberá cerrarse la tajadera A.
 Cuando se haya vertido 500 Kg de producto, deberá cerrarse B con lo que se cerrará la compuerta
de afinado.
 Alcanzado el peso deseado, se vacía la báscula por medio de un cilindro basculante “C” (Qx_C_Mas)
EV monoestable.
 El vaciado se efectúa durante 10 segundos.
 En ese momento se desactiva el cilindro basculante para que la báscula recupere la posición inicial.
 Durante cualquier momento del proceso, si se pulsa la parada de emergencia (Ix_Emergencia NC) se
deberán cerrar las tajaderas A y B y/o parar el vaciado de la báscula. Además se indicará mediante la
activación de una luz roja de parada de emergencia oscilando a una frecuencia de 1 Hz
(Qx_LEmergencia).
 Al pulsar rearme (Ix_Rearme) el sistema vaciará la báscula durante 10 segundos y volverá al estado
de reposo, independientemente del estado en el que se produjese la parada.
 Durante cualquier momento del proceso, si se pulsa un interruptor de paro (Ix_Paro NC), se deberá
parar el proceso y activar una luz de paro (Qx_LParo). Se saldrá de esta situación al pulsar Marcha.
El sistema volverá a continuar donde estaba y se apagará la luz de paro.
El sistema tendrá un control Local y a Distancia (Ix_LocDis)
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta a todo el conjunto, módulo de
entradas PNP BMX DDI 1602, de salidas PNP BMX DDO 1602 y entradas/salidas analógicas BMX AMM 0600.
366 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de Mando,
Esquema de fuerza neumático
Problemas M340 - 367
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de variables
368 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa (pr0912A) · Pesado sencillo de substancias
Sección “Simulación”
(* variables para la pantalla de operador *)
If %S13 THEN
Set(MxP_Paro); Set (MxP_Emergencia);
END_IF;
Mx_CerrarA := Mr_Peso >= 480.0;
Mx_CerrarB := Mr_Peso >= 500.0;
If Etapa0.x THEN
MiP_SensorPeso := 286; (* para la simulación, ponemos el peso de la base de 20 Kg *)
END_IF;
Sección “Preliminar”
(* IniciaVariables *)
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_Emergencia := (Ix_Emergencia And Ix_LocDis) Or(MxP_Emergencia And Not Ix_LocDis);
If Ix_LocDis THEN
Mi_SensorPeso := Iw_SensorPeso; (*El valor del sensor de peso se mide a través de la galga *)
else
Mi_SensorPeso := MiP_SensorPeso; (*El valor del peso se asigna por la pantalla de operador*)
END_IF;
(* Parada de emergencia *)
Mx_EnEmergencia := CLEARCHART (Control, Not Mx_Emergencia);
(* Rearme *)
If Mx_Rearme THEN
Reset (Mx_EnParada);
END_IF;
Mx_PonCI := CLEARCHART (Control, RE(Mx_Rearme));
If Mx_PonCI And Not Mx_Rearme THEN
Setstep (Etapa3);
END_IF;
Problemas M340 - 369
Universidad de Oviedo
ISA - J. Alonso - I. Machón
(* Paro *)
If Not Mx_Paro THEN
Set (Mx_EnParada);
END_IF;
If Mx_EnParada THEN
Mx_ParoGRAFCET := FREEZECHART (Control, true);
(* Congela el GRAFCET, dejando activa la etapa en la que queda congelado *)
else Mx_ParoGRAFCET := FREEZECHART (Control, false);
END_IF;
If Mx_Marcha THEN
Reset (Mx_EnParada);
END_IF;
Mr_SensorPeso := INT_TO_REAL (IN := Mi_SensorPeso);
Escalado_0 (IN := Mr_SensorPeso,
PARA := Parámetros,
OUT => Mr_Peso);
Sección “Chart”
370 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección “Transiciones”
Tran3_0 := Etapa3.t >= t#10s;
Sección “Salidas”
Qx_A_Menos:= Etapa1.x And Not Mx_EnParada;
Qx_B_Menos:= (Etapa1.x Or Etapa2.x) And Not Mx_EnParada;
Qx_C_Mas:= Etapa3.x And Not Mx_EnParada;
Qx_LParo:= Mx_EnParada;
Qx_LEmergencia:= Mx_EnEmergencia And %S6;
Pantalla de operador
A continuación, podemos observar los distintos elementos creados para confeccionar la pantalla de
operación. Están hechos con los objetos gráficos del propio Unity.
En esta pantalla usamos un “Indicador de escala” para modificar la variable MiP_SensorPeso y el “Cuadro
de giro” para hacer una aproximación más lenta sobre la misma variable.
Problemas M340 - 371
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa (pr0912B) · Pesado sencillo de substancias
El mismo problema lo resolveremos con una pequeña variación. Modificaremos la sección de simulación para
que el peso del producto se vaya incrementando automáticamente.
La nueva sección que substituye a la anterior es:
Sección “Simulacion”
(* variables para la pantalla de operador *)
If %S13 THEN
Set(MxP_Paro); Set (MxP_Emergencia);
END_IF;
Mx_CerrarA := Mr_Peso >= 500.0;
Mx_CerrarB := Mr_Peso >= 520.0;
If Etapa0.x THEN
MiP_SensorPeso := 286; (* para la simulación, ponemos el peso de la base de 20 Kg *)
END_IF;
If Etapa1.x THEN
MiP_SensorPeso := MiP_SensorPeso + 10;
END_IF;
If Etapa2.X THEN
MiP_SensorPeso := MiP_SensorPeso + 1;
END_IF;
Mx_Arena1 := MiP_SensorPeso >286 And Etapa1.x;
Mx_Arena2 := MiP_SensorPeso >3500 And Etapa1.x;
Mx_Arena3 := MiP_SensorPeso >5000 And Etapa1.x;
Mx_Arena4 := MiP_SensorPeso >7000 And Etapa2.x;
Mx_Arena5 := Etapa3.x;
372 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de operador
La pantalla de operador en pleno funcionamiento es:
Y la misma pantalla viendo parte de sus objetos
Problemas M340 - 373
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 9.13 · Control de un ascensor de 6 plantas. Botones de
planta de subir y bajar (Resolver)
Se desea controlar un ascensor con puertas automáticas situado en un edificio de 6 plantas disponiendo de
un control manual y otro automático ( Ix_AutMan) mediante autómata que permitan posicionarlo en un
lugar determinado. Así mismo, se dispondrá de un control local y a distancia desde una pantalla de operador
(Ix_locDis).
CONTROL MANUAL
Cuando está activo el control manual, (conmutador Ix_AutMan posición Man) el control automático
mediante autómata debe quedar desactivado y poder subir o bajar el ascensor (Qx_Subir y Qx_Bajar)
mediante dos pulsadores situados en la botonera de maniobra quedando limitado el sobrerecorrido superior
e inferior por unos finales de carrera Ix_FCES y Ix_FCEI (NC potencia). Cuando por excederse en el recorrido
se activase uno de éstos, sólo podrá entrar la orden contraria. Así mismo se deberá poder abrir y cerrar las
diferentes puertas del ascensor.
CONDICIONES DE INICIO
El ascensor estará situado en una planta cualquiera y deberá tener cerradas sus puertas.
CONTROL AUTOMÁTICO
Cuando está activo el control automático, (conmutador Ix_AutMan posición Aut, 1 lógico) Mando, manual
desactivado, el autómata gobernará el ascensor, para ello dispondrá de unos finales de carrera que indicarán
su situación en las diferentes plantas (FCPlantaN, NO). El FCES y el FCEI tendrán 2 contactos de entrada al
autómata para parar la maniobra por malfuncionamiento. Así mismo habrá una botonera interior para
indicar a que planta se desea ir (PBotoneraN), un pulsador para poder interrumpir la maniobra de cierre de
las puertas y proceder a su apertura (PAbrirPuertas) y un dos pulsadores exteriores por planta para llamar al
ascensor para subir o bajar (PPlantaNSubir, PPlantaNBajar). Cuando se demande una atención, se encenderá
la luz amarilla de dichos pulsadores (Qx_LPPlantaNSubir, Qx_LPPlantaNBajar, Qx_LBotPlantaN y
Qx_LBotAbrirPuertas )
Cuando el ascensor llegue a la planta de destino, deberá parar su movimiento y proceder a abrir la puerta
corredera interior (Qx_AbrirPtaInterior, Ix_FCPtaIntAbierta, Ix_FCPtaIntCerrada), y la puerta exterior
(Qx_AbrirPtaPlantaN, Ix_FCPtaPlantaNAbierta, Ix_FCPtaPlantaNCerrada), esperar 5 segundos y si hay una
llamada interior o exterior, proceder al cierre de la puerta exterior y cerrar la interior (Qx_CerrarPtaInterior,
Qx_CerrarPtaPlantaN).
Si estando cerrando, hay un objeto interpuesto, lo detectará una fotocélula (Ix_Fotocelula) que abrirá de
nuevo las puertas según la maniobra ya descrita, volviendo a esperar 5 segundos para seguir con la maniobra
de cierre.
Los finales de carrera de cerradas las puertas exteriores y la interior nos informaran que todas las puertas
están cerradas; condición indispensable para que el ascensor pueda subir o bajar.
En condiciones iniciales el ascensor estará posicionado en una planta cualquiera (situado por el técnico de
forma manual) y las puertas estarán cerradas.
Para el movimiento ascendente o descendente del ascensor tendremos en cuenta que:
 En subida y bajada irá parando memorizadamente cuando sea estrictamente necesario en función
de las órdenes de cabina y exteriores con prioridad en el movimiento ascendente o descendente de
las ordenes de cabina. Finalizará el movimiento en uno u otro sentido, antes de invertirlo.
Se pide: Programa de control del ascensor.
374 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 375
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 10.01 · Control de un aporte de materiales. CDE AD IG
Control de un sistema de aporte de material mediante PLC.
La cinta transportadora, será movida mediante un motor con dos sentidos de giro. El motor de Pm = 5 KW,
Un = 400 V, η= 84%, cos φ= 0,84 y 2910 rpm. Arranque directo con corriente de arranque 5 veces la nominal.
El tiempo de arranque es 5 segundos.
En la mitad de la cinta transportadora hay dos tolvas que descargan material A o B sobre la cinta. La apertura
y cierre de las tolvas será controlada mediante 2 CDE y sus respectivas electroválvulas monoestables
[Qx_Menos Abrir A, Qx_BMenos Abrir B] y posición inicial de vástago extendido. En función del tipo de
material que se vaya a transportar, la cinta deberá moverse en un sentido o en otro.
Cuando se accione un pulsador S1 [Ix_TAIzda NA], se abrirá la tolva A y la cinta se desplazará hacia la
izquierda. Cuando se accione un pulsador S2 [Ix_ParaDchaTB NA], se cerrará inmediatamente la tolva A, y
tras 15 segundos, que es el tiempo que tarda el material en ser transportado por la cinta hasta el final de
esta y ser evacuado, se invertirá el sentido de giro del motor y se abrirá la tolva B, para llevar el material a
un vagón al otro extremo de la cinta.
Si, por el contario, se acciona S3 [Ix_TBDcha (NA)], el proceso será el inverso: se abrirá la tolva B y la cinta
se desplazará hacia la derecha. Cuando se accione un pulsador S4 [Ix_ParaIzdaTA NA], se cerrará
inmediatamente la tolva B, y tras 15 segundos, que es el tiempo que tarda el material en ser transportado
por la cinta hasta el final de esta y ser evacuado, se invertirá el sentido de giro del motor y se abrirá la tolva
A, para llevar el material a un vagón al otro extremo de la cinta.
Cuando se pulsa un pulsador de paro S5 [Ix_Paro NC] al final del ciclo, se cierra la tolva que esté abierta (en
el proceso final una vez realizada la inversión de giro) y, tras quince segundos se para el motor y va a CI.
Si se activa una seta de emergencia, S6 [Ix_Emergencia NC], se cierra la tolva que esté abierta y se para
inmediatamente el motor, aunque quede todavía material en la cinta. No pudiendo evolucionar el sistema
hasta que, una vez subsanado el problema; se desbloque la seta y se pulse Rearme. Se encenderá una
lámpara de color rojo LRoja a la vez que la blanca.
Condiciones iniciales [CI]: El sistema estará parado, con las tajaderas cerradas, vástagos de los cilindros
extendidos y una lámpara blanca encendida cuando el sistema esté con tensión. Una lámpara verde
[Qx_LVerde] se encenderá cuando el sistema esté en funcionamiento (moviéndose las cintas).
Alarmas: Si saltase la protección térmica del motor (rearme manual), deberá parar toda la instalación y cerrar
las tajaderas y encenderse exclusivamente una lámpara Ámbar [Qx_LAmbar]. No pudiendo evolucionar el
sistema hasta que, una vez subsanado el problema; se Resetee el térmico y se pulse S7 [Ix_Reset NO] lo cual
le llevará a CI.
Se detectará cuando un relé Reed quede cortocircuitado. Si esto sucede, el sistema seguirá funcionando pero
se indicará mediante un mensaje en la pantalla de operación.
Si un relé Reed queda abierto o cortocircuitado, deberá parar toda la instalación, cerrar las tajaderas,
encenderse exclusivamente una lámpara Roja [Qx_LRoja] y se indicará mediante un mensaje en la pantalla
de operación. No pudiendo evolucionar el sistema hasta que, una vez subsanado el problema; se pulse S7
[Ix_Rearme NO] lo cual le llevará a Condiciones Iniciales.
376 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0400, fuente de
alimentación BMX CPS 2000 (24VDC 60W, eficiencia del 82%) alimenta a todo el conjunto, módulo 1 de 16
entradas digitales de 24 VCC PNP módulo BMX DDI 1602, módulo 2 de 16 salidas por relé BMX DRA 1605 (8 +
8) alimentado a 24 VCC.
Los contactores utilizados serán de bobina DC
Los cilindros neumáticos mueven unas tajaderas y sus respectivos vástagos que pesan 30 Kg. Deberán vencer
un rozamiento de 200 N con una velocidad de 50 cm/s siendo la carrera es de 50 cm.
El compresor trabaja entre 7 y 9 Kg/cm2
y alimenta una instalación de 124 m con un caudal de 1.200 l/min
de aire libre con una caída de presión de no más de 0,3 bares en el extremo del tubo. La tubería tiene 6 codos
de 90°, 4 codos Elbow y 6 "T" estándar.
Se pide:
 Diseñar el esquema de mando y de fuerza del sistema.
 Elegir los elementos de protección del sistema de mando y de fuerza.
 Indicar sobre las gráficas del térmico y del automático CLARAMENTE, la corriente de arranque, la
corriente de regulación del térmico y la corriente nominal.
 Diámetro los cilindros, aire consumido por ciclo: exacto y aproximado ( Hg 13.600 Kg/ m3
).
 Sección de la tubería.
 Programa de mando.
Problemas M340 - 377
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de Fuerza
Esquema de Mando
378 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Relé térmico F1
𝜂 =
𝑃𝑢
𝑃𝑒
=
𝑃𝑢
√3 𝑈𝑛 𝐼𝑛 cos 
𝐼𝑛 =
𝑃𝑢
𝜂 √3 𝑈𝑛 cos 
=
5000
0,84 · √3 · 400 · 0,84
= 10,23 𝐴
Teniendo en cuenta la corriente que pasa elegiremos el LRD-16 clase 10A o el clase 20
Ajustaremos la corriente regulada a 10,23 A
Iarranque = 5 · IFE = 5 · 10,23 = 51,15 A tiempo 5 segundos
Automático Q1
Los valores normalizados de los Interruptores automáticos con curva C o D son 1, 2, 4, 6, 10, 16, 20, 25, 32,
40, 50, 63 A.
Cuando tengamos la corriente nominal, por el térmico estarán pasando los 10,23 A. Aguas arriba por el
automático estarán pasando los 10,23 A.
Para que haya selectividad, la corriente mínima del automático será: I = 1,6 * 10,23 = 16,37 A
Por tanto el calibre del automático elegido será el de 20A (valor normalizado por encima de 16,37 A).
Tensión nominal: 400 V
3 polos.
𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒
𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒
=
51,15
20
= 2,6 tiempo 5s
La curva deberá ser la D 20A
Problemas M340 - 379
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Diferencial F2
Se elige un diferencial de calibre > 1,4 * 20 => 32A y sensibilidad 30 mA
Contactor KM1 y KM2
Corriente de servicio: 𝐼𝐸 =
𝐼𝑛
3
=
30,68
3
= 10,23 𝐴
Clase de servicio temporal.
Tensión de servicio: <= 440 V
de Schneider podría valer [11] el LC1D18BD Contactor Tesys D - 3P(3 NA) - AC-3 - <= 440 V 18 A - 24 V CC
bobina consumo 5,4W con Kit de enclavamiento mecánico LAD9V2 para el KM2 y KM3
45...55 ms closing | 20...90 ms opening Categoría de empleo AC1, AC3 y AC4
Consumo 5,4 W / 24 V = 225 mA
El módulo DDI 1602 aguanta Corriente/canal 0,625 A Corriente módulo 10 A
Automático Q2
La fuente de alimentación entrega 60 W con una eficiencia del 82%.
Por tanto consume unos 60 / 0,82 = 73,17 W que significa unos 73,17 / 230 = 0,32 A
La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar
pasar 9 · 0,32 = 2,86 A en los instantes iniciales.
Podemos coger el automático C60 1A
380 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Cálculos neumáticos
Como presión de alimentación, podríamos trabajar con la presión media 8 Kg/cm2
o con la más
desfavorable 7 Kg/cm2
. La fuerza disponible para acelerar la masa no teniendo en cuenta ni el peso del
vástago, ni del émbolo es F = P · S – FR siendo el trabajo desarrollado por ella a lo largo de toda la carrera es
W = (P · S – FR )· L y como ese trabajo se convierte en la energía cinética comunicada a la masa
EC = 1/2 M · v2
tenemos que (P · S – FR )· L = 1/2 M · v2
y por tanto
[(7 Kg/cm2
· 9,81 N/Kg · 10000 cm2
/1 m2
) · S - 200] · 0,5m = 1/2 · 30 Kg · (0,5m/s)2
((686700 · S ) – 200 ) · 0,5 = 3,75  686700 · S = 207,5  S = 302,2 mm2
D = (4 · S / π )1/2
= 19,62 mm  D · 1,2 = 23,54 mm  elegimos D= 25 mm
V aproximado = 2 · S · L · P = 2 · π · (D2
/ 4 ) · 500 · (7+1) = 3,93 l
p = ρ · g · h → 1 atm = 13.600 Kg/ m3
· 9,81 m/s2
· 0,760 m = 101.396,16 Pa
1 atm = 101.396,16 N/m2
· 1 Kg/9,81N · 1 m2
/10000 cm2
= 1,0336 kg/cm2
V exacto = [(2·D2
- d2
)/ 4 )] · π · 500 · (7 + 1,0336)/ 1,0336) · 1,05 = 287,5 · π · 500 · 6,8 · 1,05 = 3,22 l
La presión más desfavorable es de 7 bares.
La caída de presión para 100m es de (0,3·100) /124= 0,24 bares
1200 l/min = 0,02 m3/s
Viendo el resultado sobre el nomograma, resulta una tubería de 24 mm.
Sobredimensionado la tubería para posibles ampliaciones nos quedaria : 24 · 1,2 = 28.8
La más próxima normalizada es de 30 mm
Para 30 mm de tubería los diversos racores suponen un exceso de:
6* 1,8 + 4*0,7 + 6* 0,4 = 16 m
Por tanto la caida de presión para 100m es de (0,3·100) /(124+16) = 0,214 bares
Gráficamente vemos que para la sección de 30 mm pasaría un caudal de 0.038m3
/s
Por lo tanto tenemos un sobredimensionamiento de 0.038 / 0.02 = 1,9 90%
Problemas M340 - 381
Universidad de Oviedo
ISA - J. Alonso - I. Machón
382 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Configuración Hardware y Software
Programa Control de un aporte de materiales
Tabla de variables
Problemas M340 - 383
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección “Simulación”
(* Marcas necesarias para la pantalla de operador *)
if %S13 then
Set (MxP_Emergencia); Set ( MxP_Paro);
end_If;
MxP_AbrirTB := X11.x Or X4.x Or Mx_EnSobrecarga Or Mx_EnEmergencia;
MxP_AbrirTA := X1.x Or X14.x Or Mx_EnSobrecarga Or Mx_EnEmergencia;
MxP_ArenaB1 := (X11.x and X11.t>t#0.5s) Or (X4.x and X4.t>t#1s);
MxP_ArenaB2 := (X11.x and X11.t>t#4s) Or X12.x Or (X4.x and X4.t>t#4s) Or X5.x;
MxP_ArenaA1 := (X1.x and X1.t>t#0.5s) Or (X14.x and X14.t>t#1s);
MxP_ArenaA2 := (X1.x and X1.t>t#4s) Or X2.x Or (X14.x and X14.t>t#4s) Or X15.x;
MxP_A1 := X0.x Or X2.x Or X3.x Or X4.x Or X5.x Or X11.x Or X12.x Or X13.x Or X15.x Or Mx_EnSobrecarga Or
Mx_EnEmergencia Or Mx_PonCI;
MxP_A0 := X1.x Or X14.x;
MxP_B1 := X0.x Or X12.x Or X13.x Or X14.x Or X15.x Or X1.x Or X2.x Or X3.x Or X5.x Or Mx_EnSobrecarga Or
Mx_EnEmergencia Or Mx_PonCI;
MxP_B0 := X11.x Or X4.x;
Sección Preliminar
(* Marcas usadas en el control Local / Distancia *)
Mx_Paro := (Ix_Paro and Ix_LocDis) or (MxP_Paro and not Ix_LocDis);
Mx_TAIzda := (Ix_TAIzda and Ix_LocDis) or (MxP_TAIzda and not Ix_LocDis);
Mx_TBDcha := (Ix_TBDcha and Ix_LocDis) or (MxP_TBDcha and not Ix_LocDis);
Mx_ParaDchaTB := (Ix_ParaDchaTB and Ix_LocDis) or (MxP_ParaDchaTB and not Ix_LocDis);
Mx_ParaIzdaTA := (Ix_ParaIzdaTA and Ix_LocDis) or (MxP_ParaIzdaTA and not Ix_LocDis);
Mx_A0 := (Ix_A0 and Ix_LocDis) or (MxP_A0 and not Ix_LocDis);
Mx_A1 := (Ix_A1 and Ix_LocDis) or (MxP_A1 and not Ix_LocDis);
Mx_B0 := (Ix_B0 and Ix_LocDis) or (MxP_B0 and not Ix_LocDis);
Mx_B1 := (Ix_B1 and Ix_LocDis) or (MxP_B1 and not Ix_LocDis);
Mx_Emergencia := (Ix_Emergencia and Ix_LocDis) or (MxP_Emergencia and not Ix_LocDis);
Mx_Termico := (Ix_Termico and Ix_LocDis) or (MxP_Termico and not Ix_LocDis);
Mx_Rearme := (Ix_Rearme and Ix_LocDis) or (MxP_Rearme and not Ix_LocDis);
(* condición de Emergencia: se cierra la tolva que esté abierta y se para inmediatamente el motor,
aunque quede todavía material en la cinta. El sistema no evoluciona hasta que, una vez subsanado
el problema; se desbloque la seta y se pulse RESET. Se encenderá una lámpara de color rojo LRoja a
la vez que la blanca *)
if not Mx_Emergencia then
set (Mx_EnEmergencia);
Mx_CerrarTajaderas := Clearchart (Control, true); (*cierra tajaderas y para el motor*)
end_if;
384 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
if Mx_Termico then
set(Mx_EnSobrecarga);
Mx_CerrarTajaderas := Clearchart (Control, true); (*cierra tajaderas y para el motor*)
end_if;
if Mx_Rearme then
reset (Mx_EnSobrecarga); reset (Mx_EnEmergencia); reset (Mx_MalReedA);
reset (Mx_MalReedB); reset (Mx_ReedCortocircuitado);
Mx_PonCI := Clearchart (Control, true); (*cierra tajaderas y para el motor*)
end_if;
if Mx_PonCI And Mx_A1 and Mx_B1 then
reset (Mx_PonCI);
set (Mx_PuestoCI);
end_if;
if Mx_PuestoCI and not Mx_Rearme then
Reset (Mx_PuestoCI);
setstep(X0);
end_if;
(* gestión de errores *)
if (X1.x and x1.t > t#4s and not Mx_A0) OR (X2.x and X2.t > t#4s and not Mx_A1) OR (X14.x and
X14.t > t#4s and not Mx_A0) OR (X15.x and X15.t > t#4s and not Mx_A1) then
set (Mx_MalReedA);
end_if;
if (X11.x and x11.t > t#4s and not Mx_B0) OR (X12.x and X12.t > t#4s and not Mx_B1) OR (X4.x and
X4.t > t#4s and not Mx_B0) OR (X5.x and X5.t > t#4s and not Mx_B1) then
set (Mx_MalReedB);
end_if;
if (Mx_A0 and Mx_A1) or (Mx_B0 and Mx_B1) then
set (Mx_ReedCortocircuitado);
end_if;
If Mx_MalReedA Or Mx_MalReedB OR Mx_ReedCortocircuitado then
Mx_CerrarTajaderas := Clearchart (Control, true); (*cierra tajaderas y para el motor*)
end_if;
Problemas M340 - 385
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección “Transiciones”
(* Programación de las transiciones *)
Tr2_3 := X2.t > t#15s;
Tr3_4 := X3.t >t#0.2s;
Tr5_0 := X5.t > t#15s;
Tr12_13 := X12.t > t#015s;
Tr13_14 := X13.t >t#0.2s;
Tr15_0 := X15.t > t#15s;
Sección “Salidas”
Qx_AMenos := (X1.x or X14.x);
Qx_BMenos := (X11.x or X4.x);
Qx_MotIzda := (X1.x or X2.x or X14.x or X15.x);
Qx_MotDcha := (X11.x or X12.x or X4.x or X5.x);
Qx_LVerde := not X0.x and Not Mx_EnEmergencia and Not Mx_EnSobrecarga;
Qx_LAmbar := Mx_EnSobrecarga;
Qx_LRoja := Mx_EnEmergencia;
(* Qx_LBlanca estaría en paralelo con la alimentación del automáta *)
386 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
CHART ”Control”
Tr15_0 :0
X15.t >t#15 s
Qx_MotIzda
Qx_LVerde
Qx_AMenos
Qx_MotIzda
Qx_LVerde
Tr13_14 :=
X13.t >t#0,2 s
Qx_LVerde
Tr12_13 :=
X12.t >t#15 s
Qx_MotDcha
Qx_LVerde
Qx_BMenos
Qx_MotDcha
Qx_LVerde
Tr5_0 :=
X5.t >t#15 s
Qx_MotDcha
Qx_LVerde
Qx_BMenos
Qx_MotDcha
Qx_LVerde
Tr3_4 :=
X3.t >t#0,2 s
Qx_LVerde
Qx_MotIzda
Qx_LVerde
Qx_AMenos
Qx_MotIzda
Qx_LVerde
Tr2_3
X2.t >t#15 s
(*LBlanca,
Parado,
Tajaderas
cerradas*)
X0
X1
X2
X3
X4
X5
X11
X12
X13
X14
X15
MxP_TAIzda
MxP_ParaDchaTB
Tr2_3
Tr3_4
NOT MxP_Paro
Tr5_0
MxP_TBDcha
MxP_ParaIzdaTA
Tr12_13
Tr13_14
NOT MxP_Paro
Tr15_0
X0 X0
Problemas M340 - 387
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Lista de mensajes
Pantalla de explotación
A continuación podemos ver parte de los elementos gráficos que componen la pantalla de operador.
388 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 389
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Prob. 10.02 · Control de un aporte de materiales. CDE A ET IG
Control de un sistema de aporte de material mediante PLC.
La cinta transportadora, será movida mediante un motor con dos sentidos de giro. El motor de Pm = 15 KW,
Un = 400 V, η= 84%, cos φ= 0,84 y 2910 rpm. Arranque estrella/triángulo con corriente de arranque 5 veces
la nominal. El tiempo de arranque de paso de E/T es 5s. Con térmico actuando midiendo la corriente de fase.
En la mitad de la cinta transportadora hay dos tolvas que descargan material A o B sobre la cinta. La apertura
y cierre de las tolvas será controlada mediante 2 CDE y sus respectivas electroválvulas monoestables
[Qx_Menos Abrir A, Qx_BMenos Abrir B] y posición inicial de vástago extendido. En función del tipo de
material que se vaya a transportar, la cinta deberá moverse en un sentido o en otro.
Cuando se accione un pulsador S1 [Ix_TAIzda NA], se abrirá la tolva A y la cinta se desplazará hacia la
izquierda. Cuando se accione un pulsador S2 [Ix_ParaDchaTB NA], se cerrará inmediatamente la tolva A, y
tras 15 segundos, que es el tiempo que tarda el material en ser transportado por la cinta hasta el final de
esta y ser evacuado, se invertirá el sentido de giro del motor y se abrirá la tolva B, para llevar el material a
un vagón al otro extremo de la cinta.
Si, por el contario, se acciona S3 [Ix_TBDcha (NA)], el proceso será el inverso: se abrirá la tolva B y la cinta
se desplazará hacia la derecha. Cuando se accione un pulsador S4 [Ix_ParaIzdaTA NA], se cerrará
inmediatamente la tolva B, y tras 15 segundos, que es el tiempo que tarda el material en ser transportado
por la cinta hasta el final de esta y ser evacuado, se invertirá el sentido de giro del motor y se abrirá la tolva
A, para llevar el material a un vagón al otro extremo de la cinta.
Cuando se pulsa un pulsador de paro S5 [Ix_Paro NC], se cierra la tolva que esté abierta (en el proceso final
una vez realizada la inversión de giro) y, tras quince segundos se para el motor y va a CI.
Si se activa una seta de emergencia, S6 [Ix_Emergencia NC], se cierra la tolva que esté abierta y se para
inmediatamente el motor, aunque quede todavía material en la cinta. No pudiendo evolucionar el sistema
hasta que, una vez subsanado el problema; se desbloque la seta y se pulse Reset. Se encenderá una lámpara
de color rojo LRoja a la vez que la blanca.
Condiciones iniciales [CI]: El sistema estará parado, con las tajaderas cerradas, vástagos de los cilindros
extendidos y una lámpara blanca encendida cuando el sistema esté con tensión. Una lámpara verde
[Qx_LVerde] se encenderá cuando el sistema esté en funcionamiento (moviéndose las cintas).
Alarmas: Si saltase la protección térmica del motor (rearme manual), deberá parar toda la instalación y cerrar
las tajaderas y encenderse exclusivamente una lámpara Ámbar [Qx_LAmbar]. No pudiendo evolucionar el
sistema hasta que, una vez subsanado el problema; se Resetee el térmico y se pulse S7 [Ix_Reset NO] lo cual
le llevará a CI.
Si un relé Reed queda abierto o cortocircuitado, deberá parar toda la instalación, cerrar las tajaderas,
encenderse exclusivamente una lámpara Roja [Qx_LRoja] y se indicará mediante un mensaje en la pantalla
de operación. No pudiendo evolucionar el sistema hasta que, una vez subsanado el problema; se pulse S7
[Ix_Reset NO] lo cual le llevará a Condiciones Iniciales.
El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0400, fuente de
alimentación BMX CPS 2000 (24VDC 60W, eficiencia del 82%) alimenta a todo el conjunto, módulo 1 de 16
390 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
entradas digitales de 24 VCC PNP módulo BMX DDI 1602, módulo 2 de 16 salidas por relé BMX DRA 1605 (8 +
8) alimentado a 24 VCC.
Los cilindros neumáticos mueven unas tajaderas y sus respectivos vástagos que pesan 30 Kg. Deberán vencer
un rozamiento de 200 N con una velocidad de 50 cm/s siendo la carrera es de 50 cm.
El compresor trabaja entre 7 y 9 Kg/cm2
y alimenta una instalación de 124 m con un caudal de 1.200 l/min
de aire libre con una caída de presión de no más de 0,3 bares en el extremo del tubo. La tubería tiene 6 codos
de 90°, 4 codos Elbow y 6 "T" estándar.
Se pide:
 Diseñar el esquema de mando y de fuerza del sistema.
 Elegir los elementos de protección del sistema de mando y de fuerza.
 Indicar sobre las gráficas del térmico y del automático CLARAMENTE, la corriente de arranque, la
corriente de regulación del térmico y la corriente nominal.
 Diámetro los cilindros, aire consumido por ciclo: exacto y aproximado ( Hg 13.600 Kg/ m3
).
 Sección de la tubería.
 Programa de mando.
Esquema de Fuerza
Problemas M340 - 391
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Giro a derecha
Se establece la estrella cerrando los contactores KM1 y KM2 al cabo de un tiempo se abre la estrella
(contactor KM1) y entra el triángulo cerrando el contactor KM4.
KM2 L1 L2 L3 KM3 L3 L2 L1
KM4 L1 L2 L3 KM4 L3 L2 L1
Giro a izquierda
Se establece la estrella cerrando los contactores KM1 y KM3 al cabo de un tiempo se abre la estrella
(contactor KM1) y entra el triángulo cerrando el contactor KM4.
392 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de Mando
Relé térmico F1
Problemas M340 - 393
Universidad de Oviedo
ISA - J. Alonso - I. Machón
𝜂 =
𝑃𝑢
𝑃
𝑒
=
𝑃
𝑢
√3 𝑈𝑛 𝐼𝑛 cos 
𝐼𝑛 =
𝑃
𝑢
𝜂 √3 𝑈𝑛 cos 
=
15000
0,84 · √3 · 400 · 0,84
= 30,68 𝐴
𝐼f∆ =
𝐼n
√3
=
30,68
√3
≈ 17,71 𝐴 𝐼𝑓𝐸 =
𝐼𝑛
3
=
30,68
3
= 10,23 𝐴
Teniendo en cuenta la corriente que pasa en triángulo, que es la máxima, elegiremos el LRD-21 clase 10A
Ajustaremos la corriente regulada a 17,71 A
Iarranque = 5 · IFE = 5 · 10,23 = 51,15 A tiempo 5 segundos
se observa que puede pasar por el térmico sin problemas Ia = 51,15 / 17,71 = 2,9 Ir
Automático Q1
Los valores normalizados de los Interruptores automáticos con curva C o D son 1, 2, 4, 6, 10, 16, 20, 25, 32,
40, 50, 63 A.
Cuando tengamos la corriente nominal, por el térmico estarán pasando los 17,71 A. Aguas arriba por el
automático estarán pasando los 30,68 A.
Para que haya selectividad, la corriente mínima del automático será: I = 1,6 * 30,68 = 49,09 A
Por tanto el calibre del automático elegido será el de 50A (valor normalizado por encima de 49,09 A).
Tensión nominal: 400 V
3 polos.
𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒
𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒
=
51,15
50
= 1,02 tiempo 5s
La curva deberá ser la C o la D 50A
394 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Diferencial F2
Se elige un diferencial de calibre > 1,4 * 50 => 80A y sensibilidad 30 mA
Automático Q2
La fuente de alimentación entrega 60 W con una eficiencia del 82%.
Por tanto consume unos 60 / 0,82 = 73,17 W que significa unos 73,17 / 230 = 0,32 A
La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar
pasar 9 · 0,32 = 2,86 A en los instantes iniciales.
Podemos coger el automático C60 1A
Contactor KM1
Corriente de servicio: 𝐼𝐸 =
𝐼𝑛
3
=
30,68
3
= 10,23 𝐴
Clase de servicio temporal.
Tensión de servicio: <= 440 V
De Schneider podría valer [11] el LC1D12BD Contactor Tesys D - 3P(3 NA) - AC-3 - <= 440 V 12 A - 24 V CC
bobina consumo 5,4W
45...55 ms closing | 20...90 ms opening Categoría de empleo AC1, AC3 y AC4
Consumo 5,4 W / 24 V = 225 mA
El módulo DDI 1602 aguanta Corriente/canal 0,625 A Corriente módulo 10 A
Contactores KM2, KM3
Corriente de servicio: 𝐼N = 30,68 A
Tensión de servicio: <=440 V
de Schneider podría valer [11] el LC2D32BD Contactor Tesys D - 3P(3 NA) - AC-3 - <= 440 V 18 A - 24 V CC
bobina consumo 5,4W con Kit de enclavamiento mecánico LAD9V2 para el KM2 y KM3
45...55 ms closing | 20...90 ms opening Categoría de empleo AC1, AC3 y AC4
Contactores KM4
Corriente de servicio: 𝐼∆ =
𝐼n
√3
=
30,68
√3
≈ 17,71 𝐴
Tensión de servicio: <=440 V
de Schneider podría valer [11] el LC1D18BD Contactor Tesys D - 3P(3 NA) - AC-3 - <= 440 V 18 A - 24 V CC
bobina consumo 5,4W con Kit de enclavamiento mecánico LAD9V2 para el KM2 y KM3
45...55 ms closing | 20...90 ms opening Categoría de empleo AC1, AC3 y AC4
Problemas M340 - 395
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Cálculos neumáticos
Como presión de alimentación, podríamos trabajar con la presión media 8 Kg/cm2
o con la más
desfavorable 7 Kg/cm2
.
La fuerza disponible para acelerar la masa no teniendo en cuenta ni el peso del vástago, ni del émbolo es
F = P · S – FR siendo el trabajo desarrollado por ella a lo largo de toda la carrera de W = (P · S – FR )· L y
como ese trabajo se convierte en la energía cinética comunicada a la masa EC = 1/2 M · v2
tenemos que (P · S – FR )· L = 1/2 M · v2
y por lo tanto
[(7 Kg/cm2
· 9,81 N/Kg · 10000 cm2
/1 m2
) · S - 200] · 0,5m = 1/2 · 30 Kg · (0,5m/s)2
((686700 · S ) – 200 ) · 0,5 = 3,75  686700 · S = 207,5  S = 302,2 mm2
D = (4 · S / π )1/2
= 19,62 mm  D · 1,2 = 23,54 mm  elegimos D= 25 mm
V aproximado = 2 · S · L · P = 2 · π · (D2
/ 4 ) · 500 · (7+1) = 3,93 l
p = ρ · g · h → 1 atm = 13.600 Kg/ m3
· 9,81 m/s2
· 0,760 m = 101.396,16 Pa
1 atm = 101.396,16 N/m2
· 1 Kg/9,81N · 1 m2
/10000 cm2
= 1,0336 kg/cm2
V exacto = [(2·D2
- d2
)/ 4 )] · π · 500 · (7 + 1,0336)/ 1,0336) · 1,05 = 287,5 · π · 500 · 6,8 · 1,05 = 3,22 l
La presión más desfavorable es de 7 bares.
La caída de presión para 100m es de (0,3·100) /124= 0,24 bares
1200 l/min = 0,02 m3
/s
Viendo el resultado sobre el nomograma, resulta una tubería de 24 mm.
Sobredimensionado la tubería para posibles ampliaciones nos quedaria : 24 · 1,2 = 28.8
La más próxima normalizada es de 30 mm
Para 30 mm de tubería los diversos racores suponen un exceso de:
6* 1,8 + 4*0,7 + 6* 0,4 = 16 m
Por tanto la caida de presión para 100m es de (0,3·100) /(124+16) = 0,214 bares
Gráficamente vemos que para la sección de 30 mm pasaría un caudal de 0.038m3
/s
Por lo tanto tenemos un sobredimensionamiento de 0.038 / 0.02 = 1,9 90%
396 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 397
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Configuración Hardware y Software
Programa
Tabla de variables
398 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección “Simulación”
(* Marcas necesarias para la pantalla de operador *)
if %S13 then
Set (MxP_Emergencia); Set ( MxP_Paro);
end_If;
MxP_AbrirTB := X11.x Or X12.x Or X6.x Or X7.x Or X8.x;
MxP_AbrirTA := X1.x Or X2.x Or X16.x Or X17.x Or X18.x;
MxP_ArenaB1 := X11.x Or X12.x Or X13.X Or (X6.x and X6.t >t#0.5s) Or X8.x;
MxP_ArenaB2 := X12.x Or X13.X Or X14.x Or X7.x Or X8.x Or X9.x;
MxP_ArenaA1 := X1.x Or X2.x Or X3.X Or (X16.x and X16.t >t#0.5s) Or X18.x;
MxP_ArenaA2 := X2.x Or X3.X Or X4.x Or X17.x Or X18.x Or X19.x;
MxP_A1 := X0.x Or X4.x Or X5.x Or X6.x Or X7.x Or X8.x Or X9.x Or X11.x Or X12.x Or X13.x Or X14.x Or
X15.x Or X19.x Or Mx_EnSobrecarga Or Mx_EnEmergencia Or Mx_PonCI;
MxP_A0 := X1.x Or X2.x Or X3.x Or X16.x Or X17.x Or X18.x;
MxP_B1 := X0.x Or X1.x Or X2.x Or X3.x Or X4.x Or X5.x Or X9.x Or X14.x Or X15.x Or X16.x Or X17.x Or
X18.x Or X19.x Or Mx_EnSobrecarga Or Mx_EnEmergencia Or Mx_PonCI;
MxP_B0 := X11.x Or X12.x Or X13.x Or X6.x Or X7.x Or X8.x;
Mx_Descarga := X4.x Or X9.x Or X14.x Or X19.x;
Sección Preliminar
(* Marcas usadas en el control Local / Distancia *)
Mx_Paro := (Ix_Paro and Ix_LocDis) or (MxP_Paro and not Ix_LocDis);
Mx_TAIzda := ( Ix_TAIzda and Ix_LocDis) or (MxP_TAIzda and not Ix_LocDis);
Mx_TBDcha := (Ix_TBDcha and Ix_LocDis) or (MxP_TBDcha and not Ix_LocDis);
Mx_ParaDchaTB := (Ix_ParaDchaTB and Ix_LocDis) or (MxP_ParaDchaTB and not Ix_LocDis);
Mx_ParaIzdaTA := (Ix_ParaIzdaTA and Ix_LocDis) or (MxP_ParaIzdaTA and not Ix_LocDis);
Mx_A0 := (Ix_A0 and Ix_LocDis) or (MxP_A0 and not Ix_LocDis);
Mx_A1 := (Ix_A1 and Ix_LocDis) or (MxP_A1 and not Ix_LocDis);
Mx_B0 := (Ix_B0 and Ix_LocDis) or (MxP_B0 and not Ix_LocDis);
Mx_B1 := (Ix_B1 and Ix_LocDis) or (MxP_B1 and not Ix_LocDis);
Mx_Emergencia := (Ix_Emergencia and Ix_LocDis) or (MxP_Emergencia and not Ix_LocDis);
Mx_Termico := (Ix_Termico and Ix_LocDis) or (MxP_Termico and not Ix_LocDis);
Mx_Rearme := (Ix_Rearme and Ix_LocDis) or (MxP_Rearme and not Ix_LocDis);
(* condición de Emergencia: se cierra la tolva que esté abierta y se para inmediatamente el motor, aunque
quede todavía material en la cinta. El sistema no evoluciona hasta que, una vez subsanado el
problema; se desbloque la seta y se pulse Rearme. Se encenderá LRoja a la vez que Lblanca *)
If not Mx_Emergencia then
set (Mx_EnEmergencia);
reset (Qx_AMenos); reset (Qx_BMenos); (* cierra tajaderas *)
Mx_CerrarTajaderas := Clearchart (Control, true); (* además para el motor *)
end_if;
Problemas M340 - 399
Universidad de Oviedo
ISA - J. Alonso - I. Machón
(* fallo térmico: se cierra la tolva que esté abierta y se para inmediatamente el motor, aunque quede
todavía material en la cinta. No pudiendo evolucionar el sistema hasta que, una vez subsanado el
problema; se Resetee el térmico y se pulse Rearme. Se encenderá una lámpara de color ámbar a la vez
que la blanca *)
if Mx_Termico then
set(Mx_EnSobrecarga);
Mx_CerrarTajaderas := Clearchart (Control, true); (*cierra tajaderas y para el motor *)
end_if;
if Mx_Rearme then
reset (Mx_EnSobrecarga); reset (Mx_EnEmergencia); reset (Mx_MalReedA);
reset (Mx_MalReedB); reset (Mx_ReedCortocircuitado);
Mx_PonCI := Clearchart (Control, true);
end_if;
if Mx_PonCI and Mx_A1 and Mx_B1 then
reset (Mx_PonCI);
set (Mx_PuestoCI);
end_if;
if Mx_PuestoCI and not Mx_Rearme then
Reset (Mx_PuestoCI);
setstep(X0);
end_if;
(* gestión de errores *)
if (X1.x and x1.t > t#4s and not Mx_A0) OR (X4.x and x4.t > t#4s and not Mx_A1) OR (X16.x and x16.t > t#4s
and not Mx_A0) OR (X19.x and x19.t > t#4s and not Mx_A1) then
set (Mx_MalReedA);
end_if;
if (X6.x and x6.t > t#4s and not Mx_B0) OR (X9.x and x9.t > t#4s and not Mx_B1) OR (X11.x and x11.t > t#4s
and not Mx_B0) OR (X14.x and x14.t > t#4s and not Mx_B1) then
set (Mx_MalReedB);
end_if;
if (Mx_A0 and Mx_A1) or (Mx_B0 and Mx_B1) then
set (Mx_ReedCortocircuitado);
end_if;
If Mx_MalReedA Or Mx_MalReedB OR Mx_ReedCortocircuitado then
Mx_CerrarTajaderas := Clearchart (Control, true); (*cierra tajaderas y para el motor *)
end_if;
400 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección “Transiciones”
(* Programación de las transiciones *)
Tr1_2 := X1.t > t#5s;
Tr2_3 := X2.t > t#0.1s;
Tr4_5 := X4.t > t#15s;
Tr5_6 := X5.t >t#0.2s;
Tr6_7 := X6.t >t#5s;
Tr7_8 := X7.t > t#0.1s;
Tr9_0 := X9.t > t#15s;
Tr11_12 := X11.t > t#5s;
Tr12_13 := X12.t > t#0.1s;
Tr14_15 := X14.t > t#15s;
Tr15_16 := X15.t >t#0.2s;
Tr16_17 := X16.t >t#5s;
Tr17_18 := X17.t > t#0.1s;
Tr19_0 := X19.t > t#15s;
Sección “Salidas”
Qx_AMenos := (X1.x or X2.x or X3.x or X16.x or X17.x or X18.x);
Qx_BMenos := (X11.x or X12.x or X13.x or X6.x or X7.x or X8.x);
Qx_MotIzda := (X1.x or X2.x or X3.x or X4.x or X16.x or X17.x or X18.x or X19.x);
Qx_MotDcha := (X11.x or X12.x or X13.x or X14.x or X6.x or X7.x or X8.x or X9.x);
Qx_KME := (X1.x or X6.x or X11.x or X16.x);
Qx_KMT := (X3.x or X4.x or X8.x or X9.x or X13.x or X14.x or X18.x or X19.x);
Qx_LVerde := not X0.x and Not Mx_EnEmergencia and Not Mx_EnSobrecarga;
Qx_LAmbar := Mx_EnSobrecarga;
Qx_LRoja := Mx_EnEmergencia;
(* LBlanca estaría en paralelo con la alimentación del autómata *)
(* KME = KM1 *)
(* KMT = KM4 *)
(* MotIzda = KM2 *)
(* MotDcha = KM3 *)
Problemas M340 - 401
Universidad de Oviedo
ISA - J. Alonso - I. Machón
CHART ”Control”
402 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 403
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Lista de mensajes
Pantalla de explotación
A continuación podemos ver parte de los elementos gráficos que componen la pantalla de operador.
404 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 405
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Prob. 10.03 Control de un aporte de materiales. CSE A ET IG
La cinta transportadora, será movida mediante un motor con dos sentidos de giro. El motor de Pm = 10 KW,
Un = 400 V, η= 85%, cos φ= 0,86 y 2910 rpm. Arranque estrella/triángulo con corriente de arranque 5 veces
la nominal. El tiempo de arranque de paso de E/T es 5s. Con térmico actuando midiendo la corriente de fase.
En la mitad de la cinta transportadora hay dos tolvas que descargan material A o B sobre la cinta. La apertura
y cierre de las tolvas será controlada mediante 2 CSE con vástago extendido y sus respectivas electroválvulas
monoestables [Qx_Menos Abrir A, Qx_BMenos Abrir B] y posición inicial de vástago extendido. En función
del tipo de material que se vaya a transportar, la cinta deberá moverse en un sentido o en otro.
Cuando se accione un pulsador S1 [Ix_TAIzda NA], se abrirá la tolva A y la cinta se desplazará hacia la
izquierda. Cuando se accione un pulsador S2 [Ix_ParaDchaTB NA], se cerrará inmediatamente la tolva A, y
tras 15 segundos, que es el tiempo que tarda el material en ser transportado por la cinta hasta el final de
esta y ser evacuado, se invertirá el sentido de giro del motor y se abrirá la tolva B, para llevar el material a
un vagón al otro extremo de la cinta.
Si, por el contario, se acciona S3 [Ix_TBDcha (NA)], el proceso será el inverso: se abrirá la tolva B y la cinta
se desplazará hacia la derecha. Cuando se accione un pulsador S4 [Ix_ParaIzdaTA NA], se cerrará
inmediatamente la tolva B, y tras 15 segundos, que es el tiempo que tarda el material en ser transportado
por la cinta hasta el final de esta y ser evacuado, se invertirá el sentido de giro del motor y se abrirá la tolva
A, para llevar el material a un vagón al otro extremo de la cinta.
Cuando se pulsa un pulsador de paro S5 [Ix_Paro NC], se cierra la tolva que esté abierta (en el proceso final
una vez realizada la inversión de giro) y, tras quince segundos se para el motor y va a CI.
Si se activa una seta de emergencia, S6 [Ix_Emergencia NC], se cierra la tolva que esté abierta y se para
inmediatamente el motor, aunque quede todavía material en la cinta. No pudiendo evolucionar el sistema
hasta que, una vez subsanado el problema; se desbloque la seta y se pulse Reset. Se encenderá una lámpara
de color rojo LRoja a la vez que la blanca.
Condiciones iniciales [CI]: El sistema estará parado, con las tajaderas cerradas, vástagos de los cilindros
extendidos y una lámpara blanca encendida cuando el sistema esté con tensión. Una lámpara verde
[Qx_LVerde] se encenderá cuando el sistema esté en funcionamiento (moviéndose las cintas).
Alarmas: Si saltase la protección térmica del motor (rearme manual), deberá parar toda la instalación y cerrar
las tajaderas y encenderse exclusivamente una lámpara Ámbar [Qx_LAmbar]. No pudiendo evolucionar el
sistema hasta que, una vez subsanado el problema; se Resetee el térmico y se pulse S7 [Ix_Reset NO] lo cual
le llevará a CI.
Se detectará cuando un relé Reed quede cortocircuitado. Si esto sucede, el sistema seguirá funcionando pero
Si un relé Reed queda abierto o cortocircuitado, deberá parar toda la instalación, cerrar las tajaderas,
encenderse exclusivamente una lámpara Roja [Qx_LRoja] y se indicará mediante un mensaje en la pantalla
de operación. No pudiendo evolucionar el sistema hasta que, una vez subsanado el problema; se pulse S7
[Ix_Reset NO] lo cual le llevará a Condiciones Iniciales.
El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0400, fuente de
alimentación BMX CPS 2000 (24VDC 60W, eficiencia del 82%) alimenta a todo el conjunto, módulo 1 de 16
406 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
entradas digitales de 24 VCC PNP módulo BMX DDI 1602, módulo 2 de 16 salidas por relé BMX DRA 1605 (8 +
8) alimentado a 24 VCC.
Se pide:
 Diseñar el esquema de mando y de fuerza del sistema.
 Elegir los elementos de protección del sistema de mando y de fuerza.
 Indicar sobre las gráficas del térmico y del automático CLARAMENTE, la corriente de arranque, la
corriente de regulación del térmico y la corriente nominal.
 Programa de mando.
Problemas M340 - 407
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de Fuerza
Esquema de mando
408 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Relé térmico F1
𝜂 =
𝑃𝑢
𝑃
𝑒
=
𝑃
𝑢
√3 𝑈𝑛 𝐼𝑛 cos 
𝐼𝑛 =
𝑃
𝑢
𝜂 √3 𝑈𝑛 cos 
=
10000
0,85 · √3 · 400 · 0,86
= 𝟏𝟗, 𝟕𝟓 𝑨
𝐼f∆ =
𝐼n
√3
=
19.75
√3
≈ 𝟏𝟏, 𝟒 𝑨 𝐼𝑓𝐸 =
𝐼𝑛
3
=
19.75
3
= 𝟔, 𝟓𝟖 𝑨
Teniendo en cuenta la corriente que pasa en triángulo, que es la máxima, elegiremos el LRD-16 clase 10A
Ajustaremos la corriente regulada a 11,4 A
Iarranque = 5 · IFE = 5 · 6,58 = 32,9 A tiempo 5 segundos
se observa que puede pasar por el térmico sin problemas 32.9 / 11.4 = 2,9 Ir
Automático Q1
Cuando tengamos la corriente nominal, por el térmico estarán pasando los 11,4 A. Aguas arriba por el
automático estarán pasando los 19,75 A.
Para que haya selectividad, la corriente mínima del automático será: I = 1,6 * 19,75 = 31,6 A
Por tanto el calibre del automático elegido será el de 32A (valor normalizado por encima de 31,6 A).
Tensión nominal: 400 V
3 polos.
𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒
𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒
=
32,9
32
= 1,03 tiempo 5s
La curva deberá ser la C o la D 50A
Problemas M340 - 409
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Diferencial F2
Se elige un diferencial de calibre > 1,4 * 50A => 80A y sensibilidad 30 mA
Automático Q2
La fuente de alimentación entrega 60 W con una eficiencia del 82%.
Por tanto consume unos 60 / 0,82 = 73,17 W que significa unos 73,17 / 230 = 0,32 A
La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar
pasar 9 · 0,32 = 2,86 A en los instantes iniciales.
Podemos coger el automático C60 1A
Contactor KM1
Corriente de servicio: 𝐼𝐸 =
𝐼𝑛
3
=
19,75
3
= 6,58 𝐴
Clase de servicio temporal.
Tensión de servicio: <= 440 V
De Schneider podría valer [11] el LC1D09BD Contactor Tesys D - 3P(3 NA) - AC-3 - <= 440 V 12 A - 24 V CC
bobina consumo 5,4W
53...72 ms closing | 16...24 ms opening Categoría de empleo AC1, AC3 y AC4
Consumo 5,4 W / 24 V = 225 mA
El módulo DDI 1602 aguanta Corriente/canal 0,625 A Corriente módulo 10 A
Contactores KM2, KM3
Corriente de servicio: 𝐼N = 19,75 A
Tensión de servicio: <=440 V
de Schneider podría valer [11] el LC2D25BD Contactor Tesys D - 3P(3 NA) - AC-3 - <= 440 V 18 A - 24 V CC
bobina consumo 5,4W con Kit de enclavamiento mecánico LAD9V2 para el KM2 y KM3
45...55 ms closing | 20...90 ms opening Categoría de empleo AC1, AC3 y AC4
410 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Contactores KM4
Corriente de servicio: 𝐼∆ =
𝐼n
√3
=
19,75
√3
≈ 11,4 𝐴
Tensión de servicio: <=440 V
de Schneider podría valer [11] el LC1D12BD Contactor Tesys D - 3P(3 NA) - AC-3 - <= 440 V 18 A - 24 V CC
bobina consumo 5,4W con Kit de enclavamiento mecánico LAD9V2 para el KM2 y KM3
45...55 ms closing | 20...90 ms opening Categoría de empleo AC1, AC3 y AC4
Configuración Hardware y Software
Tabla de variables
Problemas M340 - 411
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección “Simulación”
(* Marcas necesarias para la pantalla de operador *)
if %S13 then
Set (MxP_Emergencia); set (MxP_Paro);
end_If;
MxP_AbrirTB := X11.x Or X12.x Or X6.x Or X7.x Or X8.x;
MxP_AbrirTA := X1.x Or X2.x Or X16.x Or X17.x Or X18.x;
MxP_ArenaB1 := X11.x Or X12.x Or X13.X Or(X6.x and X6.t >t#0.5s) Or X7.x Or X8.x;
MxP_ArenaB2 := X12.x Or X13.X Or X14.x Or X7.x Or X8.x Or X9.x;
MxP_ArenaA1 := X1.x Or X2.x Or X3.X Or (X16.x and X16.t >t#0.5s) Or X17.x Or X18.x;
MxP_ArenaA2 := X2.x Or X3.X Or X4.x Or X17.x Or X18.x Or X19.x;
MxP_A1 := X0.x Or X4.x Or X5.x Or X6.x Or X7.x Or X8.x Or X9.x Or X11.x Or X12.x Or X13.x Or X14.x Or X15.x
Or X19.x Or Mx_EnSobrecarga Or Mx_EnEmergencia Or Mx_PonCI;
MxP_A0 := X1.x Or X2.x Or X3.x Or X16.x Or X17.x Or X18.x;
MxP_B1 := X0.x Or X1.x Or X2.x Or X3.x Or X4.x Or X5.x Or X9.x Or X14.x Or X15.x Or X16.x Or X17.x Or X18.x
Or X19.x Or Mx_EnSobrecarga Or Mx_EnEmergencia Or Mx_PonCI;
MxP_B0 := X11.x Or X12.x Or X13.x Or X6.x Or X7.x Or X8.x;
MxP_Descarga := X4.x OR X9.x Or X14.X Or X19.x;
Sección Preliminar
(* Marcas usadas en el control Local / Distancia *)
Mx_Paro := (Ix_Paro and Ix_LocDis) or (MxP_Paro and not Ix_LocDis);
Mx_TAIzda := (Ix_TAIzda and Ix_LocDis) or (MxP_TAIzda and not Ix_LocDis);
Mx_TBDcha := (Ix_TBDcha and Ix_LocDis) or (MxP_TBDcha and not Ix_LocDis);
Mx_ParaDchaTB := (Ix_ParaDchaTB and Ix_LocDis) or (MxP_ParaDchaTB and not Ix_LocDis);
Mx_ParaIzdaTA := (Ix_ParaIzdaTA and Ix_LocDis) or (MxP_ParaIzdaTA and not Ix_LocDis);
Mx_A0 := (Ix_A0 and Ix_LocDis) or (MxP_A0 and not Ix_LocDis);
Mx_A1 := (Ix_A1 and Ix_LocDis) or (MxP_A1 and not Ix_LocDis);
Mx_B0 := (Ix_B0 and Ix_LocDis) or (MxP_B0 and not Ix_LocDis);
Mx_B1 := (Ix_B1 and Ix_LocDis) or (MxP_B1 and not Ix_LocDis);
Mx_Emergencia := (Ix_Emergencia and Ix_LocDis) or (MxP_Emergencia and not Ix_LocDis);
Mx_Termico := (Ix_Termico and Ix_LocDis) or (MxP_Termico and not Ix_LocDis);
Mx_Rearme := (Ix_Rearme and Ix_LocDis) or (MxP_Rearme and not Ix_LocDis);
(* condición de Emergencia: se cierra la tolva que esté abierta y se para inmediatamente el motor,
aunque quede todavía material en la cinta. El sistema no evoluciona hasta que, una vez subsanado el
problema; se desbloque la seta y se pulse RESET. Se encenderá una lámpara de color rojo LRoja a la
vez que la blanca *)
If not Mx_Emergencia Then
Set (Mx_EnEmergencia);
412 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Mx_CerrarTajaderas := Clearchart (Control, true);
(* válvulas monoestables, cilindros SE vástago extendido *)
End_If;
(* fallo térmico: se cierra la tolva que esté abierta y se para inmediatamente el motor,
aunque quede todavía material en la cinta. No pudiendo evolucionar el sistema hasta que,
una vez subsanado el problema; se Resetee el térmico y se pulse RESET. Se encenderá una
lámpara de color ámbar a la vez que la blanca *)
If Mx_Termico Then
set(Mx_EnSobrecarga);
Mx_CerrarTajaderas := Clearchart (Control, true);
End_If;
If RE(Mx_Rearme) Then
Reset (Mx_EnSobrecarga); Reset (Mx_EnEmergencia); Reset (Mx_MalReedA);
Reset (Mx_MalReedB); Reset (Mx_ReleCortocircuitado);
Mx_PonCI := Initchart (Control, true);
End_If;
(* gestión de errores *)
If (X1.x and x1.t > t#4s and not Mx_A0) OR (X4.x and x4.t > t#4s and not Mx_A1) OR (X16.x and x16.t > t#4s
and not Mx_A0) OR (X19.x and x19.t > t#4s and not Mx_A1) then
set (Mx_MalReedA);
end_if;
If (X6.x and x6.t > t#4s and not Mx_B0) OR (X9.x and x9.t > t#4s and not Mx_B1) OR (X11.x and x11.t >
t#4s and not Mx_B0) OR (X14.x and x14.t > t#4s and not Mx_B1) then
set (Mx_MalReedB);
end_if;
If (Mx_A0 And Mx_A1) Or (Mx_B0 And Mx_B1) Then
Set (Mx_ReleCortocircuitado);
End_if;
If Mx_MalReedA Or Mx_MalReedB OR Mx_ReedCortocircuitado then
reset (Qx_AMenos); reset (Qx_BMenos); (* cierra tajaderas *)
Mx_CerrarTajaderas := Clearchart (Control, true); (* además para el motor *)
end_if;
Sección “Transiciones”
Tr1_2 := X1.t > t#5s; Tr11_12 := X11.t > t#5s;
Tr2_3 := X2.t > t#0.1s; Tr12_13 := X12.t > t#0.1s;
Tr4_5 := X4.t > t#15s; Tr14_15 := X14.t > t#15s;
Tr5_6 := X5.t >t#0.2s; Tr15_16 := X15.t >t#0.2s;
Tr6_7 := X6.t >t#5s; Tr16_17 := X16.t >t#5s;
Problemas M340 - 413
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tr7_8 := X7.t > t#0.1s; Tr17_18 := X17.t > t#0.1s;
Tr9_0 := X9.t > t#15s; Tr19_0 := X19.t > t#15s;
Sección “Salidas”
Qx_AMenos := ( X1.x or X2.x or X3.x or X16.x or X17.x or X18.x) and not Mx_EnSobrecarga;
Qx_BMenos := ( X11.x or X12.x or X13.x or X6.x or X7.x or X8.x) and not Mx_EnSobrecarga;
Qx_MotIzda := (X1.x or X2.x or X3.x or X4.x or X16.x or X17.x or X18.x or X19.x) and not Mx_EnSobrecarga;
Qx_MotDcha := (X11.x or X12.x or X13.x or X14.x or X6.x or X7.x or X8.x or X9.x) and not Mx_EnSobrecarga;
Qx_KME := (X1.x or X6.x or X11.x or X16.x) and not Mx_EnSobrecarga;
Qx_KMT := (X3.x or X4.x or X8.x or X9.x or X13.x or X14.x or X18.x or X19.x) and not Mx_EnSobrecarga;
(* LBlanca estaría en paralelo con la alimentación del automáta *)
Qx_LVerde := Not X0.x And Not Mx_EnEmergencia And Not Mx_EnSobrecarga;
Qx_LAmbar := Mnx_EnSobrecarga;
Qx_LRoja := Mx_EnEmergencia;
414 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Chart
Problemas M340 - 415
Universidad de Oviedo
ISA - J. Alonso - I. Machón
416 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Lista de mensajes
Pantalla de explotación
Problemas M340 - 417
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 10.04 · Control de un horno motorizado. EM y EF
Mediante un autómata M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de alimentación BMX
CPS 2000 y módulo de entradas BMX DDI1602 y de salidas BMX DRA 1605. Se desea automatizar un horno
cuya puerta se abre y cierra mediante un motor eléctrico.
Inicialmente el horno estará desactivado con las luces apagadas. No podrá ponerse en marcha hasta que no
se ponga en CI.
CI. Cuando se pulse rearme [Ix_Rearme] se encenderá la luz azul [Qx_LAzul] y se procederá a abrir el horno
[Qx_Abrir]. Una vez abierto [Ix_FCA] se apagará la luz azul y se encenderá la luz verde [Qx_LVerde].
FN. Funcionamiento normal. Con la puerta abierta y una vez cargado el material, cuando el operador pulse
marcha [Ix_Marcha] el horno cerrará su puerta [Qx_Cerrar] indicado por [Ix_FCC] y luego, comenzará a
funcionar activando su resistencia [Qx_KResistencia].
Si está en fase de calentamiento y el operador pulsa paro [Ix_Paro NC], se desactivará la resistencia, y se
activará un ventilador FAN [Qx_Ventilador] durante 20s para que el baje la temperatura. Después procederá
a abrirse automáticamente el horno [Qx_Abrir] hasta activar el [Ix_FCA]. En ese instante estará en disposición
de un nuevo proceso.
Un piloto rojo [Qx_LRoja] indicará que el horno está maniobrAndo su puerta, en funcionamiento o en fase
de enfriamiento.
Un piloto verde [Qx_LVerde] indicará que el horno está abierto esperAndo la orden de marcha en FN.
Se dotará al sistema de todas las protecciones necesarias para la seguridad de las personas y de la máquina.
La protección contra cortocircuitos deberá implementarse mediante disyuntor.
La resistencia calefactora es trifásica con una alimentación de Un = 400 V y de una potencia de 15 KW en
triangulo. La resistencia irá conectada en estrella.
El motor de la puerta del horno tiene unas características de: Pm = 4 KW, Un = 400 V, cos φ=0,85 y  = 0,92.
Corriente de arranque 5 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante automático
y térmico.
El motor del ventilador monofásico, tiene Pm = 0,13 KW, Un = 230 V, cos φ=0,85 y  = 0,92. Corriente de
arranque 5 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante guardamotor tripolar y
accionado por contactor bipolar.
Los valores normalizados de los Interruptores automáticos con curva C o D son 1, 2, 4, 6, 10, 16, 20, 25, 32,
40, 50, 63 A.
Los calibres de los Interruptores Diferenciales con 30 mA de sensibilidad son 6, 10, 16, 20, 25, 32, 40, 50 A.
Los valores de algunos guardamotores son 0,1 a 0,16 A | 0,16 a 0,25 A | 0,25 a 0,4 A | 0,4 a 0,63 A | 0,63 a
1 A | 1 a 1,6 A | 1,6 a 2,5 A | 2,5 a 4 A. El disparo magnético es a 13·In.
Las salidas están conectadas a 230 V AC, siendo el consumo de los relés auxiliares y contactores de 5-25VA,
las lámparas tienen un consumo de 5 W.
Se pide:
2. Diseñar el esquema de mando y de fuerza del sistema.
3. Elegir los elementos de protección adecuados de los motores, resistencia calefactora y del mando.
4. Indicar sobre las gráficas las corrientes puestas en juego en los diferentes elementos.
5. Programa de control.
418 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Módulos de interface
BMX DDI 1602 BMX DRA 1605
Problemas M340 - 419
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de fuerza
Esquema de Mando
420 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
PUERTA
motor de la puerta del horno tiene unas características de: Pm = 4 KW, Un = 400 V, cos φ=0,85 y  = 0,92.
Corriente de arranque 5 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante automático
y térmico.
Relé térmico F1
𝜂 =
𝑃𝑢
𝑃𝑒
=
𝑃𝑢
√3 𝑈𝑁 𝐼𝑁 cos 
𝐼𝑁 =
𝑃𝑢
√3 𝑈𝑁 cos  𝜂
=
4000
√3 400 0,85 0,92
= 7,38 𝐴
La corrientes que pasa por el térmico es
𝐼N = 7,38 𝐴
Teniendo en cuenta esta corriente, elegiremos el LRD-12.
Ajustaremos la corriente regulada a 7,38 A
Iarranque = 5 · IN = 5 · 7,38 = 36,92 A tiempo 5 segundos
Se observa que en clase 10, estará en el límite de la curva, si bien en la realidad tendrá un valor más favorable.
Escogeremos el LRD -12 clase 10
Automático Q1
Cuando tengamos la corriente nominal, por el térmico estarán pasando los 7,38 A. Aguas arriba por el
automático estarán pasando los 7,38 A.
Para que haya selectividad, la corriente mínima del automático será: I = 1,6 * 7,38 = 11,81 A
Por tanto el calibre del automático elegido será el de 16A (valor normalizado por encima de 11,81 A).
Problemas M340 - 421
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tensión nominal: 400 V 3 polos.
𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒
𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒
=
36,92
16
= 2,3 tiempo 5 segundos
La curva puede ser la C 16A
Diferencial F2
Se elige un Diferencial de calibre 25A y sensibilidad 30 mA (p.e. el A9R81225 de Schneider)
Contactores KM1 y KM2
Clase de servicio temporal.
Categoría de servicio: AC3. Es la adecuada para maniobras de arranque de motores de inducción con
inversión de movimiento
Tensión de servicio: 400 V
Corriente de servicio: 𝐼N = 7,38 𝐴
Del catálogo de Telemecanique sería válido el calibre LC1-D09
422 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
RESISTENCIA CALEFACTORA
La resistencia calefactora es trifásica con una alimentación de Un = 400 V y de una potencia de 15 KW.
Será conectada en estrella.
𝐼𝑁 = 𝐼𝐿𝑇 =
𝑃𝑢
√3 𝑈𝑁
=
15000
√3 400
= 21,65 𝐴
𝐼𝑓𝐸 = 𝐼𝐿𝐸 =
𝐼𝑛
3
=
21,65
3
= 7,21 𝐴
Automático Q3
Tensión nominal: 400 V 3 polos
Corriente de servicio: 𝑰𝐍 = 𝟕, 𝟐𝟏 𝑨
La curva puede ser la C 10
Diferencial F4
Se elige un Diferencial de calibre 25A y sensibilidad 30 mA (p.e. el A9R81225 de Schneider).
Contactor KM4 de la resistencia calefactora
Clase de servicio permanente.
Categoría de servicio: AC1. Es la adecuada para hornos de resistencia
Tensión de servicio: 400 V
Corriente de servicio: 𝑰𝐍 = 𝟕, 𝟐𝟏 𝑨
Del catálogo de Telemecanique sería válido el calibre LC1-D09
Problemas M340 - 423
Universidad de Oviedo
ISA - J. Alonso - I. Machón
VENTILADOR
El motor del ventilador monofásico, tiene Pm = 0,13 KW, Un = 230 V, cos φ=0,85 y  = 0,92. Corriente de
arranque 5 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante guardamotor.
𝐼𝑁 =
𝑃𝑢
𝑈𝑁 cos 𝜂
=
130
230 0,85 0,92
= 0,72 𝐴
Guardamotor Q2
Tensión nominal: 230 V 3 polos.
Corriente de servicio: 𝑰𝐍 = 𝟎, 𝟕𝟐 𝑨
Calibre 0,63 a 1 A
Elegimos el WEG MPW12-3-U001S
Contactor KM3 del motor del ventilador
Clase de servicio permanente.
Categoría de servicio: AC1. Es la adecuada para cargas débilmente inductivas
Tensión de servicio: 230 V
Corriente de servicio: 𝑰𝐍 = 𝟎, 𝟕𝟐 𝑨
FUENTES DE ALIMENTACIÓN
Automático Q4
La fuente de alimentación de continua entrega 20 W con una eficiencia del 82%. Por tanto consume unos
24,39W.
El consumo de corriente es de 24,39/230 = 0,11A
La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar
pasar 9 · 0,11 = 0,95 A en los instantes iniciales.
Podemos escoger el automático C60 1A
424 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Automático Q5
Las salidas trabajan en 230 V AC.
Tenemos en cuenta que los contactores en la llamada consumen mas corriente que en mantenimiento.
Contactor (25VA - 5VA). Las lámparas consumen siempre 5 W.
El caso más desfavorable es cuando tenemos una lámpara activa y entra un contactor.
(5+25) / 230 = 0,13A
Podríamos poner C60 1A para el consumo actual
Programa de control
Tabla de variables
Problemas M340 - 425
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "ControlPantalla"
(* variables utilizadas en la inicialización de la pantalla de operador*)
If %S13 THEN
Set(MxP_Paro); Set(MxP_FCC);
END_IF;
TON_4Hz (IN := Qx_Ventilador AND NOT TON_4Hz.Q,PT := t#250ms);
Mx_Osc5Hz := TON_4Hz.ET >= t#125ms;
Mx_VentON1:= NOT Mx_Osc5Hz AND Qx_Ventilador;
Mx_VentON2 := Mx_Osc5Hz AND Qx_Ventilador;
MxP_Aux1:= Etapa0.x Or Etapa4.x Or Etapa5.x; (*puerta cerrada*)
MxP_Aux6:= (Etapa1.x AND NOT TP_Abriendo.Q) OR Etapa2.x; (* puerta abierta *)
"Sección Preliminar"
(* variables utilizadas en el control Local o a Distancia *)
Mx_Marcha := (MxP_Marcha And Not Ix_LocDist) Or (Ix_Marcha And Ix_LocDist);
Mx_Paro := (MxP_Paro And Not Ix_LocDist) Or (Ix_Paro And Ix_LocDist);
Mx_Rearme := (MxP_Rearme And Not Ix_LocDist) Or (Ix_Rearme And Ix_LocDist);
(* las siguientes variables sólo es posible modIficarlas en simulación o en control local*)
Mx_FCA := (MxP_FCA And Not Ix_LocDist) Or (Ix_FCA And Ix_LocDist);
Mx_FCC := (MxP_FCC And Not Ix_LocDist) Or (Ix_FCC And Ix_LocDist);
Mx_PonCI:=CLEARCHART (Control, RE (Mx_Rearme));
If Mx_PonCI THEN
Setstep (Etapa1);
END_IF;
Tran5_6:=Etapa5.t >= T#20s;
Sección "Simulación"
Esta sección se ejecuta de forma condicional. Depende de la variable MxP_Simulacion.
TP_Abriendo (IN :=Etapa1.x Or Etapa6.x ,PT := t#5s);
TP_Cerrando (IN := Etapa3.x ,PT := t#5s);
If Etapa1.x Or Etapa6.x THEN
Reset (MxP_FCC);
END_IF;
If Etapa3.x And Not TP_Cerrando.Q THEN
Set (MxP_FCC);
END_IF;
426 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
If Etapa3.x THEN
Reset(MxP_FCA);
END_IF;
If (Etapa1.x Or etapa6.x) And Not TP_Abriendo.Q THEN
Set (MxP_FCA);
END_IF;
MxP_Aux2 := (TP_Abriendo.ET >= t#1s And TP_Abriendo.ET < t#2s) OR (TP_Cerrando.ET >= t#4s And
TP_Cerrando.ET < t#5s);
MxP_Aux3 := (TP_Abriendo.ET >= t#2s And TP_Abriendo.ET < t#3s) OR (TP_Cerrando.ET >= t#3s And
TP_Cerrando.ET < t#4s);
MxP_Aux4 := (TP_Abriendo.ET >= t#3s And TP_Abriendo.ET < t#4s) OR (TP_Cerrando.ET >= t#2s And
TP_Cerrando.ET < t#3s);
MxP_Aux5 := (TP_Abriendo.ET >= t#4s And TP_Abriendo.ET < t#5s) OR (TP_Cerrando.ET >= t#1s And
TP_Cerrando.ET < t#2s);
MxP_Pieza := Etapa2.t>t#3s Or Etapa3.x Or Etapa4.x Or Etapa5.x Or Etapa6.x;
Sección "Salidas"
Qx_LAzul := Etapa1.x;
Qx_LVerde := Etapa2.x;
Qx_LRoja := Etapa3.x OR Etapa4.x Or Etapa5.x OR Etapa6.x;
Qx_Abrir := Etapa1.x;
Qx_Cerrar := Etapa3.x;
Qx_KResistencia := Etapa4.x;
Qx_Ventilador := Etapa5.x;
Elementos de la pantalla de explotación
Problemas M340 - 427
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "Chart"
Qx_Lverde
Qx_KResistencia
Qx_LRoja
QX_Cerrar
Qx_LRoja
Tran5_6:=
Etapa5.t >= t#20s
Qx_Abrir
Qx_Ventilador
Qx_LRoja
Qx_LAzul
Qx_Abrir
Etapa0
false
Etapa1
Mx_FCA
Etapa2
Mx_Marcha
Etapa3
Mx_FCC
Etapa4
not Mx_Paro
Etapa5
Tran5_6
Etapa6
Mx_FCA
Etapa2
428 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 429
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 10.05 · Control de un molino. EM y EF
Se desea emplear un autómata para automatizar un molino de bolas para producción de arena de cantera.
Está movido mediante un motor de inducción asíncrono trifásico. Este motor tiene una PUTIL = 15KW, 400 V,
cos ϕ 0,81, 750 rpm, =92%. La intensidad de arranque es de 6 veces la nominal y el tiempo de arranque se
de 5 segundos.
Para arrancar el sistema se dispone de un pulsador NA (Marcha) y otro NC para pararlo (Paro). Para
asegurarse que efectivamente el motor ha arrancado se dispone de un contacto auxiliar (Km1Aux).
Si 3 segundos después de dar la orden de arranque, se observa que éste no se ha producido, se deberá
encender una lámpara de alarma (LRoja) y revocar la orden de arranque. Hasta que no se pulse el acuse de
recibo de la alarma NA (AcuAlarma) no se apagará la luz de aviso, ni se permitirá un nuevo arranque.
Si el número de veces que se produce la alarma es 5, se impedirá la posibilidad de volver a arrancar el motor
hasta que no se pulse rearme (Rearme).
El motor estará conectado mediante un contactor (KM1) con bobina de AC y protegido mediante automático
(Q1), diferencial (F1) y térmico (F1). Se avisará mediante una luz ámbar (LSobrecarga) cuando el sistema pare
por una sobrecarga (F2).
Los valores normalizados de los Interruptores automáticos con curva C o D son 1, 2, 4, 6, 10, 16, 20, 25, 32,
40, 50, 63 A.
El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0400, fuente de
alimentación BMX CPS 2000 (24VDC 60W, eficiencia del 82%) alimenta a el módulo BMX DDM 16025 de 8
entradas digitales de 24 VCC PNP y 8 salidas por relé que están alimentadas a 230 VAC.
Se pide:
1. Diseñar el esquema de mando y de fuerza del sistema.
2. Elegir el automático de fuerza (Q1), diferencial (F1), contactor de mando (KM1), relé térmico del motor
(F2) y los automáticos de mando (Q2 y Q3).
3. Indicar sobre las gráficas del térmico y del automático CLARAMENTE, la corriente de arranque, la
corriente de regulación del térmico y la corriente nominal.
4. Programa de mando
BMX DDM 16025
430 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de variables
Esquema de Mando, y fuerza
Problemas M340 - 431
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Relé térmico F2
Las corrientes que pasan por el térmico son
𝐼𝑁 =
𝑃ú𝑡𝑖𝑙
𝜂 √3 𝑈𝑁 cos 𝜑
=
15000
0,92 · √3 · 400 · 0,81
= 29 𝐴
Corriente regulada a 29 A Iarranque = 6 · IN = 6 · 29 = 174 A tiempo 5 segundos
se observa que se debe emplear el relé térmico de clase 20 LRD-32
Automático Q1
Cuando tengamos la corriente nominal, por el térmico estarán pasando 29 A.
Para que haya selectividad la corriente mínima del automático será: I = 1,6 * 29 = 46,4 A
Por tanto el calibre del automático elegido será el de 50A (valor normalizado por encima de 46,4 A).
Tensión nominal: 400 V
3 polos.
𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒
𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒
=
174
50
= 3,5
432 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
La curva debe der ser la D. C60N D50A.
Diferencial F1
Se elige un diferencial de calibre > 1,4 * 50 => 80A y sensibilidad 30 mA
Contactor KM1
Clase de servicio temporal. Viene dado por el enunciado del problema.
Categoría de servicio: AC3. Es la adecuada para maniobras de arranque de motores de inducción.
Tensión de servicio: 400 V
Corriente de servicio: IN = 29 A
Del catálogo de Telemecanique sería válido el calibre LC1-D32.
Corriente y potencia de empleo según IEC de los contactores
Tamaño
de los contactores
LC1- LC1- LC1- LC1- LC1- LC1- LC1- LC1- LC1-
LP1- LP1- LP1- LP1- LP1- LP1- LP1- LP1- LP1-
K06 D09 D12 D18 D25 D32 D40 D50 D65
Corriente de empleo
máxima en AC-3
<=440 V A 6 9 12 18 25 32 40 50 65
Potencia nominal
de empleo P
220/240 V KW 1,5 2,2 3 4 5,5 7,5 11 15 18,5
380/400 V KW 2,2 4 5,5 7,5 11 15 18,5 22 30
Problemas M340 - 433
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Automático Q2
La fuente de alimentación entrega 60 W con una eficiencia del 82%.
Por tanto consume unos 60 / 0,82 = 73,17 W que significa unos 73,17 / 230 = 0,32 A
La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar
pasar 9 · 0,32 = 2,86 A en los instantes iniciales.
Podemos coger el automático C60 1A
Automático Q3
El caso más desfavorable es cuando arranca el contactor KM1.
Corriente de llamada del KM1 Ia = 70 / 230 = 304 mA
Corriente de mantenimiento del KM1 Im = 7 / 230 = 30 mA
Consumo del piloto I = 5 / 230 = 22 mA
Por tanto elegiremos el automático de calibre C1 que permitirá su paso sin problemas.
434 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa en ST (pr0906)
Sección "Control"
(* Creación de las variables utilizadas en el programa en control Local o a Distancia *)
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);
(* en rojo están las que ponemos para poder simularlo en casa, en realidad estas no se usarían, en su lugar,
se usarían las entradas Ix correspondientes *)
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); (* para poner el interruptor NC en la pantalla de operador *)
END_IF;
If Mx_Marcha And Contador.CV <5 And Not Mx_Alarma THEN
Set (Qx_KM1);
END_IF;
If Not Mx_paro Or Mx_alarma Or Mx_Termico THEN
Reset (Qx_KM1);
END_IF;
(* lanzamos un temporizador para verificar que arrancó el contactor *)
TON_VerificaCon (IN := Qx_KM1, PT := t#3s);
If TON_VerificaCon.Q And Not Mx_KM1Aux THEN (* si no entró el contactor, a los 3s provoca una alarma *)
Set (Mx_Alarma);
Set (Qx_LuzRoja);
END_IF;
If Mx_AcuAlarma THEN
Reset (Mx_Alarma);
Reset (Qx_LuzRoja);
END_IF;
Contador (CU := Mx_Alarma, R := Mx_Rearme, PV := 5); (* el valor de PV es indiferente, sólo se va a mirar el
valor actual del contador *)
Qx_LuzSobrecarga := Mx_Termico;
Pantalla de operador
Problemas M340 - 435
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tipos de datos con formato BCD
Formato BCD
[03] pág. 323-329. "Los tipos de datos con formato BCD pertenecen a la familia de datos elementales EDT
(Elementary data type), que agrupa tipos de datos denominados simples y no compuestos (matrices,
estructuras o bloques de funciones).
El formato Decimal codificado Binario (Binary coded Decimal) permite representar las cifras decimales
comprendidas entre 0 y 9 mediante un conjunto de cuatro bits (cuarteto). En este formato, los cuatro bits
que permiten codificar las cifras decimales tienen un rango de sus combinaciones inutilizado.
Tabla de correspondencias:
Decimal Binario
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
1010 (no utilizado)
1011 (no utilizado)
1100 (no utilizado)
1101 (no utilizado)
1110 (no utilizado)
1111 (no utilizado)
Ejemplo de codificación en un formato de 16 bits:
Valor decimal
1578
1 5 7 8
Valor binario 0001 0101 0111 1000
Ejemplo de codificación en un formato de 16 bits:
Valor decimal
15785902
1 5 7 8 5 9 0 2
Valor binario 0001 0101 0111 1000 0101 1001 0000 0010
436 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tipo Date
Tipo Designación Escala (bits) Valor predeterminado
Date Fecha 32 D#1990-01-01
El tipo Date, codificado en un formato de 32 bits, contiene la siguiente información:
 el año codificado en un campo de 16 bits (cuatro cuartetos de mayor valor),
 el mes codificado en un campo de 8 bits (dos cuartetos) y
 el día codificado en un campo de 8 bits (dos cuartetos de menor valor).

Representación de la fecha 2017-07-20 con formato BCD:
Año (2017) Mes (07) Día (20)
0010 0000 0001 0111 0000 0111 0010 0000
Tipo Time of Day
Tipo Designación Escala (bits) Valor predeterminado
Time_of_day Hora del día 32 TOD#00:00:00
El tipo Time of Day , codificado en un formato de 32 bits, contiene la siguiente información:
 la hora codificada en un campo de 8 bits (dos cuartetos de mayor valor),
 los minutos codificados en un campo de 8 bits (dos cuartetos), y
 los segundos codificados en un campo de 8 bits (dos cuartetos).
NOTA: Los ocho bits de menor valor no se utilizan.
Representación con formato BCD de la hora del día 11:41:32
Hora (11) Minutos (41) Segundos (32) Byte de menor valor
0001 0001 0100 0001 0011 0010 No se utiliza
Tipo Date And Time
Tipo Designación Escala (bits) Valor predeterminado
Date_And_Time Fecha y hora 64 DT#1990-01-01-00:00:00
El tipo Date And Time, codificado en un formato de 64 bits, contiene la siguiente información:
 el año codificado en un campo de 16 bits (cuatro cuartetos de mayor valor),
 el mes codificado en un campo de 8 bits (dos cuartetos) y
 el día codificado en un campo de 8 bits (dos cuartetos),
 la hora codificada en un campo de 8 bits (dos cuartetos),
 los minutos codificados en un campo de 8 bits (dos cuartetos), y
 los segundos codificados en un campo de 8 bits (dos cuartetos).
NOTA: Los ocho bits de menor valor no se utilizan.
Ejemplo: Representación de la fecha y la hora 2017-07-20:11:41:32 con formato BCD:
Problemas M340 - 437
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Año (2017) Mes (07) Día (20) Hora (11) Minutos (41) Segundos (32) Byte de menor
valor
0010 0000
0001 0111
0000 0111 0010 0000 0001 0001 0100 0001 0011 0010 No se utiliza
Reglas de sintaxis
Campo Límites Comentario
Año [1990,2099]
Mes [01,12] El 0 situado a la izquierda aparece siempre y se puede omitir al introducir los
datos
Día [01,31]
[01,30]
[01,29]
[01,28]
Para los meses 01|03|05|07|08|10|12
Para los meses 04|06|09|11
Para el mes 02 de años bisiestos
Para el mes 02 de años no bisiestos
Hora [00,23] El 0 situado a la izquierda aparece siempre y se puede omitir al introducir los
datos
Minuto [00,59] El 0 situado a la izquierda aparece siempre y se puede omitir al introducir los
datos
Segundo [00,59] El 0 situado a la izquierda aparece siempre y se puede omitir al introducir los
datos
438 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Funciones de fecha y hora
[03] pág. 173-186. Leer para ampliar
ADD_***_TIME: Adición de una duración a una fecha
La función ADD_***_TIME agrega una duración a una fecha o a una hora.
Funciones disponibles
Las funciones disponibles son las siguientes:
ADD_DT_TIME,
ADD_TOD_TIME.
Representación en ST
Representación aplicada a una hora del día:
Result_Value := ADD_TOD_TIME (Source_Value, Time_to_Add);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
los parámetros de salida son:
NOTA: la aplicación debe prever la gestión de los años bisiestos.
DIVTIME: División
La función divide el valor de la entrada TIME_variable (tipo de datos TIME) entre el valor de la
entrada Divisor y emite el resultado en la salida.
Representación en ST
Quotient := DIVTIME (TIME_variable, Divisor) ;
Problemas M340 - 439
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Descripción de los parámetros
Descripción de los parámetros de entrada:
los parámetros de salida son:
MULTIME: Multiplicación
La función multiplica los valores de entrada y emite el resultado en la salida.
El tipo de datos del primer valor de entrada (TIME_variable) debe ser TIME.
Representación en ST
Product := MULTIME (TIME_variable, Factor) ;
Descripción de los parámetros
Descripción de los parámetros de entrada:
los parámetros de salida son:
440 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
SUB_***_***: Calcula la diferencia de tiempo entre dos fechas u horas
La función SUB_***_*** calcula la desviación de tiempo entre dos fechas u horas.
Funciones disponibles
Las funciones disponibles son las siguientes:
SUB_DATE_DATE,
SUB_DT_DT,
SUB_TOD_TOD.
Representación de ST
Representación aplicada a una hora del día:
Delay1 := SUB_TOD_TOD (Input_IN1, Input_IN2);
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
los parámetros de salida son:
SUB_***_TIME: Resta de una duración de una fecha
La función SUB_***_TIME aumenta una duración de una fecha o de una hora.
Funciones disponibles
Las funciones disponibles son las siguientes:
SUB_DT_TIME,
SUB_TOD_TIME.
Representación en ST
Representación aplicada a una hora del día:
Result_Value := SUB_TOD_TIME (Source_Value, Time_to_Sub);
Problemas M340 - 441
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Descripción de los parámetros
En la siguiente tabla se describen los parámetros de entrada:
los parámetros de salida son:
NOTA: la aplicación debe prever la gestión de los años bisiestos.
ARINT_TO_DATE: Conversión de matriz de enteros con fecha en una
variable DATE
ARINT_TO_DT: Conversión de matriz de enteros con fecha y hora en una
variable DT
ARINT_TO_TOD: Conversión de matriz de enteros con hora del día en una
variable TOD
BCD_TO_INT: Conversión de un entero BCD en binario puro
DATE_TO_ARINT: Conversión de variable DATE en matriz de enteros
DATE_TO_STRING: Conversión de una variable en formato DATE a una
cadena de caracteres
DT_TO_ARINT: Conversión de variable DT en matriz de enteros
DT_TO_STRING: Conversión de una variable en formato DT a una cadena
de caracteres
442 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
TIME_AS_WORD: Conversión de tipos
TIME_TO_***: Conversión de tipos
TIME_TO_STRING: Conversión de una variable en formato TIME a una
cadena de caracteres
TOD_TO_ARINT: Conversión de variable TOD en matriz de enteros
TOD_TO_STRING: Conversión de una variable en formato TOD a una
cadena de caracteres
Problemas M340 - 443
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Descripción del panel modular de entrenamiento para
automatización y control de procesos
Para desarrollar las siguientes prácticas se va a hacer uso de unos módulos diseñados por el profesor Felipe
Mateos Martin y financiados por la Fundación ALCOA.
Módulo HMI-1 (Interface Hombre Máquina)
consta de los siguientes elementos:
 Un voltímetro, identificado como V30
 Un amperímetro, identificado como A20
 Un potenciómetro, identificado como P10
 3 lámparas (verde, ámbar y roja), identificadas como HG, HY y HR
 3 pulsadores (verde y ámbar NA y uno rojo NC), identificados como BG, BY
y BR
 Una Seta de emergencia (2 contactos NC), identificada como ES
 Una sirena, identificada como SR
 Un conmutador de 2 posiciones, identificado como S2P
 Un conmutador de 3 posiciones, identificado como S3P
Módulo IFC-1 (Interface de señales)
Consta de los siguientes elementos:
 Una fuente de alimentación, identificada como PS
 Un convertidor de temperatura [PT100 -V], identificado como MCR
[MINI MCR-SL-PT100-UINC- 2864273 de Phoenix Contact]
 5 relés, identificados como R1 a R5 [OPT-24DC/230AC/ 1 de Phoenix
Contact]
 1 automático de protección
444 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Módulo PCS-0 (Emulador de horno industrial)
Consta de los siguientes elementos:
 Una lámpara alimentada a 220 V AC, identificada como LP
 Un ventilador de 24V DC, identificado como FAN
 1 sonda PT100, identificados como RTD
 1 termostato, identificado como TH [EDT2411 Temperature Controller]
 1 sonda de temperatura con salida directa al TH
 1 Final de Carrera, identificado como SW
Módulo AP
Consta de los siguientes elementos:
 FA CPS2000 de 20W
 AP M340 P342020
 DDI 1602
 AMM 0600
 DDO 1602
Problemas M340 - 445
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de Mando, y fuerza de los módulos en general
Pantalla de operador completa
En la siguiente pantalla se reflejan los distintos componentes que nos pueden servir para la realización de las
pantallas de operador en los problemas.
446 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 447
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 11.01 · Encendido y apagado sencillo del horno. EM y
EF
Se partirá de que el horno tiene la puerta cerrada (detectado por el fin de carrera SW [Ix_SW], contacto NA)
Cuando el operador pulse el botón verde BG [Ix_PMarcha] el horno comenzará a funcionar activando la
lámpara LP [Qx_KLamp].
Si está en fase de calentamiento y el operador pulsa el botón rojo BR [Ix_PParo], se desactivará la lámpara, y
se activará el ventilador FAN [Qx_Ventilador] durante 20s para que el baje la temperatura.
Si el operador abre la puerta mientras están calentando el horno o el ventilador funcionando, entonces se
activará la señal acústica SR [QxZumbador] y permanecerá sonando hasta que se vuelva a cerrar.
Un piloto amarillo HY [QxLAmbar] indicará que el horno está en funcionamiento.
Un piloto verde HG [QxLVerde] indicará que se puede abrir la puerta del horno por estar el horno parado.
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentación BMX CPS 2000 (24VDC 40W, eficiencia del 82%) alimenta a todo el conjunto, módulo de
entradas PNP BMX DDI 1602 y salidas PNP BMX DDO 1602.
squema de Mando, y fuerza
448 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa (pr1101) en ST · Encendido y apagado sencillo del horno
Tabla de variables
Sección "Preliminar"
(*Inicialización de la pantalla de operador*)
If %S13 THEN
Set (MxP_SW); Set (MxP_PParo);
END_IF;
(* Variables utilizadas en el control Locol o a Distancia *)
Mx_PMarcha := (Ix_PMarcha And Ix_LocDist) Or (MxP_PMarcha And Not Ix_LocDist);
Mx_PParo := (Ix_PParo And Ix_LocDist) Or (MxP_PParo And Not Ix_LocDist);
(* Variables utilizadas en la pantalla de operador *)
TON_0sc5Hz (IN := Qx_Ventilador AND NOT TON_0sc2Hz.Q, PT := t#200ms);
Mx_Osc5Hz := TON_0sc5Hz.ET >= t#100ms;
Mx_VentON1 := NOT Mx_Osc5Hz AND Qx_Ventilador;
Mx_VentON2 := Mx_Osc5Hz AND Qx_Ventilador;
Sección "Control_Horno"
IF Mx_PMarcha AND Ix_SW THEN
Set (Qx_KLamp); RESET (Mx_Ventila);
Problemas M340 - 449
Universidad de Oviedo
ISA - J. Alonso - I. Machón
END_IF;
IF NOT Mx_PParo THEN
RESET (Qx_KLamp); SET (Mx_Ventila);
(* cada vez que se pulse, parará el proceso y ventilará 10segundos *)
END_IF;
TP_10s (IN := Mx_Ventila, PT := t#10s, Q => Qx_Ventilador);
Qx_LAmbar := Qx_KLamp OR Qx_Ventilador;
Qx_Zumbador := (Qx_KLamp OR Qx_Ventilador) And NOT Ix_SW;
Qx_LVerde := NOT Qx_LAmbar;
Pantalla de operador
450 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programa (pr1101b) en ST y SFC Encendido y apagado sencillo del horno
Tabla de variables
Sección "Preliminar"
(*Inicialización de la pantalla de operador*)
If %S13 THEN
Set(MxP_PParo);
END_IF;
(* Variables utilizadas en el control Locol o a Distancia *)
Mx_PMarcha := (Ix_PMarcha And Ix_LocDist) Or (MxP_PMarcha And Not Ix_LocDist);
Mx_PParo := (Ix_PParo And Ix_LocDist) Or (MxP_PParo And Not Ix_LocDist);
(* Variables utilizadas en la pantalla de operador *)
Mx_VentON1 := NOT %S6 AND Qx_Ventilador;
Mx_VentON2 := %S6 AND Qx_Ventilador;
(* Variables de transición *)
Tran0_1 := Mx_PMarcha AND Ix_SW;
Tran2_3 := Etapa2.t>= t#20s;
(* Salidas *)
Qx_LVerde := Etapa0.x;
Qx_LAmbar := Etapa1.x OR Etapa2.x;
Qx_Ventilador := Etapa2.x;
Qx_Zumbador := (Qx_KLamp OR Qx_Ventilador) And NOT Ix_SW;
Qx_KLamp := Etapa1.x;
Problemas M340 - 451
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección SFC "Horno"
Forzado de una entrada
Si quisiéramos simularlo en casa, tenemos que tener en cuenta que el programa está hecho para ejecutarlo
sobre la maqueta. Por ello, para poder simularlo deberemos forzar la variable Ix_SW para hacer que empiece
cerrado.
Creariamos una tabla de animación e introduciríamos la variable Ix_SW. Posteriormente la forzaremos con
el icono correspondiente.
Tran0_1 :=
Mx_PMarcha
AND Ix_SW
Qx_Ventilador
Qx_LAmbar
Qx_KLamp
Qx_LAmbar
Qx_LVerde
Tran2_3 :=
Etapa2.t >= t#20s
Qx_Ventilador
Qx_LAmbar
Etapa0
Etapa1
Etapa2
Tran0_1
NOT Mx_PParo
Tran2_3
452 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 453
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 11.02 · Control sencillo de la temperatura de un
horno. EM y EF
Se partirá de que el horno tiene la puerta cerrada (detectado por el fin de carrera SW [Ix_SW], contacto NA).
Cuando el operador pulse el botón verde BG [Ix_PMarcha] el horno comenzará a funcionar activando la
lámpara LP [Qx_KLamp].
Una sonda de temperatura PT100 proporciona una señal analógica 0-10V a través de un módulo adaptador
y está calibrada de forma que indica valores de temperatura comprendidos entre 0 y 100 grados Centígrados.
Esta sonda se va a utilizar para regular la temperatura del horno de forma que:
- La temperatura ideal del horno será de 40 ⁰C.
- Por encima de 42⁰C se ha de poner en marcha el sistema de refrigeración (ventilador) y parar el
calentamiento
- Por debajo de 38⁰C se ha de detener la ventilación y conectar de nuevo el calentamiento.
Si está en fase de calentamiento y el operador pulsa el botón rojo BR [Ix_PParo], se desactivará la lámpara,
y se activará el ventilador FAN [Qx_Ventilador] durante el tiempo necesario para que el baje la temperatura
a 30⁰C.
Si el operador abre la puerta mientras se está en proceso de calentamiento del horno o la temperatura es
superior a 35⁰C, se activará la señal acústica SR [Qx_Zumbador] y la luz roja HR [Qx_LRoja] oscilará a 2Hz.
Permanecerá en esta situación hasta que se vuelva a cerrar la puerta.
Un piloto amarillo HY [Qx_LAmbar] indicará que el horno está en funcionamiento.
Un piloto verde HG [Qx_LVerde] indicará que se puede abrir la puerta del horno por estar el horno parado y
su temperatura es inferior a 30°C.
Se dispondrá de una Seta de emergencia [Ix_SetaEmer] que parará todo el proceso poniendo la lámpara roja
a oscilar a 2 Hz, hasta que se desactive dicha Seta .
La señal de campo como entrada analógica se ha de tratar con un formato de 16 bits y se le ha de asignar un
tipo de dato ENTERO, pero el tratamiento del resto de programa ha de ser con valores de tipo REAL.
PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentación BMX CPS 2000 (24VDC 40W, eficiencia del 82%) alimenta a todo el conjunto, módulo de
entradas PNP BMX DDI 1602, de salidas PNP BMX DDO 1602 y entradas/salidas analógicas BMX AMM 0600.
454 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Esquema de Mando y Fuerza
Problemas M340 - 455
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de variables
Configuración del módulo analógico
Se debe comenzar realizando la configuración del módulo de entradas analógicas haciendo doble clic sobre
él en la vista general del hardware del PLC. Se ha instalado el módulo BMX AMI 0600 que contiene 4
canales de entrada y 2 de salidas analógicas. Aparecerá la siguiente ventana:
Como la señal la introducimos por el canal 0, se selecciona el rango de entrada 0 a 10V de todos los
posibles. Para la escala (valores de tipo entero equivalentes a la señal eléctrica medida), introducimos los
456 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
valores 0 al 10000.
Como desborde dejamos -500 y 10500
De filtro, según los requerimientos de la señal a tratar, elegimos 3.
Seleccionamos una tarea asociada al canal analógico. En nuestro caso, tarea maestra.
Seleccionamos el ciclo de exploración del canal de entrada. Lo dejamos en normal.
Una vez configurado el módulo de entradas analógicas, se debe realizar el escalado de la señal mediante la
inserción de una instancia a un bloque de función elemental denominado SCALING.
Los parámetros del escalado forman parte de una estructura de datos denominada PARA_SCALING.
Lo más cómodo es insertar el bloque y asignar como entrada de parámetros “parámetros” en la entrada
PARA del tipo PARA_SCALING. Por otra parte, la entrada IN y la salida OUT son del tipo REAL.
Programa en ST (pr1102)
Sección "Control"
(* VARIABLES utilizadas en la pantalla de operador*)
If %S13 THEN
Set(MxP_SetaEmer); Set(MxP_Paro);
END_IF;
TON_5Hz (IN := Qx_Ventilador AND NOT TON_5Hz.Q,
PT := t#200ms);
Mx_Osc5Hz := TON_5Hz.ET >= t#100ms;
Mx_VentON1:= NOT Mx_Osc5Hz AND Qx_Ventilador;
Mx_VentON2 := Mx_Osc5Hz AND Qx_Ventilador;
(* VARIABLE utilizadas en el control Local o a Distancia *)
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_SetaEmer := (Ix_SetaEmer And Ix_LocDis) Or (MxP_SetaEmer And Not Ix_LocDis);
(* Escalado de la señal de la sonda PT100 *)
Ir_PT100 := INT_TO_REAL (IN := Ii_PT100);
SCALING_0 (IN := Ir_PT100,
PARA := Parámetros_SCALING,
OUT => Mr_TempHorno);
IF Mx_Marcha AND Ix_SW THEN
SET (Mx_Calienta); RESET (Mx_Ventila);
END_IF;
IF NOT Mx_Paro THEN
RESET (Mx_Calienta); RESET (Mx_Intervalo); SET (Mx_Ventila);
END_IF;
Problemas M340 - 457
Universidad de Oviedo
ISA - J. Alonso - I. Machón
IF NOT Mx_SetaEmer THEN
RESET (Mx_Calienta); RESET (Mx_Intervalo);
RESET (Mx_Ventila); SET (Mx_EnEmerg);
ELSE RESET (Mx_EnEmerg);
END_IF;
(* Control de la lámpara*)
If GE (Mr_TempHorno, 42.0) THEN
SET (Mx_Intervalo);
END_IF;
If LE (Mr_TempHorno, 38.0) THEN
RESET (Mx_Intervalo);
END_IF;
Qx_Lamp := Mx_Calienta AND NOT Mx_Intervalo;
(* Control del ventilador*)
IF LE (Mr_TempHorno,30.0) THEN
RESET (Mx_Ventila);
END_IF;
Qx_Ventilador := (Mx_Calienta AND (Mx_Intervalo)) OR (Mx_Ventila);
TON_2HZ (IN := NOT TON_2HZ.Q,
PT := t#500ms);
Mx_Osc2Hz:=TON_2HZ.ET>T#250ms;
Qx_LAmbar := Qx_Lamp;
Qx_Zumbador := (Mx_Calienta OR GE (Mr_TempHorno, 35.0)) And NOT Ix_SW;
Qx_LRoja := ((Mx_Calienta OR GE (Mr_TempHorno, 35.0)) And NOT Ix_SW) OR Mx_EnEmerg AND
Mx_Osc2Hz;
Qx_LVerde := NOT Qx_Lamp And LT (Mr_TempHorno, 30.0);
458 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de operador
Se introducen dos rectángulos animados con la variable de control la Mr_TempHorno. Uno como gráfico de
tendencias y otro como gráfico de barras.
Problemas M340 - 459
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Programación por fases
Emplearemos este tipo de programación cuando se trate de programar una parte secuencial de nuestro
programa. Nos basaremos en el GRAFCET de nivel 2.
Se trata de habilitar y desahabilitar unas secciones del código de nuestro programa mediante unas
instrucciones condicionales basadas en unas variables (Mx_Fase1, Mx_Fase2,.. ) de forma tal, que de esas
variables sólo podrá estar activa una de ellas, el resto estará a 0. Utilizaremos para ello las instruciones SET y
RESET.
Como ejemplo programaremos por fases una variante del programa 5.1 visto anteriormente.
Problema 12.01 · Control de un portón.
Programación mediante FASES
Diseñar el circuito lógico que realice la siguiente apertura y cierre de un portón.
Cuando se acciona el pulsador "P" y esté cerrado, ha de iniciar la maniobra de apertura, hasta que el portón
accione el final de carrera "FCA" (ABIERTO). En el caso de que se produjera, durante la maniobra de apertura,
el accionamiento del pulsador "P", el portón debe pararse, permaneciendo en este estado hasta que se
produzca de nuevo el accionamiento del pulsador, "P", momento en el cual debe proceder denuevo a la
maniobra de apertura.
Cuando se acciona el pulsador "P" y esté abierto, ha de iniciar la maniobra de cierre hasta que el portón
accione el final de carrera "FCC" (CERRADO). De forma análoga, si, durante la maniobra de cierre, se acciona
el pulsador "P", el portón 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.
En ambos casos, una vez dada la orden de parada al portón, éste no permanezca en este estado
indefinidamente, sino que, una vez transcurridos quince segundos, se abrirá automaticamente el portón. El
portón estará parado abierto o semiabierto, un máximo de 30 segundos.
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente
de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas
salidas BMX DDM3202K entradas y salidas PNP.
El pulsador y los finales de carrera, se
consideran normalmente abiertos.
460 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tablas de variables
Sección "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);
Mx_FPulsador := RE (Mx_Pulsador);
If %S13 THEN
Set (MxP_FCC); (* para controlar la PANTALLA de operador*)
Set (Mx_Fase1);
END_IF;
Mx_PortonParado := Mx_Fase4 Or Mx_Fase6;
Sección "Control"
(* Fase1 - PORTON CERRADO *)
If Mx_Fase1 and Mx_FPulsador Then
Reset (Mx_Fase1);
Set (Mx_Fase2); (* Fase2 - ABRIR el portón *)
Reset (Mx_FPulsador);
End_if;
(* Fase2 - ABRIR el portón *)
If Mx_Fase2 Then
Set(Qx_Abrir);
If Mx_FCA Then
Reset (Qx_Abrir);
Reset (Mx_Fase2);
Set(Mx_Fase3); (* Fase3 - ABIERTO esperando Pulsador para cerrar o 30s para Cerrar *)
End_if;
If Mx_FPulsador Then
Reset (Qx_Abrir);
Reset (Mx_Fase2);
Set (Mx_Fase4); (* Fase4 - PARADO esperando Pulsador para Abrir o 30s para Cerrar *)
Reset (Mx_FPulsador);
End_if;
End_if;
TON_30s (IN := Mx_Fase3 Or Mx_Fase4 Or Mx_Fase6,PT := t#30s);
Problemas M340 - 461
Universidad de Oviedo
ISA - J. Alonso - I. Machón
(* Fase3 - ABIERTO esperando Pulsador para cerrar o 30s para Cerrar *)
If Mx_Fase3 and (Mx_FPulsador Or TON_30s.Q) Then
Reset (Mx_Fase3);
Set(Mx_Fase5); (* Fase5 - CERRAR el portón *)
Reset (Mx_FPulsador);
End_if;
(* Fase4 - PARADO esperando Pulsador para Abrir o 30s para Cerrar *)
If Mx_Fase4 Then
If Mx_FPulsador Then
Set(Mx_Fase2); (* Fase2 - ABRIR el portón *)
Reset (Mx_Fase4);
Reset (Mx_FPulsador);
End_if;
If TON_30s.Q Then
Reset (Mx_Fase4);
Set(Mx_Fase5); (* Fase5 - CERRAR el portón *)
End_if;
End_if;
(* Fase5 - CERRAR el portón *)
If Mx_Fase5 Then
Set(Qx_Cerrar);
If Mx_FCC Then
Reset (Qx_Cerrar);
Reset (Mx_Fase5);
Set (Mx_Fase1); (* Fase1 - PORTON CERRADO *)
End_if;
If Mx_FPulsador Then
Reset (Qx_Cerrar);
Reset (Mx_Fase5);
Set(Mx_Fase6); (* Fase6 - PARADO esperando Pulsador para Abrir o 30s para Cerrar *)
Reset (Mx_FPulsador);
End_if;
End_if;
(* Fase6 - PARADO esperando Pulsador para Abrir o 30s para Cerrar *)
If Mx_Fase6 Then
If Mx_FPulsador Then
Reset (Mx_Fase6);
Set(Mx_Fase2); (* Fase2 - ABRIR el portón *)
Reset (Mx_FPulsador);
End_if;
If TON_30s.Q Then
Reset (Mx_Fase6);
Set(Mx_Fase5); (* Fase5 - CERRAR el portón *)
End_if;
End_if;
Elementos de la Pantalla de explotación
462 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 463
Universidad de Oviedo
ISA - J. Alonso - I. Machón
GEMMA
1. Introducción
[12] Cuando se desea automatizar una máquina o un proceso industrial automatizado, se deben contemplar
todos los posibles estados en los que se pueda encontrar esa máquina o proceso. Así mismo se deberán tener
también en cuenta las distintas formas de evolucionar de unos estados hacia los otros.
El programa implementado no solamente controlará el funcionamiento normal automático, si no que deberá
preveer todas las situaciones de fallo, de avería y de parada de emergencia. Asimismo, una cuestión
fundamental es el rearme de la máquina o proceso y su puesta en marcha, debiendo contemplar el caso en
el que la producción deba continuar en el estado previo a la emergencia, o si ya no es posible continuar, si el
proceso debe ser iniciado de nuevo. Se deberán implementar también las marchas de test, el control manual
etc.
El objetivo es reducir al mínimo los tiempos de parada de las máquinas y hacer simple el proceso de
rearranque y los cambios de modo de funcionamiento, por ejemplo paso de control manual a control
automático.
Necesidad de un vocabulario preciso
Cuando automatizamos un proceso y definimos sus modos de marcha y paro, utilizamos un vocabulario que
a veces es impreciso y algunas veces incluso contradictorio. Por ejemplo los términos "marcha automática,
semiautomática, manual" se emplean de forma diferente por las personas dependiendo de su experiencia,
de su entorno, de la tecnología utilizada, dándoles un significado diferente. Por tanto, es necesario utilizar
un vocabulario preciso según unos criterios uniformes independientemente de las personas que lo utilicen y
de la tecnología que se emplee.
2. Conceptos básicos
Un Sistema Automatizado de Producción (SAP) puede ser descompuesto simbolicámente en 3 partes
diferenciadas.
 La Parte Operativa (PO) que comprende los mecanismos, los efectores, los accionadores, los
preaccionadores y los sensores.
 La Parte de Supervisión y Explotación (PS) comprende los componentes de señalización, de
visualización y de comunicaciones (redes).
 La Parte de Control (PC) que recoge todas las informaciones de la PO y de la PS y proporciona las
ordenes destinadas a los preaccionadores de la PO y a los componentes de señalización, de
visualización y comunicación.
Figura 1. Sistema Automático de Producción
464 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
(SAP)
Concepto número 1
Los procedimientos de marcha, paro y defecto son vistos por la parte del control en orden de marcha.
Por tanto, se supone que la parte de control está en marcha, con todos sus elementos alimentados, tanto si
la parte operativa está sin energía, en defecto o parada.
Concepto número 2
Un sistema automatizado es concebido fundamentalmente para producir un bien con un valor añadido.
Es la justificación principal de la construcción del sistema. Esta producción puede ser variada: modificación
de productos, control, manutención, la experiencia nos enseña que se puede siempre caracterizar por un
sistema dado de manera única y precisa. Diremos que el sistema está en producción si el valor añadido para
el cual el sistema fué concebido es obtenido, diremos que el sistema está fuera de producción en caso
contario.
Concepto número 3
Se puede clasificar en tres grandes familias los modos de Marcha y Paro de un sistema automatizado.
• Grupo A · Procesos de Parada y Puesta en Marcha
Engloba los procesos de parada activados a petición del operador por diversas causas como fin de
trabajo, parada pedida a fin de ciclo, parada en un estado determinado y que no responden a eventos
generados por la propia máquina (A1 a A4). También engloba los procesos conducentes a la puesta
en marcha de la máquina como son la puesta del sistema en el estado inicial o la puesta del sistema
en un estado determinado (A5 a A7).
• Grupo F · Procesos de funcionamiento
Designa los procesos necesarios para la producción y obtención de productos. Además del estado de
producción normal automática, engloba también las marchas de preparación y de cierre (F2 y F3), las
marchas de test y las marchas de verificación (F4 a F6).
• Grupo D · Procesos de fallo de la Parte Operativa
Es raro que un sistema automatizado funcione sin incidentes durante toda su vida: es necesario por
tanto preveer todos los posibles defectos.
Este grupo contiene todos los modos en los que el sistema está en defecto tanto si está produciendo
(D3), está parado a petición del operador al pulsar la seta de emergencia (D1) o está en fase de
diagnóstico o tratamiento del defecto (D2). Corresponden a todas las paradas por causas internas al
proceso.
3. La guía GEMMA
La guía GEMMA (Guide d'Étude des Modes de Marches et Arrêts, Guía de Estudio de los Modos de Marcha y
Paro) fue desarollada por la ADEPA (Agence nationale pour le DÉveloppement de la Productique Appliquée
à l'industrie, Agencia nacional francesa para el desarrollo de la producción aplicada a la industria) en el año
1992. Es una guía gráfica que describe de forma simple, los diferentes estados de marcha y paro, así como
sus posibles evoluciones de un estado a otro [ver la figura en la página siguiente].
Es de tipo "CHECK-LIST", cuando se implementa, no se tienen porque recoger todos los estados de la guía.
Recogerá solamente aquellos que son precisos por estar demandados en las especificaciones funcionales del
sistema.
Problemas M340 - 465
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Figura 2. Guía de Estudio de los Modos de Marcha y Paro
La guía GEMMA también representa el estado en que la Parte de Mando se encuentra fuera de Servicio. Es
decir, el autómata está sin alimentación o en Stop (zona PZ).
Los rectángulos de estado
Sobre la guía gráfica GEMMA cada modo de marcha o paro deseado puede ser descrito en uno de los
"rectángulos de estado" previstos para este fin.
La posición de un rectángulo de estado sobre la guía define:
 su pertenencia a una de las tres familias.
 el hecho que el esté "EN" o "FUERA" de producción.
El rectángulo de estado lleva una designación de marcha o paro utilizando un vocabulario que no lleva a
confusión.
La guía GEMMA contiene rectángulos de estado en los cuales serán definidos los diferentes estados de
marcha y paro del proceso estudiado. Se explicitarán sólo los que sean necesarios, precisando el nombre de
cada uno de los estados en el interior del rectángulo correspondiente.
El rectángulo de estado representa un modo de funcionamiento, no se puede estar en un momento
determinado en más que un sólo rectángulo. La guía GEMMA está concebida para un proceso operativo único
controlado por un sistema de control único.
466 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Procedimientos de PARADA Y PUESTA EN MARCHA - A
Este grupo contiene todos los modos de funcionamiento en los que el sistema está parado, los que llevan a
una parada del sistema y los que permiten pasar el sistema de un estado de defecto a un estado de parada
para volver a poner en marcha el sistema. Estos procesos se ejecutan normalmente a petición del operador
y también cuando se arranca la máquina para efectuar un posicionamiento inicial.
Estos son los significados de los rectágulos de estado de la zona de Paro y puesta en Marcha.
A1 - Parada en el estado inicial (CI)
Es el estado normal de reposo de la máquina. Este estado se corresponde habitualmente con la etapa inicial
de un GRAFCET, se representa por un rectángulo doble. Para un estudio más fácil del automatismo, se
recomienda representar en este estado inicial la máquina.
A2 - Parada solicitada a final de ciclo
Es un estado transitorio en el que la máquina, que hasta ese momento estaba produciendo normalmente,
debe producir sólo hasta acabar el ciclo y pasar a estar parada en el estado inicial. Es un estado que memoriza
una parada solicitada por el operador para que la máquina acabe de ejecutar un ciclo y pase a estado de paro
en estado inicial A1.
A3 - Parada solicitada en un estado determinado
Es un estado que memoriza una parada solicitada por el operador para que la máquina pare en un estado
intermedio del ciclo y pase al estado de parada obtenida en A4.
A4 - Parada obtenida
Es un estado de paro en un estado intermedio del ciclo de la máquina distinto del paro al final del ciclo en el
estado inicial.
Según la máquina, pueden implementarse varios estados diferentes de parada obtenida que se
corresponderán con diferentes estados intermedios del proceso de fabricación, lo cual supone varios estados
de parada solicitada en un estado determinado. Por lo tanto, existirán tantos mandos en el panel de control
como los que necesite el operador para realizar las peticiones.
A5 - Preparación para la puesta en marcha después de defecto
En este estado se deben realizar las acciones necesarias para corregir los fallos o defectos que han supuesto
que se ejecutara una parada de emergencia. Esto lo realizarán los operarios de mantenimiento de la
instalación, el autómata les podrá indicar, si se ha programado para ello, dónde se encuentra
aproximadamente el fallo. Una vez finalizado el proceso el operador elegirá cómo se reinicia la máquina. A
este estado también se le conoce como selección del modo de reinicio por parte del operador. El operador,
mediante mandos del panel de control, decidirá pasar la máquina a control manual, o bien pasarla al estado
A6 para situarla en el estado inicial.
A6 - Puesta del sistema en el estado inicial (P.O.)
La máquina es puesta por el autómata programable de forma automática o manualmente, en el estado inicial
A6. Se realiza el llamado proceso de retorno automático al estado inicial.
A7 - Puesta del sistema (P.O.) en un estado determinado
Desde el estado A7 el operador decide situar la máquina en un estado diferente al inicial, dado que la
producción debe continuar a partir de ese estado y no comenzar desde el principio. Corresponde a casos en
que ha existido previamente un defecto o una parada de emergencia que ha dejado el sistema a medio
producir.
Problemas M340 - 467
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Procedimientos de FUNCIONAMIENTO - F
Estos son los significados de los rectágulos de estado de la zona de Funcionamiento
F1 - Producción normal (Automático)
Representa al GRAFCET que realiza la producción normal de la máquina. Es el estado más importante, va
representado por un rectángulo de paredes más gruesas que los demás. El estado de producción normal
suele ser un funcionamiento automático, por lo cual al GRAFCET asociado se le denomina GRAFCET de
producción normal automática.
F2 - Marcha de preparación
Este estado recoge las acciones necesarias en modo manual o modo automático previas para que una
máquina entre en producción: calentamiento de un producto, selección de una herramienta específica,
preparación de señales neumáticas, hidraúlicas o eléctricas, vaciado de tuberías, limpieza, enfriamiento etc.
F3 - Marcha de cierre
Corresponde a la fase de vaciado y/o limpieza que muchas máquinas deben llevar a cabo antes de parar o de
cambiar algunas características del producto.
F4 - Marchas de verificación sin orden (Mantenimiento)
La máquina está en control manual, el operador por medio de mandos del panel de control, puede mover los
accionadores de la máquina. Estos movimientos pueden ser hechos de forma aleatoria/desorden y deben
ser realizados dentro de las condiciones de seguridad de la máquina. Se suele utilizar para fijar el correcto
funcionamiento de los captadores y accionadores de la máquina.
F5 - Marchas de verificación con orden (Semiautomático)
En este caso la máquina realiza el ciclo completo de funcionamiento en orden pero de forma manual al ritmo
fijado por el operador. Se usa para funciones de mantenimiento y verificación. En este estado la máquina
puede producir o no.
F6 - Marchas de test (Test)
De forma manual, sirve para realizar operaciones de ajuste y mantenimiento preventivo. El autómata activa
los accionadores de la máquina esperando la activación de los captadores para su reglaje o calibración, curvas
de comportamiento de algunos actuadores...
Procedimientos de DEFECTO - D
Estos son los significados de los rectágulos de estado de la zona de Defectos
D1 - Parada de emergencia
A este estado se debe poder llegar desde cualquier estado del automatismo. Se debe llevar la máquina a una
situación segura tanto para el operario como para el sistema, normalmente implica la parada de los
accionadores. Se deberá procurar que el autómata memorice el estado en que se encontraba antes de
ejecutar la parada emergencia para una vez superado el defecto se pueda rearmar la máquina en la situación
correcta.
D2 - Diagnóstico y/o tratamiento de los defectos
El autómata puede guiar al operador para indicarle más o menos dónde se encuentra el defecto. La
reparación del defecto tendrá que ser realizada por el operador o por el personal de mantenimiento. Llevado
468 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
el proceso al estado A5, puede ser implementado un proceso para el arranque del proceso.
D3 - Producción a pesar de los defectos
Corresponde a aquellos casos en que hay que continuar produciendo a pesar de que el sistema no trabaja
correctamente. Casos en los que falla un accionador que puede ser sustituido por un operador o casos como
el de una línea de fabricación en que falla un puesto, pero que al estar duplicado la producción puede
continuar.
Una máquina se puede encontrar en producción o fuera de producción. Si está en producción, puede
encontrarse en un proceso tipo F, tipo A o tipo D. Igualmente si está fuera de producción puede encontrarse
en procesos tipo F, A o D.
La situación de algunos estados dentro o fuera de producción depende de la implementación real. Por
ejemplo el estado F5, Marchas de verificación con orden, puede estar dentro o fuera de producción. En este
estado se realiza un ciclo de la máquina, pero puede ser que no cumpla los requisitos temporales de
producción. Lo mismo sucede con las marchas de test, que pueden producir o no según como se realice el
test.
Procedimientos del control fuera de servicio - PZ
Estudiaremos el caso general de controlar el sistema mediante un Autómata Programable Industrial
Figura 3. Bucles pérdida de energía en estado de marcha de la PC
PZ1 - Puesta del control sin energía
Se corresponde al caso de que el automatismo se queda sin energía estando trabajando la PC en cualquier,
estado. Las condiciones para acceder a este estado son a partir de cualquier estado, voluntariamente o
accidentalmente.
Voluntariamente
 por la maniobra de un seccionador
 por el desactivamiento de un contactor intermedio
No es aconsejable acceder de este modo cuando se está en zona de producción La situación voluntaria solo
debería darse cuando el sistema se encuentra en el estado A1, en PZ2 o en PZ3.
Problemas M340 - 469
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Accidentalmente
 por cortes en la red de alimentación
Si se trata de un microcorte, la duración de la falta de energía puede ser tenida en cuenta en el estado PZ2
En el estado PZ1, es necesario especificar cúales son las acciones que hay que llevar a cabo en la parte
operativa (proceso) por ejemplo
 quitar la energía a la parte operativa si esto no está relacionado con la falta de energía de la PC.
 parada inmediata o terminar los movimientos en curso
 bloquear mecánicamente las cargas suspendidas
PZ2 - Puesta del control en estado de marcha
Se parte de que la Parte de Control y de que la Parte de Supervisión están alimentadas. La conexión de energía
se ha hecho al mismo tiempo, estando alimentadas desde la misma fuente de alimentación o diferentes. De
todas formas, es necesario que la PS esté en servicio antes o a la vez que la PC. El estado del sistema
automático es conocido por medio de los indicadores de señalización o las pantallas de los terminales de
diálogo. Esto es importante para la supervisión permanente del sistema.
Cuando se conectan los autómatas programables, ejecutan un procedimiento interno de autotest:
autodiagnóstico y autocontrol dentro de lo que denominamos ciclo de SCAN
 la concordancia de la configuración real con la configuración en memoria
 los posibles defectos en los módulos de hardware de entradas y salidas
 la presencia o el cambio de la tarjeta de memoria del programa de control
 si hay desbordamiento en el temporizador watch dog
Si el resultado es positivo, permite la activación automática de la PC (modo RUN), la parte de control está
activa. Si el resultado es negativo, según sea la naturaleza de los fallos se queda en el estado PZ2 (modo
STOP) o pasa al estado PZ3.
La condición de Parte de Control activa es condición necesaria y obligatoria para pasar de la zona PZ a la zona
de los modos de marcha y paro. En el momento que se ponga el AP en RUN, el programa de inicialización
impondrá una situación particular de los GRACETs y de las salidas a los preaccionadores.
PZ3 - Puesta del control fuera del estado de marcha
En este estado, la Parte de Control está energizada, pero no está operativa (modo STOP). Se puede
 volver al estado PZ1 por un corte en la energía
 volver al estado PZ2 si se dispone de un medio para suprimir la causa de los fallos.
También se puede acceder a este estado a partir de A1 a petición del operario, o a partir de cualquier estado
si se detectan anomalías en el automatismo (módulos de entrada/salida, memoria RAM, anomalías en la CPU
o desbordamiento de watch dog).
Para simplificar la representación gráfica de la guía GEMMA, los modos PZ1, PZ2 y PZ3 no se incluyen en la
figura 2.
4. Gestión de la energía en la Parte de Control
La gestión de la pérdida de energía, está contemplada en el desarrollo de este documento dentro del
apartado dedicado al método GEMMA: "Estados de la familia PZ", el cual trata de un manera sistemática las
diferentes posibilidades que se pueden presentar al gestionar los modos de marcha y parada.
470 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
En este apartado se va describir los procedimientos que vienen implementados en los equipos M340 para
gestionar la perdida y la conexión a la energía.
Si hay un corte en la alimentación inferior a 10 ms, el programa no lo ve y se ejecuta normalmente.
Al quitar alimentación o un corte superior a 10 ms, todos los datos direccionados y no direccionados y el
buffer de diagnóstico se salvarán en la Memoria Flash Interna automáticamente. Se restauran después de
un arranque en caliente. También sitúa todas las salidas en estado de retorno (estado definido en la
configuración).
Cuando se restablece la alimentación, se realizan diversas acciones y comprobaciones para verificar si está
disponible el reinicio en caliente:
 Restauración del contexto de la aplicación desde la memoria Flash interna,
 Verificación con la tarjeta de memoria (presencia, disponibilidad de la aplicación),
 Comprobación de que el contexto de la aplicación es idéntico al de la tarjeta de memoria.
Si todas las comprobaciones son correctas, se efectuará un reinicio en caliente; de lo contrario, se realizará
un arranque en frío (véanse págs 157 y siguientes de [S03]).
%MW backup:
Los valores de las %Mwi se pueden salvar en la memoria Flash interna de la CPU en modo STOP usando el
bit 0 de %SW96.
Estos valores se restaurarán al arrancar en frio en una descarga de la aplicación, si la opción “Inicialización
de %MW al arranque en frio" no está marcada en la pantalla de configuración del procesador, si no, se
inicializarán.
¡OJO! Es necesario asignar a los datos una dirección topológica si el proceso requiere conservar los valores
actuales de estos datos al transferir la aplicación.
Problemas M340 - 471
Universidad de Oviedo
ISA - J. Alonso - I. Machón
El programa se salva en la tarjeta de memoria:
Automáticamente, después:
De una descarga: si la tarjeta de memoria está presente y no tiene protegida la escritura.
Modificación Online: si la tarjeta de memoria está presente y no tiene protegida la escritura, por
detección del bit sistema %S66 (flanco ascendente)
Manualmente, con el comando PLC -> backup de proyecto -> Guardamos Backup .
Nota: si se quita la tarjeta de memoria cuando el backup está en progreso, el programa sobre la tarjeta de
memoria se pierde.
El programa se copia desde la tarjeta de memoria a la memoria interna:
Automáticamente después de:
Un arranque en caliente.
Un arranque en frio.
Manualmente, con el comando: PLC -> Backup de proyecto -> Restaurar Backup.
Nota: Cuando tu insertas la tarjeta de memoria en el modo run o stop, Se ha de esperar un tiempo de
alimentación para restaurar el proyecto en el PLC
472 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Hay dos modos de arranque de los equipos.
 Arranque en frío.
 Arranque en caliente.
5. Procesamiento en arranque en frio
Causa de un arranque en frío
En la tabla siguiente se describen las diferentes causas de un inicio en frío.
Causas Características del inicio
Carga de una aplicación Inicio en frío forzado en STOP
Restaurar la aplicación de la tarjeta de memoria si difiere de la
que hay en la memoria RAM interna
Inicio en frío forzado en STOP o en RUN, según la definición de
la configuración
Restaurar aplicación de tarjeta de memoria, con comandos de
Unity Pro PLC → Backup del proyecto →....
Inicio en frío forzado en STOP o en RUN, según la definición de
la configuración
Pulsación del botón RESET de la fuente de alimentación Inicio en frío forzado en STOP o en RUN, según la definición de
la configuración
Pulsación del botón RESET de la fuente de alimentación durante
menos de 500 ms tras una desconexión
Inicio en frío forzado en STOP o en RUN, según la definición de
la configuración
Pulsación del botón RESET de la fuente de alimentación tras un
error del procesador, salvo que se trate de un error del
watchdog
Inicio en frío forzado en STOP. El inicio en la modalidad RUN,
según está definido en la configuración, no se tiene en cuenta
Inicialización desde Unity Pro
Forzado del bit de sistema %S0
Inicio en STOP o en RUN (conservando la modalidad operativa
en curso en el momento de la desconexión), inicialización
únicamente de la aplicación
Restablecimiento después de un corte de alimentación con
pérdida del contexto
Inicio en frío forzado en STOP o en RUN, según la definición de
la configuración
Problemas M340 - 473
Universidad de Oviedo
ISA - J. Alonso - I. Machón
En el diagrama siguiente se describe el funcionamiento de un reinicio en frío.
Tabla en la que se presenta las fases de reinicio de la ejecución del programa en el reinicio en frío.
Fase Descripción
1 El inicio se efectúa en RUN o en STOP, según el estado del parámetro Inicio automático en RUN definido en la configuración
o, si se utiliza, en función del estado de la entrada RUN/STOP.
La ejecución del programa se reanuda al comienzo del ciclo.
2 El sistema efectúa lo siguiente:
 Desactiva las tareas, excepto la tarea maestra, hasta que termine el primer ciclo de la tarea maestra.
 Inicializa los datos (bits, imagen de E/S, palabras, etc.) con los valores iniciales definidos en el editor de datos (valor
0 si no se ha definido ningún valor inicial). Para las palabras %MW, los valores pueden recuperarse en un reinicio en
frío si se cumplen estas dos condiciones:
o La opción (véase Unity Pro, Modalidades de funcionamiento) Inicializar %MW en reinicio en frío está
desactivada en la pantalla de configuración del procesador.
o La memoria flash interna tiene una copia de seguridad válida (consulte %SW96 (véase EcoStruxure™ Control
Expert, System Bits and Words, Reference Manual)).
Nota: si el número de palabras %MW supera el tamaño de la copia de seguridad (consulte la estructura de
la memoria de los PLC M340 (véase página 141)) durante la operación de almacenamiento, las palabras
restantes se establecen en 0.
 Inicializa los bloques de funciones elementales a partir de los datos iniciales.
 Inicializa los datos declarados en los DFB: en 0 o en el valor inicial declarado en el tipo de DFB.
 Inicializa los bits y palabras de sistema.
 Posiciona los gráficos en los pasos iniciales.
 Cancela los forzados que haya.
 Inicializa las filas de mensajes y de eventos.
 Envía los parámetros de configuración a todos los módulos de entradas/salidas binarias y los módulos específicos de
la aplicación.
3 En este primer ciclo de reinicio, el sistema efectúa lo siguiente:
 Reinicia la tarea maestra con los bits %S0 (reinicio en frío) y %S13 (primer ciclo en RUN) en la posición 1, la palabra
%SW10 (detección de un reinicio en frío en el primer ciclo de una tarea) se pone a 0.
 Pone a 0 los bits %S0 y %S13, y pone a 1 cada bit de la palabra %SW10, cuando finaliza el primer ciclo de la tarea
maestra.
474 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
 Activa la tarea rápida y los tratamientos de eventos cuando finaliza este primer ciclo de la tarea maestra.
6. Procesamiento en arranque en caliente
Causa de un reinicio en caliente
Se puede provocar un reinicio en caliente mediante un restablecimiento de la alimentación sin perder
contexto. Si no hay ninguna tarjeta de memoria en el PLC durante un reinicio en caliente, se pierde la
aplicación.
La figura siguiente describe el funcionamiento de un reinicio en caliente
Tabla en la que se presenta las fases de reinicio de la ejecución del programa en el reinicio en caliente.
Fase Descripción
1 La ejecución del programa no se reanuda a partir del elemento en el cual ha tenido lugar el corte de corriente. El resto del
programa se descarta durante el arranque en caliente. Cada tarea se reiniciará desde el principio
2 Cuando termina el ciclo de reinicio, el sistema:
 restaura el valor de las variables de la aplicación,
 ajusta el bit %S1 a 1,
 la inicialización de las filas de mensajes y de eventos,
 el envío de parámetros de configuración a todos los módulos de entradas/salidas binarias y funciones específicas,
 la desactivación de la tarea rápida y de los tratamientos de eventos (hasta que termine el primer ciclo de la tarea
maestra).
3 El sistema lleva a cabo un ciclo de reinicio en el que:
 reinicia la tarea maestra desde el principio del ciclo,
 vuelve a poner en estado 0 los bits %S1 cuando termina este primer ciclo de la tarea maestro y
 reactiva la tarea rápida y los tratamientos de eventos cuando finaliza este primer ciclo de la tarea maestra.
Problemas M340 - 475
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Procesamiento por programa de un reinicio en caliente
En caso de reinicio en caliente, si se desea un tratamiento particular respecto a la aplicación, deberá
escribirse el programa correspondiente para que pruebe que %S1 está definido en 1 al inicio del programa
de la tarea maestra.
7. Método de utilización del GEMMA
Con el estudio GEMMA, los modos de Marcha y Paro son previstos desde la concepción de la máquina y son
integradados en su realización. Después de la realización del GRAFCET de Producción Normal (GPN), tenemos
en cuenta la guía GEMMA para seleccionar todos los modos de Marcha y Paro que nos puedan afectar.
Selección de los modos de Marcha y Paro
1. Considerar todos los Estados posibles
Con sus rectángulos de Estados, la guía constituye una lista de chequeo de los distintos modos de
Marcha y Paro en la automatización de un proceso industrial.
Para un proceso dado, es importante examinar si es necesario implementar cada uno de los Estados.
 Si el Estado del GEMMA es utilizado, se especificará su acción en lenguaje literal dentro del
rectángulo de Estado.
 Si el Estado del GEMMA no será utilizado, se especificará poniendo una cruz dentro del
rectángulo.
2. Especificar las transiciones de un estado al otro
Hay dos Estados esenciales definidos al principio de todo estudio de un proceso, el A1 (Parada en el
estado inicial) y el F1 (Producción normal). Partiendo de estos dos estados se busca la evolución hacia
los otros estados.
 Comenzamos con la conexión del proceso desde A1 a F1 preguntándonos,
 ¿ es necesaria una Marcha de preparación ? A1 -> F2
 Cuando paremos el proceso,
 ¿ lo haremos al fin del ciclo ? F1 -> A2 -> A1
 ¿ lo haremos en otra posición intermedia ? F1 -> A3 -> A4
 En caso de fallo
 Una parada de Emergencia por seguridad -> D1
 Con producción a pesar de los fallos -> D3
3. Condiciones de evolución entre los modos de marcha y paro
Una vez que tengamos seleccionados los modos de marcha y paro a utilizar, y especificado que se va
a hacer en el rectángulo de estado; deberemos indicar cúal es la receptividad asociada a la transición
de un estado a otro.
La especificación de estas condiciones de evolución hacen posible el diseño del armario de control y
la posible adición de sensores suplementarios. La transición de un estado a otro se puede hacer de
dos maneras:
 con una receptividad asociada a la transición (debido a un sensor o a un mando del armario
de control)
 sin una receptividad asociada a la transición (se ejecuta siempre al final del proceso del
estado)
476 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Ejemplo de partida de un GEMMA
Problemas M340 - 477
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 13.01 · Manipulador de cubos (Comprobar código)
Un sistema manipulador consta de:
 1 eje horizontal constituido por un cilindro de doble efecto A, controlado por una electroválvula de
potencia biestable servopilotada A+ (Qx_EH_Ext_AM), A- (Qx_EH_Rec_Am) y detectores de posición
a0 (Ix_EH_Rec_a0 ) y a1 (Ix_EH_Ext_a1)
 1 eje vertical constituido por un cilindro de doble efecto B, controlado por una electroválvula de
potencia biestable servopilotada B+ (Qx_EV_Baja_BM), B- (Qx_EV_Sube_Bm) y detectores de
posición b0 (Ix_EV_Rec_b0) y b1 (Ix_EV_Ext_b1)
 1 actuador de giro C, controlado por una electroválvula de potencia monoestable servopilotada C+
(Qx_PinzaGira_CM) y detectores de posición c0 (Ix_Pinza0_c0) y c1 (Ix_Pinza90_c1). Por defecto la
pinza estará en la posición de 0 grados
 1 pinza D, controlada por una electroválvula de potencia monoestable servopilotada D+
(Qx_PinzaAbre_DM) y detector de posición d1 (Ix_PinzaAbta_d1). Por defecto la pinza estará
cerrada.
 1 cilindro de doble efecto E de alimentación de pieza, controlado por una electroválvula de potencia
biestable servopilotada E+ (Qx_VAlimExt_EM), E- (Qx_VAlimReco_Em) y detectores de posición e0
(Ix_Alimenta_e0) y e1 (Ix_Alimenta_e1)
 1 cilindro de doble efecto F de expulsión de pieza, controlado por una electroválvula de potencia
biestable servopilotada F+ (Qx_ VExpExt_FM), F- (Qx_VExpReco_Fm) y detectores de posición f0
(Ix_Expulsa_f0)y f1(Ix_Expulsa_f1)
 1 detector inductivo B2 (Ix_CaraMetalica) que nos indica que la pieza bajo la pinza tiene la cara
metálica paralela a la botonera y orientada hacia atrás
 1 detector capacitivo B1 (Ix_PiezaEnAlimen_DC) que nos indica que hay una pieza baja la pinza
 1 detector capacitivo B3 (Ix_PiezaEnRampa) que nos indica que hay una pieza en la zona de expulsión
a la rampa
 1 Fotocélula B4 (Ix_PiezaEnPetaca_DR), que nos indica que hay piezas en la petaca de alimentación
478 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
 Pulsadores de Rearme (Ix_Rearme NA), Marcha (Ix_Marcha NA) y Paro (Ix_Paro NC)
 Conmutador de Local_Distancia (Ix_LocDis Distancia =1)
 Una luz indicadora de Defecto (Qx_LuzDefecto) y otra de Falta de Material (Qx_LuzFM).
El manipulador nos trasladará las piezas almacenadas de forma arbitraria en la petaca de alimentación, hasta
el final de la rampa de bajada con su cara metálica paralela a la botonera de control y visible desde el lado
contrario a esta.
En la puesta en el estado inicial A6 el sistema estará parado con las luces apagadas.
Cuando se active el pulsador Ix_Rearme, el sistema irá a A1 (parada en el estado inicial - Condiciones
Iniciales):
La pinza se abrirá, se elevará el eje vertical, se recogerá el eje horizontal y luego se cerrará la pinza y
se pondrá en 0 º.
Los cilindros de expulsión y alimentación recogerán sus vástagos.
Funcionamiento en modo local o a distancia
Mediante un conmutador en el manipulador podrá seleccionarse el modo de funcionamiento local o a
distancia (Ix_LocDis, Loc = 1, Dis = 0) en modo local el manipulador se controlará mediante la botonera
situada en él (Marcha, Paro, Rearme), en el modo a distancia, el manipulador será operado desde una
pantalla de explotación en un PC.
Modo Local
En modo local sólo se dispone de los pulsadores de Marcha, Paro y Rearme. Se trabajará por defecto en modo
automático, (conmutador MxP_AutMan a 0).
Modo automático (exclusivamnete)
En el estado A1 (Parada en el estado inicial) se emitirá un mensaje indicado que el sistema está parado en el
estado inicial y que se pulse Marcha para continuar. Una vez pulsado marcha, se pedirá al operario que
rellene la petaca de alimentación de cubos y pulse Marcha para poner en funcionamiento el manipulador
pasando a F1 (Producción normal).
Este trabajará de manera autónoma si no se detecta ninguna anomalía hasta que se accione el pulsador de
paro (Ix_Paro). Cuando el manipulador se pare en un estadio intermedio (A3), se saldrá de este volviendo a
pulsar Marcha, momento en el cual seguirá con el proceso donde estuviese.
En cada ciclo deberá realizarse el siguiente procedimiento:
1. Si se detecta pieza en el alimentador por medio del sensor fotoeléctrico B4 (Ix_PiezaEnPetaca_DR),
dicha pieza debe situarse bajo el brazo manipulador, empleando el cilindro de alimentación E
(Qx_VAlimExt_EM).
Esta acción será confirmada por el sensor capacitivo B1 (Ix_PiezaEnAlimen_DC).
¡OJO! Para poder realizar este paso, la pinza del brazo manipulador debe estar situada en posición
elevada para no obstaculizar el camino de la pieza.
2. Si en este punto el sensor inductivo B2 (Ix_CaraMetalica) detecta la cara metálica, el brazo
manipulador deberá situar la pieza en la posición indicada en el enunciado y llevarla frente a la
rampa de expulsión.
Problemas M340 - 479
Universidad de Oviedo
ISA - J. Alonso - I. Machón
En caso contrario, la pieza deberá girarse el número de veces necesario hasta que dicha cara sea
detectada, pudiendo darse dos casos:
a. Si la detección ha sido realizada, la pieza deberá girarse hasta posicionar la cara metálica en
la posición indicada en el enunciado y llevarla frente a la rampa de expulsión.
b.Si tras el número de giros necesarios la cara metálica no pudo ser detectada, se llevará la pieza
frente a la rampa de expulsión.
¡OJO! Los giros de la pieza deberán realizarse mientras el manipulador mantenga la pieza en
posición elevada y nunca abajo o en posiciones intermedias para no dañar el sensor inductivo.
3. Una vez que la pieza sea detectada con el sensor capacitivo B3 (Ix_PiezaEnRampa) se abrirá la pinza
(Qx_PinzaAbre_DM), se recoge y se procederá a la expulsión de la pieza mediante el cilindro F
(Qx_VExpExt_FM).
4. Si la cara metálica no pudo ser detectada en el paso 2 (error), deberá indicarse que la pieza no
satisface las exigencias del enunciado mediante un mensaje en la Pantalla de Operador.
 Se encenderá intermitente y alternadamente las lámparas de defecto y falta de material
(Qx_LuzDefecto) y (Qx_LuzFM), parando el proceso tras la finalización del ciclo en curso.
 Se retirará la pieza defectuosa y luego se pulsara Rearme para ir a el estado A6 de "Puesta en el
estado inicial".
Modo Distancia
Una vez que el sistema llegue a A1 (Parada en el estado inicial) desde A6 (Puesta en el estado inicial) a través
de un rearme, se puede elegir:
 Ir a F1-Producción Normal (modo automático) seleccionando Mando Automático y pulsando
Marcha.
 Ir a F4-Marcha de Verificación Sin Orden ( modo manual - mantenimiento), seleccionando Mando
Manual, Mantenimiento y pulsando Ack. En este modo, se podrá accionar cada actuador neumático
de forma independiente para comprobar su funcionamiento. Se implementará en la pantalla de
operador del PC. Se saldrá de este modo pulsando Rearme, momento en el cual se irá al estado A6
(Puesta en el estado inicial).
También se podrá acceder a este estado desde F1-Producción Normal si se selecciona modo Mando
Manual - Mantenimiento y Ack.
 Ir a F5 - Marcha de Verificación Con Orden ( modo manual - semiautomático) seleccionando Manual,
Semiautomático y pulsando Ack. Será una producción equivalente a la normal, sólo que habrá que
ir pulsando marcha en determinados momentos para seguir con la producción. Se puede pasar desde
aquí a ir a F4 - Marcha de Verificación Sin Orden (modo manual - mantenimiento), seleccionando
Manual - Mantenimiento y Ack.
Producción normal
En el estado A1 (Parada en el estado inicial) se emitirá un mensaje indicado que el sistema está parado en el
estado inicial y que se pulse Marcha para continuar. Una vez pulsado marcha, se pedirá al operario que
rellene la petaca de alimentación de cubos y pulse Marcha para poner en funcionamiento el manipulador
480 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
pasando a F1 (Producción normal).
Este trabajará de manera autónoma si no se detecta ninguna anomalía hasta que se accione el pulsador de
paro (Ix_Paro). Cuando el manipulador se pare en un estadio intermedio (A3), se saldrá de este volviendo a
pulsar marcha, momento en el cual seguirá con el proceso donde estuviese.
Si se pulsase Paro a Final de Ciclo (MxP_PFC), se terminará el ciclo en curso y se terminará la producción
debiendo pulsar Rearme para ir a A1 (Parada en el estado inicial).
En cada ciclo deberá realizarse el siguiente procedimiento:
1. Si se detecta pieza en el alimentador por medio del sensor fotoeléctrico B4 (Ix_PiezaEnPetaca_DR),
dicha pieza debe situarse bajo el brazo manipulador, empleando el cilindro de alimentación E
(Qx_VAlimExt_EM).
Esta acción será confirmada por el sensor capacitivo B1 (Ix_PiezaEnAlimen_DC).
¡OJO! Para poder realizar este paso, la pinza del brazo manipulador debe estar situada en posición
elevada para no obstaculizar el camino de la pieza.
2. Si en este punto el sensor inductivo B2 (Ix_CaraMetalica) detecta la cara metálica, el brazo
manipulador deberá situar la pieza en la posición indicada en el enunciado y llevarla frente a la
rampa de expulsión.
En caso contrario, la pieza deberá girarse el número de veces necesario hasta que dicha cara sea
detectada, pudiendo darse dos casos:
a. Si la detección ha sido realizada, la pieza deberá girarse hasta posicionar la cara metálica en
la posición indicada en el enunciado y llevarla frente a la rampa de expulsión.
b.Si tras el número de giros necesarios la cara metálica no pudo ser detectada, se llevará la pieza
frente a la rampa de expulsión.
¡OJO! Los giros de la pieza deberán realizarse mientras el manipulador mantenga la pieza en
posición elevada y nunca abajo o en posiciones intermedias para no dañar el sensor inductivo.
3. Una vez que la pieza sea detectada con el sensor capacitivo B3 (Ix_PiezaEnRampa) se abrirá la pinza
(Qx_PinzaAbre_DM), se recoge y se procederá a la expulsión de la pieza mediante el cilindro F
(Qx_VExpExt_FM).
4. Si la cara metálica no pudo ser detectada en el paso 2 (error), deberá indicarse que la pieza no
satisface las exigencias del enunciado mediante un mensaje en la Pantalla de Operador.
 Se encenderá intermitente y alternadamente las lámparas de defecto y falta de material
(Qx_LuzDefecto) y (Qx_LuzFM), parando el proceso tras la finalización del ciclo en curso.
 Se retirará la pieza defectuosa y luego se pulsara Rearme para ir a el estado A6 de "Puesta en el
estado inicial".
Defectos y errores del sistema
Falta de material: Si la fotocélula no detecta cubos en la petaca en el comienzo del ciclo (error) , deberá
indicarse mediante el encendido de la señalización de falta de material de forma intermitente en el estado
D2 parando el proceso. En la Pantalla de Operador saldrá un mensaje indicando que se repongan piezas en
el alimentador y se pulse Marcha. El ciclo de producción continuará normalmente.
Fallo de exceso de material: Si los dos sensores capacitivos se encuentran activados a la vez, indicarán que
hay dos piezas en el entorno de trabajo del manipulador. Deberá paralizarse todo el proceso y señalarse la
Problemas M340 - 481
Universidad de Oviedo
ISA - J. Alonso - I. Machón
anomalía mediante el encendido de la señalización de defecto de forma intermitente en el estado D2
(Diagnóstico y/o tratamiento de los errores). En la Pantalla de Operador saldrá un mensaje indicando que se
retiren las piezas y se pulse Rearme. El sistema evolucionará hacia A6 (Puesta en el estado inicial).
Fallo sensores: si algún sensor falla por cortocircuito o apertura del mismo (defecto), se irá al estado D2
(Diagnóstico y/o tratamiento de los errores). Se indicará con la activación de la señalización de defecto
(Qx_LuzDefecto) y se emitirá un mensaje en la Pantalla de Operador Se saldrá de este estado pulsando
Rearme, momento en el cual se irá al estado A6 (Puesta en el estado inicial).
Fallos críticos: es muy importante evitar estados en la programación que al ejecutarlos pudieran dañar de
forma irreversible alguna parte de la estación, a saber:
 Girar la pinza en la posición baja.
 Extender el eje horizontal con el eje vertical bajado.
 Extender el vástago de alimentación si hay otra pieza bajo la pinza.
 Avanzar el eje horizontal en la posición baja.
Parada de emergencia: En una parada de emergencia que se podrá efectuar en cualquier momento tanto en
control local como a distancia, se parará completamente el movimiento estado D1. Abriremos la pinza y
cuando pulsemos Rearme, iremos al estado inicial A6.
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentación BMX CPS 2000, módulo de entradas 1 y 2 BMX DDI1602, módulos de salidas 3 y 4 BMX
DDO1602
482 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
GEMMA del sistema
Problemas M340 - 483
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Tabla de variables de E/S
Sección "Preliminar"
(* Inicialización de variables de la pantalla de operación -------------------- *)
If %S13 then
Set (MxP_Seta); Set (MxP_Paro); (* Emergencia y Paro NC *)
End_if;
(* Variables utilizadas en CONTROL LOCAL Y A DISTANCIA ------------------------- *)
Mx_Seta := Ix_Seta And MxP_Seta; (* pulsador NC *)
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); (* pulsador NC *)
Mx_AutoManual := (Ix_AutoManual And Ix_LocDis) Or (MxP_AutoManual And Not Ix_LocDis); (* Auto=0 Manual=1*)
Mx_Rearme := (Ix_Rearme And Ix_LocDis) Or (MxP_Rearme And Not Ix_LocDis);
(* variables usadas por legibilidad *)
Mx_Local := Ix_LocDis;
Mx_Distancia := Not Ix_LocDis;
Mx_Automatico := Not Mx_AutoManual; (* Auto=0 Manual=1*)
Mx_Manual := Mx_AutoManual;
Mx_Manten := Not MxP_Mant_SemiA; (* MSVO - Marchas Sin Verificación Orden *)
Mx_SemiAutom := MxP_Mant_SemiA; (* MCVO - Marchas Con Verificación Orden *)
Mx_FlanRearme := RE(Mx_Rearme);
484 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
(* D1 Parada de EMERGENCIA ------------------------------------------------------- *)
If Not Mx_Seta Then
Set(Mx_EnEmergencia); (* Se debería pasar a una condición segura *)
SR_BorraFases ();
SR_BorraMensajes ();
SR_BorraImagenes ();
SR_BorraModos ();
Set (Mx_Imagen_Inicial);
Set (Mx_Mensaje06); (* M06 Corrija los problemas y pulse Rearme *)
Set (Mx_AbrePinzaDM); (* salvo estas 2, el resto de salidas son anuladas *)
SeT (Mx_EV_SubeBm);
End_if;
If Mx_EnEmergencia And Ix_PinzaAbta_d1 And Ix_EV_Rec_b0 And Mx_FlanRearme Then
Reset (Mx_FlanRearme); (* para que no afecte a los siguientes cambios de modo *)
Reset (Mx_AbrePinzaDM);
Reset (Mx_EV_SubeBm);
Set (Mx_A6_PuestaEnEI);
Reset (Mx_EnEmergencia);
Reset (Mx_Mensaje06); (* M06 Corrija los problemas y pulse Rearme *)
End_if;
(* A6 - PUESTA en el ESTADO INICIAL ------------------------------------------- *)
If %S13 then
Set (Mx_A6_PuestaEnEI);
End_if;
If (Mx_A6_PuestaEnEI) Then
Set (Mx_Mensaje01); (* M01 Pulse Rearme para ir a A1 CI *)
Set (Mx_Imagen_Inicial); (* PetacaVacía, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *)
End_if;
(* A6->A1 Llevar el sistema a A1 *)
If Mx_A6_PuestaEnEI And Mx_FlanRearme Then
Reset (Mx_FlanRearme);
Reset (Mx_A6_PuestaEnEI);
Reset (Mx_Mensaje01);
Set (Mx_PonEnCI);
End_If;
If Mx_PonEnCI Then
SR_PonEnCI ();
End_If;
(* A1 - PARADA en el ESTADO INICIAL ------------------------------------------- *)
If Mx_PuestoEnCI Then
Reset (Mx_PuestoEnCI);
Set (Mx_A1_ParadaEnEI);
Reset (Mx_Mensaje01);
Set (Mx_Mensaje02); (* M02 Seleccione [Auto y pulse Ack] o [Manual y (Manten o Semiaut) y pulse Ack] *)
End_if;
(* F2 - Marcha de PREPARACIÓN · Rellenar la petaca --------------------------- *)
If Mx_A1_ParadaEnEI And (Mx_Automatico Or (Mx_Manual And Mx_SemiAutom)) And MxP_Ack Then
Reset (Mx_A1_ParadaEnEI);
Set (Mx_F2_MarchaPreparacion);
Reset (Mx_Mensaje02);
Set (Mx_Mensaje03); (* M03 rellene la petaca y pulse Marcha *)
End_if;
(* Pasar a F5 Modo MANUAL SemiAutomatico MVCO ------------------------------------------ *)
If (Mx_A1_ParadaEnEI And Mx_Manual And Mx_SemiAutom And MxP_Ack) Or
(Mx_F1_ProduccionNormal And Mx_Manual And Mx_SemiAutom And MxP_Ack) Then
Set (Mx_F5_SemiAutom); (* sigue produciendo en F1 automático*)
End_if;
If (Mx_F5_SemiAutom) Then
Mx_Pev := Mx_F5_SemiAutom And Mx_Marcha;
Problemas M340 - 485
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Else Mx_Pev := True;
End_if;
If (Mx_F5_SemiAutom) And Mx_Automatico Then
Reset (Mx_F5_SemiAutom); (* sigue produciendo en F1 automático *)
End_if;
(* Pasar a F4 - Modo MANUAL MANTENIMIENTO MVSO ------------------------------------- *)
If (Mx_A1_ParadaEnEI And Mx_Manual And Mx_Manten And MxP_Ack) Or
(Mx_F1_ProduccionNormal And Mx_Manual And Mx_Manten And MxP_Ack) Or
(Mx_F5_SemiAutom And Mx_Manual And Mx_Manten And MxP_Ack) Then
SR_BorraModos ();
SR_BorraFases ();
Set (Mx_F4_Mantenimiento);
SR_BorraMensajes ();
Set (Mx_Mensaje04); (* M04 En mantenimiento para salir pulse Rearme *)
End_if;
If (Mx_F4_Mantenimiento) And Mx_FlanRearme Then
Reset (Mx_FlanRearme);
Reset (Mx_F4_Mantenimiento);
Set (Mx_A6_PuestaEnEI);
Reset (Mx_Mensaje04); (* M04 En mantenimiento para salir pulse Rearme *)
End_if;
(* F1 - PRODUCCIÓN NORMAL - Automático --------------------------------------- *)
If Mx_F2_MarchaPreparacion And Ix_PiezaEnPetaca_DR Then
SR_BorraImagenes ();
Set (Mx_Imagen0); (* I0 PetacaLlena, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *)
End_if;
If Mx_F2_MarchaPreparacion And Ix_PiezaEnPetaca_DR And RE(Mx_Marcha) Then
Reset (Mx_Mensaje03);
Reset (Mx_F2_MarchaPreparacion);
Set (Mx_F1_ProduccionNormal);
Set (Mx_Fase1);
End_if;
If (Mx_F1_ProduccionNormal) Then
Set (Mx_Mensaje12);(*Para cambiar de modo: Seleccione Auto o [Manual y (Manten o Semiaut) y pulse Ack]*)
(* Fase 1 - alimenta una pieza --------------------------------------- *)
If Mx_Fase1 And Not Ix_PiezaEnPetaca_DR Then
Set (Mx_FM);
Set (Mx_D2_DiagnosticoErrores);
SR_BorraMensajes ();
Set (Mx_Mensaje07); (* M07 Falta Material, reponga y pulse Marcha *)
Reset (Mx_Imagen0);
Set (Mx_Imagen_Inicial); (* PetacaVacía, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *)
Reset (Mx_F1_ProduccionNormal);
Reset (Mx_Fase1);
End_if;
If Mx_Fase1 And Ix_PiezaEnPetaca_DR And Not Mx_EnParo Then
Set (Mx_Mensaje12);(* Cambiar de modo: Seleccione Auto o [Manual y (Manten o Semiaut) y pulse Ack]*)
Set (Mx_VAlimExtiendeEM); (* alimentamos un cubo *)
Reset (Mx_Imagen0);
Set (Mx_Imagen1); (* I1 CuboEnAlim., V.Alim.Extendido, PinzaAbta, Alta, EH recogido *)
Reset (Mx_Fase1);
Set (Mx_Fase1_1);
End_If;
If Mx_Fase1_1 And Ix_PiezaEnAlimen_DC And Ix_Alimenta_e1 And Mx_PEV Then
Reset (Mx_VAlimExtiendeEM);
Set (Mx_VAlimRecogeEm); (* Recoge el vástago de alimentación *)
Reset (Mx_Mensaje10);
486 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Elsif (Mx_Fase1_1 And Ix_PiezaEnAlimen_DC And Ix_Alimenta_e1) and Mx_PEV = 0 Then
Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *)
End_if;
If Mx_Fase1_1 And Ix_PiezaEnAlimen_DC And Ix_Alimenta_e0 Then
Reset (Mx_VAlimRecogeEm);
Reset (Mx_Imagen1);
Set (Mx_Imagen2); (* I2 CuboEnAlim., V.Alim.Recogido, PinzaAbta, Alta, EH recogido *)
Reset (Mx_Fase1_1);
Set (Mx_Fase2);
Mi_Contador := 0; (* inicializa un contador de vueltas a la pieza *)
End_if;
(* Fase 2 - detección de cara metálica ----------------------------- *)
(* NO HAY cara metálica ------ *)
If Mx_Fase2 And Not Ix_CaraMetalica And Ix_EV_Rec_b0 And Not Mx_Fase2_2 And Not Mx_Fase2_3 And
Mi_Contador < 4 And Not (Mx_EnParo) Then
Set (Mx_Fase2_1); (* gira la pieza 4 veces a lo sumo *)
End_if;
If Mx_Fase2_1 And Not Ix_PinzaAbta_d1 Then
Set (Mx_AbrePinzaDM); (* abre pinza *)
Set (Mx_Imagen2); (* I2 CuboEnAlim., V.Alim.Recogido, PinzaAbta, Alta, EH recogido *)
End_if;
If Mx_Fase2_1 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1 Then
Set (Mx_EV_BajaBM); (* baja la pinza *)
Reset (Mx_Imagen2);
Set (Mx_Imagen3); (* I3A CuboEnAlim., V.Alim.Recogido, PinzaAbta, Baja, EH recogido *)
End_if;
If Mx_Fase2_1 And Ix_EV_Ext_b1 And Ix_PinzaAbta_d1 And Mx_PEV Then
Reset (Mx_AbrePinzaDM); (* cierra la pinza *)
Reset (Mx_EV_BajaBM);
Set (Mx_Fase2_2);
Reset (Mx_Fase2_1);
Reset (Mx_Mensaje10);
Elsif (Mx_Fase2_1 And Ix_EV_Ext_b1 And Ix_PinzaAbta_d1) and Mx_PEV = 0 Then
Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *)
End_if;
TON_2_2_500ms (IN := Mx_Fase2_2, PT := t#500ms);
If TON_2_2_500ms.Q And Mx_Fase2_2 And Not Mx_EnParo And Mx_PEV Then
Set (Mx_EV_SubeBm); (* sube la pinza *)
Set (Mx_Imagen4); (* I4 CuboEnAlim., V.Alim.Recogido, PinzaCda, Alta, EH recogido *)
Reset (Mx_Imagen3);
Reset (Mx_Mensaje10);
Elsif (TON_2_2_500ms.Q And Mx_Fase2_2 And Not Mx_EnParo) and Mx_PEV = 0 Then
Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *)
End_If;
If Mx_Fase2_2 And Ix_EV_Rec_b0 Then
Set (Mx_GiraPinzaCM); (* gira la pinza arriba*)
Set (Mx_Imagen5); (* I5 GiraCuboEnPinza, V.Alim.Recogido, PinzaCda, Alta, EH recogido*)
Reset (Mx_Imagen4);
End_if;
If Mx_Fase2_2 And Ix_EV_Rec_b0 and Ix_Pinza90_c1 Then
Reset (Mx_EV_SubeBm);
Set (Mx_Imagen4); (* I4 CuboEnAlim., V.Alim.Recogido, PinzaCda, Alta, EH recogido *)
Reset (Mx_Imagen5);
Set (Mx_Fase2_3);
Reset (Mx_Fase2_2);
End_if;
If Mx_Fase2_3 And Not Ix_EV_Ext_b1 And Not (Mx_EnParo) And Mx_PEV Then
Set (Mx_EV_BajaBM); (* baja la pinza *)
Set (Mx_Imagen3); (* I3 CuboEnAlim., V.Alim.Recogido, PinzaCda, Baja, EH recogido *)
Reset (Mx_Imagen4);
Reset (Mx_Mensaje10);
Elsif (Mx_Fase2_3 And Ix_PinzaAbta_d1 ) and Mx_PEV = 0 Then
Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *)
Problemas M340 - 487
Universidad de Oviedo
ISA - J. Alonso - I. Machón
End_If;
If Mx_Fase2_3 And Ix_EV_Ext_b1 Then
Set (Mx_AbrePinzaDM); (* abre pinza *)
Reset (Mx_EV_BajaBM);
End_if;
If Mx_Fase2_3 And Ix_PinzaAbta_d1 And Mx_PEV Then
Set (Mx_EV_SubeBm); (* sube la pinza *)
Set (Mx_Imagen2); (* I2 CuboEnAlim., V.Alim.Recogido, PinzaAbta, Alta, EH recogido *)
Reset (Mx_Imagen3);
Reset (Mx_Mensaje10);
Elsif (Mx_Fase2_3 And Ix_PinzaAbta_d1 ) and Mx_PEV = 0 Then
Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *)
End_if;
If Mx_Fase2_3 And Ix_EV_Rec_b0 Then
Reset (Mx_EV_SubeBm);
Mi_Contador := Mi_Contador + 1; (* incrementa contador *)
Reset (Mx_Fase2_3);
End_if;
(* HAY cara metálica ------ *)
If Mx_Fase2 And Ix_Alimenta_e0 And Ix_CaraMetalica And Not Mx_Fase2_2 And Not Mx_Fase2_3 Then
Set (Mx_Fase3); (* está la cara metálica o la encontró después de girarla *)
Reset (Mx_Fase2);
End_if;
(* GIRÓ y no encontró la cara metálica en 3 giros ---------------------------------- *)
If Mx_Fase2 And Ix_Alimenta_e0 And Not Ix_CaraMetalica And Not Mx_Fase2_2 And Not Mx_Fase2_3 And
Mi_Contador = 4 Then
Set (Mx_NoCaraMetal); (* error *)
SR_BorraFases ();
SR_BorraModos ();
SR_BorraMensajes ();
Set (Mx_D2_DiagnosticoErrores);
End_if;
(* Fase 3 - abre la pinza y la baja -------------------------------------------------- *)
If Mx_Fase3 And Not (Mx_EnParo) And Mx_PEV Then
Set (Mx_AbrePinzaDM); (* abre pinza *)
Set (Mx_Imagen2); (* I2 CuboEnAlim, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *)
Reset (Mx_Mensaje10);
Elsif (Mx_Fase2_3) and Mx_PEV = 0 Then
Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *)
End_if;
If Mx_Fase3 And Not (Mx_EnParo) And Ix_PinzaAbta_d1 And Ix_EV_Rec_b0 Then
Set (Mx_EV_BajaBM); (* baja pinza, B biestable *)
End_If;
If Mx_Fase3 And Not (Mx_EnParo) And Ix_PinzaAbta_d1 And Ix_EV_Ext_b1 Then
Reset (Mx_EV_BajaBM);
Reset (Mx_Imagen2); (* I2 CuboEnAlim, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *)
Set (Mx_Imagen3); (* I3A CuboEnAlim, V.AlimExtend, V.ExpRecog, PinzaAbta, EV.Extend, EH.Recog *)
Reset (Mx_Fase3);
Set (Mx_Fase4);
End_if;
(* FASE 4 - cierra la pinza, coje la pieza y la sube ------------------------------------ *)
If Mx_Fase4 And Not (Mx_EnParo) Then
Reset (Mx_AbrePinzaDM); (* cierra pinza y temporiza 500ms *)
Set (Mx_Imagen3); (* I3 CuboEnAlim., V.Alim.Recogido, PinzaCda, Baja, EH recogido *)
End_if;
TON_4_500ms (IN := Mx_Fase4, PT := t#500ms);
488 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
If Mx_Fase4 And Ix_EV_Ext_b1 And TON_4_500ms.Q Then (* Pinza cerrada, válvula monoestable *)
Set (Mx_EV_SubeBm); (* sube pinza *)
Set (Mx_Imagen4); (* I4 CuboEnPinza, V.Alim.Recogido, PinzaCda, Alta, EH recogido *)
Reset (Mx_Imagen3);
End_if;
If Mx_Fase4 And Ix_EV_Rec_b0 And TON_4_500ms.Q And Mx_PEV Then
Reset (Mx_EV_SubeBm);
Reset (Mx_Fase4);
Set (Mx_Fase5);
Reset (Mx_Mensaje10);
Elsif (Mx_Fase4 And Ix_EV_Rec_b0 And TON_4_500ms.Q) and Mx_PEV = 0 Then
Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *)
End_if;
(* FASE 5 - avanza pinza, la baja y la abre depositando la pieza ----------------- *)
If Mx_Fase5 And Not (Mx_EnParo) Then
If Ix_EH_Rec_a0 And Ix_EV_Rec_b0 Then
Set (Mx_EH_ExtiendeAM); (* avanza pinza *)
End_if;
If Ix_EH_Ext_a1 Then
Reset (Mx_EH_ExtiendeAM);
Set (Mx_Imagen6); (* I6 CuboEnPinza, V.AlimRecogido, PinzaCda, Alta, EH extendido *)
Reset (Mx_Imagen4);
End_if;
If Ix_EH_Ext_a1 And Ix_EV_Rec_b0 And Mx_PEV Then
Set (Mx_EV_BajaBM); (* baja pinza *)
Reset (Mx_Mensaje10);
Elsif (Ix_EH_Ext_a1 And Ix_EV_Rec_b0) and Mx_PEV = 0 Then
Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *)
End_if;
If Ix_EH_Ext_a1 And Ix_EV_Ext_b1 And Mx_PEV Then
Reset (Mx_EV_BajaBM);
Set (Mx_AbrePinzaDM); (* abre pinza válvula monoestable y suelta pieza *)
Set (Mx_Imagen7); (* I7A Cubo en pinza, V.Alim.Recogido, PinzaAbta, Baja, EH extendido *)
Reset (Mx_Mensaje10);
Elsif (Ix_EH_Ext_a1 And Ix_EV_Ext_b1) and Mx_PEV = 0 Then
Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *)
End_if;
If Ix_EH_Ext_a1 And Ix_EV_Ext_b1 And Ix_PinzaAbta_d1 Then
Reset (Mx_Fase5);
Set (Mx_Fase6);
End_if;
End_if;
(* Fase 6 - sube pinza abierta, retrocede la pinza y expulsa la pieza, ----------------- *)
If Mx_Fase6 And Not (Mx_EnParo) Then
If Ix_EH_Ext_a1 And Ix_EV_Ext_b1 And Ix_PinzaAbta_d1 Then
Set (Mx_EV_SubeBm); (* sube pinza *)
End_if;
If Ix_EH_Ext_a1 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1 Then
Reset (Mx_EV_SubeBm);
Set (Mx_Imagen8); (* I8 CuboEnExpul, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Extend *)
Reset (Mx_Imagen7);
Set (Mx_EH_RecogeAm); (* retrocede pinza *)
End_If;
If Ix_EH_Rec_a0 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1 And Mx_PEV Then
Reset (Mx_EH_RecogeAm);
Set (Mx_Imagen9); (* I9 CuboEnExpul, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *)
Reset (Mx_Imagen8);
Set (Mx_VExpExtiendeFM); (* expulsa pieza *)
Set (Mx_Imagen10); (*I10 PetacaLlena, V.AlimRecog, V.ExpExtend, PinzaAbta, EV.Recog, EH.Recog *)
Reset (Mx_Imagen9);
Reset (Mx_Mensaje10);
Problemas M340 - 489
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Elsif (Ix_EH_Rec_a0 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1) and Mx_PEV = 0 Then
Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *)
End_if;
If Ix_EH_Rec_a0 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1 And Ix_Expulsa_f1 Then
Reset (Mx_VExpExtiendeFM);
Set (Mx_VExpRecogeFm); (* recoge vástago de expulsión *)
End_if;
If Ix_EH_Rec_a0 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1 And Ix_Expulsa_f0 And Mx_PEV Then
Reset (Mx_VExpRecogeFm);
Reset (Mx_Imagen10);
Set (Mx_Imagen0); (* I0 PetacaLlena, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *)
Reset (Mx_Mensaje10);
Elsif (Ix_EH_Rec_a0 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1 And Ix_Expulsa_f0) and Mx_PEV = 0 Then
Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *)
End_if;
If Ix_EH_Rec_a0 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1 And Ix_Expulsa_f0 And Not Mx_ParoEnFC Then
Reset (Mx_Fase6);
Set (Mx_Fase1); (* está en CI, vuelve a empezar un proceso de forma continua *)
End_if;
If Ix_EH_Rec_a0 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1 And Ix_Expulsa_f0 And Mx_ParoEnFC Then
Reset (Mx_Fase6);
Set(Mx_Fase7);
End_if;
End_if;
(* FASE 7 - espera Rearme para ir a A1 Parada en el Estado Inicial ----------------- *)
If Mx_Fase7 And Mx_ParoEnFC Then
Set (Mx_Mensaje01); (* M01 Pulse Rearme para ir a A1 CI *)
End_if;
If Mx_Fase7 And Mx_Rearme Then
Reset (Mx_ParoEnFC);
Reset (Mx_Mensaje01); (* M01 Pulse Rearme para ir a A1 CI *)
Reset (Mx_Mensaje11); (* M11 Sistema parará al Final del Ciclo*)
Reset (Mx_Fase7);
Set (Mx_A1_ParadaEnEI); (* A1 PARADA en el ESTADO INICIAL *)
End_if;
End_if;
(* F5 - Modo MANUAL SemiAutomatico MVCO ------------------------------------------ *)
If Mx_F1_ProduccionNormal And Mx_Manual And Mx_SemiAutom And MxP_Ack Then
Set (Mx_F5_SemiAutom); (* sigue produciendo en F1 automático*)
End_if;
If (Mx_F5_SemiAutom) Then
Mx_Pev := Mx_F5_SemiAutom And Mx_Marcha;
ELSE Mx_Pev := True;
End_if;
If (Mx_F5_SemiAutom) And Mx_Automatico Then
Reset (Mx_F5_SemiAutom); (* sigue produciendo en F1 automático *)
End_if;
(* A3 - PARADA pedida en un estado intermedio ------------------------------------ *)
If Not Mx_Paro Then
Set(Mx_EnParo); (* programado en las distintas fases *)
490 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *)
End_if;
If Ix_Marcha Then
Reset (Mx_EnParo);
Reset (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *)
End_if;
(* A2 - PARADA pedida a final del ciclo ------------------------------------------ *)
If MxP_ParoFC Then
Set (Mx_ParoEnFC);
Set (Mx_Mensaje11); (* M11 Sistema parará al Final del Ciclo*)
(* saldremos, cuando haya acabado, pulsando Rearme en la fase 6 de F1 Producción Normal *)
End_if;
Sección "F4_Mantenimiento"
(* F4 - Modo MANUAL MANTENIMIENTO MVSO ------------------------------------- *)
If (Mx_F4_Mantenimiento) Then
If MxP_EH_Ext_Man Then
Reset (Mx_EH_RecogeAm); (* A- biestable *)
Set (Mx_EH_ExtiendeAM); (* A+ biestable *)
End_if;
If MxP_EH_Reco_Man Then
Reset (Mx_EH_ExtiendeAM);
Set (Mx_EH_RecogeAm);
End_if;
If MxP_EV_Bajar_Man Then
Reset (Mx_EV_SubeBm); (* B- biestable*)
Set (Mx_EV_BajaBM); (* B+ biestable *)
End_if;
If MxP_EV_Subir_Man Then
Reset (Mx_EV_BajaBM);
Set (Mx_EV_SubeBm);
End_if;
If MxP_PinzaGirar_Man Then
Set (Mx_GiraPinzaCM); (* C+ gira a 90grados monoestable *)
ELSE
Reset (Mx_GiraPinzaCM);
End_if;
If MxP_PinzaAbrir_Man Then
Set (Mx_AbrePinzaDM); (* D+ monoestable *)
ELSE
Reset (Mx_AbrePinzaDM);
End_if;
If MxP_VAlimExt_Man Then
Reset (Mx_VAlimRecogeEm); (* E- biestable*)
Set (Mx_VAlimExtiendeEM); (* E+ biestable *)
End_if;
If MxP_VAlimReco_Man Then
Reset (Mx_VAlimExtiendeEM);
Set (Mx_VAlimRecogeEm);
End_if;
If MxP_VExpExt_Man Then
Reset (Mx_VExpRecogeFm); (* F- biestable*)
Set (Mx_VExpExtiendeFM); (* F+ biestable *)
End_if;
If MxP_VExpReco_Man Then
Reset (Mx_VExpExtiendeFM);
Set (Mx_VExpRecogeFm);
End_if;
End_if;
Problemas M340 - 491
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Sección "Salidas"
(* Con condiciónes de seguridad CS *)
Qx_EH_Ext_AM := Mx_EH_ExtiendeAM And Ix_EV_Rec_b0 And Not (Mx_EnEmergencia); (* CS *)
Qx_EH_Rec_Am := Mx_EH_RecogeAm And Not (Mx_EnEmergencia);
Qx_EV_Baja_BM := Mx_EV_BajaBM And Not (Mx_EnEmergencia);
Qx_EV_Sube_Bm := Mx_EV_SubeBm;
Qx_PinzaGira_CM := Mx_GiraPinzaCM And Ix_EV_Rec_b0 And Not (Mx_EnEmergencia); (* CS *)
Qx_PinzaAbre_DM := Mx_AbrePinzaDM;
Qx_VAlimExt_EM := Mx_VAlimExtiendeEM And Not Ix_PiezaEnAlimen_DC And Not (Mx_EnEmergencia); (* CS *)
Qx_VAlimReco_Em := Mx_VAlimRecogeEm And Not (Mx_EnEmergencia);
Qx_VExpExt_FM := Mx_VExpExtiendeFM And Not Ix_EV_Ext_b1 And Not (Mx_EnEmergencia); (* CS *)
Qx_VExpReco_Fm := Mx_VExpRecogeFm And Not (Mx_EnEmergencia);
Qx_LuzDefecto := (Mx_NoCaraMetal And %S6) Or (Mx_EnEmergencia) OR (Mx_FalloSensores);
Qx_LuzFM := (Mx_FM And %S6) Or (Mx_NoCaraMetal And Not %S6);
Sección "D2_DiagnosticoErrores"
(* D2 Diagnostico y/o tratamiento de los errores----------------------------------- *)
(* No encontró la cara metálica -------------------- *)
If (Mx_D2_DiagnosticoErrores) And Mx_NoCaraMetal Then
Set (Mx_Mensaje05); (* M05 Pieza sin cara metálica, retire la pieza y pulse Rearme *)
End_if;
If (Mx_D2_DiagnosticoErrores) And Mx_NoCaraMetal And Mx_FlanRearme Then
Reset (Mx_FlanRearme);
Reset (Mx_D2_DiagnosticoErrores);
Set (Mx_A6_PuestaEnEI);
Reset (Mx_NoCaraMetal);
Reset (Mx_Mensaje05);
End_if;
(* FALTA MATERIAL -------------------------------------------------------*)
If (Mx_D2_DiagnosticoErrores) And Mx_FM And Ix_PiezaEnPetaca_DR And Not (Mx_Marcha)Then
Reset (Mx_Imagen_Inicial);
Set (Mx_Imagen0); (* I0 CubosEnPetaca, PinzaAbta, Alta, EH recogido *)
End_if;
If (Mx_D2_DiagnosticoErrores) And Mx_FM And Ix_PiezaEnPetaca_DR And (Mx_Marcha)Then
Reset (Mx_FM);
Reset (Mx_D2_DiagnosticoErrores);
Set (Mx_F1_ProduccionNormal);
Set (Mx_Fase1);
Reset (Mx_Imagen_Inicial);
Set (Mx_Imagen0); (* I0 CubosEnPetaca, PinzaAbta, Alta, EH recogido *)
End_if;
(* FALLO EXCESO MATERIAL ------------------------------------------------*)
If Ix_PiezaEnAlimen_DC And Ix_PiezaEnRampa Then
SR_BorraFases ();
Set (Mx_ExcesoMaterial);
Set (Mx_Mensaje08); (* M08 Exceso de material, retire las piezas y pulse Rearme *)
End_if;
If (Mx_ExcesoMaterial) And Mx_Rearme Then
Reset (Mx_ExcesoMaterial);
Reset (Mx_Mensaje08); (* M08 Exceso de material, retire las piezas y pulse Rearme *)
492 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Set (Mx_A6_PuestaEnEI);
End_if;
(* FALLO de SENSORES cortocircuitados --------------------------------*)
If (Ix_EH_Rec_a0 And Ix_EH_Ext_a1) Or (Ix_EV_Rec_b0 And Ix_EV_Ext_b1) Or
(Ix_Pinza0_c0 And Ix_Pinza90_c1) Or (Ix_Alimenta_e0 And Ix_Alimenta_e1) Or
(Ix_Expulsa_f0 And Ix_Expulsa_f1 )Then
SR_BorraFases ();
Set (Mx_FalloSensores);
Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *)
End_If;
(* FALLO de SENSORES abiertos --------------------------------*)
TON_4_500ms (IN := Qx_EH_Ext_AM,PT := t#03s);
If TON_4_500ms.Q And Not Ix_EH_Ext_a1 Then
SR_BorraFases ();
Set (Mx_FalloSensores);
Set (Mx_mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *)
End_if;
TON_4_500ms (IN := Qx_EH_Rec_Am,PT := t#03s);
If TON_4_500ms.Q And Not Ix_EH_Rec_a0 Then
SR_BorraFases ();
Set (Mx_FalloSensores);
Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *)
End_if;
TON_4_500ms (IN := Qx_EV_Sube_Bm,PT := t#03s);
If TON_4_500ms.Q And Not Ix_EV_Rec_b0 Then
SR_BorraFases ();
Set (Mx_FalloSensores);
Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *)
End_if;
TON_4_500ms (IN := Qx_EV_Baja_BM,PT := t#03s);
If TON_4_500ms.Q And Not Ix_EV_Ext_b1 Then
SR_BorraFases ();
Set (Mx_FalloSensores);
Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *)
End_if;
TON_4_500ms (IN := Qx_VAlimExt_EM,PT := t#03s);
If TON_4_500ms.Q And Not Ix_Alimenta_e1 Then
SR_BorraFases ();
Set (Mx_FalloSensores);
Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *)
End_if;
TON_4_500ms (IN := Qx_VAlimReco_Em,PT := t#03s);
If TON_4_500ms.Q And Not Ix_Alimenta_e0 Then
SR_BorraFases ();
Set (Mx_FalloSensores);
Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *)
End_if;
TON_4_500ms (IN := Qx_VExpExt_FM,PT := t#03s);
If TON_4_500ms.Q And Not Ix_Expulsa_f1 Then
SR_BorraFases ();
Set (Mx_FalloSensores);
Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *)
End_if;
TON_4_500ms (IN := Qx_VExpReco_Fm,PT := t#03s);
If TON_4_500ms.Q And Not Ix_Expulsa_f0 Then
SR_BorraFases ();
Problemas M340 - 493
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Set (Mx_FalloSensores);
Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *)
End_if;
TON_4_500ms (IN := Qx_PinzaAbre_DM,PT := t#03s);
If TON_4_500ms.Q And Not Ix_PinzaAbta_d1 Then
SR_BorraFases ();
Set (Mx_FalloSensores);
Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *)
End_if;
TON_4_500ms (IN := Qx_PinzaGira_CM,PT := t#03s);
If TON_4_500ms.Q And Not Ix_Pinza90_c1 Then
SR_BorraFases ();
Set (Mx_FalloSensores);
Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *)
End_if;
If Mx_FalloSensores And Mx_FlanRearme Then
Reset (Mx_FlanRearme);
Reset (Mx_FalloSensores);
Reset (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *)
Set (Mx_A6_PuestaEnEI);
End_if;
Subrutina "SR_PonEnCI"
(* CI -> Pinza abierta a 0 grados, EV subida la pinza, EH recogido, V Alim recogido, V Expul Recogido *)
Set (Mx_AbrePinzaDM); (* D+ abrir pinza - monoestable *)
TON_2_2_500ms (IN := Mx_AbrePinzaDM, PT := t#500ms);
If Ix_PinzaAbta_d1 and TON_2_2_500ms.Q Then
Reset (Mx_EV_BajaBM);
Set (Mx_EV_SubeBm); (* B- recoger vástago eje vertical - biestable *)
Reset (Mx_EH_ExtiendeAM);
Set (Mx_EH_RecogeAm); (* A- recoger cursor eje horizontal - biestable *)
Reset (Mx_GiraPinzaCM); (* C+ gira pinza a o grados - monoestable *)
Reset (Mx_VAlimExtiendeEM);
Set (Mx_VAlimRecogeEm); (* E- recoger vastago alimentación - biestable *)
Reset (Mx_VExpExtiendeFM);
Set (Mx_VExpRecogeFm); (* F- recoger vástago cilindro expulsión - biestable *)
End_if;
If Ix_EV_Rec_b0 and Ix_EH_Rec_a0 and Ix_Pinza0_c0 and Ix_Alimenta_e0 and Ix_PinzaAbta_d1 and Ix_Expulsa_f0
then
Reset (Mx_EV_SubeBm); (* B- recoger vástago eje vertical - biestable *)
Reset (Mx_EH_RecogeAm); (* A- recoger cursor eje horizontal - biestable *)
Reset (Mx_VAlimRecogeEm); (* E- recoger vastago alimentación - biestable *)
Reset (Mx_VExpRecogeFm); (* F- recoger vástago cilindro expulsión - biestable *)
Reset (Mx_PonEnCI);
Set (Mx_PuestoEnCI);
End_if;
Subrutina "SR_BorraFases"
Reset (Mx_Fase1);
Reset (Mx_Fase2);
Reset (Mx_Fase2_1);
Reset (Mx_Fase2_2);
Reset (Mx_Fase2_3);
Reset (Mx_Fase3);
Reset (Mx_Fase4);
Reset (Mx_Fase5);
Reset (Mx_Fase6);
Reset (Mx_Fase7);
494 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Subrutina "SR_BorraMensajes"
Reset (Mx_Mensaje01); (* M01 Pulse Rearme para ir a A1 CI *)
Reset (Mx_Mensaje02); (* M02 Seleccione [Auto y pulse Ack] o [Manual y (Manten o Semiaut) y pulse Ack] *)
Reset (Mx_Mensaje03); (* M03 rellene la petaca y pulse Marcha *)
Reset (Mx_Mensaje04); (* M04 En mantenimiento para salir pulse Rearme *)
Reset (Mx_Mensaje05); (* M05 Pieza sin cara metálica, retire la pieza y pulse Rearme *)
Reset (Mx_Mensaje06); (* M06 Corrija los problemas y pulse Rearme *)
Reset (Mx_Mensaje07); (* M07 Falta Material, reponga y pulse Marcha *)
Reset (Mx_Mensaje08); (* M08 Exceso de material, retire las piezas y pulse Rearme *)
Reset (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *)
Reset (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *)
Reset (Mx_Mensaje11); (* M11 Sistema parará al Final del Ciclo*)
Subrutina "SR_BorraModos"
Reset (Mx_A6_PuestaEnEI);
Reset (Mx_A1_ParadaEnEI);
Reset (Mx_F2_MarchaPreparacion);
Reset (Mx_F1_ProduccionNormal);
Reset (Mx_F5_SemiAutom);
Reset (Mx_F4_Mantenimiento);
Reset (Mx_D2_DiagnosticoErrores);
Subrutina "SR_BorraImagenes"
Reset (Mx_Imagen_Inicial); (* IIni PetacaVacía, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *)
Reset (Mx_Imagen0); (* I0 PetacaLlena, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *)
Reset (Mx_Imagen1); (* I1 CuboEnAlim, V.AlimExtend, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *)
Reset (Mx_Imagen2); (* I2 CuboEnAlim, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *)
Reset (Mx_Imagen3); (* I3 CuboEnAlim, V.AlimExtend, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *)
Reset (Mx_Imagen4); (* I4 CuboEnPinza, V.AlimRecog, V.ExpRecog, PinzaCda, EV.Recog, EH.Recog *)
Reset (Mx_Imagen5); (* I5 CuboEnPinzaGiro, V.AlimRecog, V.ExpRecog, PinzaCda, EV.Recog, EH.Recog *)
Reset (Mx_Imagen6); (* I6 CuboEnPinza, V.AlimRecog, V.ExpRecog, PinzaCda, EV.Recog, EH.Extend *)
Reset (Mx_Imagen7); (* I7 CuboEnExpul, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Extend, EH.Extend *)
Reset (Mx_Imagen8); (* I8 CuboEnExpul, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Extend *)
Reset (Mx_Imagen9); (* I9 CuboEnExpul, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *)
Reset (Mx_Imagen10); (* I10 PetacaLlena, V.AlimRecog, V.ExpExtend, PinzaAbta, EV.Recog, EH.Recog *)
Problemas M340 - 495
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de operador
© Dibujos de la pantalla hechos por Angel Sancho y Sonia Madero
496 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 497
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problema 13.02 · Manipulador de fichas (Resolver)
Un sistema manipulador consta de:
 un sistema de petaca con fichas opacas y transparentes.
 1 cilindro de doble efecto A de alimentación de la pieza desde la petaca, controlado por una
electroválvula de potencia monoestable servopilotada (Qx_SacaPieza_Amas) y detectores de
posición (Ix_AlimRecogido_a0) y (Ix_AlimExtendido_a1)
 1 eje vertical constituido por un cilindro sin vástago de doble efecto F, controlado por una
electroválvula de potencia monoestable servopilotada (Qx_SubirBrazo_Fmas) y detectores de
posición (Ix_BrazoAbajo_f0) y (Ix_BrazoArriba_f1).
 1 cilindro de doble efecto E que nos permite girar el brazo que lleva la pinza y su actuador de giro,
controlado por una electroválvula de potencia monoestable servopilotada (Qx_GiraBrazo_Emas) y
detectores de posición (Ix_GiroBrazo0_e0) y (Ix_GiroBrazo90_e1).
 1 eje constituido por un cilindro de doble efecto D, controlado por una electroválvula de potencia
monoestable servopilotada (Qx_ExtenderPinza_Dmas) y detectores de posición
(Ix_PinzaRecogida_d0) y (Ix_PinzaExtendida_d1) que nos permite avanzar o recoger la pinza.
 1 actuador de giro de la pinza C, controlado por una electroválvula de potencia monoestable
servopilotada sin detectores de posición (Qx_GiraPinza_Cmas).
 1 pinza B, controlada por una electroválvula de potencia monoestable servopilotada sin detector
(Qx_AbrePinza_Bmas), en posición inicial cerrada.
 1 detector capacitivo NPN B1 (Ix_HayPieza) que nos indica que hay piezas en la petaca de
alimentación.
 1 barrera fotoeléctrica PNP B2 (Ix_PiezaOscura) que nos indica que hay una pieza transparente u
opaca
 Pulsadores de Marcha S1 (Ix_Marcha NA), Paro S2 (Ix_Paro NC) y Rearme S3 (Ix_Rearme NA).
 Selector de Local/Distancia S4 (Ix_LocDis Distancia =1)
 Una luz roja H1 (Qx_LuzRoja) y otra verde H2 (Qx_LuzVerde).
498 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
El funcionamiento básico del manipulador consiste en, coger una pieza del alimentador de petaca, y meterla
en el cajón 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 sucesivo claras) las
meta en sentido paralelo al bastidor
En la puesta en el estado inicial A6 el sistema estará parado con las luces apagadas.
Cuando se active el pulsador Ix_Rearme, el sistema irá a A1 (parada en el estado inicial - Condiciones
Iniciales):
Se abrirá la pinza, se recogerá el brazo que la porta, y se pondrá en la posición de partida (0). El
brazo que porta la pinza se situará en la parte inferior del eje vertical y el alimentador de pieza
recogerá su vástago. En este proceso, estará apagada la luz roja y oscilante a 2 Hz la verde. Cuando
estemos en CI, se activará la luz verde permanentemente para indicarnos que está preparado para
funcionar.
Funcionamiento en modo local o a distancia
Mediante un conmutador en el manipulador podrá seleccionarse el modo de funcionamiento local o a
distancia (Ix_LocDis) en modo local el manipulador se controlará mediante la botonera situada en él (Marcha,
Paro, Rearme), en el modo a distancia, el manipulador será operado desde una pantalla de explotación en
un PC.
Modo Local
En modo local sólo se dispone de los pulsadores de Marcha, Paro y Rearme. Se trabajará por defecto en modo
automático, (conmutador MxP_AutMan a 0).
Modo automático (exclusivamnete)
En el estado A1 (Parada en el estado inicial) se emitirá un mensaje indicado que el sistema está parado en el
estado inicial y que se pulse Marcha para continuar. Una vez pulsado marcha, se pedirá al operario que
rellene la petaca de alimentación de fichas y pulse Marcha para poner en funcionamiento el manipulador
pasando a F1 (Producción normal).
Este trabajará de manera autónoma si no se detecta ninguna anomalía hasta que se accione el pulsador de
paro (Ix_Paro). Cuando el manipulador se pare en un estadio intermedio (A3), se saldrá de este volviendo a
pulsar marcha, momento en el cual seguirá con el proceso donde estuviese.
En cada ciclo deberá realizarse el siguiente procedimiento:
1. Si se detecta pieza en el alimentador por medio del sensor
capacitivo B1 (Ix_HayPieza), se dará la orden de avanzar el
vástago de dicho actuador, para dejar la pieza bajo la barrera
fotoeléctrica B2 (Ix_PiezaOscura). Este sensor nos informará si
es opaca o clara.
2. A continuación se elevará el brazo por medio del cilindro sin vástago -eje vertical-
(Qx_SubirBrazo_Fmas) , y una vez alcanzada la parte superior (Ix_BrazoArriba_f1), se efectúa un giro
de 90 (Qx_GiraBrazo_Emas) para que la pinza quede en la dirección de la pieza a recoger
(Ix_GiroBrazo90_e1).
Problemas M340 - 499
Universidad de Oviedo
ISA - J. Alonso - I. Machón
3. Se abrirá la pinza (Qx_AbrePinza_Bmas) y seguidamente (una
vez abierta) se extenderá el brazo para proceder a coger la pieza
(Qx_ExtenderPinza_Dmas) detector (Ix_PinzaExtendida_d1) .
4. Una vez sujeta la pieza, se recoge el brazo y se gira a la posición vertical, detector (Ix_GiroBrazo0_e0).
Se desciende el brazo y se procede a girar la pinza en función del material que porte. El vástago
alimentador se recoge.
5. Para finalizar se extiende el brazo y se abre la pinza para dejar caer la pieza en la posición adecuada
en el guarda-piezas. Dejando a continuación la pinza y el brazo en la posición inicial.
Modo Distancia
Una vez que el sistema llegue a A1 (Parada en el estado inicial) desde A6 (Puesta en el estado inicial) a través
de un rearme, se puede elegir:
 ir a Producción Normal (modo automático) seleccionando Mando Automático y pulsando Marcha.
Opaca
Transparente
500 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
 ir a F4 - Marcha de Verificación Sin Orden (MVSO - modo manual), seleccionando Manual, MVSO y
pulsando Ack. En este modo, se podrá accionar cada actuador neumático de forma independiente
para comprobar su funcionamiento. Se implementará en la pantalla de operador del PC. Se saldrá de
este modo pulsando Rearme, momento en el cual se irá al estado A6 (Puesta en el estado inicial).
También se podrá acceder a este estado desde F1 (Producción normal) si se selecciona modo Manual
y F4 - Marcha de Verificación Sin Orden (MVSO - Mantenimiento) y Ack.
 Ir a F5 - Marcha de Verificación Con Orden (MVCO - modo manual) seleccionando Manual, MVCO y
pulsando Ack. Será una producción equivalente a la normal, sólo que habrá que ir pulsando marcha
en determinados momentos para seguir con la producción. Se puede pasar desde aquí a ir a F4 -
Marcha de Verificación Sin Orden (MVSO - modo manual), seleccionando Manual, MVSO y pulsando
Ack.
Producción normal
En el estado A1 (Parada en el estado inicial) se emitirá un mensaje indicado que el sistema está parado en el
estado inicial y que se pulse Marcha para continuar. Una vez pulsado marcha, se pedirá al operario que
rellene la petaca de alimentación de fichas y pulse Marcha para poner en funcionamiento el manipulador
pasando a F1 (Producción normal).
Este trabajará de manera autónoma si no se detecta ninguna anomalía hasta que se accione el pulsador de
paro (Ix_Paro). Cuando el manipulador se pare en un estadio intermedio (A3), se saldrá de este volviendo a
pulsar marcha, momento en el cual seguirá con el proceso donde estuviese.
Si se pulsase Paro a Final de Ciclo (MxP_PFC), se terminará el ciclo en curso y se terminará la producción
debiendo pulsar Rearme para ir a A1 (Parada en el estado inicial).
En cada ciclo deberá realizarse el siguiente procedimiento:
1. Si se detecta pieza en el alimentador por medio del sensor capacitivo B1 (Ix_HayPieza), se dará la
orden de avanzar el vástago de dicho actuador, para dejar la pieza bajo la barrera fotoeléctrica B2
(Ix_PiezaOscura). Este sensor nos informará si es opaca o clara.
2. A continuación se elevará el brazo por medio del cilindro sin vástago -eje vertical-
(Qx_SubirBrazo_Fmas) , y una vez alcanzada la parte superior (Ix_BrazoArriba_f1), se efectúa un giro
de 90 (Qx_GiraBrazo_Emas) para que la pinza quede en la dirección de la pieza a recoger
(Ix_GiroBrazo90_e1).
3. Se abrirá la pinza (Qx_AbrePinza_Bmas) y seguidamente (una vez abierta) se extenderá el brazo para
proceder a coger la pieza (Qx_ExtenderPinza_Dmas) detector (Ix_PinzaExtendida_d1) .
4. Una vez sujeta la pieza, se recoge el brazo y se gira a la posición vertical, detector (Ix_GiroBrazo0_e0).
Se desciende el brazo y se procede a girar la pinza en función del material que porte. El vástago
alimentador se recoge.
5. Para finalizar se extiende el brazo y se abre la pinza para dejar caer la pieza en la posición adecuada
en el guarda-piezas. Dejando a continuación la pinza y el brazo en la posición inicial.
Defectos y errores del sistema
Falta de material: Si el detector capacitivo no detecta fichas en la petaca en el comienzo del ciclo (error) ,
deberá indicarse mediante el encendido de la luz roja de forma intermitente en el estado D2 parando el
proceso. Cuando se pulse Ack, el sistema evoluciona al estado A5 ( Preparación para la puesta en marcha
después de los errores). Aquí en este caso, indica que se repongan piezas en el alimentador y se pulse Ack
Problemas M340 - 501
Universidad de Oviedo
ISA - J. Alonso - I. Machón
continuando el ciclo de producción donde estaba en cuanto se pulse Marcha.
Fallo sensores: si algún sensor falla por cortocircuito o apertura del mismo (defecto), se irá al estado D3
(Producción a pesar de los defectos). Se indicará con la activación de la luz roja de forma permanente. En
este estado se chequeará el Paro y Paro a fin de ciclo para pasar a los estados correspondientes A3 o A2.
Fallos críticos: es muy importante evitar estados en la programación que al ejecutarlos podrían dañar o
dañaran de forma irreversible alguna parte del manipulador, a saber:
 El brazo no debe estar extendido cuando se procede a su elevación y giro a 90º, ya que sino se
produciría el choque entre la pinza y el sensor inductivo, con lo que podría dañar el componente.
Igualmente no puede bajar o girar la pinza sin haber antes recogido el brazo por las mismas razones.
 Para poder recoger la pieza por la pinza existen dos obligaciones: a la hora de extender el brazo en
el instante de la recogida, la pinza debe estar bien girada y abierta, a su vez el vástago del alimentador
tiene que estar extendido para que pueda soportar el peso de las demás fichas. Si no fuera así, la
pieza a distribuir se vería obstaculizada por las otras y el almacenamiento por la pinza no sería el
correcto.
 Evitar dar el giro de la pinza con el brazo abajo y extendido. Conllevaría a la colisión entre la ficha y
el guarda-piezas, donde se dañaría la instalación.
Parada de emergencia: En una parada de emergencia que se podrá efectuar en cualquier momento tanto en
control local como a distancia, se parará completamente el movimiento estado D1. Pulsaremos Ack pasando
al estado A5 donde abriremos la pinza y luego de pulsar rearme iremos al estado inicial A6.
PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de
alimentación BMX CPS 2000, módulo de entrada 1 BMX DDI1602 y módulo de salidas 2 BMX DDO1602
502 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
GEMMA del sistema
Tabla de variables
Problemas M340 - 503
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pantalla de operador
© Dibujos hechos por Angel Sancho y Sonia Madero
504 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Problemas M340 - 505
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Descripción general de la planta piloto educacional "Depósitos"
La planta está formada por tres depósitos situados a diferentes alturas. Se denominan depósito superior (en
adelante (DS), depósito principal (en adelante DP) y depósito inferior (en adelante (DI). Estos depósitos
contendrán líquido que podrá ser trasladado de unos hacia otros mediante las tuberías que los conectan y la
activación de unas determinadas electroválvulas y bombas.
El tamaño de los depósitos esta pensado para que si hay un desborde de agua por los aliviaderos, el total del
líquido del depósito principal y superior quepa en el depósito inferior.
En la parte baja del armario, a la altura del depósito inferior hay instalada una bomba centrifuga hidráulica
506 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
que eleva el líquido a los depósitos superiores. Esta bomba monofásica 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.
Depósito Superior:
Es el depósito situado en la parte mas alta de la instalación, capaz de almacenar líquido procedente de
cualquiera de los otros dos, gracias a la acción de la bomba centrífuga B2 y la combinación adecuada de las
electroválvulas V3, V4 y V5. Dispone de:
Un sensor de temperatura tipo Pt100 (TempDS) que nos da una señal analógica.
Dos sensores de nivel de tipo flotador NA (MaxDSP) y (MinDS) que nos darán un 1 lógico cuando el líquido
esté en ese nivel o superior
Una tubería de desbordamiento, que conecta la parte alta del DS con el DP, que evitaría el derrame del
líquido en el caso de efectuar una mala maniobra.
Salida a través de una electroválvula V1 que comunica el DS con el DP.
Entrada a través de una electroválvula V5 que comunica con el DP por medio de la electroválvula V3 y bomba
B2, o con el DI por medio de la electroválvula V4 y bomba B2
Las medidas del depósito 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 tubería 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 número de ellas. Dispone de :
Un sensor de temperatura tipo Pt100 (TempDP) que nos da una señal analógica.
Dos sensores de nivel de tipo flotador NA (MaxDP) y (MinDP) que nos darán un 1 lógico cuando el líquido
esté en ese nivel o superior
Una tubería de desbordamiento, que conecta la parte alta del DP con el DI, que evitaría el derrame del líquido
en el caso de efectuar una mala maniobra.
Un sensor de nivel (Presión) obtenido a través de un sensor de presión que nos da una señal analógica que
posteriormente acondicionaremos.
Un circuito de recirculación del líquido del depósito mediante la acción 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 través de una electroválvula V2 que comunica el DP con el DI.
Salida a través de una válvula manual que comunica el DP con el DI.
Las medidas del depósito son iguales que el depósito superior: 110mm de ancho, 190mm de largo y 260mm
de alto. Dando un volumen efectivo de 4,7 Litros.
Depósito 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 depósitos
restantes. Esto permite, por ejemplo, hacer una operación de rearme descargando el agua de los depósitos
al tanque inferior para comenzar a realizar tareas. Dispone de:
Dos sensores de nivel de tipo flotador NA (MaxDI) y (MinDI) que nos darán un 1 lógico cuando el líquido esté
en ese nivel o superior.
Salida a través de una electroválvula V4 que comunica el DI con el DS o el DP a través de la electroválvula V5
y la bomba B2.
Las medidas del depósito son: 195mm de ancho, 215mm de largo y 260mm de alto. Dando un volumen de
Problemas M340 - 507
Universidad de Oviedo
ISA - J. Alonso - I. Machón
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 3 posiciones: para elegir el modo de funcionamiento Automático/Operación /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 tensión en la planta.
Bombas centrífuga B2
Es una bomba trifásica de acoplamiento magnético, 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 vacío. Se puede destruir de forma parcial o total la
bomba.
El motor esta equipado con un térmico de seguridad, que en caso de sobrecalentamiento detiene el motor
hasta que la temperatura descienda.
También viene prevista de un accionamiento magnético. Si la rotación de la turbina se bloquea por la
presencia de partículas solidas o por cualquier otra razón, se produce un desacoplamiento del campo
magnético y el imán conductor y el motor continúan girando. En este caso, se recomienda parar el motor.
Variador de velocidad
Para controlar el caudal de la bomba B2 que eleva el líquido a los depósitos 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 analógica de 0 a 10v del autómata controlará la velocidad de la bomba
conectada al altivar.
Sensor de nivel
El sensor de nivel nos indica los litros que posee el depósito principal en cada momento. En el caso del sensor
que tenemos instalado, se trata de un sensor de presión, la altura del líquido será h = p / ( · G)
Caudalímetro
Son dispositivos capaces de medir el caudal de fluido que pasa por un conducto, en nuestro caso el agua. En
la instalación hemos colocado un caudalímetro a la salida de la bomba centrifuga que eleva el agua del
depósito inferior. Este componente nos proporciona una señal de onda cuadrada, cuya frecuencia es
proporcional al caudal medido por el sensor.
Módulo de seguridad preventa
Este dispositivo de protección actúa sobre un contactor, que corta la alimentación de todos los actuadores
en caso de emergencia. La señal de estado del módulo es enviada al autómata como entrada digital, de esta
manera se controlarían los procesos en consecuencia a una emergencia.
508 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Se puede observar como la señal
de la Seta de emergencia está
conectada entre las entradas
S11 y S12 del módulo de
seguridad. Las salidas 14 y 24 se
utilizan para controlar dos relés
que se utilizan para abrir el
contactor de potencia en caso
de fallo o emergencia, y también
para rearmar el módulo. Para
llevar a cabo el rearme hay que
soltar el pulsador de marcha (en
la figura START), con la
condición de que no se
encuentre accionado ningún
elemento de seguridad.
Pilotos
Son elementos para la señalización 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 señalización acústica instalado en la planta. Es un zumbador que indica el estado de una
operación, en nuestro caso nos indica cuando una operación finalizó.
Caudalímetro.
El rango de valores numérico que proporciona el canal analógico del autómata asociado al caudalímetro 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
caudalímetro nos proporciona una frecuencia máxima de 550hz para 10L/min y una frecuencia de 55Hz para
1L/min, según el fabricante.
Por tanto la señal numérica antes de emplear la función 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 analógico del autómata 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 0ºC y a 20mA sean 100ºC.
Problemas M340 - 509
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Anexo A · Desactivación de Aero en W7
El programa Unity Pro XL 7.0 funciona correctamente en el Sistema Operativo Windows XP. No funciona en
W8 ni en sistemas Apple, por lo cual se deberá implementar una máquina virtual de XP o W7.
En Windows 7, se deberá eliminar el escritorio "Aero", si no, no funcionará correctamente y dará muchos
problemas.
Para desactivar el escritorio "Aero", clicar con el botón derecho en el escritorio y elegir la opción
"personalizar".
Luego establecer en "Temas Básico y de Contraste alto" el tema "Windows 7 Basic", por ejemplo, o el que
más nos guste. SOLO FUNCIONA CORRECTAMENTE DE ESTA FORMA.
Si así y todo, sale un mensaje que dice "es imposible establecer la comunicación 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
botón derecho y salir.
510 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Anexo B · Errores típicos
Errores trabajando en el Unity Pro
Instalé el Unity Pro XL y no funciona
El Unity 13 se debe de instalar en modo administrador y compatibilidad con windows 7 u 8 según sea tu
sistema operativo. Para ello vete al archivo Setup.exe, clica con el botón derecho | propiedades y elígelas
Error de token
Algunas veces el Unity nos dice que hay un error de token y nos impide seguir. La solución consiste en habilitar
el multitoken.
Para ello iremos a Herramientas / Ajustes del proyecto. En la ventana que sale, seleccionaremos "Permitir
token múltiple".
Problemas M340 - 511
Universidad de Oviedo
ISA - J. Alonso - I. Machón
No se hace efectiva la orden SETSTEP o RESETSTEP de cualquier variable del grafcet en una sección de
código
 El SETSTEP o RESETSTEP de las variables asociadas a las etapas de un GRAFCET sólo se puede
ejecutar si no está activo CLEARCHART.
 Repasar las "Funciones fundamentales para controlar los SFC".
El autómata está embrujado y hace cada vez una cosa distinta
 No lo dudes, el que lo hace mal eres TU. Lo tienes mal programado, probablemente tienes las
salidas programadas en mas de un sitio.
Inserté un bitmap hecho con otro programa en la pantalla de explotación y no lo ve
 Asegurarse de copiarlo en el espacio de trabajo actual.
Intento abrir un archivo hecho con una versión anterior de Unity y no me lo abre
 Abre el archivo con extensión *.sta
Es recomendable guardar todos los archivos con esa extensión.
Para ello, una vez Regenerado todo el proyecto y sin errores, ir al menú "Fichero", opción
"Archivar".
Regenero el proyecto y me salen errores del tipo {Variables elementales} : La instancia está ubicada en
una dirección que no está configurada. : Ix_???
 Probablemente no has configurado correctamente los módulos de entradas y salidas.
 Has definido entradas como salidas o viceversa.
Regenero el proyecto y me salen errores del tipo
{Nombre_del_proyecto : [MAST]} : (l: 4, c: 31) E1061 Símbolo no definido 'Ix_Locfis'
{Control_de_la_luz : [MAST]} : 1 errores, 0 advertencias
{Control_de_la_luz : [MAST]} : Fallo de análisis de objetos
Probablemente has escrito mal un nombre de variable en tu programa
Error "Dirección del PLC no es válida"
Deberemos tener el PLC en modalidad simulador.
512 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Error al conectarse con el el simulador
Cuando intentamos conectarnos con el simulador aparece el mensaje:
Deberemos desactivar la casilla "Use default application to start simulator (enforce security)" de la pantalla
siguiente
Si no aparece esta pantalla, ir a los iconos de abajo a la derecha, clicar sobre el de simulador (una
interrogación sobre un cuadrado verde) e ir a propiedades. A continuación, hacer lo anteriormente
expuesto.
Errores trabajando en la FMS200
Sale un mensaje indicando que no es posible establecer la comunicación con el autómata
 Asegurarse de tener la seta de emergencia sin activar y tener conectada la alimentación del
autómata.
 Tener instalados los drivers SchneiderPLCUSBDriverSuite y SchneiderXIPDriverSuite de la carpeta de
programas Communication Drivers
 Hacer el proceso indicado en Conexión entre el PC y el PLC (Anexo C).
 Probablemente alguien le transfirió un programa sin tener configurado correctamente las
comunicaciones o el hardware. Debereis resetear el AP y transferirle el programa correcto via USB
 Puede que tengas mal configurado el tipo de CPU y su versión de firmware
El autómata presenta un error de I/O (led rojo de I/O permanentemente encendido)
 Asegurarse de tener conectada la alimentación de las entradas salidas
 Asegurarse de tener configurado correctamente el hardware del Autómata.
Problemas M340 - 513
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Di tensión a la célula, pulsé marcha pero no tenemos aire en las estaciones
Transfiere el programa de mando del transfer (estación0 - autómata premiun). Pon en RUN éste autómata y
luego desconectas. Ya puedes trabajar en tu estación.
En el rearme, el bit %S22 no nos deja inicializar los grafcet
Al hacer un SET %S22, este bit nos borra todas las variables asociadas a las etapas de los grafcet y el propio
autómata lo borra después de ejecutar el preliminar. Ahora bien, no podremos inicializar el grafcet con el
%S21, ni manualmente haciendo SET de las variables %Xn que nos interesen, ni RESETEAR el bit %S23 en el
mismo ciclo de programa. Lo deberemos hacer en un ciclo diferente (ej. programa de control de unos
cilindros).
No podemos escribir un SET %X0 o de cualquier otra variable del grafcet en una subrutina o en el posterior
El SET o RESET de las variables asociadas a las etapas de un grafcet sólo se puede hacer en el preliminar del
grafcet.
Me equivoqué y alimenté con dos piezas y no puedo quitar una de ellas
 Al lado del regulador de presión, en el bastidor está una llave de corte azul. Cuando está en sentido
longitudinal con el tubo de aire, deja pasar el aire. Gírala hacia la derecha, en sentido transversal,
con ello cortas la alimentación de aire y pones a escape todo tu circuito neumático. ¿A que ahora ya
puedes deshacer el entuertu.
El cilindro me tiene manía y empieza con el vástago como a mi no me interesa
 Recuerda que hay una cosa que se llama válvula biestable, y que cuando se le da aire a la estación,
se conecta con presión la via que corresponda, teniendo en cuenta la última posición de la corredera.
¿Que tal si haces que se ponga en condiciones iniciales con el rearme?.
Inserté un bitmap hecho con otro programa en la pantalla de explotación y no lo veo
 Asegurarse de copiarlo en el espacio de trabajo actual.
514 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Anexo C · Conexión del PC con el PLC vía USB y Ethernet
Para poder conectarnos con el PLC por medio de un cable USB o Ethernet, deberemos instalar los drivers
SchneiderPLCUSBDriverSuite y SchneiderXIPDriverSuite que vienen en la carpeta "Communication Drivers"
del software de Schneider Unity Pro Xl 13.0.
Una vez instalados deberemos reiniciar el computador y cuando nos conectemos al PLC mediante un cable
USB saldrá la siguiente pantalla
Deberemos dejar que instale los archivos que necesite para poder luego acceder al PLC sin problemas.
Una vez instalados, nos aparecerá en la barra de información inferior un icono informándonos que se está
ejecutando el driver PLCUSB
Problemas M340 - 515
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Conexión a través de Ethernet
1) Una vez configurado correctamente el hardware del PLC, crear una nueva red en el explorador de
proyectos. Para ello ir a "Comunicación -> Redes", clicar el botón derecho y seleccionar "Nueva red".
2) Seleccionar Ethernet en la lista de redes disponibles:
3) Por defecto se crea el nombre Ethernet_1. Si se desea cambiar el nombre creado por defecto, introducir
el nombre deseado. Para finalizar pulsar aceptar.
4) En redes aparecerá el nuevo componente de red creado. Hacer doble click sobre él.
5) Debemos elegir el módulo que realizará la conexión 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 también la versión.
516 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
6) En el ejemplo, elegimos la CPU 2020 versión 1.0, confirmamos el cambio clicando en Sí.
7) Se introduce la IP del PLC que será 156.35.153.2X, siendo X el número de estación en la que se encuentra
el PLC. La máscara de subred es 255.255.255.0. La dirección de pasarela es 156.35.153.205.
En el caso del laboratorio de Autómatas será, 192.168.0.20X, siendo X el número del módulo en el que se
encuentra el PLC. La máscara de subred es 255.255.255.0. La dirección de pasarela es 192.168.0.1
.
Problemas M340 - 517
Universidad de Oviedo
ISA - J. Alonso - I. Machón
8) A continuación cerramos la ventana Ethernet_1 y nos pregunta sobre aceptar los cambios. Clicamos Sí.
518 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
9) Seguidamente, acudimos a la configuración del hardware del PLC. Clicamos sobre la figura del puerto
Ethernet de la CPU del PLC ya que es por donde físicamente conectaremos nuestro cable de red.
10) Nos aparecerá la siguiente ventana:
Problemas M340 - 519
Universidad de Oviedo
ISA - J. Alonso - I. Machón
11) Doble click sobre Canal 3 y seleccionaremos la función ETH TCP IP.
12) En conexión elegimos el componente creado anteriormente, es decir, Ethernet_1.
520 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
14) Cerramos la ventana 0.0:Ethernet
15) Se nos pregunta si deseamos aceptar las modificaciones. Contestamos que Sí.
Problemas M340 - 521
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Conexión a través de USB
Para que el autómata almacene esta dirección IP, le deberemos pasar previamente nuestro programa
mediante una conexión USB.
Para conectarnos al autómata mediante el cable USB. Deberemos indicar que queremos trabajar en el
modo ESTÁNDAR no el de SIMULACIÓN
Iremos al menú "PLC" y escogeremos la opción "Establecer dirección" especificando que vamos a hacer una
conexión por cable USB a la dirección SYS y aceptamos.
Después Transferimos el programa creado y con ello lograremos establecer la dirección IP en el PLC.
Posteriormente, si deseamos conectarnos con el PLC mediante Ethernet, deberíamos acceder a "PLC--
Establecer dirección "y en Dirección pondremos la IP de nuestro PLC y en Medios seleccionaremos TCPIP.
RECORDAR que se deberá haber seleccionado el modo ESTÁNDAR de conexión, no el modo simulador.
Seguidamente ya podríamos clicar en Aceptar y luego Conectar para establecer la conexión PC-PLC.
522 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Anexo D · Bits del sistema
[04] apéndice A.1. “Los bits del sistema %Si, son unos bits que indican los estados del autómata o que
permiten controlar el funcionamiento de éste.
Dichos bits pueden probarse en el programa del usuario con el fin de detectar cualquier evolución de
funcionamiento que conlleve un procedimiento de procesamiento establecido.
Algunos de estos bits deben volver a su estado inicial o normal por programa. No obstante, los bits de sistema
que vuelven a su estado inicial o normal a través del sistema, no deben hacerlo a través del programa ni del
terminal”.
Bit Función Descripción Estado
Inicial
%S4
TB10MS
Base de tiempo
10 ms
Un temporizador interno regula el cambio de estado de este
bit.
Es asíncrono en relación con el ciclo del PLC.
-
%S5
TB100MS
Base de tiempo
100 ms
Ídem %S4
-
%S6
TB1SEC
Base de tiempo
1 s
Ídem %S4
-
%S7
TB1MIN
Base de tiempo
1 min
Ídem %S4
-
%S13
1RSTSCANRUN
Primer ciclo
después de la
puesta en RUN
La conmutación del PLC de la modalidad STOP a RUN (incluso
después de un arranque en frío con arranque automático en
ejecución) se indica al establecer el bit de sistema %S13 en 1.
Este bit vuelve a ponerse a 0 al final del primer ciclo de la tarea
MAST en la modalidad de ejecución.
-
Problemas M340 - 523
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Anexo E · Palabras del sistema
[04] apéndice A.1.
Palabra
símbolo
Función Descripción Estado
Inicial
%SW49
DAYOFWEEK
%SW50
SEC
%SW51
HOURMIN
%SW52
MONTHDAY
%SW53
YEAR
Función del
reloj de tiempo
real
Palabras del sistema que contienen la fecha y hora actuales (en BCD):
%SW49: día de la semana:
1 = Lunes
2 = Martes
3 = Miércoles
4 = Jueves
5 = Viernes
6 = Sábado
7 = Domingo
%SW50: segundos (16#SS00)
%SW51: horas y minutos (16#HHMM)
%SW52: mes y día (16#MMDD)
%SW53: año (16#YYYY)
El sistema gestiona estas palabras cuando el bit %S50 se define en 0.
El usuario del programa o el terminal pueden escribir estas palabras
cuando el bit %S50 se define en 1.
-
%SW59
ADJDATETIME
Ajuste de la
fecha actual
Contiene dos series de 8 bits para ajustar la fecha actual.
La acción se ejecuta siempre en el flanco ascendente del bit.
Esta palabra se activa por el bit %S59=1
En la ilustración siguiente, los bits de la columna de la izquierda
aumentan el valor y los bits de la columna de la
derecha lo disminuyen:
0
524 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
[13] Página 105 y 106
Problemas M340 - 525
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Anexo F · Como generar la documentación del proyecto
Para poder generar la documentación del proyecto y poder ver el código
del programa, sus pantallas de operador, variables utilizadas,…
clicaremos dos veces en la carpeta "Documentación" de la ventana
"explorador de proyectos".
Nos saldrá una ventana donde deberemos seleccionar que
partes queremos imprimir bien sea por la impresora, o
generar un documento PDF con toda la información
seleccionada.
A continuación, clicaremos con el botón derecho en la parte
que queremos incluir en la documentación y saldrá una
ventana emergente donde deberemos indicar que se incluya
el encabezamiento.
Sólo nos quedará ahora que clicar con el botón derecho encima
de "Proyecto" y saldrá una pantalla donde elegiremos la opción
de Imprimir.
526 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Anexo G · Tipos de Bloques
"En Unity Pro se utilizan distintos tipos de bloques. El término general que abarca todos los tipos de bloques
es FFB.
Debemos distinguir los siguientes tipos de bloques:
 Función elemental (EF)
 Bloque de funciones elementales (EFB)
 Bloque de funciones derivado (DFB)
 Procedimiento
Función elemental (EF)
Las funciones elementales (EF) no disponen de estado interno y solo cuentan con una salida. Si en las
entradas aparecen los mismos valores, el valor de la salida será el mismo cuando se ejecute la función; por
ejemplo, siempre que se ejecuta la suma de dos valores, el resultado es el mismo.
En los lenguajes gráficos (FBD y LD), una función elemental se representa como un bloque de datos con
entradas y una salida. Las entradas aparecen a la izquierda de la trama del bloque y las salidas, a la derecha.
El nombre de la función, es decir, el tipo de función, aparece centrado dentro de la trama del bloque.
El número de entradas puede aumentarse en algunas funciones elementales.
Bloque de funciones elementales (EFB)
Los bloques de funciones elementales (EFB) tienen estados internos. Si las entradas disponen del mismo
valor, el valor de la salida puede variar cada vez que se ejecute el bloque de funciones. Por ejemplo, con un
contador aumenta el valor de la salida.
En los lenguajes gráficos (FBD y LD), un bloque de funciones elementales se representa como un bloque de
datos con entradas y salidas. En él, las entradas siempre aparecen a la izquierda y las salidas a la derecha. El
nombre del bloque de funciones, es decir, el tipo de bloque de funciones, aparece centrado dentro del bloque
de datos. El nombre de la instancia aparece por encima del bloque de datos.
Bloques de funciones derivados (DFB)
Los bloques de funciones derivados (DFB) presentan las mismas propiedades que los bloques de funciones
elementales. Sin embargo, el usuario los crea en los lenguajes de programación FBD, LD, IL o ST.
Procedimiento
Los procedimientos son funciones con distintas salidas. No disponen de estado interno. La única diferencia
con las funciones elementales es que los procedimientos pueden tener más de una salida y admiten variables
del tipo de datos VAR_IN_OUT. Los procedimientos no devuelven ningún valor.
Los procedimientos son una ampliación de la norma CEI 61131-3 y se deben habilitar de forma explícita.
Los procedimientos no se distinguen visualmente de las funciones elementales".
[4] S05_Unity Pro_ Estándar Librería de bloques 10_2013 pág. 22-24
Problemas M340 - 527
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Anexo H · Configuración BMX EHC 0200 - (Estación 5 de la FMS200)
Modo contador libre de 32 bits
En el explorador de proyectos seleccionamos el módulo BMX EHC200 y nos saldrá la siguiente pantalla. En
ella seleccionamos el "Contador 0" y desplegamos la lista de "Función" escogeremos la opción "Modo de
contador libre 32 bits"
En la pestaña de configuración que sale, se elige "Interface de conteo / Cuadratura normal X1"
Después pinchamos en "BMX EHC 0200" aceptamos las modificaciones y vamos a la pestaña "Objetos de
E/S" seleccionamos todos los objetos "Seleccionar todo" y "Actualizar cuadrícula". Después cambiamos el
prefijo para el módulo. Pinchamos sobre %CH0.3.MOD y en prefijo para nombre ponemos p.e.
"EHC0200_MideTapa"
528 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Pinchamos en el nombre de %CH0.3.0 y le asignamos un nombre al contador 0 p.e. "CTR0".
Observamos que se han creado unas variables del tipo IODDT
De entre ellas, hay varias que usaremos para controlar el contador p.e. "CTR0.FORCE_ENABLE".
Indicamos a Unity que genere los cambios.
Problemas M340 - 529
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Anexo I · Referencias y curvas de elementos de protección
Referencias y Curvas de relés térmicos
Valores y curvas de interruptores automáticos
Los calibres de las curvas C y D son 0.5, 1, 2, 3, 4, 6, 10, 16, 20, 25, 32, 40, 50, 63, 80, 100, 125 A
530 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Calibres y Curvas de Fusibles
Valores de los interruptores diferenciales
Los calibres de los interruptores diferenciales con 30 mA de sensibilidad son 6, 10, 16, 20, 25, 32, 40, 50, 63,
80, 125 A
Consumo de los preaccionadores
LC1-XXX Contactor 3 polos bobina de 220-230 V AC
Consumo en llamada 70 VA | Consumo en mantenimiento 7 VA
Duración de maniobra 12...22 ms cierre | 4...19 ms apertura
LC1-XXX Contactor 3 polos bobina de 24 V DC
Consumo 5,4 W
45...55 ms closing | 20...90 ms opening
* Kit de enclavamiento mecánico LAD9V2 para inversores
Relé auxiliar de 220-230 VAC Consumo en llamada 70 VA | Consumo en mantenimiento 7 VA
Relé auxiliar de 24 V CC Resistencia 650 Ω (± 10%)
Consumo medio 0,9 W Tiempo de activación / desactivación 20ms
Relé temporizador de 24-240 V AC 50-60 Hz 3 VA
Consumo de los pilotos 5 W
Problemas M340 - 531
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Corriente y potencia de empleo de los contactores
LC1D** 230 V AC Coil voltage
Tamaño
de los contactores
LC1- LC1- LC1- LC1- LC1- LC1- LC1- LC1- LC1-
K06 D09 D12 D18 D25 D32 D40 D50 D65
Corriente de empleo
máxima en AC-3
<=440 V A 6 9 12 18 25 32 40 50 65
Potencia nominal
de empleo P
220/240 V KW 1,5 2,2 3 4 5,5 7,5 11 15 18,5
380/400 V KW 2,2 4 5,5 7,5 11 15 18,5 22 30
LC2D**BD 24 V DC Coil voltage
Tamaño
de los contactores
LC2- LC2- LC2- LC2- LC2- LC2- LC2- LC2-
D09BD D12BD D18BD D25BD D32BD D40BD D50BD D65BD
Corriente de
empleo
máxima en AC-3
400 V A 9 12 18 25 32 40 50 65
Potencia nominal
de empleo P
220/240
V
KW 2,2 3 4 5,5 7,5 11 15 18,5
400 V KW 4 5,5 7,5 11 15 18,5 22 30
Valores de los guardamotores
532 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Valores para cálculos neumáticos
Pinza de dedos deslizantes, pinza de dedos pivotantes, actuador de giro
Actuador sin vástago de arrastre magnético y de arrastre mecánico
Problemas M340 - 533
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Anexo J · Caract. generales de los procesadores BMX P342020
[13] Página 73
534 - Problemas M340
Universidad de Oviedo
ISA - J. Alonso - I. Machón
Bibliografía
[01] S03 "Unity Pro. Lenguajes y estructura del programa. Manual de referencia". Schneider Electric.
07/2018
[02] H02 "Modicon M340 con Unity Pro. Módulos de entradas/salidas binarias. Manual de usuario".
Schneider Electric. 07/2008
[03] H03 "Modicon M340 con Unity Pro. Módulos de entradas/salidas analógicas. Manual de instalación".
Schneider Electric. 07/2012
[04] S05 "Unity Pro. Estándar. Librería de bloques". Schneider Electric. 10/2013.
[05] Problemas propuestos por el catedrático Jorge Argüelles García para otros AAPP.
[06] Guardamotores ABB.
https://www.voltimum.es/e-catalogue/brAnd/abb/family/guardamotor-ms116-para-control-motores-
016-16a
[07] Guardamotores WEG.
https://static.weg.net/medias/downloadcenter/he5/h4d/WEG-guardamotores-MPW-50030559-es.pdf
[08] Contactores, protecciones magnetotérmica y Diferencial, etc. Acti 9 de Schneider. 2011
https://download.schneider-electric.com/files?p_enDocType=Catalog&p_File_Name=catalogo-acti9-
.pdf&p_Doc_Ref=ESMKT01033A11
[09] Catalogue 2019 – 2020. Motor control And protection components https://download.schneider-
electric.com/files?p_enDocType=Catalog&p_File_Name=MKTED210011EN.pdf&p_Doc_Ref=MKTED210
011EN
[10] Electroválvulas de fluido https://pneumaxspa.com/
[11] Selector de productos de Schneider https://www.se.com/cl/es/product-range-
presentation/664-tesys-d/?selected-node-id=12146387287#tabs-top
[12] "Le GEMMA, Guide d`Etude des Modes de Marches et d`Arretês". ADEPA: Agence pour le
Développment de la Productique á l`industrie.
[13] H01 "Modicon M340 con Unity Pro. Procesadores, bastidores y módulos de fuente de alimentación.
Manual de configuración". Schneider Electric. 5/2010.

Más contenido relacionado

PDF
Transmision por cadenas
PDF
Cruceta material pag 226
PDF
02 máquinas, mecanismos y gdl ok
PDF
ELIMINACIÓN DE INTERFERENCIAS EN CIRCUITOS NEUMÁTICOS CON EL MÉTODO DE CASCA...
PPT
ENGRANAJES.ppt
PDF
Programacion control numerico por computadora
PDF
Instrumentation et régulation
PDF
Tema 2 mecanismos de eslabones articulados Unefm
Transmision por cadenas
Cruceta material pag 226
02 máquinas, mecanismos y gdl ok
ELIMINACIÓN DE INTERFERENCIAS EN CIRCUITOS NEUMÁTICOS CON EL MÉTODO DE CASCA...
ENGRANAJES.ppt
Programacion control numerico por computadora
Instrumentation et régulation
Tema 2 mecanismos de eslabones articulados Unefm

La actualidad más candente (20)

PPTX
Electroneumatica_1_Sistemas Neumaticos.pptx
DOCX
Teorema de Kennedy
PDF
Esquemas neumáticos huapaya
PPT
Alat pengukuran
PPT
Diseño 4 clase engranajes rectos1
PPTX
Sistemas Articulados de 4 Barras. Julian y Yeferson.pptx
DOCX
Pendawaian elektrik
PDF
Talian Atas Voltan Rendah
PDF
TEORIA PID CONTROL EN TIEMPO DISCRETO
PPTX
Cinemática Directa e Inversa de un robot de 3 Grados de Libertad
PDF
Guia1 electroneumatica
DOCX
Circuito hidráulico
DOCX
Metrologia
DOC
Kertas penerangan 2 lukisan satu fasa
DOC
AZLAN ARIFFIN LPKT TAHAP 4.doc
PPTX
Levas
PDF
Ascensor de 3 pisos con puerta Sol Grafcet.pdf
PDF
EJERCICIOS DE PROGRAMACION DE SIEMENS PDF
PPTX
Chavetas y pasadores
DOC
Electroneumatica
Electroneumatica_1_Sistemas Neumaticos.pptx
Teorema de Kennedy
Esquemas neumáticos huapaya
Alat pengukuran
Diseño 4 clase engranajes rectos1
Sistemas Articulados de 4 Barras. Julian y Yeferson.pptx
Pendawaian elektrik
Talian Atas Voltan Rendah
TEORIA PID CONTROL EN TIEMPO DISCRETO
Cinemática Directa e Inversa de un robot de 3 Grados de Libertad
Guia1 electroneumatica
Circuito hidráulico
Metrologia
Kertas penerangan 2 lukisan satu fasa
AZLAN ARIFFIN LPKT TAHAP 4.doc
Levas
Ascensor de 3 pisos con puerta Sol Grafcet.pdf
EJERCICIOS DE PROGRAMACION DE SIEMENS PDF
Chavetas y pasadores
Electroneumatica
Publicidad

Similar a El_automata_M340_Problemas.pdf (20)

PDF
automatizacionCAPITULO 2 PROG PLC MODICON.pdf
PDF
CLASE-TEORIA-SESION-1.pdf
PDF
tema CAPITULO 3 PROGRAMACION PLC SIEMENS.pdf
PPT
Eq 2 Inv Plc (4)
PDF
Basico plc'scp1h
PDF
Unidad2 plc scada PLC y Pantallas HMI
DOC
Curso Plc C.E.T,I,S 15
PPTX
Automatización Paul Gálvez 2014
PPT
Parte electronica SCANIA POW, VIS, CAN.ppt
DOC
CURSO PLC (1)
PDF
AUTOMATIZACIÓN INDUSTRIAL CON PLC´S.pdf
PDF
Plc variador de velocidad ing k-nt
PDF
Plc variador de velocidad ing k-nt
DOCX
Portafolio-Arquitectura de Maquinas
PPTX
Taller de atención pots módulo s12
PDF
CUADERNO N#3 Aplicaciones Con Automatas Programables.pdf
PDF
Logica de automatizacion de procesos
PPT
3. Ejercicios de aplicaci_n.ppt
PDF
CursonAtlasCopco Roc L8 MKII Mantenedores.pdf
automatizacionCAPITULO 2 PROG PLC MODICON.pdf
CLASE-TEORIA-SESION-1.pdf
tema CAPITULO 3 PROGRAMACION PLC SIEMENS.pdf
Eq 2 Inv Plc (4)
Basico plc'scp1h
Unidad2 plc scada PLC y Pantallas HMI
Curso Plc C.E.T,I,S 15
Automatización Paul Gálvez 2014
Parte electronica SCANIA POW, VIS, CAN.ppt
CURSO PLC (1)
AUTOMATIZACIÓN INDUSTRIAL CON PLC´S.pdf
Plc variador de velocidad ing k-nt
Plc variador de velocidad ing k-nt
Portafolio-Arquitectura de Maquinas
Taller de atención pots módulo s12
CUADERNO N#3 Aplicaciones Con Automatas Programables.pdf
Logica de automatizacion de procesos
3. Ejercicios de aplicaci_n.ppt
CursonAtlasCopco Roc L8 MKII Mantenedores.pdf
Publicidad

Más de dfdfdf7 (14)

PDF
VDFVDVDVDVDVX
PDF
CSDCSCS
PDF
VDFVDFDF
PDF
VFDFVFDV
PDF
DF DF D
PDF
VDVDVD
PDF
DSSDSD
PDF
dsfsdfdsfs
PDF
gdgdgdgd
PDF
gdgdgdg
PDF
Sesion 8.4_Vasilis Fthenakis_Columbia University.pdf
PDF
Sesion 8.2_Fernando Olave_ICP Ltda.pdf
PDF
Sesion 6.2_Humberto Catacora_Backus _ Johnston.pdf
PDF
modulo-allend-bradley-manual_compress.pdf
VDFVDVDVDVDVX
CSDCSCS
VDFVDFDF
VFDFVFDV
DF DF D
VDVDVD
DSSDSD
dsfsdfdsfs
gdgdgdgd
gdgdgdg
Sesion 8.4_Vasilis Fthenakis_Columbia University.pdf
Sesion 8.2_Fernando Olave_ICP Ltda.pdf
Sesion 6.2_Humberto Catacora_Backus _ Johnston.pdf
modulo-allend-bradley-manual_compress.pdf

Último (20)

PDF
Tríptico Español_.pdfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
PPTX
la psicologia.para capacitar a una comunidad
PPTX
Clase-6-sensacion-y-percepcion-.pptx jajsja
PPTX
Gobierno corporativo talento humano gth.
PPTX
LEY ASEP 070 avelino siáni y elizardo perez
PPTX
CZGNB-52 ANZOATEGUI HAMPOGRAMA (1).pptx1
PPTX
Clase 13.pptxsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
PPTX
No lo sé, solo lo subo para descargar un documento :p.pptx
PPTX
2023-Injuria-11A-BacilosGram(-)nofermerdadntadores_.pptx
PPTX
Envejecimiento_Activo_Mireya_Mejorada.pptx
DOCX
¿Te han rechazado en una entrevista? Transforma el 'no' en tu próximo impulso"
PDF
BIOSEGURIDAD.pdfBIOSEGURIDAD.pdfBIOSEGURIDAD.pdf
PPTX
2 .EXPOSICIÓN_GRUPO_2. GESTIÓN_PÚBLICA..pptx
PPTX
TRABAJP DE ECONOMIA . factores de producción
PPTX
SEGURIDAD E Higiene en el trabajo pars tldls
PPTX
INTRODUCCION A LA BIBLIA NUEVOS CREYENTES.pptx
PPTX
Hpetatitis A y E hjfyfhgffxffgff(2).pptx
DOCX
Explicación Legal sobre el Tiempo de Colación en la Jornada Laboral Docente.docx
PPTX
COMITE DE CONTRATISTAS DE MINERIA A TAJO.pptx
PPTX
ATAQUES-VIRUS.pptx en sst y seguridad laboral
Tríptico Español_.pdfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
la psicologia.para capacitar a una comunidad
Clase-6-sensacion-y-percepcion-.pptx jajsja
Gobierno corporativo talento humano gth.
LEY ASEP 070 avelino siáni y elizardo perez
CZGNB-52 ANZOATEGUI HAMPOGRAMA (1).pptx1
Clase 13.pptxsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
No lo sé, solo lo subo para descargar un documento :p.pptx
2023-Injuria-11A-BacilosGram(-)nofermerdadntadores_.pptx
Envejecimiento_Activo_Mireya_Mejorada.pptx
¿Te han rechazado en una entrevista? Transforma el 'no' en tu próximo impulso"
BIOSEGURIDAD.pdfBIOSEGURIDAD.pdfBIOSEGURIDAD.pdf
2 .EXPOSICIÓN_GRUPO_2. GESTIÓN_PÚBLICA..pptx
TRABAJP DE ECONOMIA . factores de producción
SEGURIDAD E Higiene en el trabajo pars tldls
INTRODUCCION A LA BIBLIA NUEVOS CREYENTES.pptx
Hpetatitis A y E hjfyfhgffxffgff(2).pptx
Explicación Legal sobre el Tiempo de Colación en la Jornada Laboral Docente.docx
COMITE DE CONTRATISTAS DE MINERIA A TAJO.pptx
ATAQUES-VIRUS.pptx en sst y seguridad laboral

El_automata_M340_Problemas.pdf

  • 1. UNIVERSIDAD DE OVIEDO D.I.E.E.C.S Área de Ingeniería de Sistemas y Automática El autómata programable Schneider M340 Problemas. Lenguajes LD, FBD, ST y GRAFCET Gijón, Agosto de 2022 1ª ed 2012 Jorge Alonso González Iván Machón González
  • 2. 2 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 3. Problemas Schneider M340 - 3 Universidad de Oviedo ISA - J. Alonso - I. Machón SUMARIO Funciones lógicas: AND y OR Sistemas combinacionales. Concepto de estado de señal. Control por nivel. Pr-0101 Luz de Museo mediante interruptores. EM y EF Recomendaciones importantes a tener en cuenta a la hora de programar Introducción del programa Creación de la pantalla de operador Simulación del programa Sistemas secuenciales. Control por flanco. Funciones de memoria. Tipos de datos comunes y rangos Variables de tipo ebool Valores literales Instrucciones IF, THEN, END_IF, ELSE, ELSIF Instrucción R_TRIG y F_TRIG Pr-0102 Conmutación de una luz mediante un pulsador. EM y EF Otra forma de introducir las variables Funciones lógicas de memoria biestable SET, RESET, SR y RS Función XOR Interfaces de Entrada y Salida Pr-0103 Luz de Museo mediante pulsadores. EM y EF Funciones de temporización Funciones de temporización: TON, TOF y TP Pr-0201 Luz de museo con temporización. EM y EF Como introducir un Bloque de Función en el lenguaje ST Exportar e importar pantallas de operador Selección del valor tiempo actual de un temporizador como variable de control Pr-0202 Semáforo simple Cómo insertar una imagen en la pantalla de operador Pr-0203 Semáforo coche-peatón con intermitencia Pr-0204 Arranque estrella-triángulo. EM y EF (Ejercicio para resolver) Pr-0205 Puerta automática. EM y EF (Ejercicio para resolver) Pr-0206 Motor CC Funciones de comparación Funciones de comparación EQ, NE, LE, LT, GE, GT Construcción de un oscilador con comparadores Pr-0301 Semáforo coche-peatón con intermitencia Crear y direccionar varias pantallas de operador Pr-0302 Semáforo completo con petición de paso Funciones de contador Funciones de contador CU, CD, CUD Pr-0401 Acceso sala comercial – fotocélulas Cómo cambiar el valor actual de un contador
  • 4. 4 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Pr-0402 Control de un contador GRAFCET Pr-0501 Portón. Método para insertar un objeto de la librería de pantalla de operador Pr-0502 Salida de 2 plantas de un garaje con semáforo (marca suelo, semáforo) Pr-0503 Garaje 2 plantas (barreras, lazos sensores, semáforo) Pr-0504 Limpiaparabrisas de coche Pr-0505 Control de la mezcla de dos líquidos. EM y EF Funciones INITCHART, CLEARCHART, FREEZCHART, SETSTEP, RESETSTEP Pr-0506 Ejemplo de control de un GRAFCET. Subrutinas y puesta en condiciones iniciales Pr-0600 Portón con puesta en CI Pr-0601 Control de 2 cilindros (1 CSE y 1 CDE). EM y EF Como mostrar un texto en la pantalla de operador en función de una variable Pr-0602 Garaje 2 plantas (barreras, lazos sensores) Pr-0603 Garaje (S. Coches, s. Peatones) Pr-0604 Clasificador de piezas Pr-0605 Control de silo y vagón Pr-0606 Pesado preciso de sustancias. Sencillo. EM y EF Pr-0607 Pesado preciso de sustancias. EM y EF Automatización de cintas GRAFCETs coordinados Pr-0701 Cinta alimentadora a cinta de salida Vigilancia de cintas Como forzar el valor de una entrada o salida. Cómo 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 Regulación de coches en la calle Simulación de los eventos Funciones de desplazamiento y rotación: SHL, SHR, ROR y ROL Pr-0802 Desplazamientos de bits e interrupciones Pr-0803 Garaje (S. Coches, portón con pulsador) (Ejercicio para resolver) Creación de un Bloque de Función de Usuario (DFB) Ejemplo Arranque y paro de un motor Problemas de automatización variados Pr-0901 Arranque tres lámparas. EM y EF Pr-0902 Depósito mezclador. EM y EF Pr-0903 Control de 2 bombas y su desgaste Funciones MOVE NOT
  • 5. Problemas Schneider M340 - 5 Universidad de Oviedo ISA - J. Alonso - I. Machón Pr-0904 Proceso electrolisis Pr-0905 Control de un túnel de lavado de coches Pr-0907 Paso a nivel Pr-0908 Control de una compuerta. EM y EF Pr-0909 Control de un garaje con luz. EM y EF Pr-0910 Control sencillo de un ascensor de 6 plantas Pr-0911 Ejemplo de escalado de una señal analógica Pr-0912 Pesado preciso de sustancias. EM y EF Como modificar un valor mediante un “Indicador de escala” y mediante un “Cuadro de Giro” Pr-0913 Control de un ascensor de 6 plantas. Botones de planta de subir y bajar (Ejercicio para resolver) Problemas de automatización completos [con diseño de protecciones eléctricas y cálculos neumáticos] Pr-1001 Control de un aporte de materiales. CDE AD IG Pr-1002 Control de un aporte de materiales. CDE AET IG Pr-1003 Control de un aporte de materiales. CSE AET IG Pr-1004 Control de un horno motorizado. EM y EF Pr-1005 Control de un molino. EM y EF Tipos de datos con formato BCD Formato BCD Tipo Date Tipo Time of Day Tipo Date And Time Funciones de fecha y hora ADD_***_TIME: Adición de una duración a una fecha DIVTIME: División MULTIME: Multiplicación SUB_***_***: Calcula la diferencia de tiempo entre dos fechas u horas SUB_***_TIME: Resta de una duración de una fecha Escalado de una señal analógica de entrada Ejemplo Escalado y tratamiento de una señal analógica de temperatura Como introducir un valor analógico mediante un indicador de escala Como introducir un gráfico de tendencias Descripción de los módulos del proyecto "ALCOA" Esquema de Mando, y fuerza de los módulos en general Pr-1101 Encendido y apagado sencillo de un horno. EM y EF Pr-1102 Control sencillo de la temperatura de un horno. EM y EF Programación por fases Pr-1201 Portón. Programado mediante fases
  • 6. 6 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón GEMMA 1. Introducción 2. Conceptos básicos 3. La guía GEMMA 4. Gestión de la energía en la Parte de Control 5. Procesamiento en arranque en frío 6. Procesamiento en arranque en caliente 7. Método de utilización del GEMMA Problemas avanzados Pr-1301 Manipulador de cubos con cara metálica (Ejercicio para resolver en el laboratorio) Pr-1302 Manipulador de fichas opacas o transparentes (Ejercicio para resolver en el laboratorio) Descripción general de la planta piloto educacional "Depósitos" Enunciado Anexos Anexo A · Desactivación de Aero en W7 Anexo B · Error de token Anexo C · Conexión del PC con el PLC vía ethernet Anexo D · Bits del sistema Anexo E · Palabras del sistema Anexo F · Como generar la documentación del proyecto Anexo G · Tipos de Bloques Anexo H · Configuración BMX EHC 0200 Anexo I · Referencias y curvas de elementos de protección Bibliografía
  • 7. Problemas Schneider M340 - 7 Universidad de Oviedo ISA - J. Alonso - I. Machón INDICE SUMARIO........................................................................................................................................................... 3 INDICE................................................................................................................................................................ 7 Notaciones....................................................................................................................................................... 11 Funciones lógicas AND y OR ............................................................................................................................ 12 Sistemas combinacionales. Concepto de estado de señal. Control por nivel................................................. 15 Problema 1.1 · Luz de museo con interruptores. EM y EF .............................................................................. 15 Recomendaciones a tener en cuenta a la hora de programar........................................................................ 18 Introducción del programa.............................................................................................................................. 19 Configuración de la Pantalla de Operador ...................................................................................................... 24 Sistemas secuenciales. Control por flanco. Funciones de memoria. .............................................................. 30 Funciones SET, RESET, SR y RS......................................................................................................................... 30 Función XOR .................................................................................................................................................... 32 Tipos de datos comunes y rangos ................................................................................................................... 33 Variables de tipo EBOOL.................................................................................................................................. 33 Constantes....................................................................................................................................................... 34 Valores literales............................................................................................................................................... 34 Instrucciones IF, THEN, END_IF, ELSE, ELSIF.................................................................................................... 35 Instrucción R_TRIG: Rising edge detection...................................................................................................... 36 Instrucción F_TRIG: Falling edge detection..................................................................................................... 36 Problema 1.2 · Conmutación de una luz mediante un pulsador. EM y EF ...................................................... 37 Introducción de variables de E / S................................................................................................................... 39 Interfaces de ENTRADA y SALIDA.................................................................................................................... 44 Problema 1.3 · Luz de museo mediante pulsadores. EM y EF......................................................................... 53 Funciones de temporización ........................................................................................................................... 56 Cómo introducir un Bloque de Función en el lenguaje ST .............................................................................. 59 Problema 2.1 · Luz de museo con temporizador. EM y EF.............................................................................. 61 Cómo exportar e importar pantallas de operador.......................................................................................... 65 Selección del valor tiempo actual de un temporizador como variable de control ......................................... 66 Problema 2.2 · Semáforo simple ..................................................................................................................... 67 Cómo insertar una imagen en la pantalla de operador................................................................................... 70 Problema 2.3 · Semáforo coche-peatón con intermitencia ............................................................................ 71 Problema 2.4 · Arranque estrella – triángulo. EM y EF (Resolver) .................................................................. 75 Problema 2.5 · Puerta automática. EM y EF (Resolver)................................................................................... 77
  • 8. 8 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 2.6 · Motor CC................................................................................................................................. 79 Funciones de comparación EQ, NE, LE, LT, GE, GT.......................................................................................... 82 Construcción de un oscilador con comparadores........................................................................................... 83 Problema 3.1 · Semáforo con comparadores.................................................................................................. 85 Crear y direccionar varias pantallas de operador............................................................................................ 87 Problema 3.2 · Semáforo completo con petición de paso .............................................................................. 89 Funciones de contador.................................................................................................................................... 93 Problema 4.1 · Control de acceso a sala comercial......................................................................................... 97 Cómo cambiar el valor actual de un contador .............................................................................................. 101 Problema 4.2 · Control de un contador reversible........................................................................................ 103 GRAFCET - SFC ............................................................................................................................................... 105 Problema 5.1 · Portón mediante GRAFCET ................................................................................................... 106 Método para insertar un objeto de la librería de pantalla de operador....................................................... 115 Problema 5.2 · Salida de 2 plantas de un garaje con semáforos................................................................... 117 Problema 5.3 · Salida de plantas con semáforo y sensor de abandono de planta ....................................... 121 Problema 5.4 · Control de limpiaparabrisas ................................................................................................ 125 Problema 5.5 · Control de la mezcla de dos líquidos. EM y EF...................................................................... 129 Funciones fundamentales para controlar los SFC (GRAFCETs) ..................................................................... 139 Problema 5.6 · Ejemplo de control de un GRAFCET ...................................................................................... 141 Subrutinas y puesta en condiciones iniciales ................................................................................................ 147 Problema 6.0 · Portón con puesta en CI........................................................................................................ 147 Problema 6.1 · Control de 2 cilindros. EM y EF ............................................................................................. 153 Como mostrar un texto en la pantalla de operador en función de una variable.......................................... 159 Problema 6.2 · Control de plantas con barrera. Puesta en CI con subrutina................................................ 161 Problema 6.3 · Control de acceso a garaje con semáforos ........................................................................... 169 Problema 6.4 · Manipulador 2 ejes con cilindros.......................................................................................... 175 Problema 6.5 · Control de un silo y vagoneta ............................................................................................... 181 Problema 6.6 · Pesado preciso de sustancias. Sencillo. EM y EF................................................................... 187 Problema 6.7 · Pesado preciso de sustancias. EM y EF ................................................................................. 193 GRAFCETs Coordinados ................................................................................................................................. 197 Problema 7.1 · Control de 2 cintas ................................................................................................................ 199 Como forzar el valor de una entrada o salida o modificar el valor de una variable ..................................... 205 Problema 7.2 · Tolva a cinta alimentadora giratoria y 3 cintas de salida...................................................... 207 Problema 7.3 · Dos cintas alimentadoras a tolva y cinta de salida (Resolver) .............................................. 217 Problema 7.4 · Control de 1 cinta (en construcción)..................................................................................... 219
  • 9. Problemas Schneider M340 - 9 Universidad de Oviedo ISA - J. Alonso - I. Machón Interrupciones ............................................................................................................................................... 221 Problema 8.1 · Control de tráfico en 2 carriles.............................................................................................. 221 Simulación de los eventos (interrupciones) .................................................................................................. 225 Funciones de desplazamiento y rotación...................................................................................................... 227 Problema 8.2 · Desplazamientos de bits e interrupciones............................................................................ 229 Problema 8.3 · Control de acceso de entrada a garaje y pulsador (Resolver) .............................................. 237 Cómo crear un Bloque de Función de Usuario (DFB).................................................................................... 239 Problema 9.1 · Control de 3 lámparas. EM y EF ............................................................................................ 245 Problema 9.2 · Control de la mezcla en un depósito. EM y EF...................................................................... 253 Funciones MOVE y NOT................................................................................................................................. 269 Problema 9.3 · Control de 2 bombas y su desgaste. EM y EF........................................................................ 271 Problema 9.4 · Proceso de electrólisis........................................................................................................... 283 Problema 9.5 · Control de un túnel de lavado............................................................................................... 295 Problema 9.7 · Control de un paso a nivel .................................................................................................... 305 Problema 9.8 · Control de una compuerta. EM y EF ..................................................................................... 317 Problema 9.9 · Control de un garaje. EM y EF............................................................................................... 327 Problema 9.10 · Control sencillo de un ascensor de 6 plantas...................................................................... 335 Como introducir un valor analógico mediante un indicador de escala......................................................... 353 Como introducir un gráfico de tendencias.................................................................................................... 353 Cómo hacer el escalado de una señal analógica de entrada......................................................................... 354 Problema 9.11 Ejemplo de escalado de señal analógica............................................................................... 363 Problema 9.12 · Pesado preciso de sustancias. EM y EF ............................................................................... 365 Problema 9.13 · Control de un ascensor de 6 plantas. Botones de planta de subir y bajar (Resolver) ........ 373 Problema 10.01 · Control de un aporte de materiales. CDE AD IG ............................................................... 375 Prob. 10.02 · Control de un aporte de materiales. CDE A ET IG.................................................................... 389 Prob. 10.03 Control de un aporte de materiales. CSE A ET IG..................................................................... 405 Problema 10.04 · Control de un horno motorizado. EM y EF........................................................................ 417 Problema 10.05 · Control de un molino. EM y EF.......................................................................................... 429 Tipos de datos con formato BCD................................................................................................................... 435 Funciones de fecha y hora............................................................................................................................. 438 Descripción del panel modular de entrenamiento para automatización y control de procesos.................. 443 Problema 11.01 · Encendido y apagado sencillo del horno. EM y EF........................................................... 447 Problema 11.02 · Control sencillo de la temperatura de un horno. EM y EF................................................ 453 Programación por fases................................................................................................................................. 459
  • 10. 10 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 12.01 · Control de un portón. Programación mediante FASES.................................................... 459 GEMMA ......................................................................................................................................................... 463 Problema 13.01 · Manipulador de cubos (Comprobar código)..................................................................... 477 Problema 13.02 · Manipulador de fichas (Resolver) ..................................................................................... 497 Descripción general de la planta piloto educacional "Depósitos" ................................................................ 505 Anexo A · Desactivación de Aero en W7 ....................................................................................................... 509 Anexo B · Errores típicos................................................................................................................................ 510 Anexo C · Conexión del PC con el PLC vía USB y Ethernet............................................................................. 514 Anexo D · Bits del sistema ............................................................................................................................. 522 Anexo E · Palabras del sistema ...................................................................................................................... 523 Anexo F · Como generar la documentación del proyecto............................................................................. 525 Anexo G · Tipos de Bloques ........................................................................................................................... 526 Anexo H · Configuración BMX EHC 0200 - (Estación 5 de la FMS200)......................................................... 527 Anexo I · Referencias y curvas de elementos de protección......................................................................... 529 Anexo J · Caract. generales de los procesadores BMX P342020................................................................... 533 Bibliografía..................................................................................................................................................... 534
  • 11. Problemas Schneider M340 - 11 Universidad de Oviedo ISA - J. Alonso - I. Machón Notaciones En todos los problemas expuestos se seguirán las siguientes Notaciones Ix_Nombre Entrada booleana del bornero del PLC [Ix_Pulsador] Iw_Nombre Entrada analógica del bornero del PLC [Iw_Temperatura] Qx_Nombre Salida booleana física del bornero del PLC [Qx_MotTolva] Qw_Nombre Salida analógica del bornero del PLC [Qw_ValvulaA] Mx_Nombre Memoria booleana utilizada en el programa [Mx_Flanco] MxP_Nombre Memoria booleana del panel de operador [MxP_FCS] Mi_Nombre Nombre de una variable de tipo entero [Mi_Contador] Mdi_Nombre Nombre de una variable de tipo doble entero [Mdi_NumObjetos] Mw_Nombre Nombre de una variable de tipo word [Mw_Potenciometro] Mdw_Nombre Nombre de una variable de tipo dobleword [Mdw_Valor] Mr_Nombre Nombre de una variable de tipo real [Mr_Precio] Mt_Nombre Nombre de una variable tipo time [Mt_TiempoRojo] TON_Nombre Nombre de un temporizador tipo TON [TON_Verde] TOF_Nombre Nombre de un temporizador tipo TOFF [TOF_Arranque] TP_Nombre Nombre de un temporizador tipo TP [TP_Lampara] ENúmero Nombre de una etapa en un GRAFCET [E4] EtapaNúmero " " [Etapa0] TranEtapaIni_EtapaFinal Nombre de una transición en un GRAFCET [Tran3_6] En algunos problemas, pondremos en rojo la definición de variables que se ponen para poder simular un programa en casa, en la realidad estas no se usarían, en su lugar, se usarían las entradas Ix correspondientes.
  • 12. 12 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Funciones lógicas AND y OR Función AND La función AND realiza la combinación lógica de las entradas situadas a su izquierda y hace la función AND asignando el resultado a la salida situada a su derecha. Los tipos de datos para todos los valores de entrada y de salida deben ser idénticos. El número de entradas máximo es de 32. Los parámetros EN (ENable) y ENO (ENableOutput) son opcionales. Se habilitan haciendo un click en la casilla "Mostrar EN/ENO". Para ello seleccionar el bloque de función, clicar el botón derecho del ratón y elegir propiedades. Saldrá la pantalla inferior. ¿Para que sirven?. ENable, nos permitirá ejecutar el bloque de función cuando la combinación lógica situada a su izquierda sea 1 lógico. ENable Ouput, nos transmitirá esta habilitación hacia los bloques que se conecten a ella. Tipos de funciones AND Representación en FBD Representación en ST Resultado := AND (Valor_1, Valor_2) ; IN1 IN2 AND 0 0 0 0 1 0 1 0 0 1 1 1
  • 13. Problemas Schneider M340 - 13 Universidad de Oviedo ISA - J. Alonso - I. Machón Función OR "La función OR realiza la combinación lógica de las entradas y hace la función 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 número de entradas como máximo a 32". Los paramétros EN (ENable) y ENO (ENableOutput) son opcionales. Tipos de funciones OR Representación en FBD Representación en ST Resultado := OR (Valor_1, Valor_2) ; IN1 IN2 OR 0 0 0 0 1 1 1 0 1 1 1 1
  • 14. 14 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 15. Problemas Schneider M340 - 15 Universidad de Oviedo ISA - J. Alonso - I. Machón Sistemas combinacionales. Concepto de estado de señal. Control por nivel Un sistema combinacional es aquel en el que las salidas dependen exclusivamente de una función determinada de las entradas en un momento dado. Problema 1.1 · Luz de museo con interruptores. EM y EF Se desea controlar la activación y desactivación de la iluminación de un local, mediante el accionamiento de tres interruptores de configuración normalmente abiertos. Como aplicación del enunciado, se puede suponer una sala de un museo, en la cual, se quiere que la iluminación no esté activada cuando la sala se encuentre vacía. Para ello en las tres puertas de acceso que tiene la sala figura el siguiente letrero: Cuando acceda a la sala y ésta se encuentre vacía accione el interruptor, que tiene en la puerta por la que entra, para encender la iluminación. Cuando abandone la sala y no quede persona alguna en el interior, accione el interruptor que tiene la puerta por la que sale. Los interruptores S0, S1 y S2 se consideran NA. PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo de entradas PNP BMX DDI 1602 y salidas PNP BMX DDO 1602. Las 3 lámparas de iluminación son de 60 W. Se pide: 1. Diseñar el esquema de mando y de fuerza del sistema. 2. Programa de mando
  • 16. 16 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de Mando El consumo de las lámparas hace que no pueden ser alimentadas directamente a la salida del AP. Por ello utilizamos un relé auxiliar, que al cerrar su contacto, las alimenta en un circuito de fuerza independiente de 230 VAC. Esquema de fuerza BMX DDI 1602 BMX DDO 1602
  • 17. Problemas Schneider M340 - 17 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de variables 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 las entradas. De las 8 combinaciones posibles de los interruptores, sólo 4 activan la salida Tabla de activaciones ENTRADAS SALIDAS Ix_Sensor0 Ix_Sensor1 Ix_Sensor2 Qx_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 Etiqueta Símbolo en los planos Dirección en PLC Tipo Comentarios Ix_Sensor0 S0 %I0.1.0 EBOOL Interruptor 0 Ix_Sensor1 S1 %I0.1.1 EBOOL Interruptor 1 Ix_Sensor2 S2 %I0.1.2 EBOOL Interruptor 2 Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0 Qx_Luz H1 %Q0.2.0 EBOOL Luz MxP_Sensor0 BOOL Marca del interruptor 0 en la pantalla MxP_Sensor1 BOOL Marca del interruptor 1 en la pantalla MxP_Sensor2 BOOL Marca del interruptor 2 en la pantalla Mx_Sensor0 BOOL Marca del interruptor 0 en el programa Mx_Sensor1 BOOL Marca del interruptor 1 en el programa Mx_Sensor2 BOOL Marca del interruptor 2 en el programa
  • 18. 18 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Y por tanto, teniendo en cuenta que un interruptor NA, cuando está activo su estado de señal es 1 -le llega tensión a la borna del autómata-, y cuando no está activo su estado de señal es 0. Tenemos que la tabla de estado de la señal que necesitamos para el programa de Mando, es la siguiente: Tabla de estados ENTRADAS SALIDAS Ix_Sensor0 Ix_Sensor1 Ix_Sensor2 Qx_Luz 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 1 Si el interruptor Ix_Sensor2 fuese NC la tabla de estados cambiaría -el NC es dual del NA- y sería la siguiente: Recomendaciones a tener en cuenta a la hora de programar Vamos a programar siempre de la misma forma. Suponemos que tenemos un conmutador en el armario o bastidor de Mando, (Ix_LocDis), con el que indicamos si queremos un control local, a través de los elementos de campo conectados a las bornas del Autómata Programable (en el futuro AP) o un control a distancia, a través de los distintos elementos que programemos en las pantallas de operador. De forma tal, que si no trabajamos con el AP, podremos simular el programa de control en nuestro computador ya que la variable Ix_LocDis valdrá 0 y por tanto serán operativas todas las órdenes que demos desde la pantalla de operador. Estas variables empezarán por MtipoP_Nombre, la P, indica que es una variable suministrada desde la pantalla de Operador. P.e. MxP_Marcha Las variables que utilizaremos en el programa de control serán por tanto Mtipo_Nombre. Donde tipo viene definido por las Notaciones establecidas en la página 7, p.e Mx_Marcha. Por tanto, en el programa de control nunca utilizaremos variables Ix_Nombre, p.e. Ix_Marcha. Nota: Cuando hagamos un programa para un control de verdad, habrá variables que no se deberán programar de esta forma, pues quien manda la información exclusivamente serán los elementos de campo y no la pantalla de operador. Tabla de estados (Sensor2 NC) ENTRADAS SALIDAS Ix_Sensor0 Ix_Sensor1 Ix_Sensor2 Qx_Luz 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 1
  • 19. Problemas Schneider M340 - 19 Universidad de Oviedo ISA - J. Alonso - I. Machón Introducción del programa Se selecciona la opción Fichero / Nuevo. En la ventana que aparece se selecciona el modelo de AP y su tipo de CPU. En nuestro caso, seleccionamos un Autómata de la gama Modicon M340 y CPU BMX P34 2020. Después hacemos un doble clic en la opción Bus PLC de la carpeta Configuración. En la ventana que aparece, se puede observar el bastidor, la fuente de alimentación FA (CPS2000) y la CPU (P34 2020) del Autómata escogido. Hay que tener cuidado y elegir correctamente la versión del firmware, asegurarse que sea la que soporta nuestro AP -en nuestro caso 02.50. Se hace un doble clic en el módulo 1 y luego en el 2 para indicar que Interface de entrada/salida deseamos. Si quisiéramos cambiar el tipo de bastidor haríamos clic sobre el número cero del Rack o en el mismo Rack en gris situado a la izquierda de la FA.
  • 20. 20 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Para el primer problema elegiremos, por ejemplo, un módulo de Entradas binarias del tipo BMX DDI 1602 y un módulo de Salidas BMX DDO 1602. De esta forma queda configurado el hardware del AP. Luego introduciremos los nombres de las variables de nuestro programa haciendo clic en la opción "Variables elementales" de la carpeta "Variables e instancias FB". Procederemos a configurarlas todas especificando el tipo de datos asociado. La sección de programa la introduciremos clicando el botón derecho encima de la palabra Secciones de la subcarpeta de tareas MAST de la carpeta Programa. En la ventana que surge indicaremos el Nombre que daremos a nuestra sección de código y el Lenguaje que emplearemos.
  • 21. Problemas Schneider M340 - 21 Universidad de Oviedo ISA - J. Alonso - I. Machón 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: Preliminar escrito en lenguaje LD ControlLuz escrito en lenguaje LD Sección "Preliminar" en LD Sección "ControlLuz" en LD
  • 22. 22 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Creación de la Pantalla de Operador Se crea con la opción Pantalla de operador, botón derecho del ratón, Nueva pantalla teclear p.e. Pantalla0. Se procede a diseñarla añadiéndole todo lo que necesitemos representar. La opción de introducir un interruptor o un pulsador, se hace mediante la 11ª opción de la barra IOSEditor. En la lista desplegable Variable dentro de la pestaña Control se escribe o se elige la variable que queremos poner en "1" o en "0" cuando pulsamos con el ratón en el icono de la pantalla. Marcando o no la casilla "Con rentención" obtenemos la posibilidad de que el botón de comando, se comporte como un interruptor o como un pulsador.
  • 23. Problemas Schneider M340 - 23 Universidad de Oviedo ISA - J. Alonso - I. Machón El texto indicativo de que interruptor se trata, lo obtenemos con la opción 7ª de la barra IOSEditor. Se puede poner el texto en negrita, cursiva, subrayado, mayúsculas. Elegir la alineación, el color, tamaño, tipo de fuente, color de línea, relleno, etc, etc. Para mostrar la luz, hacemos un círculo 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 abarcándolas con una caja de selección y con el botón 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.
  • 24. 24 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Por último, situamos la luz verde clara delante de la oscura haciendo uso del icono primer plano Configuración de la Pantalla de Operador Es conveniente que cuando trabajemos en una pantalla no salgan las barras de desplazamiento lateral ni vertical. La pantalla de operador debe de estar diseñada para que se adapte a la resolución de nuestro monitor. Para ello, configuraremos la resolución con la que trabajamos en el menú Herramientas | Opciones. Elegiremos el valor deseado con las flechas que aparecen al lado del valor de Ancho y Alto. Las resoluciones más típicas de los monitores Ancho x Alto que utilizamos son 1024 x 768 | 1366 x 768 | 1920 x 1080 Para trabajar en pantalla completa, elegiremos Ver | Pantalla completa, que equivale a pulsar las teclas Ctrl + F8
  • 25. Problemas Schneider M340 - 25 Universidad de Oviedo ISA - J. Alonso - I. Machón Simulación del programa Para simular el programa lo primero que deberemos hacer es ir al menú Generar y clicar la opción Regenerar todo el proyecto. Luego, iremos al menú PLC y estableceremos la Modalidad de simulación. Posteriormente indicaremos que queremos Conectar con el PLC, en nuestro caso con el simulador. A continuación clicaremos Transferir proyecto a PLC, en nuestro caso al simulador. Cuando finalice ejecutaremos el programa con el comando, Ejecutar (poner en RUN) del menú PLC.
  • 26. 26 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Por último, seleccionaremos Habilitar Modificación de variables, en el menú Servicios para habilitar la posibilidad de introducir y modificar valores de la pantalla de Operador. Programa en ST - (pr0101c) Este programa lo hemos estructurado en dos secciones: Preliminar escrito en lenguaje ST ControlLuz escrito en lenguaje ST Sección "Preliminar" en ST (* definimos las variables con las que vamos a trabajar en el programa. Las Ix_ serán las que utilicemos en control local y las MxP_ las que utilicemos desde la pantalla de operador *) 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); Sección "ControlLuz" en ST Qx_Luz:= (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);
  • 27. Problemas Schneider M340 - 27 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa mixto (ST y FBD) - (pr0101d) Este programa lo hemos estructurado en dos secciones: Preliminar escrito en lenguaje ST ControlLuz escrito en lenguaje FBD Sección "Preliminar" en ST (* definimos las variables con las que vamos a trabajar en el programa. Las Ix_ serán las que utilicemos en control local y las MxP_ las que utilicemos desde la pantalla de deoperador *) 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); Sección "ControlLuz" en FBD Introducción de las instrucciones, bloques en FFB Cuando creamos la sección nueva en código FBD aparece una nueva barra de herramientas De ella seleccionaremos el tercer icono <Asistente de entrada FFB> que nos dará acceso a la pantalla orden en que ejecuta la función número de instancia de la función
  • 28. 28 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón En la que indicaremos que tipo de FFB deseamos introducir. Si no sabemos su nombre, clicaremos en los 3 puntos de la derecha de la lista desplegable del "Tipo de FFB" y aparecerá una ventana. En ella abriremos la carpeta <Conjunto de librerias V6.0> y dentro de ésta, la carpeta Base Lib, a continuación buscaremos nuestra opción en la subcarpeta Logic. Seleccionamos la función deseada
  • 29. Problemas Schneider M340 - 29 Universidad de Oviedo ISA - J. Alonso - I. Machón y aceptaremos. A continuación clicando en la pantalla, y sin soltar el botón del ratón, arrastramos y soltamos, creando el acceso a la función deseada luego, sólo tenemos que arrastrar el punto de control negro para que la función muestre más o menos entradas. Con el séptimo icono indicaremos la consulta de estado 0 de una entrada. Pinchando en cualquiera de las entradas, podremos elegir la variable adecuada sobre la que hacer la consulta.
  • 30. 30 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sistemas secuenciales. Control por flanco. Funciones de memoria. Un sistema secuencial es aquel cuya salida no depende solamente de las variables de excitación externas o entradas, sino también del estado anterior o estado interno. Funciones SET, RESET, SR y RS Función SET Cuando se ejecuta la función SET, se realiza la puesta a 1 de forma memorizada del bit asociado. Si no se ejecuta, el bit no se modIfica. Representación en ST IF Combinación Lógica THEN Set (Qx_Luz) ; END_IF; Representación en FBD El bloque de función SET, lo obtenemos pulsAndo sobre Asistente de entrada FFB, de la barra de iconos FBD- Editor. Del conjunto de Librerias/Familias, desplegaremos <Conjunto de librerias V6.0> y dentro de ésta, la carpeta Base Lib, a continuación buscaremos nuestra opción en la subcarpeta Logic. Combinación Lógica Salida (Qx_Luz) 0 No cambia 1 1
  • 31. Problemas Schneider M340 - 31 Universidad de Oviedo ISA - J. Alonso - I. Machón (*Si queremos que nos salga la patilla de conexión EN -enable- en los bloques de programa SET y RESET, deberemos habilitar la casilla correspondiente Mostrar EN/ENO *) Función RESET Cuando se ejecuta la función RESET, se realiza la puesta a 0 de forma memorizada del bit asociado. Si no se ejecuta, el bit no se modIfica. Representación en ST IF Combinación Lógica THEN Reset (Qx_Luz) ; END_IF; Bloque de función de memoria biestable SR con SET prioritario. Se evalúan las combinaciones lógicas que hubiese en las entradas S1 y R y luego se procesa la función.  La salida Q1 será "1" cuando la entrada S1 sea "1". Permanece en este estado de forma memorizada incluso si la entrada S1 pasa a valer "0".  La salida Q1 no pasará a "0" hasta que la entrada R sea "1".  Si las entradas S1 y R son "1" a la vez, la entrada dominante S1 hará que la salida Q1 sea "1".  El estado inicial de Q1 durante la primera llamada del bloque de función es "0".  Se evalúan las combinaciones lógicas de las entradas S1 y R y luego se ejecuta la función Como parámetros adicionales se pueden configurar EN y ENO" Combinación Lógica Salida (Qx_Luz) 0 No cambia 1 0 SET RESET Salida 0 0 No cambia 0 1 0 1 0 1 1 1 1
  • 32. 32 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Bloque de función de memoria biestable RS con RESET prioritario. "Se evalúan las combinaciones lógicas que hubiese en las entradas S y R1 y luego se procesa la función.  La salida Q1 será "1" cuando la entrada S sea "1". Permanece en este estado de forma memorizada incluso si la entrada S pasa a valer "0".  La salida Q1 no pasará a "0" hasta que la entrada R1 sea "1".  Si las entradas S y R1 son "1" a la vez, la entrada dominante R1 hará que la salida Q1 sea "0".  El estado inicial de Q1 durante la primera llamada del bloque de función es "0".  Se evalúan las combinaciones lógicas de las entradas S y R1 y luego se ejecuta la función Como parámetros adicionales se pueden configurar EN y ENO" Función XOR "Realiza la función XOR entre dos entradas. Los tipos de datos de todos los valores de entrada y el del valor de salida deben ser iguales. El número de entradas podría ser como máximo 32. Se podrían configurar los parámetros adicionales EN y ENO" Representación en FBD Representación en ST Resultado := XOR (Valor_1, Valor_2) ; SET RESET Salida 0 0 No cambia 0 1 0 1 0 1 1 1 0 Ent1 Ent2 Salida 0 0 0 0 1 1 1 0 1 1 1 0
  • 33. Problemas Schneider M340 - 33 Universidad de Oviedo ISA - J. Alonso - I. Machón Tipos de datos comunes y rangos Ver más ampliado en [1] páginas 311- 371 BOOL / EBOOL : Variable Booleana será FALSA (0) o VERDADERA (1). EBOOL gestiona también la detección de flancos WORD : Representa una “cadena de 16 bits”, significando una longitud de datos de 16 bits INT : Tipo Entero con signo y formato de 16 bits. El rango de cada base es Decimal. De -32768 hasta 32767 Binaria. De 2#1000000000000000 a 2#0111111111111111 Octal. De 8#100000 a 8#077777 Hexadecimal. De 16#8000 a 16#7FFF DINT : Tipo Entero doble con signo y formato de 32 bits. El rango de cada base es Decimal. De -2147483648 hasta 2147482647 Binaria. De 2#10000000000000000000000000000000 a 2#01111111111111111111111111111111 Octal. De 8#10000000000 a 8#07777777777 Hexadecimal. De 16#80000000 a 16#7FFFFFFF UINT : Entero sin signo y formato de 16 bits. El rango de cada base es Decimal. De 0 a 65535 Binaria. De 2#0 a 2#1111111111111111 Octal. De 8#0 a 8#177777 Hexadecimal. De 16#0 a 16#FFFF REAL : Representa un valor decimal. El rango de valores es de -3.40e+38 a 3.40e+38 TIME: El tipo Time T# o TIME# se representa mediante un tipo entero doble sin signo (UDINT) Las unidades de tiempo permitidas para representar el valor son dias (D), horas (H), minutos (M), segundos (S) y milisegundos (MS) Ejemplo T#4D_5H_2M_45S_250MS Variables de tipo EBOOL La variable ebool es también una variable binaria igual que una de tipo bool, contiene el valor FALSE (=0) o TRUE (=1), pero también incluye información relativa a la gestión de los flancos ascendentes o descendentes y al forzado. Este tipo ocupa 1 byte en la memoria para almacenarlo. Todas las variables de entrada y salida, y todas aquellas de las cuales queramos evaluar un flanco (bien sea de subida o de bajada), deben ser declaradas como ebool, si no, daría un error.
  • 34. 34 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Constantes 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 ejecución. Valores literales "Los valores literales se usan para asignar valores a patillas, o asignar constantes a variables, y no cambiarlos por programa" Se pueden entrar valores literales como base 2 (binario) 2#1111111111111111 base 8 (octal) 8#177777 base 10 (decimal) 65535 (10# no se necesita) base 16 ( hex) 16#FFFF Tiempo (de 5 segundos) t#5s o time#5s
  • 35. Problemas Schneider M340 - 35 Universidad de Oviedo ISA - J. Alonso - I. Machón Instrucciones IF, THEN, END_IF, ELSE, ELSIF La instrucción IF ... THEN END_IF, determina que las acciones que vienen a continuación de THEN, se ejecutarán si la combinación lógica que hay entre IF y THEN es cierta (1), si esa combinación es falsa (0), no se ejecutarán. La palabra clave END_IF determina el final de la instrucción. IF Combinación Lógica THEN IF NOT Mx_Sensor AND Mx_PuertaAbierta THEN AccionA; SET (Qx_CerrarPuerta); AccionB ; SET (Qx_LRoja), END_IF ; END_IF; Otra instrucción que se emplea mucho es ELSE, esta instrucción viene después de la IF ... THEN, ELSIF o CASE. Si la instrucción ELSE viene después de la IF o la ELSIF, la instrucción o conjunto de instrucciones que la siguen, sólo se ejecutaran si la combinación lógica de IF o ELSIF es falsa (0). Si la combinación lógica de IF o ELSIF es cierta (1), la instrucción o conjunto de instrucciones no se ejecutarán. IF Combinación Lógica THEN IF NOT Mx_Sensor AND Mx_PuertaAbierta THEN AccionA; SET (Qx_CerrarPuerta); ELSE AccionB ; ELSE SET (Qx_AbrirPuerta), END_IF ; END_IF; Se pueden anidar varias instrucciones IF THEN, ELSE, END_IF con precaución. La instrucción ELSE viene siempre después la instrucción IF ... THEN. La instrucción ELSIF, determina que la siguiente instrucción o grupo de instrucciones, sólo se ejecutarán si la combinación lógica de IF es falsa (0) y la combinación lógica de la instrucción ELSIF es cierta (1). Si la instrucción IF es cierta (1) o la combinación de ELSIF es falsa (0), la instrucción o conjunto de instrucciones situadas después de ELSIF no se ejecutarán. El comando, THEN identifica el final de la combinación lógica y el principio de las instrucciones a ejecutar. Se pueden anidar varias instrucciones IF ... THEN ... ELSIF ... THEN ... END_IF generando una instrucción más compleja (mucho cuidado). Ejemplos IF A>B THEN IF A>B THEN IF B=C THEN C:=SIN(A) * COS(B) ; C:=SIN(A) * COS(B) ; B:=SUB(C,A) ; ELSE ELSIF A=B THEN B:=SUB(C,A) ; C:=ADD(A,B) ; END_IF ; B:=MUL(C,A) ; ELSIF A=B THEN END_IF ; C:=ADD(A,B) ; B:=MUL(C,A) ; ELSE C:=DIV(A,B) ; END_IF;
  • 36. 36 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Instrucción R_TRIG: Rising edge detection Esta función se usa para detectar el flanco positivo o de subida de una señal de entrada 0 -> 1. La salida Q será "1" si la entrada en CLK pasa de "0" a "1". La salida permanece en "1" durante 1 ciclo de programa, en el siguiente ciclo, automáticamente pasa a "0". En y ENO pueden ser activados adicionalmente como parámetros. Representación en FBD Representación en LD Representación en ST Salida := RE (Entrada) ; Instrucción F_TRIG: Falling edge detection Esta función se usa para detectar el flanco negativo o de bajada de una señal de entrada 1 -> 0. La salida Q será "1" si la entrada en CLK pasa de "1" a "0". La salida permanece en "1" durante 1 ciclo de programa, en el siguiente ciclo, automáticamente pasa a "0". En y ENO pueden ser activados adicionalmente como parámetros. Representación en FBD Representación en LD Representación en ST Salida := FE (Entrada) ;
  • 37. Problemas Schneider M340 - 37 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 1.2 · Conmutación de una luz mediante un pulsador. EM y EF Se desea controlar una luz que deberá conmutar su estado cada vez que se accione un pulsador. PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto BMX DDM16025 de entradas PNP a 24 VCC y salidas por relé a 24 VCC. La luz es de una potencia de 100 W a 230 VAC. Se pide: 1. Diseñar el esquema de mando y de fuerza del sistema. 2. Programa de mando
  • 38. 38 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de Mando, Esquema de fuerza BMX DDM 16025
  • 39. Problemas Schneider M340 - 39 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de variables Introducción de variables de E / S Un método sería abrir el editor de variables elementales, e ir introduciendo una a una especIficando su dirección física %I0.1.X o %Q0.1.X. Introducirlas de esta forma es un poco tedioso, por lo que propondremos otro método alternativo. Se procederá a clicar dos veces sobre el módulo de hardware BMX DDM 16025. En la pantalla que aparece se selecciona el nombre del módulo, en este caso BMX DDM 16025.
  • 40. 40 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón En la nueva pantalla, seleccionaremos la pestaña Objetos de E/S En ella activaremos las opciones %I y %Q. A continuación pulsaremos sobre el botón Actualizar cuadrícula. La ventana se transforma y nos aparecen todas las direcciones físicas de entradas y salidas del módulo. Ahora podremos introducir el nombre de nuestras variables asociadas a las direcciones físicas con la ventaja de que vemos exactamente que direcciones son de entrada y cuales de salida.
  • 41. Problemas Schneider M340 - 41 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa con secciones mixtas ST y LD - (pr0102a) Este es un típico problema secuencial. La salida depende de la entrada actual y del estado de una variable en el ciclo anterior (en este caso, Qx_Luz). Sección "Preliminar" en ST (* definimos las variables con las que vamos a trabajar en el programa. Las Ix_ serán las que utilicemos en control local y las MxP_ las que utilicemos desde la pantalla de deoperador *) Mx_Pulsador := (Ix_Pulsador And Ix_LocDis) Or (MxP_Pulsador And Not Ix_LocDis); Sección "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 rápido que lo hagamos, el autómata 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 detección del flanco ascendente del pulsador. Cuando pulsemos, será detectado por el AP y pondrá una memoria en 1 sólamente durante un ciclo de programa. Al ciclo siguiente el propio autómata 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 continuación se debe borrar el flanco para que no siga activo en ese ciclo de programa. Si no lo borrásemos, la luz se apagaría en la última instrucción. La luz no se activaría nunca pues lo único que pusimos a 1 fue una memoria en la tabla de asignación 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 habría sería un 0 y por tanto, la luz no se activaría nunca. En la última instrucción, si tenemos el flanco y la luz estuviese encendida, la apagaremos Reseteándola. No es necesario borrar el flanco, pues el propio AP lo borra. Recordemos que un flanco sólo está activo como máximo un ciclo de programa. Si lo borrásemos, no pasaría nada, simplemente ejecutaríamos una instrucción de más *)
  • 42. 42 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa con secciones mixtas ST y FBD (pr0102b) Sección "Preliminar" en ST (* Control local o a distancia*) Mx_Pulsador := (Ix_Pulsador And Ix_LocDis) Or (MxP_Pulsador And Not Ix_LocDis); Sección "Control_de_la_luz" en FBD Programa en lenguaje estructurado (pr0102c) Sección "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); (*Generación del flanco y utilización*) Mx_Flanco:= RE (Mx_Pulsador); IF Mx_Flanco And Not Qx_luz THEN SET (Qx_luz); RESET (Mx_Flanco); END_IF; IF Mx_Flanco And Qx_luz THEN RESET (Qx_luz); END_IF; Pantalla de operador
  • 43. Problemas Schneider M340 - 43 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en lenguaje ST y FBD con función SR (pr0102d) Sección "Preliminar" en ST (* Control local o a distancia*) Mx_Pulsador := (Ix_Pulsador And Ix_LocDis) Or (MxP_Pulsador And Not Ix_LocDis); Sección "Control_de_la_luz" en FBD (*Recordar: Se evalúan las dos entradas antes de proceder a ejecutar la función SR*) Programa en lenguaje ST y FBD con función XOR (pr0102e) Sección"Preliminar" en ST (* Control local o a distancia*) Mx_Pulsador := (Ix_Pulsador And Ix_LocDis) Or (MxP_Pulsador And Not Ix_LocDis); Sección "Control_de_la_luz" en FBD Ent1 Ent2 Salida 0 0 0 0 1 1 1 0 1 1 1 0
  • 44. 44 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Interfaces de ENTRADA y SALIDA Interfaces de entrada PNP Se dice que un interface de entrada es PNP, cuando para leer un estado de señal 1, a la borna del Autómata Programable (AP) le tiene que llegar un potencial positivo a través del elemento de campo. Cuando tenemos un sensor de 3 hilos, no podemos observar directamente si es PNP o NPN. Tienen dos terminales conectados al positivo y al negativo de la fuente de alimentación y el tercero, la carga "LOAD", está conectado a la borna del autómata. 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. Interfaces de entrada PNP DDI 1602 El módulo BMX DDI 1602 es un módulo binario de 24 VCC conectado a través de un bloque de terminales de 20 pins. Es un módulo de lógica positiva PNP (o común positivo): los 16 canales de entrada reciben corriente de los sensores.
  • 45. Problemas Schneider M340 - 45 Universidad de Oviedo ISA - J. Alonso - I. Machón Interfaces de entrada NPN Por el contrario, en un interface NPN, para leer un estado de señal 1, a la borna del autómata programable le llega un potencial negativo a través del elemento de campo. Interfaces mixtos de entradas PNP ó NPN ó por alterna DAI 1602 El módulo BMX DAI 1602 es un módulo binario de 24 VCA conectado a través de un bloque de terminales de 20 pins. Este módulo tiene 16 canales de entrada que funcionan con corriente alterna. Este módulo también se puede utilizar con 24 VCC, con lógica positiva o negativa.
  • 46. 46 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Interfaces mixtos de entradas PNP / salidas de relé BMX DDM 16025 El módulo BMX DDM 16025 es un módulo binario de 24 VCC conectado a través de un bloque de terminales de 20 pins. Es un módulo de lógica positiva PNP: los 8 canales de entrada reciben corriente de los sensores (común positivo). Las 8 salidas de relé aisladas funcionan con corriente continua (24 VCC) o con corriente alterna (de 24 a 240 VCA)
  • 47. Problemas Schneider M340 - 47 Universidad de Oviedo ISA - J. Alonso - I. Machón Interfaces de salida estáticos NPN BMX DDO 1612 El módulo BMX DDO 1612 es un módulo binario de 24 VCC conectado a través de un bloque de terminales de 20 pins. Es un módulo de lógica negativa NPN (o común positivo): sus 16 canales de salida reciben corriente de los preactuadores.
  • 48. 48 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Interfaces de salidas estáticas PNP BMX DDO 1602 El módulo BMX DDO 1602 es un módulo binario de 24 VCC conectado a través de un bloque de terminales de 20 pins. Es un módulo de lógica positiva PNP (o común negativo): los 16 canales de salida proporcionan corriente a los preactuadores. Corriente / canal 0,625 A Corriente módulo 10 A
  • 49. Problemas Schneider M340 - 49 Universidad de Oviedo ISA - J. Alonso - I. Machón Interfaces de salidas por relé BMX DRA 1605 El módulo BMX DRA 1605 es un módulo binario de 24 VCC o de 24 a 240 VCA conectado a través de un bloque de terminales de 20 pins. Los 16 canales de salida de relé no aislados funcionan con corriente alterna o con corriente continua.
  • 50. 50 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Interfaces de salidas triac BMX DAO 1605 El módulo BMX DAO 1605 es un módulo binario de 100 a 240 VCA conectado a través de un bloque de terminales de 20 pins. Sus 16 canales de salida triac funcionan con corriente alterna.
  • 51. Problemas Schneider M340 - 51 Universidad de Oviedo ISA - J. Alonso - I. Machón Interfaces mixtos de entradas/salidas estáticas PNP BMX DDM 3202K El módulo BMX DDM 3202 K es un módulo binario de 24 VCC conectado a través de un conector de 40 pins. Es un módulo de lógica positiva PNP: los 16 canales de entrada reciben corriente de los sensores (común positivo) y los 16 canales de salida proporcionan corriente a los preactuadores (común negativo) PNP.
  • 52. 52 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 53. Problemas Schneider M340 - 53 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 1.3 · Luz de museo mediante pulsadores. EM y EF Se desea controlar la activación y desactivación de la iluminación de un local, mediante el accionamiento de tres pulsadores de configuración normalmente abiertos. Como aplicación del enunciado, se puede suponer una sala de un museo, en la cual, se quiere que la iluminación no esté activada cuando la sala se encuentre vacía. Para ello en las tres puertas de acceso que tiene la sala figura el siguiente letrero: Cuando acceda a la sala y ésta se encuentre vacía accione el pulsador, que tiene en la puerta por la que entra, para encender la iluminación. Cuando abandone la sala y no quede persona alguna en el interior, accione el pulsador que tiene la puerta por la que sale. Los pulsadores S1, S2 y S3 se consideran NA. PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto BMX DDM16025 de entradas PNP a 24 VCC y salidas por relé a 24 VCC. Se pide: 1. Diseñar el esquema de mando y de fuerza del sistema. 2. Programa de mando Este programa lo hemos estructurado en una sóla sección: Control_Luz escrito en lenguaje ST S1 S2 S3 LUZ
  • 54. 54 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de Mando, Esquema de fuerza BMX DDM 16025
  • 55. Problemas Schneider M340 - 55 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de variables Programa en lenguaje estructurado ST - (pr0103) Sección "Control_Luz" (*Inicia variables*) Mx_Sensor0 := (Ix_Sensor0 And Ix_LocDis) Or (MxP_Sensor0 And Not Ix_LocDis); Mx_Sensor1 := (Ix_Sensor1 And Ix_LocDis) Or (MxP_Sensor1 And Not Ix_LocDis); Mx_Sensor2 := (Ix_Sensor2 And Ix_LocDis) Or (MxP_Sensor2 And Not Ix_LocDis); (*Control de la luz*) Mx_Flanco:= RE (Mx_Sensor0) Or RE (Mx_Sensor1) Or RE (Mx_Sensor2); *RE Rising Edge - Flanco ascendente, FE Falling Edge - Flanco descendente* If Mx_Flanco And Not Qx_Luz THEN Set (Qx_Luz); Reset (Mx_Flanco); END_IF; If Mx_Flanco And Qx_Luz THEN Reset (Qx_Luz); END_IF; Pantalla de operador Etiqueta Símbolo planos Dirección en PLC Tipo Comentarios Ix_Sensor0 S0 %I0.1.0 EBOOL Interruptor 0 Ix_Sensor1 S1 %I0.1.1 EBOOL Interruptor 1 Ix_Sensor2 S2 %I0.1.2 EBOOL Interruptor 2 Ix_LocDis S7 %I0.1.7 EBOOL Conmutador Local=1 Distancia=0 Qx_Luz H1 %Q0.1.16 EBOOL Luz MxP_Sensor0 BOOL Marca del interruptor 0 en la pantalla MxP_Sensor1 BOOL Marca del interruptor 1 en la pantalla MxP_Sensor2 BOOL Marca del interruptor 2 en la pantalla Mx_Sensor0 EBOOL Marca del interruptor 0 en el programa Mx_Sensor1 EBOOL Marca del interruptor 1 en el programa Mx_Sensor2 EBOOL Marca del interruptor 2 en el programa Mx_Flanco BOOL Marca de flanco
  • 56. 56 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Funciones de temporización Función TON de retraso en la conexión Representación del retardo de conexión TON: (1) Si IN se convierte en "1", se inicia el tiempo interno (ET). (2) Si el tiempo interno alcanza el valor de PT, Q se convierte en "1". (3) Si IN se convierte en "0", Q se convierte en "0" y se detiene/restablece el tiempo interno. (4) Si IN se convierte en "0" antes de que el tiempo interno haya alcanzado el valor de PT, se detiene/restablece el tiempo interno, sin que Q se haya convertido en "1". Representación en lenguaje ST TON_Instance (IN := (*BOOL*), PT := (*TIME*), Q => (*BOOL*), ET => (*TIME*)); TON_LVerde (IN := Mx_Arranque, PT := t#5s, Q => Qx_LVerde, ET => Mt_TiempoEnVerde);
  • 57. Problemas Schneider M340 - 57 Universidad de Oviedo ISA - J. Alonso - I. Machón Función TOF de retraso en la desconexión Representación del retardo de conexión TOF: (1) Si IN se convierte en "1", Q se convierte en "1". (2) Si IN se convierte en "0", se inicia el tiempo interno (ET). (3) Si el tiempo interno alcanza el valor de PT, Q se convierte en "0". (4) Si IN se convierte en "1", se convierte Q en "1" y se detiene/restablece el tiempo interno. (5) Si IN se convierte en "1" antes de que el tiempo interno haya alcanzado el valor de PT, se detiene/restablece el tiempo interno, sin que Q se haya convertido en "0". Representación en lenguaje ST TOF_Instance (IN := (*BOOL*), PT := (*TIME*), Q => (*BOOL*), ET => (*TIME*)); TOF_LMuseo (IN := Mx_Arranque, PT := t#10s, Q => Qx_LMuseo, ET => Mt_LRetraso);
  • 58. 58 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Función TP de impulso monoestable Representación del retardo de conexión TP: (1) Si IN se convierte en "1", Q se convierte en "1" y se inicia el tiempo interno (ET). (2) Si el tiempo interno alcanza el valor de PT, Q se convierte en "0" (independientemente de IN). (3) El tiempo interno se detiene/restablece, si IN se convierte en "0". (4) Si el tiempo interno aún no ha alcanzado el valor de PT, un ciclo en IN no tendrá influencia sobre el tiempo interno. (5) Si el tiempo interno ha alcanzado el valor de PT y si IN es "0", se detiene/restablece el tiempo interno y Q se convierte en "0". Representación en lenguaje ST TP_Instance (IN := (*BOOL*), PT := (*TIME*), Q => (*BOOL*), ET => (*TIME*)); TP_Luz (IN := Mx_Arranque, PT := t#10s, Q => Qx_Luz, ET => Mt_Luz);
  • 59. Problemas Schneider M340 - 59 Universidad de Oviedo ISA - J. Alonso - I. Machón Cómo introducir un Bloque de Función en el lenguaje ST (*Para introducir la orden anterior, lo más cómodo es utilizar el asistente de entrada FFB Desplegamos el Conjunto de librerías V6.0 y luego seleccionamos Timers & Counters. En la parte derecha elegimos el bloque deseado, en nuestro caso TOF
  • 60. 60 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón aparece otra ventana, donde le indicaremos el nombre elegido para nuestra función, p.e. TOF_10s aparece en el código un texto que podremos modificar en función de nuestra necesidad, para ello, sustituiremos los comentarios por las señales adecuadas TOF_10S (IN := (*BOOL*), PT := (*TIME*), Q => (*BOOL*), ET => (*TIME*)); TOF_10s (IN := Mx_OrdenEncendido, PT := t#10s, Q=> Qx_Luz);
  • 61. Problemas Schneider M340 - 61 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 2.1 · Luz de museo con temporizador. EM y EF Se desea controlar la activación y desactivación de la iluminación de un local, mediante el accionamiento de tres interruptores de configuración NA. Como aplicación del enunciado, se puede suponer una sala de un museo, en la cual, se quiere que la iluminación no esté activada cuando la sala se encuentre vacía. Para ello en las tres puertas de acceso que tiene la sala figura el siguiente letrero:  Cuando acceda a la sala y ésta se encuentre vacía accione el interruptor, que tiene en la puerta por la que entra, para encender la iluminación.  Cuando abandone la sala y no quede persona alguna en el interior, accione el interruptor que tiene la puerta por la que sale para apagar la iluminación La orden de apagado, espera 10 segundos antes de hacerse efectiva. PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo de entradas PNP BMX DDI 1602 y salidas PNP BMX DDO 1602. Se pide: 1. Diseñar el esquema de mando y de fuerza del sistema. 2. Programa de mando
  • 62. 62 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de Mando Esquema de fuerza BMX DDI 1602 BMX DDO 1602
  • 63. Problemas Schneider M340 - 63 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de variables 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 todavía 10 segundos más y luego apagarse automáticamente. Si se activase un interruptor en ese intervalo, la luz deberá permanecer encendida esperando de nuevo la activación de un interruptor para comenzar el proceso de apagarla. La función de temporización 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) ; Etiqueta Símbolo en los planos Dirección en PLC Tipo Comentarios Ix_Sensor0 S0 %I0.1.0 EBOOL Interruptor 0 Ix_Sensor1 S1 %I0.1.1 EBOOL Interruptor 1 Ix_Sensor2 S2 %I0.1.2 EBOOL Interruptor 2 Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0 Qx_Luz H1 %Q0.2.0 EBOOL Luz MxP_Sensor0 BOOL Marca del interruptor 0 en la pantalla MxP_Sensor1 BOOL Marca del interruptor 1 en la pantalla MxP_Sensor2 BOOL Marca del interruptor 2 en la pantalla Mx_Sensor0 BOOL Marca del interruptor 0 en el programa Mx_Sensor1 BOOL Marca del interruptor 1 en el programa Mx_Sensor2 BOOL Marca del interruptor 2 en el programa Mx_OrdenEncendido BOOL Marca para ver cuando está activa la orden
  • 64. 64 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón TOF_10s (IN := Mx_OrdenEncendido, PT := t#10s, Q=> Qx_Luz); (*También podríamos haber utilizado la salida del temporizador de la siguiente forma Qx_Luz:= TOF_10s.Q ; *) Programa en lenguaje FBD - (pr0201a)
  • 65. Problemas Schneider M340 - 65 Universidad de Oviedo ISA - J. Alonso - I. Machón Cómo exportar e importar pantallas de operador Para construir esta pantalla de operador podremos aprovechar la hecha en el problema 0101. Para ello en dicho problema nos situamos encima de la carpeta que pone pantalla de operador y pulsAndo el botón derecho seleccionamos "exportar pantalla" asignándole un nombre. Luego en nuestro problema, nos pondremos encima de la carpeta de pantalla de operador y seleccionaremos importar pantalla. Le diremos donde la hemos almacenado y seleccionaremos la que deseamos. Luego añadiremos todo lo que necesitemos o modificamos lo que necesitemos. Pantalla de operador
  • 66. 66 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón El tiempo temporizado antes de la desconexión de la luz (TOF_10s.ET), lo podemos visualizar con la opción "Campo de entrada" (décima opción de la barra IOSEditor). Selección del valor tiempo actual de un temporizador como variable de control O bien se escribe directamente en el campo variable p.e. "TOF_10s.ET", o bien se clica en el botón de los tres puntos. Una vez hecho esto, se selecciona "Bloque de funciones" y se despliega la carpeta de salidas de la función TOF "TOF_10s", a continuación se selecciona la salida ET y se acepta.
  • 67. Problemas Schneider M340 - 67 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 2.2 · Semáforo simple Realizar el control luminoso de un semáforo que siga la secuencia continua de 30 segundos en verde, 5 segundos ámbar, 25 segundos rojo mientras esté presente una señal de comienzo de ciclo (arranque). La secuencia que van a seguir los temporizadores será: Qx_LVerde Qx_LAmbar Qx_LRoja Ix_Arranque 0 30 35 60 t (s) t (s) t (s) 35 30 TON_Verde.ET TON_Ambar.ET TON_Rojo.ET TON_Verde.Q TON_Ambar.Q TON_Rojo.Q PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas PNP BMX DDM3202K
  • 68. 68 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de variables Programa en lenguaje FBD - (pr0202) Etiqueta Símbolo en los planos Dirección en PLC Tipo Comentarios Ix_Arranque S1 %I0.1.0 EBOOL Interruptor de arranque del sistema Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0 Qx_LVerde H1 %Q0.1.16 EBOOL Luz verde Qx_LAmbar H2 %Q0.1.17 EBOOL Luz ámbar Qx_LRoja H3 %Q0.1.18 EBOOL Luz roja MxP_Arranque BOOL Marca del interruptor de arranque en la pantalla Mx_Arranque EBOOL Marca del interruptor de arranque en el programa
  • 69. Problemas Schneider M340 - 69 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de operador
  • 70. 70 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Cómo insertar una imagen en la pantalla de operador Para insertar una imagen, pulsaremos sobre el 8º icono de la barra IOSEditor "imagen" Nos saldrá una pantalla en la cuál elegiremos la imagen del directorio apropiado. La imagen deberá estar en formato JPG o BMP, no admite otros tipos. ¡MUY IMPORTANTE! Si queremos que las imágenes insertadas se vean en otro computador diferente con el que estamos trabajando, debemos seleccionarlas una vez insertadas, y a continuación hacer click con el botón derecho, seleccionar "propiedades" y elegir la pestaña "imagen", después deberemos activar una opción que pone "Imagen copiada en el espacio actual".
  • 71. Problemas Schneider M340 - 71 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 2.3 · Semáforo coche-peatón con intermitencia Obtención de una red semafórica mediante funciones de temporización con la siguiente secuencia: PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas PNP BMX DDM3202K Tabla de variables tiqueta Símbolo en los planos Dirección en PLC Tipo Comentarios Ix_Arranque S1 %I0.1.0 EBOOL Interruptor de arranque del sistema Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0 Qx_LVerdeCo H1 %Q0.1.16 EBOOL Luz verde coches Qx_LAmbarCo H2 %Q0.1.17 EBOOL Luz ámbar coches Qx_LRojaCo H3 %Q0.1.18 EBOOL Luz roja coches Qx_LRojaPe H4 %Q0.1.19 EBOOL Luz roja peatones Qx_LVerdePe H5 %Q0.1.20 EBOOL Luz verde peatones MxP_Arranque BOOL Marca del interruptor de arranque en la pantalla Mx_Arranque EBOOL Marca del interruptor de arranque en el programa
  • 72. 72 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en lenguaje FBD - (pr0203)
  • 73. Problemas Schneider M340 - 73 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de operador
  • 74. 74 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 75. Problemas Schneider M340 - 75 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 2.4 · Arranque estrella – triángulo. EM y EF (Resolver) Se deberá controlar el arranque de un motor en configuración estrella-triángulo. Para pasar de estrella a triángulo se esperaran 5 segundos. Cuando el sistema esté parado, estará encendida una luz roja, cuando los motores estén funcionando, se encenderá una luz verde. Se indicará mediante una luz fija ámbar si ha habido un defecto de sobrecorriente en el motor. En ese caso, nos deberemos de asegurar que el motor parará mediante software y hardware. Se pide:  Programa de Mando, .  Esquema de fuerza con todas las protecciones necesarias.  Esquema de Mando, . PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 3500 (24VDC 36W, eficiencia del 82%) alimenta almódulo mixto de entradas salidas BMX DDM16025 las entradas son PNP a 24 VCC y las salidas por relé a 230 VAC. El rearme del térmico será manual. Tabla de variables Etiqueta Símbolo en los planos Dirección en PLC Tipo Comentarios Ix_Emergencia S1 %I0.1.0 EBOOL Seta de emergencia Ix_Marcha S2 %I0.1.1 EBOOL Pulsador para arrancar el motor Ix_Paro S3 %I0.1.2 EBOOL Pulsador de paro Ix_Termico S4 %I0.1.3 EBOOL Contacto NA del térmico Ix_LocDis S7 %I0.1.7 EBOOL Conmutador Local=1 Distancia=0 Qx_Km1 KM1 %Q0.1.19 EBOOL Contactor del centro de la estrella Qx_Km2 KM2 %Q0.1.20 EBOOL Contactor que alimenta a las fases U1, V1, W1 del motor Qx_Km3 KM3 %Q0.1.21 EBOOL Contactor para pasar a triangulo Qx_Lverde L1 %Q0.1.16 EBOOL Luz verde Qx_Lroja L2 %Q0.1.17 EBOOL Luz roja Qx_Lambar L3 %Q0.1.18 EBOOL Luz ámbar
  • 76. 76 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de fuerza Esquema de Mando,
  • 77. Problemas Schneider M340 - 77 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 2.5 · Puerta automática. EM y EF (Resolver) Mediante un autómata, se desea controlar la puerta automática de un supermercado. El sistema deberá abrir dicha puerta de forma automática cuando alguien entre o salga. La detección se realiza mediante 2 detectores de ultrasonidos, uno para entrar y otro para salir. Una vez abierta la puerta y pasados 5 segundos sin detectar ninguna persona, la puerta se deberá cerrar automáticamente. Cuando esté cerrando, si se detecta una persona, deberá parar y abrir de nuevo la puerta. Existe una seta de emergencia NC que abrirá la puerta permanentemente mientras esté activada. Inicialmente la puerta deberá estar cerrada. PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM16025 con entradas PNP a 24 VCC y salidas por relé a 230 VAC. El rearme del térmico será manual. Tabla de variables Se pide. Programa de control. Esquema de Mando, y de fuerza con todas las protecciones necesarias. Etiqueta Símbolo en los planos Dirección en PLC Tipo Comentarios Ix_DetEntrada B1 %I0.1.0 EBOOL Detector de la entrada Ix_DetSalida B2 %I0.1.1 EBOOL Detector de la salida Ix_FCA S1 %I0.1.2 EBOOL Final de carrera de puerta abierta Ix_FCC S2 %I0.1.3 EBOOL Final de carrera de puerta cerrada Ix_Seta S3 %I0.1.4 EBOOL Seta de emergencia NC Ix_LocDis S15 %I0.1.7 EBOOL Conmutador Local=1 Distancia=0 Qx_Abrir KM1 %Q0.1.16 EBOOL Activa el contactor para que abra la puerta Qx_Cerrar KM2 %Q0.1.17 EBOOL Activa el contactor para que cierre la puerta
  • 78. 78 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de fuerza y de Mando,
  • 79. Problemas Schneider M340 - 79 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 2.6 · Motor CC Mediante un autómata, se desea controlar la puesta en marcha, parada y sentido de giro de un motor de corriente continua. Los dispositivos de Mando, S0, S1 y S2 son pulsadores NA. El motor se pondrá en funcionamiento si se pulsan S0 y S1 simultáneamente de forma seguida durante más de dos segundos. El paro del motor se producirá en el momento en el que se pulse exclusivamente S0 de forma seguida durante más de dos segundos o exclusivamente S1 de forma seguida durante más de dos segundos. Un contactor KM0 se encarga de la marcha/parada del motor. El pulsador S2 se empleará para invertir el sentido de giro que el motor tuviera en ese momento de ser pulsado. Por motivos de seguridad se requiere desconectar el motor durante 500 ms mientras se realiza la maniobra de inversión de giro. La conmutación del cambio de sentido de giro se lleva a cabo usando un relé de contactos conmutados K1. La conmutación de K1 se producirá 200 ms después de solicitar la inversión de giro mediante pulsación de S2. PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM16025 con entradas PNP a 24 VCC y salidas por relé a 230 VAC. Tabla de variables Programa en lenguaje estructurado ST - (pr0206) Sección "Preliminar " (*Inicia variables*) Mx_S0:= (Ix_S0 And Ix_LocDist) Or (MxP_S0 And Not Ix_LocDist); Mx_S1:= (Ix_S1 And Ix_LocDist) Or (MxP_S1 And Not Ix_LocDist); Mx_S2:= (Ix_S2 And Ix_LocDist) Or (MxP_S2 And Not Ix_LocDist); MxP_LRoja:= Qx_KM0 And Qx_KM1; MxP_LVerde:= Qx_KM0 And Not Qx_KM1;
  • 80. 80 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "Control " (*Control del motor*) (* Temporiza cuando ambos pulsadores S0 y S1 son pulsados simultáneamente, TON, PT=2s *) TON_Marcha (IN := Mx_S0 And Mx_S1, PT := t#2s); (* Temporiza cuando única y exclusivamente se pulsa S0 o S1, TON, PT=2s *) TON_Parada (IN := Mx_S0 xor Mx_S1, PT := t#2s); (*Si se desea realizar la función XOR usando OR y AND el código sería: Temp_Parada (IN := (Mx_S0 And Not Mx_S1) Or (Not Mx_S0 And Mx_S1), PT := t#2s); *) (* Temporiza un pulso de 500ms cuando se pulsa S2, TP, PT=500ms *) TP_Parada_Inversion (IN := Mx_S2, PT := t#500ms); (* Temporiza un pulso de 200ms cuando se pulsa S2, TP, PT=200ms *) TP_Inversion (IN := Mx_S2, PT := t#200ms); (*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 := (TP_Parada_Inversion.Q); Mx_T_Inversion:=(TP_Inversion.Q); (*El motor debe ponerse en marcha si se ha pulsado durante más de dos segundos S0 y S1, o también si ya se encontraba en marcha y paró para invertir el giro debe seguir en marcha*) If TON_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 más de dos segundos exclusivamente S0 o S1*) If TON_Parada.Q THEN Reset(Qx_KM0); Reset(Mx_Marcha); END_IF; (*El motor debe pararse si se va a proceder a una inversión de giro. Obsérvese 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 TP_Parada_Inversion.Q THEN Reset(Qx_KM0); END_IF; (*Cuando se produzca un flanco de bajada en el temporizador Temp_Inversion y si el motor se encuentra en estado de Marcha se produce la conmutación de K1*) If (FE(Mx_T_Inversion) And Mx_Marcha) THEN Qx_KM1:=Not Qx_KM1; END_IF; (*Cronograma del temporizador tipo TP *)
  • 81. Problemas Schneider M340 - 81 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de operador Detalle de los elementos que componen la Pantalla de Operador
  • 82. 82 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Funciones de comparación EQ, NE, LE, LT, GE, GT La función comprueba los valores de entradas sucesivas respecto a una secuencia. Si el resultado de la comparación es cierto, la salida de la función será un 1 lógico (true), si no será un 0 lógico (false). Los tipos de datos de todos los valores de entrada deben ser iguales. Se puede aumentar el número de entradas como máximo a 31. Al comparar variables de los tipos de datos BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT y TOD, se compararán los valores entre sí. Si se trata de variables de tipo STRING, se compararán según el orden alfabético; cuanto más atrás en el alfabeto se encuentre un valor, más alta será su expresión. Fórmula OUT = 1, cuando (IN1 ≤ IN2) & (IN2 ≤ IN3) & .. & (IN(n-1) ≤ INn) Representación 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 *) Representación en lenguaje FBD
  • 83. Problemas Schneider M340 - 83 Universidad de Oviedo ISA - J. Alonso - I. Machón Construcción de un oscilador con comparadores Lo primero que debemos plantearnos es a que frecuencia lo queremos. Si es de 1Hz, no hay problema. Existe un bit del sistema, el bit %S6, que oscila a esa frecuencia. Lo mismo que el %S4 que tiene una frecuencia de 100Hz, el %S5 de 10Hz y el %S7 que tiene un periodo de 1 minuto. Si queremos otra frecuencia diferente, por ejemplo 2Hz, sabemos que el periodo es el inverso de la frecuencia, por tanto, 𝑇 = 1 𝑓 = 1 2 = 0,5 𝑠 = 500 𝑚𝑠 deberemos generar una señal que tenga de periodo 500 ms y esté 250 ms en "1" y 250 ms en "0" de forma continua mientras lo demandemos con una señal de control. Para ello lanzaremos un temporizador de 500ms con retraso a la conexión y activado con la señal "Control". Cuando el valor actual del temporización llegue al valor de preselección, 500 ms, el valor actual quedará fijo y la salida binaria T_Osc2HZ.Q pasará a valer "1" lógico. Mediante un comparador podemos saber si estamos dentro de los primeros 250 ms del ciclo cuando la señal de control está activa y con ello poner a "1" la salida Mx_Osc2HZ.
  • 84. 84 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Ahora bien, debemos lanzar de nuevo el temporizador para generar otro ciclo. Lo vamos a hacer arrancando el temporizador cuando esté la señal 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 también. Al ciclo siguiente vuelve a ser cierta la condición de arranque y se produce un nuevo ciclo. Funciona así ininterrumpidamente hasta que la señal de control pase a "0".
  • 85. Problemas Schneider M340 - 85 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 3.1 · Semáforo con comparadores Una vez activada la entrada Ix_Arranque, se habilitará una red semafórica mediante un temporizador y funciones de comparación con la siguiente secuencia: PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM3202K entradas y salidas PNP. Tabla de variables Etiqueta Símbolo en los planos Dirección en PLC Tipo Comentarios Ix_Arranque S1 %I0.1.0 EBOOL Interruptor de arranque del sistema Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0 Qx_LVerdeCo H1 %Q0.1.16 EBOOL Luz verde coches Qx_LAmbarCo H2 %Q0.1.17 EBOOL Luz ámbar coches Qx_LRojaCo H3 %Q0.1.18 EBOOL Luz roja coches Qx_LRojaPe H4 %Q0.1.19 EBOOL Luz roja peatones Qx_LVerdePe H5 %Q0.1.20 EBOOL Luz verde peatones MxP_Arranque BOOL Marca del interruptor de arranque en la pantalla Mx_Arranque BOOL Marca del interruptor de arranque en el programa Mx_Oscilador2Hz BOOL
  • 86. 86 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Cronograma Programa en ST - (pr0301) (* definimos las variables con las que vamos a trabajar en el programa. Las Ix_ serán las que utilicemos en control local y las MxP_ las que utilicemos desde la pantalla de operador *) Mx_Arranque := (Ix_Arranque And Ix_LocDist) Or (MxP_Arranque And Not Ix_LocDist); (* Temporiza el ciclo completo de la red semafórica, TON, PT=50s *) TON_Ciclo (IN := Mx_Arranque AND NOT TON_Ciclo.Q, PT := t#50s); (* Salidas de los semáforos*) Qx_LVerdeCo := Mx_Arranque AND TON_Ciclo.ET <= t#20s; Qx_LAmbarCo := (TON_Ciclo.ET > t#20s AND TON_Ciclo.ET <= t#23s) OR (TON_Ciclo.ET > t#23s AND TON_Ciclo.ET <= t#25s AND Mx_Osc2Hz); Qx_LRojaCo := TON_Ciclo.ET > t#25s AND TON_Ciclo.ET <= t#50s; Qx_LRojaPe := (Mx_Arranque AND TON_Ciclo.ET <= t#27s) OR (TON_Ciclo.ET > t#48s AND TON_Ciclo.ET <= t#50s); Qx_LVerdePe := (TON_Ciclo.ET > t#27s AND TON_Ciclo.ET <= t#45s) OR (TON_Ciclo.ET > t#45s AND TON_Ciclo.ET <= t#48s AND Mx_Osc2Hz); (* Se programa el oscilador de 2 Hz, T=500 ms *) TON_Oscilador (IN := Mx_Arranque AND NOT TON_Oscilador.Q, PT := t#500ms); Mx_Osc2Hz := Mx_Arranque AND TON_Oscilador.ET <= t#250ms;
  • 87. Problemas Schneider M340 - 87 Universidad de Oviedo ISA - J. Alonso - I. Machón Crear y direccionar varias pantallas de operador En este ejercicio vamos a implementar 2 pantallas de operador. En la primera estaremos viendo el semáforo con el tiempo transcurrido del ciclo. En la segunda, veremos el cronograma y el tiempo transcurrido del ciclo. En ambas pantallas, habrá un botón que nos permitirá cambiar de una a otra. Una vez creadas dos pantallas y asignadas un nombre –es más fácil identificar un nombre que un número- 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 botón con el nombre de la otra pantalla. Con el botón derecho del ratón seleccionamos propiedades. El campo Valor, nos permitirá seleccionar la pantalla deseada de las que tengamos creadas. En el campo Nombre, saldrá automáticamente el nombre que le hubiésemos asignado previamente.
  • 88. 88 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 89. Problemas Schneider M340 - 89 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 3.2 · Semáforo completo con petición de paso Diseñar un circuito de control para un semáforo, que será utilizado por los peatones de manera esporádica. La luz verde, que controla el paso de coches, se hallará normalmente activada, debiendo solicitar el peatón, mediante un pulsador, el permiso de paso. Cuando el peatón solicita permiso de paso, accionando el pulsador, se pone en marcha una secuencia de activación y desactivación de las diferentes luces que componen el semáforo, como indica la figura. La secuencia temporal tiene como valores de tiempos los indicados a continuación: Una vez activado el pulsador de peatones, la luz verde de coches debe permanecer activada cuatro segundos más, desactivándose 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 activación 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 después de haberlo hecho la luz roja de coches, permaneciendo activada, durante veintidós segundos, con luz fija, y, cuatro segundos, con luz parpadeante.
  • 90. 90 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón 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 después de haberlo hecho la luz verde de peatones, momento en el que se activará la luz verde de coches. La frecuencia de oscilación 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 petición anterior, se tendrá en cuenta, activándose 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 mínimo de sesenta y ocho segundos, (petición 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, desactivándose cuando empiece a ser atendida la demanda por darse las condiciones de paso peatonal. PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM3202K entradas y salidas PNP. Tabla de variables Etiqueta Símbolo en los planos Dirección en PLC Tipo Comentarios Ix_Pulsador S1 %I0.1.0 EBOOL Inicio de ciclo Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0 Qx_LVerdeCo H1 %Q0.1.16 EBOOL Luz verde coches Qx_LAmbarCo H2 %Q0.1.17 EBOOL Luz ámbar coches Qx_LRojaCo H3 %Q0.1.18 EBOOL Luz roja coches Qx_LRojaPe H4 %Q0.1.19 EBOOL Luz roja peatones Qx_LVerdePe H5 %Q0.1.20 EBOOL Luz verde peatones Qx_LEspere H6 %Q0.1.21 EBOOL Luz de espere MxP_Pulsador BOOL Marca del pulsador de arranque en la pantalla Mx_Pulsador EBOOL Marca del pulsador de arranque en el programa Mx_IniCiclo BOOL Mx_PeticionPaso BOOL Mx_Oscilador2hz BOOL
  • 91. Problemas Schneider M340 - 91 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en ST - (pr0302) Sección "Control" Cuando se activa el pulsador de peatones se memoriza la petición, comenzando el ciclo y no permite que se reinicie hasta que no termine el ciclo anterior. Cuando se permite pasar al peatón, luz verde, se borra la petición, pero si hay otra petición cuando la luz roja de peatones esté encendida, se vuelve a memorizar para atenderla cuando termine el ciclo en curso. (*Generación de señales*) Mx_Pulsador := (Ix_Pulsador And Ix_LocDist) Or (MxP_Pulsador And Not Ix_LocDist); IF Mx_Pulsador THEN SET (Mx_PeticionPaso); ELSIF NOT Qx_LrojaPe THEN (*cuando se apaga la luz roja de los peatones reseteamos la PP*) RESET (Mx_PeticionPaso); END_IF; IF Mx_PeticionPaso AND NOT TON_Ciclo.Q THEN (* NOT t_Ciclo.Q es fundamental para una vez que terminó un ciclo, y haya caido la entrada que arranca el temporizador de ciclo, vuelva a arrancar al ciclo siguiente si hubiese demanda *) SET (Mx_IniCiclo); ELSIF TON_Ciclo.Q THEN (* Al finalizar el ciclo, salida Q=1, se desactiva la entrada y por tanto cae el temporizador*) RESET (Mx_IniCiclo); END_IF; (* Temporiza el ciclo completo de 68 segundos de la red semafórica y crea los bit de control*) TON_Ciclo (IN := Mx_IniCiclo, PT := t#68s); (* Salidas de los semáforos*) Qx_LVerdeCo := Not Mx_IniCiclo Or t_Ciclo.ET <= t#4s Or t_Ciclo.ET > t#43s; Qx_LAmbarCo := (t_Ciclo.ET > t#4s AND t_Ciclo.ET <= t#8s) OR (t_Ciclo.ET > t#8s AND t_Ciclo.ET <= t#13s AND Mx_Osc2Hz); Qx_LRojaCo := t_Ciclo.ET > t#13s AND t_Ciclo.ET <= t#43s; Qx_LRojaPe := Not Mx_IniCiclo Or t_Ciclo.ET <= t#15s OR t_Ciclo.ET > t#41s; Qx_LVerdePe := (t_Ciclo.ET > t#15s AND t_Ciclo.ET <= t#37s) OR (t_Ciclo.ET > t#37s AND t_Ciclo.ET <= t#41s AND Mx_Osc2Hz); Qx_LEspere:=Mx_PeticionPaso; (* Se programa el oscilador de 2 Hz, T=500 ms *) TON_Oscilador (IN := Mx_IniCiclo AND NOT TON_Oscilador.Q, PT := t#500ms); Mx_Osc2Hz := Mx_IniCiclo AND TON_Oscilador.ET <= t#250ms;
  • 92. 92 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de operador
  • 93. Problemas Schneider M340 - 93 Universidad de Oviedo ISA - J. Alonso - I. Machón Funciones de contador Contador ascendente Los bloques de función se utilizan para el conteo progresivo. En caso de señal "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 parámetros adicionales se pueden configurar EN y ENO. Nota: El contador sólo funciona hasta alcanzar los valores máximos del tipo de datos utilizado. No se produce ningún desborde. Representación en lenguaje FBD Representación en lenguaje ST CTU_Instance (CU := (*BOOL*), R := (*BOOL*), PV := (*INT*), Q => (*BOOL*), CV => (*INT*));
  • 94. 94 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Contador descendente Los bloques de función se utilizan para el conteo regresivo. En caso de señal "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 parámetros adicionales se pueden configurar EN y ENO. Nota: El contador sólo funciona hasta alcanzar los valores mínimos del tipo de datos utilizado. No se produce ningún desborde. Representación en lenguaje FBD Representación en lenguaje ST CTD_Instance (CD := (*BOOL*), R := (*BOOL*), PV := (*INT*), Q => (*BOOL*), CV => (*INT*));
  • 95. Problemas Schneider M340 - 95 Universidad de Oviedo ISA - J. Alonso - I. Machón Contador ascendente-descendente Los bloques de función se utilizan para el conteo progresivo y regresivo. En caso de señal "1" en la entrada R se asigna el valor "0" a la salida CV. En caso de señal "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 señal simultánea "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 parámetros adicionales se pueden configurar EN y ENO. Nota: El contador sólo funciona hasta alcanzar los valores mínimos (contador regresivo) o los valores máximos (contador progresivo) del tipo de datos utilizado. No se produce ningún desborde. Representación en lenguaje FBD Representación en lenguaje ST CTUD_Instance (CU := (*BOOL*), CD := (*BOOL*), R := (*BOOL*), LD := (*BOOL*), PV := (*INT*), QU => (*BOOL*), QD => (*BOOL*), CV => (*INT*));
  • 96. 96 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 97. Problemas Schneider M340 - 97 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 4.1 · Control de acceso a sala comercial Se desea controlar el acceso, de manera automática, a una sala comercial con una capacidad de cien plazas de asiento. Admitiendo diez personas más de las autorizadas, que tendrían que permanecer de pie. 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 física entre ellas es la mínima, de manera que siempre se interrumpirán también simultáneamente durante la entrada. De forma semejante sucede cuando una persona sale de la sala. Primero interrumpirá la barrera "B" y después 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 más 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 activaríamos. Dispondremos de un pulsador de Reset para inicializar el contador a 0 en cualquier momento. PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM3202K entradas y salidas PNP. V A A B A B R Entrar Salir SALA DE 100 PLAZAS
  • 98. 98 - Problemas Schneider M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de variables Funcionamiento El sensor nos dará una señal de dos canales A y B desfasados como se ve en la imagen Cuando la persona entra, se interrumpe el sensor A y luego el B. La señal del flanco ascendente del B cuando el sensor A esté dando un 1, la utilizaremos para contar una persona –el móvil va de izquierda a derecha. Cuando la persona sale, se interrumpe el sensor B y luego el A. La señal del flanco descendente del B cuando el sensor A esté dando un 1, la utilizaremos para descontar una persona –el móvil va de derecha a izquierda. Etiqueta Símbolo en los planos Dirección en PLC Tipo Comentarios Ix_RearmaCont S1 %I0.1.0 EBOOL Rearma el contador a 0 Ix_SensorA S2 %I0.1.1 EBOOL Entrada del sensor A Ix_SensorB S3 %I0.1.2 EBOOL Entrada del sensor B Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0 Qx_LVerde H1 %Q0.1.16 EBOOL Luz verde Qx_LAzul H2 %Q0.1.17 EBOOL Luz azul Qx_LRoja H3 %Q0.1.18 EBOOL Luz roja MxP_RearmaCont BOOL Mx_RearmaCont BOOL MxP_SensorA BOOL Mx_SensorA EBOOL MxP_SensorB BOOL Mx_SensorB EBOOL Canal A Canal B
  • 99. Problemas Schneider M340 - 99 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en ST - (pr0401b) (*Generación de señales*) Mx_RearmaCont := (Ix_RearmaCont And Ix_LocDis) Or(MxP_RearmaCont And Not Ix_LocDis); Mx_SensorA := (Ix_SensorA And Ix_LocDis) Or(MxP_SensorA And Not Ix_LocDis); Mx_SensorB := (Ix_SensorB And Ix_LocDis) Or(MxP_SensorB And Not Ix_LocDis); (* Programamos el contador *) Mx_Entra:=Mx_SensorA AND RE (Mx_SensorB); Mx_Sale:=Mx_SensorA AND FE (Mx_SensorB); Contador (R:=Mx_RearmaCont, CU:=Mx_Entra, CD:=Mx_Sale, PV:=200); (* Programamos las salidas *) Qx_LVerde := Contador.CV < 100; Qx_LAzul := Contador.CV >= 100 And Contador.CV < 110; Qx_LRoja := Contador.CV >= 110; Pantalla de operador
  • 100. 100 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en FBD - (pr0401a)
  • 101. Problemas M340 - 101 Universidad de Oviedo ISA - J. Alonso - I. Machón Cómo cambiar el valor actual de un contador Para cambiar el valor actual, lo seleccionamos con el cursor y tecleamos el valor deseado.
  • 102. 102 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 103. Problemas M340 - 103 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 4.2 · Control de un contador reversible Realizar un programa para que mediante dos pulsadores podamos modificar el contenido de un contador reversible (C0). Mediante el pulsador "Incrementa" podemos incrementar el contador de unidad en unidad en cada pulsación. Si queremos aumentar de manera más rápida el contenido del contador debemos mantener pulsado durante más de dos segundos, momento en el cual el contador se modificará a una velocidad 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 autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM3202K entradas y salidas PNP. Tabla de variables 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; CTUD_Contador (R:=Mx_Res, CU:=Mx_Inc, CD:=Mx_Dec, PV:=1000); Etiqueta Símbolo en los planos Dirección en PLC Tipo Comentarios Ix_Incrementa S1 %I0.1.0 EBOOL Pulsador para incrementar el contador Ix_Decrementa S2 %I0.1.1 EBOOL Pulsador para decrementar el contador Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0 MxP_Incrementa BOOL Mx_Incrementa BOOL MxP_Decrementa BOOL Mx_Decrementa BOOL
  • 104. 104 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón (* Programamos el oscilador de 4 Hz *) TON_2S (IN:=Mx_Incrementa Or Mx_Decrementa, PT:=t#2s); TON_Osc4HZ (IN:= TON_2S.Q And Not TON_Osc4HZ.Q, PT:=t#250ms); Mx_Osc4hz := TON_Osc4HZ.ET >t#125ms; Pantalla de operador
  • 105. Problemas M340 - 105 Universidad de Oviedo ISA - J. Alonso - I. Machón GRAFCET - SFC Cuando en una automatización tenemos una parte secuencial, lo más fácil es hacer esta parte mediante un GRAFCET. Emplearemos el GRAFCET de nivel 2 en el que se hace una descripción a nivel tecnológico y operativo del automatismo. En el quedan perfectamente definidas las diferentes tecnologías utilizadas para cada función y las tareas que han de realizar los elementos escogidos. A la hora de implementar nuestro programa, como emplearemos un AP, utilizaremos el GRAFCET de nivel 3 donde vendrán recogidas todas las entradas, salidas, memorias y demás elementos utilizados en nuestra programación. Emplearemos siempre etiquetas para referirnos a las entradas y salidas físicas, pues como vemos en la siguiente figura, el trabajar sin etiquetas asociadas a las variables dificultaría mucho la comprensión de su funcionamiento. Puesto que hay muchas empresas en las que no se permite el empleo GRAFCET para la programación, utilizaremos este GRAFCET de nivel 3 para hacer una programación por fases como veremos más adelante. Tambíen veremos posteriormente el método GEMMA, con el que desarrollaremos el trabajo final de la asignatura.
  • 106. 106 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 5.1 · Portón mediante GRAFCET Diseñar el circuito lógico que realice la apertura y cierre de un portón de los tres modos siguientes: a) Cuando se acciona el pulsador "P" y esté cerrado, ha de iniciar la maniobra de apertura y no interrumpir ésta, hasta que el portón accione el final de carrera "A" (ABIERTO). Cuando se acciona el pulsador "P" y esté abierto, ha de iniciar la maniobra de cierre y no interrumpir ésta hasta que el portón accione el final de carrera "C" (CERRADO). b) Manteniendo la maniobra base, expuesta en el apartado, "a)", en el caso de q ue se produjera, durante la maniobra de apertura, el accionamiento del pulsador "P", el portón debe pararse, permaneciendo en este estado hasta que se produzca de nuevo el accionamiento del pulsador, "P", momento en el cual debe proceder a la maniobra de cierre. De forma análoga, si, durante la maniobra de cierre, se acciona el pulsador "P", el portón 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 portón, éste no permanezca en este estado indefinidamente, sino que, una vez transcurridos diez segundos, reanude la marcha que tenía en el momento en que se había parado. Si, antes de transcurridos los diez segundos, se acciona el pulsador "P", el portón debe deshacer la maniobra previa. El portón estará abierto un máximo de 30 segundos. PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM3202K entradas y salidas PNP. El pulsador y los finales de carrera, se consideran normalmente abiertos.
  • 107. Problemas M340 - 107 Universidad de Oviedo ISA - J. Alonso - I. Machón Tablas de variables Pantalla de operador y variables asociadas (apartado a) Qx_Cerrar Punto rojo Qx_Abrir Punto verde MxP_FCA FCA MxP_FCC FCC MxP_Pulsador Pulsador Etapa2.x Portón abierto Etapa0.x Portón cerrado Etapa3.x Portón cerrando Etapa1.x Portón abriendo Etiqueta Símbolo en los planos Dirección en PLC Tipo Comentarios Ix_Pulsador S1 %I0.1.0 EBOOL Pulsador para abrir el portón Ix_FCA S2 %I0.1.1 EBOOL Final de carrera de abierto el portón Ix_FCC S3 %I0.1.2 EBOOL Final de carrera de cerrado el portón Ix_LocDis S15 %I0.1.15 EBOOL Conmutador Local=1 Distancia=0 Qx_Abrir KM1 %Q0.1.16 EBOOL Orden de abrir el portón Qx_Cerrar KM2 %Q0.1.17 EBOOL Orden de cerrar el portón MxP_Pulsador BOOL Mx_Pulsador EBOOL Mx_FlancoPul BOOL MxP_FCA BOOL Mx_FCA BOOL MxP_FCC BOOL Mx_FCC BOOL
  • 108. 108 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Apartado a por GRAFCET - (pr0501a_G) Este programa lo hemos estructurado en tres secciones: IniciaVariables, escrito en lenguaje ST Control, escrito en lenguaje SFC Salidas, escrito en lenguaje ST En este caso el control lo podemos hacer por nivel o por flanco. Sección 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); (*Inicialización de la pantalla de operador*) (* El bit %S13, es un bit que está en 1 el primer ciclo de programa y luego automáticamente se pone a 0, en este caso lo utilizamos para que inicialmente esté cerrado el portón en la pantalla de operador *) If %S13 THEN Set (MxP_FCC); END_IF; Sección en SFC "Chart" Introduciremos el chart empleando los iconos apropiados, estos aparecen cuando indicamos que deseamos una sección en código SFC. Para introducir una etapa inicial, introduciremos una etapa normal y clicaremos en la casilla de verIficación
  • 109. Problemas M340 - 109 Universidad de Oviedo ISA - J. Alonso - I. Machón que indica "Paso inicial". Las acciones asociadas a las etapas las programamos en la sección de salidas. Haremos esto de esta forma y no emplearemos los descriptores asociados a las etapas, por ergonomía. Si no, para ver las acciones asociadas deberíamos entrar en cada etapa y abrir la ventana correspondiente. Las acciones asociadas las indicaremos mediante un comentario en el GRAFCET p.e. Las receptividades asociadas a las transiciones, si son variables sencillas, las introduciremos en la ventana que aparece cuando clicamos en el símbolo de transición.
  • 110. 110 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Si son variables más complejas lo mejor es asignar a la receptividad una variable p.e. "Tran2_3" indicando en el nombre de la variable, de que etapa salimos, y a que etapa vamos. Como valor de esa variable le asignamos la receptividad necesaria. Por ejemplo ver el GRAFCET del problema 5.2, página 73 Tran0_4:= Mx_Sensor2 And Not Mx_Sensor1; Tran3_0:= Mx_SensorSal And Not Mx_Sensor2; Tran5_6:= Etapa5.t > t#3s; Sección en ST "Salidas" Qx_Abrir := Etapa1.x; Qx_Cerrar := Etapa3.x; Apartado a sin GRAFCET - (pr0501a_sG) (* Generación de las memorias que se utilizan en el programa *) Mx_Pulsador := (Ix_Pulsador And Ix_LocDis) Or(MxP_Pulsador And Not Ix_LocDis); Mx_FCA := (Ix_FCA And Ix_LocDis) Or (MxP_FCA And Not Ix_LocDis); Mx_FCC := (Ix_FCC And Ix_LocDis) Or (MxP_FCC And Not Ix_LocDis); (* Control del portón *) If Mx_FCC And Mx_Pulsador THEN Set (Qx_Abrir); END_IF; If Mx_FCA Or Qx_Cerrar THEN Reset (Qx_Abrir); END_IF; If Mx_FCA And Mx_pulsador THEN Set (Qx_cerrar); END_IF; If Mx_FCC Or Qx_Abrir THEN Reset (Qx_Cerrar); END_IF;
  • 111. Problemas M340 - 111 Universidad de Oviedo ISA - J. Alonso - I. Machón Apartado b por GRAFCET - (pr0501b_G) El control lo deberemos hacer obligatoriamente por flanco. Sección en ST “IniciaVariables” (* Generación de las memorias que se utilizan en el programa *) Mx_Pulsador:= (Ix_Pulsador And Ix_LocDis) Or(MxP_Pulsador And Not Ix_LocDis); Mx_FCA := (Ix_FCA And Ix_LocDis) Or (MxP_FCA And Not Ix_LocDis); Mx_FCC := (Ix_FCC And Ix_LocDis) Or (MxP_FCC And Not Ix_LocDis); Mx_FlancoPul := RE (Mx_Pulsador); (* OJO!!! no se puede evaluar un flanco de una variable de pantalla*) (*Inicialización de la pantalla de operador*) If %S13 THEN MxP_FCC := True; END_IF; Sección en SFC (GRAFCET) "Chart" Sección en ST "Salidas" Qx_Abrir := Etapa1.x; Qx_Cerrar := Etapa3.x; Pantalla de operador y variables asociadas (apartado b) Qx_Cerrar Punto rojo Qx_Abrir Punto verde MxP_FCA FCA MxP_FCC FCC MxP_Pulsador Pulsador Etapa2.x Portón abierto Etapa0.x Portón cerrado Etapa3.x Portón cerrando Etapa1.x Portón abriendo Etapa5.x Parado cerrando Etapa4.x Parado abriendo Qx_Cerrar QX_Abrir Etapa0 Etapa1 Etapa3 Etapa2 Etapa4 Etapa5 Mx_FlancoPul Mx_FlancoPul Mx_Fcc Mx_Fca Mx_FlancoPul Mx_FlancoPul Mx_FlancoPul Mx_FlancoPul Etapa1
  • 112. 112 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Apartado B sin GRAFCET - (pr0501b_sG) (* Generación de las memorias que se utilizan en el programa *) Mx_Pulsador := (Ix_Pulsador and Ix_LocDis) or (MxP_Pulsador and not Ix_LocDis); Mx_FCA := (Ix_FCA and Ix_LocDis) or (MxP_FCA and not Ix_LocDis); Mx_FCC := (Ix_FCC and Ix_LocDis) or (MxP_FCC and not Ix_LocDis); Mx_FlancoPul:= Re(Mx_Pulsador); (*Variables utilizadas en la pantalla de operador*) (*Inicialización de la pantalla de operador*) If %S13 THEN MxP_FCC:=True; END_IF; MxP_1:=Mx_FCA and not Qx_Cerrar; MxP_2:=Mx_FCC and not Qx_Abrir; (* Control del portón *) if Mx_FlancoPul and (Mx_FCC or Mx_ParadoCerrando) then set (Qx_Abrir); reset (Mx_ParadoCerrando); reset(Mx_FlancoPul); end_if; if Mx_FlancoPul and Qx_Abrir then reset(Qx_Abrir); set (Mx_ParadoAbriendo); reset (Mx_FlancoPul); end_if; if Mx_FCA then reset (Qx_Abrir); end_if; if Mx_FlancoPul and (Mx_FCA or Mx_ParadoAbriendo) then set (Qx_Cerrar); reset (Mx_ParadoAbriendo); reset (Mx_FlancoPul); end_if; if Mx_FlancoPul and Qx_Cerrar then reset (Qx_Cerrar); set(Mx_ParadoCerrando); end_if; if Mx_FCC then reset (Qx_Cerrar); end_if;
  • 113. Problemas M340 - 113 Universidad de Oviedo ISA - J. Alonso - I. Machón Apartado C por GRAFCET - (pr0501c_G) Sección “IniciaVariables” (* Generación de las memorias que se utilizan en el programa *) Mx_Pulsador := (Ix_Pulsador and Ix_LocDis) or(MxP_Pulsador and not Ix_LocDis); Mx_FCA := (Ix_FCA and Ix_LocDis) or(MxP_FCA and not Ix_LocDis); Mx_FCC := (Ix_FCC and Ix_LocDis) or(MxP_FCC and not Ix_LocDis); Mx_FlancoPul:= re (Mx_Pulsador); Tran4_1 := Etapa4.t > t#10s; Tran5_3 := Etapa5.t > t#10s; Tran2_3 := Etapa2.t > t#30s Or Mx_FlancoPul; (*Inicialización de la pantalla de operador*) If %S13 THEN MxP_FCC:=True; END_IF; Sección "Salidas" Qx_Abrir := Etapa1.x; Qx_Cerrar := Etapa3.x;
  • 114. 114 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección en SFC "Chart" Apartado C sin GRAFCET Se propone al alumno que realice este apartado por si mismo. (* Parado abierto un máximo de 30 s *) (* Parado cerrado *) Qx_Cerrar (* Parado parado cerrando *) Qx_Abrir Tran5_3 := Etapa5.t > t#10s (* Parado parado abriendo *) Tran2_3 := Etapa2.t > t#30s or Mx_FlancoPul Tran4_1 := Etapa4.t > t#10s Etapa0 Etapa1 Etapa3 Etapa2 Etapa4 Etapa5 Mx_FlancoPul Tran2_3 Mx_FCC Mx_FCA Mx_FlancoPul Mx_FlancoPul Mx_FlancoPul Mx_FlancoPul Tran4_1 Tran5_3 Etapa1 Etapa1 Etapa3
  • 115. Problemas M340 - 115 Universidad de Oviedo ISA - J. Alonso - I. Machón Método para insertar un objeto de la librería de pantalla de operador Seleccionaremos en "Herramientas" la opción "Librería de pantallas de operador". Saldrá una ventana con los distintos objetos gráficos agrupados en carpetas, Accionadores, Autómatas, Depuración, Fluidos, Máquinas, Paneles frontales Regulación, Símbolos, Símbolos homologados, Tendencias Regulación y Visualizadores. Cuando se selecciona una carpeta, aparece en la parte de abajo una ventana con los objetos que contiene para darnos una idea de que hay. Si abrimos la carpeta y clicamos dos veces en el apartado que nos interese, p.e. motores. Aparecerá una ventana donde podremos seleccionar el objeto que nos interese, copiarlo al portapapeles y luego pegarlo en nuestra pantalla de operador. Algunas de estas librerias tienen objetos dinámicos. Estos objetos, cuando los peguemos en nuestra pantalla de operador y una vez desagrupados, podremos acceder a las propiedades de alguna parte gráfica que estará animada en función de una variable. Una vez hecho esto, podremos modificar los parámetros según nos convenga.
  • 116. 116 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 117. Problemas M340 - 117 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 5.2 · Salida de 2 plantas de un garaje con semáforos La figura representa el esquema de salida de un aparcamiento público, por el que son evacuados los vehículos situados en dos plantas. La regulación de la salida se efectuará mediante la apertura de los semáforos, SF1 o SF2, según proceda. Dos lazos sensores, S1 o S2, efectúan la demanda de salida, confirmando, el lazo, S3 el final de la maniobra de salida del vehículo en curso. Dos o más demandas, consecutivas, de una misma planta, sólo serán atendidas cuando no existan demandas en la otra. Si esto ocurriera, debe concederse la salida alternativamente a un vehículo de cada planta. N.B.: En ningún caso puede haber más de un vehículo entre los sensores, S1, S2 y S3. Inicialmente el sistema tendrá activas las dos luces rojas de los semáforos de las plantas. Secuencia de paso a) Cuando un vehículo se superpone a un lazo sensor solicita la salida. El semáforo correspondiente se abrirá, si no hay otro vehículo saliendo. b) El semáforo correspondiente se mantendrá abierto durante tres segundos, contados desde el momento en que el automóvil abandone el lazo sensor. Tras este lapso de tiempo el semáforo se cerrará. PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM3202K entradas y salidas PNP. PLANTA 2 PLANTA 1 S1 S2 SALIDA S3 SF1 SF2
  • 118. 118 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Tablas de variables Programa en ST y SFC - (pr0502) Este programa lo hemos estructurado en cuatro secciones: IniciaVariables, escrito en lenguaje ST Control, escrito en lenguaje SFC Salidas, escrito en lenguaje ST Transiciones, escrito en lenguaje ST Sección “IniciaVariables” (* Generación 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); Sección “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;
  • 119. Problemas M340 - 119 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "Control" en SFC Sección "Transiciones" Crear secciones de transiciones y después abrir cada una de ellas para ver el código o pegarlo en word, es bastante incómodo. Por ello, lo que vamos a hacer es asignarle a cada transición una variable y a esta le asignaremos la receptividad adecuada. Tran_0_4 := Mx_Sensor2 And Not Mx_Sensor1; Tran_2_3 := Etapa2.t > t#3s; Tran_3_0 := Mx_SensorSal And Not Mx_Sensor2; Tran_3_4 := Mx_SensorSal And Mx_Sensor2; Tran_5_6 := Etapa5.t > t#3s; Tran5_6 := Etapa5.t > t#3s Tran3_4 := Mx_SensorSal and Mx_Sensor2 Tran3_0 := Mx_SensorSal and not Mx_Sensor2 Tran2_3 := Etapa2.t > t#3s Tran0_4 := Mx_Sensor2 and not Mx_Sensor1 Qx_P1 Verde Qx_P2 Rojo Qx_P1 Verde Qx_P2 Rojo Qx_P1 Rojo Qx_P2 Verde Qx_P1 Rojo Qx_P2 Verde Qx_P1 Rojo Qx_P2 Rojo Qx_P1 Rojo Qx_P2 Rojo Qx_P1 Rojo Qx_P2 Rojo Etapa0 Etapa1 Etapa3 Etapa6 Etapa4 Etapa2 Etapa5 Mx_Sensor1 NOT Mx_Sensor1 Tran5_6 Tran3_0 Tran3_4 Tran0_4 Mx_SensorSal Tran2_3 NOT Mx_Sensor2
  • 120. 120 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de Operador
  • 121. Problemas M340 - 121 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 5.3 · Salida de plantas con semáforo y sensor de abandono de planta Diseñar el sistema de Mando, y control para la salida automatizada de vehículos de un estacionamiento público, el cual consta de dos plantas. La regulación de la salida se efectuará mediante semáforos situados como indica la figura. Disponemos de cinco lazos sensores para recabar la información externa necesaria. Mediante el accionamiento de los lazos S1E ó S2E efectuaremos la demanda de salida. Los lazos S1S y S2S nos indicarán que el vehículo ha rebasado el semáforo, mientras que el lazo SSal nos confirmará que el vehículo ha salido del estacionamiento. La salida del vehículo debe efectuarse de forma tal que se evacue un vehículo de cada planta, para evitar esperas en una de las plantas respecto a la otra. La secuencia de los semáforos debe ser la siguiente: Cuando un vehículo accede a un lazo sensor realiza la petición de salida, el semáforo correspondiente se situará en verde, el vehículo rebasará dicho semáforo, y al accionar el lazo correspondiente el semáforo se situará de nuevo en rojo, para evitar que otro vehículo lo siga, quedando bloqueado hasta que el vehículo accione el lazo SSal indicando que ha salido. N.B.: En ningún caso puede haber más de un vehículo entre los sensores, S1, S2 y S3. Inicialmente el sistema tendrá activas las dos luces rojas de los semáforos de las plantas. PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM3202K entradas y salidas PNP. PLANTA 1 PLANTA 2 S1E F1 F2 S1S SSal S2E S2S
  • 122. 122 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Tablas de variables Programa en ST y SFC - (pr0503) Sección “IniciaVariables” (* Generación de las memorias que se utilizan en el programa *) Mx_Sensor1E := (Ix_Sensor1E And Ix_LocDis) Or(MxP_Sensor1E And Not Ix_LocDis); Mx_Sensor1S := (Ix_Sensor1S And Ix_LocDis) Or(MxP_Sensor1S And Not Ix_LocDis); Mx_Sensor2E := (Ix_Sensor2E And Ix_LocDis) Or(MxP_Sensor2E And Not Ix_LocDis); Mx_Sensor2S := (Ix_Sensor2S And Ix_LocDis) Or(MxP_Sensor2S And Not Ix_LocDis); Mx_SensorSal := (Ix_SensorSal And Ix_LocDis) Or(MxP_SensorSal And Not Ix_LocDis); Sección Transiciones Tran2_0 := Mx_SensorSal And Not Mx_Sensor2E; Tran0_3 := Mx_Sensor2E And Not Mx_Sensor1E; Tran2_3 := Mx_SensorSal And Mx_Sensor2E; Sección Salidas Qx_P1Roja := Not Qx_P1Verde; Qx_P1Verde:= Etapa1.x; Qx_P2Roja := Not Qx_P2Verde; Qx_P2Verde:= Etapa3.x;
  • 123. Problemas M340 - 123 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección en SFC "Control" Pantalla de Operador Qx_P1Rojo Qx_P2Rojo Qx_P1Rojo Qx_P2Rojo Qx_P1Rojo Qx_P2Verde Qx_P1Verde Qx_P2Rojo Qx_P1Rojo Qx_P2Rojo Tran2_0 := Mx_SensorSal and not Mx_Sensor2E Tran2_3 := Mx_SensorSal and Mx_Sensor2E Tran0_3 := Mx_Sensor2E and not Mx_Sensor1E Etapa0 Etapa1 Etapa2 Etapa4 Etapa3 Mx_Sensor1E Mx_Sensor1S Mx_Sensor2S Tran2_0 Tran2_3 Tran0_3 Mx_SensorSal
  • 124. 124 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 125. Problemas M340 - 125 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 5.4 · Control de limpiaparabrisas Se desea automatizar el limpiaparabrisas de un vehículo cuyas partes constituyentes son las siguientes: 1. Un selector de movimiento de cuatro posiciones (Paro, Automático, Barrido Continuo y Barrido Retardado) que permite seleccionar entre cuatro posibles modos de funcionamiento más abajo detallados. 2. Un Selector de Tiempo de 3 posiciones (ST5, ST2 y ST1) empleado para seleccionar la pausa de funcionamiento del sistema cuando el selector de movimiento anterior esté en la posición Barrido Retardado. 3. Un detector de lluvia (DetLluvia). 4. Dos finales de carrera (FCI y FCD) para conocer cuándo el limpia llega a cada uno de los extremos de su carrera. (Para determinar cuál es la parte izquierda y cuál la derecha se supone que miramos el limpia desde dentro del vehículo). 5. Un motor de corriente continua que mediante dos contactores (KMIzq y KMDer) permite desplazar las escobillas del limpia a izquierda y derecha respectivamente. El modo de funcionamiento del sistema en función del selector de movimiento es el que se describe a continuación. 1. Posición Paro. El sistema permanece parado independientemente de que llueva. 2. Posición Automático, Transcurridos 2,5 segundos desde el momento en que comience a llover, y si el usuario no ha seleccionado manualmente ninguno de los dos posibles modos de funcionamiento, el limpia debe comenzar a describir ciclos de barrido retardados, según la pausa indicada por el selector de tiempo. Ambos selectores pueden ser cambiados de posición en cualquier momento. Sin embargo, en caso de que ese cambio se produzca en medio de un ciclo de barrido, este no tendrá efecto hasta que no se haya finalizado ese ciclo. 3. Posición Barrido Continuo, el limpia debe comenzar a moverse hacia la izquierda hasta que alcance la posición FCI. En este momento, invertirá el giro y comenzará a moverse hacia la derecha hasta alcanzar la posición FCD. Estará haciéndolo de forma ininterrumpida hasta que se seleccione otro modo. 4. Posición Barrido Retardado, el limpia describirá ciclos de barrido temporizados. Es decir, describirá movimientos izquierda-derecha, deteniéndose un cierto periodo de tiempo en la posición marcada por FCD. El tiempo que el limpia permanecerá en la posición FCD vendrá indicado por el selector de tiempo de tres posiciones. ST5: 5 segundos; ST2: 2 segundos; ST1: 1 segundo.
  • 126. 126 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM3202K entradas y salidas PNP Se pide: 1. Programa de control. Tablas de variables Programa en ST y SFC (GRAFCET) - (pr0504) Sección “Preliminar” (* Generación de las memorias que se utilizan en el programa *) Mx_BarrCont := (Ix_BarrCont and Ix_LocDis) or(MxP_BarrCont and not Ix_LocDis); Mx_BarrRet := (Ix_BarrRet and Ix_LocDis) or(MxP_BarrRet and not Ix_LocDis); Mx_Automatico := (Ix_Automatico and Ix_LocDis) or(MxP_Automatico and not Ix_LocDis); Mx_Paro := (Ix_Paro and Ix_LocDis) or(MxP_Paro and not Ix_LocDis); Mx_DetLluvia := (Ix_DetLluvia and Ix_LocDis) or(MxP_DetLluvia and not Ix_LocDis); Mx_FCI := (Ix_FCI and Ix_LocDis) or(MxP_FCI and not Ix_LocDis); Mx_FCD := (Ix_FCD and Ix_LocDis) or(MxP_FCD and not Ix_LocDis); Mx_ST5 := (Ix_ST5 and Ix_LocDis) or(MxP_ST5 and not Ix_LocDis); Mx_ST2 := (Ix_ST2 and Ix_LocDis) or(MxP_ST2 and not Ix_LocDis); Mx_ST1 := (Ix_ST1 and Ix_LocDis) or(MxP_ST1 and not Ix_LocDis); Mx_Flanco_DLL := RE(Mx_DetLluvia); (*Inicialización de la pantalla de operador*) If %S13 then SET (MxP_ST5); SET (MxP_FCD); SET (MxP_Paro); end_if;
  • 127. Problemas M340 - 127 Universidad de Oviedo ISA - J. Alonso - I. Machón (* Generación de ALGUNAS de las memorias que se utilizan en la pantalla de operador*) Mx_NoFC := NOT Mx_FCI and not Mx_FCD; Mx_FCD_KMI := Mx_FCD and Qx_MotIzq; Mx_FCI_KMD := Mx_FCI and Qx_MotDer; Mx_NoFC_KMD := Mx_NoFC and Qx_MotDer; Mx_NoFC_KMI := Mx_NoFC and Qx_MotIzq; Sección Transiciones Tran6_0 := E6.t >= t#5s and Mx_ST5 or E6.t >= t#2s and Mx_ST2 or E6.t >= t#1s and Mx_ST1; Tran1_7 := Mx_Flanco_DLL and not Mx_BarrCont and not Mx_BarrRet and Mx_Automatico; Tran7_4 := E7.t > t#2.5s or Mx_BarrRet; Tran1_4 := Mx_DetLluvia and not Mx_Flanco_DLL and not Mx_BarrCont and not Mx_BarrRet and Mx_Automatico; Sección Salidas Qx_MotIzq := E2.x or E4.x; Qx_MotDer := E3.x or E5.x; Sección GRAFCET
  • 128. 128 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de Operador Si estando lloviendo o no, activamos el Barrido Continuo, procederá a hacerlo. Si estuviésemos en otro modo, terminaría ese ciclo para empezar de forma continua. Lo mismo pasaría con el modo de Barrido Retardado. Si estando lloviendo o no, activamos el Barrido Retardado, procederá a hacerlo. Si estuviesemos en otro modo, terminaría ese ciclo para empezar de forma retardada. Si estamos de forma Automática. Cuando comienza a llover, inicialmente con el flanco positivo del detector, pasamos a la etapa S_Paro2 donde si antes de 2,5 segundos activamos el modo de Barrido Continuo, procederá a hacerlo hasta que cambiemos de modo. Si esperamos 2,5 segundos, entonces hará un Barrido Retardado y luego, de ese primer barrido, procederá a hacer el Barrido retardado de forma continua hasta que se cambie de modo o deje de llover.
  • 129. Problemas M340 - 129 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 5.5 · Control de la mezcla de dos líquidos. EM y EF Se trata de automatizar un reactor agitado en el que dos compuestos A y B reaccionan para dar un nuevo compuesto C. El proceso es el siguiente:  El sistema está en reposo cuando está vacío, todas las válvulas están cerradas y el agitador está apagado  El ciclo comienza con un pulsador de arranque (Ix_Marcha). En ese momento, se abre la válvula A (Qx_AbrirA) y el reactor comienza a llenarse con el primer componente.  Cuando el nivel del primer componente llega al detector de nivel N1 (Ix_N1), se interrumpe el suministro del componente A y se inicia el suministro del componente B (Qx_AbrirB) junto con la activación del motor del agitador (Qx_Motor).  Cuando la mezcla alcanza el nivel N2 (Ix_N2) se interrumpe el suministro del componente B, se mantiene el agitador y se activa la resistencia calefactora (Qx_Calentar). El sistema permanecerá en este estado durante 5 minutos.  Una vez completados los 5 minutos, se desactiva la resistencia calefactora, se apaga el agitador y se inicia el vaciado del depósito.  Cuando el depósito está vacío, indicado por el detector de nivel N0 (Ix_N0), se vuelve al estado de reposo. El motor que mueve el agitador es de PM = 0,55 KW, UN = 400 V, 1400 rpm, cos ϕ = 0,92,  = 0,93 en triángulo con arranque directo y Iarr = 5 IN y tiempo de arranque 5 s. La resistencia calefactora es trifásica con una alimentación de Un = 400 V y de una potencia de 2 KW en
  • 130. 130 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón triángulo. La resistencia irá conectada en estrella. El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta a todo el conjunto, módulo de entradas PNP BMX DDI 1602 y de salidas PNP BMX DDO 1602. Los valores normalizados de los Interruptores automáticos con curva C o D son 1, 2, 4, 6, 10, 16, 20, 25, 32, 40, 50, 63 A. Los calibres de los Interruptores Diferenciales con 30 mA de sensibilidad son 6, 10, 16, 20, 25, 32, 40, 50 A. Las salidas están conectadas a 24 V DC, siendo el consumo de las electroválvulas de 10 W y el de los contactores 5,4 W. Se pide:  Esquema de Mando,  Esquema de Fuerza.  Elegir los elementos de protección adecuados de los motores, resistencia calefactora y del mando. Indicar sobre las gráficas las corrientes puestas en juego en los diferentes elementos.  Programa de control. Esquema de Mando
  • 131. Problemas M340 - 131 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de Fuerza El motor que mueve el agitador es de PM = 0,55 KW, UN = 400 V, 1400 rpm, cos ϕ = 0,92  = 0,93 en triángulo con arranque directo y Iarr = 5 IN y tiempo de arranque 5 s. Relé térmico F1 𝜂 = 𝑃𝑢 𝑃𝑒 = 𝑃𝑢 √3 𝑈𝑁 𝐼𝑁 cos  𝐼𝑁 = 𝑃𝑢 √3 𝑈𝑁 cos  𝜂 = 550 √3 400 0,92 0,93 = 0,93 𝐴 La corrientes que pasa por el térmico es 𝐼N = 0,93 𝐴 Teniendo en cuenta esta corriente, elegiremos el LRD-05. Ajustaremos la corriente regulada a 0,93 A Iarranque = 5 · IN = 5 · 0,93 = 4,65 A tiempo 5 segundos Se observa que en clase 10, estará en el límite de la curva, si bien en la realidad tendrá un valor más favorable. Escojeremos el LRD -05 clase 10
  • 132. 132 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Automático Q1 Cuando tengamos la corriente nominal, por el térmico estarán pasando los 0,93 A. Aguas arriba por el automático estarán pasando los 0,93 A. Para que haya selectividad, la corriente mínima del automático será: I = 1,6 * 0,93 = 1,5 A Por tanto el calibre del automático elegido será el de 2 A (valor normalizado por encima de 1,5 A). Tensión nominal: 400 V 3 polos. La curva puede ser la C 2A 𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒 𝐼𝐶𝑎𝑙𝑖𝑏𝑟𝑒 = 4,65 2 = 2,32 𝑡𝑖𝑒𝑚𝑝𝑜 5 𝑠𝑒𝑔𝑢𝑛𝑑𝑜𝑠
  • 133. Problemas M340 - 133 Universidad de Oviedo ISA - J. Alonso - I. Machón Diferencial F2 Se elige un Diferencial de calibre 25A y sensibilidad 30 mA (p.e. el A9R81225 de Schneider) Contactor KM1 Clase de servicio temporal. Alimentación bobina: 24 VCC Tensión de servicio: 400 V Corriente de servicio: 𝑰𝐍 = 𝟎, 𝟗𝟑 𝑨 Del catálogo de Schneider sería válido el LC1D09BD Consumo 5,4 W => I = 5,4 / 24 = 0,225 A El módulo DDI 1602 aguanta Corriente/canal 0,625 A Corriente módulo 10 A Resistencia calefactora La resistencia calefactora es trifásica con una alimentación de Un = 400 V y de una potencia de 2 KW. Será conectada en estrella. 𝐼𝑁 = 𝐼𝐿𝑇 = 𝑃𝑢 √3 𝑈𝑁 = 2000 √3 400 = 2,9 𝐴 𝐼𝑓𝐸 = 𝐼𝐿𝐸 = 𝐼𝑛 3 = 2,9 3 = 0,97 𝐴 Automático Q2 Tensión nominal: 400 V 3 polos Corriente de servicio: 𝑰𝐍 = 𝟎, 𝟗𝟕 𝑨 La curva puede ser la C 1 Diferencial F3 Se elige un Diferencial de calibre 25A y sensibilidad 30 mA (p.e. el A9R81225 de Schneider). Contactor KM2 de la resistencia calefactora Clase de servicio temporal. Alimentación bobina: 24 VCC Tensión de servicio: 400 V Corriente de servicio: 𝑰𝐍 = 𝟎, 𝟗𝟕 𝑨 Del catálogo de Schneider sería válido el LC1D09BD Consumo 5,4 W => I = 5,4 / 24 = 0,225 A
  • 134. 134 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Electroválvulas de paso de fluidos Consumo I = 10 / 24 = 0,42 A Automático Q3 de Mando, La fuente de alimentación entrega 20 W con una eficiencia del 82%. Por tanto consume unos 20 / 0,82 = 24,39 W que significa unos 24,39 / 230 = 0,11 A La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar pasar 9 · 0,11 = 0,95 A en los instantes iniciales. Podemos coger el automático C60 1A
  • 135. Problemas M340 - 135 Universidad de Oviedo ISA - J. Alonso - I. Machón Tablas de variables Programa en ST y GRAFCET - (pr0505) Sección en ST "IniciaVariables" (*Inicia variables*) Mx_N0 := (Ix_N0 And Ix_LocDis) Or (MxP_N0 And Not Ix_LocDis); Mx_N1 := (Ix_N1 And Ix_LocDis) Or (MxP_N1 And Not Ix_LocDis); Mx_N2 := (Ix_N2 And Ix_LocDis) Or (MxP_N2 And Not Ix_LocDis); Mx_Marcha := (Ix_Marcha And Ix_LocDis) Or (MxP_Marcha And Not Ix_LocDis); Tran3_4 := Etapa3.t >=t#15s;
  • 136. 136 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección en SFC "Control" Sección 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;
  • 137. Problemas M340 - 137 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección en ST "Simulación" (* Esta parte del programa es necesaria para la correcta visualización de la simulación de la planta *) (*Arranca un temporizador para un oscilador de 2 Hz. Es introducido como bloque DFB de tipo TON *) TON_Osc2Hz (IN := Qx_motor and not TON_Osc2Hz.Q, PT := t#500ms); Mx_Osc1 := TON_Osc2Hz.ET>T#250ms; Mx_Osc2 := TON_Osc2Hz.ET<T#250ms AND Qx_Motor; Mx_N3 := Etapa1.x AND Mx_N0; Mx_N4 := Etapa2.x AND Mx_N1; Mx_N5 := Etapa2.x AND Etapa2.t>=t#2s; Mx_N6 := Etapa3.x or Mx_N2; Mx_N7 := Etapa4.x And Not Mx_N2 and Mx_N1 and Mx_N0; Mx_N8 := Etapa4.x And Not Mx_N2 and Not Mx_N1 and Mx_N0; Detalle de los elementos que componen la Pantalla de Operador
  • 138. 138 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 139. Problemas M340 - 139 Universidad de Oviedo ISA - J. Alonso - I. Machón Funciones fundamentales para controlar los SFC (GRAFCETs) CLEARCHART: Desactivación de todas las etapas Mx_GRAFCETBorrado:= CLEARCHART (NombreGRAFCET, Mx_BorraGRAFCET); Cuando el parámetro de entrada booleano de la función CLEARCHART, Mx_BorraGRAFCET sea 1, se detiene la secuencia y se desactivan todas las etapas de la sección SFC denominada NombreGRAFCET. Mientras que el valor de ese booleano Mx_BorraGRAFCET permanezca a 1, en ese ciclo de programa, la secuencia no se podrá iniciar mediante las funciones INITCHART o SETSTEP. Así mismo, este estado de inactividad total de la secuencia se mostrará poniendo a 1 el parámetro booleano de salida Mx_GRAFCETBorrado (normalmente en nuestros programas lo llamaremos Mx_PonCI). Este valor se podrá usar para proceder a realizar el proceso de rearme (llamada a una subrutina de puesta en Condiciones Iniciales, activación de una etapa de rearme, activación de una sección SFC de rearme, etc). La sección SFC NombreGRAFCET permanecerá en este estado de inactividad total de todas sus etapas aun cuando la entrada Mx_BorraGRAFCET vuelva a 0. Sin embargo, si la entrada Mx_BorraGRAFCET es 0, entonces, ya se podrá ejecutar INITCHART o SETSTEP para iniciar la secuencia del SFC. La ejecución de INITCHART o SETSTEP pondrá el valor de Mx_GRAFCETBorrado a 0. INITCHART: Desactivación de todas las etapas e inicio de secuencia Mx_GRAFCETIniciado := INITCHART (NombreGRAFCET, Mx_IniciaGRAFCET) ; Si el parámetro de entrada booleano de la función INITCHART, IniciaGRAFCET es igual a 1, la secuencia de la sección SFC denominada NombreGRAFCET se detiene, se desactivan todas las etapas y se activa su etapa inicial. Mientras el valor de Mx_IniciaGRAFCET sea 1 y se procese la instrucción, la secuencia se mantendrá paralizada en la etapa inicial estando únicamente activa esta etapa inicial de la sección NombreGRAFCET. Se observa que la etapa inicial aparece resaltada en color verde pero su tiempo de activación indica cero segundos. Cuando el valor del booleano de entrada Mx_IniciaGRAFCET pase de 1 a 0, entonces además de seguir activa la etapa inicial se activará la secuencia normal de la sección SFC NombreGRAFCET. Se puede observar que el tiempo de activación de la etapa ya ha comenzado. INITCHART tiene como parámetro de salida el booleano Mx_GRAFCETIniciado. El valor de Mx_GRAFCETIniciado será 1 cuando Mx_IniciaGRAFCET valga 1, permaneciendo Mx_GRAFCETIniciado igual a 1 hasta que Mx_IniciaGRAFCET valga 0 o no se ejecute esa función. En ese momento Mx_GRAFCETIniciado volverá a valer 0. FREEZECHART: Congelación de una secuencia Mx_GRAFCETCongelado := FREEZECHART (NombreGRAFCET, Mx_CongelaGRAFCET) ; Cuando el valor del booleano de entrada Mx_CongelaGRAFCET sea 1, se inmoviliza el estado actual de la secuencia de la sección SFC con nombre NombreGRAFCET. Se dejarán de evaluar los estados de las transiciones. De esta forma, ya no será posible avanzar en la secuencia, aunque la condición de transición de la transición "activa" sea verdadera. Cuando el valor del booleano de entrada Mx_CongelaGRAFCET sea 0, se libera la secuencia de la sección SFC con nombre NombreGRAFCET. Se volverán a evaluar los estados de las transiciones. De esta forma, ya será posible avanzar en la secuencia, cuando la receptividad de la transición "activa" sea verdadera. El bit de salida Mx_GRAFCETCongelado muestra en todo momento el estado actual de la secuencia, su valor es 1 cuando se ha inmovilizado la secuencia y será 0 si la secuencia no se encuentra inmovilizada. Se observa que el Chart del SFC se encuentra con color cian cuando la secuencia se encuentra inmovilizada,
  • 140. 140 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón y que la salida asociada a la etapa en la que está parado PERMANECE ACTIVA. SETSTEP: Activación de una etapa específica de la secuencia SETSTEP (NombreEtapa); La función SETSTEP tiene como único argumento de entrada el nombre de una etapa de una sección SFC (NombreEtapa). El procedimiento activa la etapa especIficada como NombreEtapa. Además la etapa o etapas que se encontraban ya previamente activas no se verán afectadas por este procedimiento. Dado que la etapa NombreEtapa permanece activada mientras el procedimiento SETSTEP se está ejecutando, deberá tomarse una de las siguientes medidas para impedir un establecimiento o activación permanente de la etapa:  Llamada condicional del procedimiento SETSTEP a través de la entrada EN, en los lenguajes de programación FBD y LD.  Llamada condicional del procedimiento SETSTEP a través, por ejemplo, de la instrucción IF en el lenguaje de programación ST.  Utilización de reconocimiento de flancos (RE) en la entrada. NOTA: El procedimiento sólo se puede ajustar en la modalidad de servicio "Multi-Token" (ver apéndice B). RESETSTEP: Desactivación de una etapa específica de la secuencia RESETSTEP (NombreEtapa); La función RESETSTEP tiene como único argumento de entrada el nombre NombreEtapa de una etapa de una sección SFC. El procedimiento desactiva ("restablece") la etapa especIficada como NombreEtapa. Además la etapa o etapas que se encontraban ya previamente activas no se verán afectadas por este procedimiento. Dado que la etapa NombreEtapa permanece desactivada mientras el procedimiento RESETSTEP se está ejecutando (el procedimiento se ejecuta de forma cíclica), deberá tomarse una de las siguientes medidas para impedir que la etapa se desactive permanentemente:  Llamada condicional del procedimiento RESETSTEP a través de la entrada EN, en los lenguajes de programación FBD y LD.  Llamada condicional del procedimiento SETSTEP a través, por ejemplo, de la instrucción IF en el lenguaje de programación ST.  Utilización de reconocimiento de flancos (R_TRIG) en la entrada. Si se desactiva ("restablece") el último/único paso de la secuencia, ésta sólo se podrá volver a iniciar a través del bloque de funciones SFCCNTRL (entrada INIT), la función INITCHART, el procedimiento SETSTEP u otro comando, de activación de pasos (desde el exterior). NOTA: El procedimiento sólo se puede ajustar en la modalidad de servicio "Multi-Token" (ver apéndice B).
  • 141. Problemas M340 - 141 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 5.6 · Ejemplo de control de un GRAFCET El siguiente ejemplo nos permitirá dejar claro el funcionamiento de esas Funciones. Haremos un programa para controlar dos luces. Inicialmente las luces estárá apagadas. Cuando se pulse Marcha, se encenderá la luz Verde de forma contina. A continuación, cuando se pulse Sensor0, se encenderá la luz Roja de forma memorizada y permanecerá activa la luz Verde. Posteriormente, cuando se pulse Sensor1, la luz Verde se apagará y la Roja permanecerá activa al estar memorizada. Con la pulsación del Sensor3, volveremos a tener sólo activa la luz Verde y repetiremos la secuencia. Demostración de las funciones Haremos una secuencia completa y luego, por ejemplo, estando en la etapa 2 hacemos un Paro. Observemos que el GRAFCET se rellena de azul y aunque la Etapa 2 esté activa, no puede evolucionar (Fig. 5.6.a). Esto es, aunque pulsemos el Sensor1, no pasa a la Etapa 3. Por otra parte, fijemonos que las salidas de la Etapa 2 siguen activas. Esto nos puede interesar o no recordemos lo que dijimos para el caso de una pinza sujetando un objeto y par el caso de un motor girando. Para salir de esta situación de paro, pulsaremos Marcha, ahora se descongela el GRAFCET y se permite su evolución. Si pulsamos Sensor1, el GRAFCET evolucionará a la Etapa3. Fig. 5.6.a Fig. 5.6.b
  • 142. 142 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Estando en la Etapa 2, p.e. si pulsamos Rearme, veremos que se ejecuta la función CLEARCHART. Se desactivan todas las etapas y se desactivan las acciones continuas asociadas a las etapa, pero NO las acciones memorizadas. Vemos como se apaga la Luz Verde pero permanece encendida la Luz Roja (Fig. 5.6.b). Con la variable Mx_PonCI se ejecutará la subrutina que nos pone el sistema en Condiciones Iniciales (Sr_PonCI). Este proceso tardará mas o menos tiempo, al final, cuando el sistema esté en Condiciones Iniciales, estarán una serie de variables a 1, estas se consultarán mediante una función AND lógica y se seteará una variable que nos lo indique, Mx_PuestoEnCI, se reseteará la variable Mx_PonEnCI para que no se ejecute más esta subrutina. En el programa preliminar, consultaremos esa variable y asegurándonos que no estamos en el ciclo de programa que está activa la función CLEARCHART, inicializamos el GRAFCET, o ponemos el GRAFCET con una etapa activa mediante la función SETSTEP, eso dependerá de como y desde donde hemos hecho la llamada a la subrutina de poner en Condiciones Iniciales. A continuación resetearemos la variable Mx_PuestoEnCI para que no se ejecute de nuevo, resetearemos todas las variables que pudieran estar a 1 y ya estaremos en condiciones de funcionar normalmente. Fig. 5.6.c Fig. 5.6.d Cuando ejecutamos la instrucción Mx_IniciaChart := INITCHART (Prueba, MxP_InitChart), si activamos la marca MxP_InitChart, veremos que se desactiva la etapa que estuviese activa, se activa la Etapa 0 poniendose en verde, pero no puede evolucionar, vemos como el tiempo está detenido (Fig. 5.6.c). TODAS las acciones asociadas a las etapas se desactivan. Una vez que el bit MxP_InitChart pase a 0, el GRAFCET ya puede evolucionar y veremos que el tiempo que lleva activa la Etapa 0 vuelve a correr (Fig. 5.6.d).
  • 143. Problemas M340 - 143 Universidad de Oviedo ISA - J. Alonso - I. Machón Si ejecutammos las instrucciones: If MxP_InitChartCondicional then Mx_IniciaChart := INITCHART (Prueba,True); end_if; Cuando se active el bit MxP_InitChartCondicional, se ejecuta INITCHART y volvemos a la situación descrita con anterioridad (Fig. 5.6.c). PERO si se deja de procesar estas instrucciones por pasar MxP_InitChartCondicional a 0, el GRAFCET puede evolucionar estando en la situación descrita en la Fig.5.6.d Tabla de variables Sección "Preliminar" (* Marcas necesarias para la Ppantalla de Operador *) If %S13 then set(MxP_Paro); (* para que con el primer ciclo de programa, el interruptor se comporte como NC *) end_if; (* Marcas usadas en el control Local / Distancia *) Mx_Rearme := (Ix_Rearme and Ix_LocalDist) or (MxP_Rearme and not Ix_LocalDist); Mx_Paro := (Ix_Paro and Ix_LocalDist) or (MxP_Paro and not Ix_LocalDist); Mx_Marcha := (Ix_Marcha and Ix_LocalDist) or (MxP_Marcha and not Ix_LocalDist); (* Programa *) Mx_PonCI := CLEARCHART (Prueba, RE (Mx_Rearme)); (*con el flanco del pulsador de Rearme, borramos todas las etapas activas del GRAFCET “prueba” y
  • 144. 144 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón se pone automáticamente a 1 la variable Mx_PonCI*) if Mx_PonCI then (*con Mx_PonCI a 1, ejecutamos la subrutina para poner al sistema en Condiciones Iniciales, que durará todo el tiempo necesario *) Sr_IniciaSistema(); Reset (Mx_EnParo); end_if; if Mx_PuestoEnCI and not Mx_Rearme then Mx_IniciaChart := INITCHART (Prueba,true); (* se ejecuta la función en un ciclo que no esté activo CLEARCHART, por tanto inicializa el GRAFCET y le permite evolucionar puesto que no está activo el CLEARCHART *) Reset (Qx_LuzRoja); (* reseteamos también todas las variables que pudieran estar a 1 mediante instrucciones SET *) reset (Mx_PuestoEnCI); (*borramos esta memoria para que no se vuelva a ejecutar éste código*) end_if; if not Mx_Paro then set (Mx_EnParo); (* ponemos a 1 de forma memorizada la variable Mx_EnParo para que permanezca activa la orden después de soltar el pulsador de Paro*) END_IF; if Mx_EnParo then Mx_GRAFCETCongelado := Freezechart (Prueba,true); (*con esta instrucción congelamos el GRAFCET. Observar que la salida asignada a una etapa permanece ACTIVA. Esto nos puede interesar o no. Recordar: salida a una pinza sujetando una pieza | salida activando un motor *) else Mx_GRAFCETCongelado := Freezechart (Prueba,false); (*con esta instrucción descongelamos el GRAFCET. Ahora ya puede evolucionar *) END_IF; if Mx_Marcha then reset (Mx_EnParo); end_IF; Mx_IniciaChart := INITCHART (Prueba, MxP_InitChart); (* Observemos como con el MxP_InitChart a 1 se inicializa el GRAFCET borrando todas las etapas que estuviesen activas, se pone a 1 el bit Mx_IniciaChart y no permite evolucionar el GRAFCET hasta que el bit de control MxP_InitChart no sea 0 *) If MxP_InitChartCondicional then Mx_IniciaChart := INITCHART (Prueba,True); (* Observamos que mientras esté a 1 el bit MxP_InitChartCondicional y por tanto se ejecuta la función, se inicializa el CHART pero no se permite su evolución. Una vez que el bit MxP_InitChartCondicional pasa a valer 0, y no se ejecute la función, el GRAFCET ya puede evolucionar*) end_if; Sección "Salidas" If Etapa1.x THEN Reset (Qx_LuzRoja);
  • 145. Problemas M340 - 145 Universidad de Oviedo ISA - J. Alonso - I. Machón END_IF; Qx_LuzVerde := Etapa2.x Or Etapa3.x; If Etapa2.x THEN Set (Qx_LuzRoja); END_IF; Subrutina “Sr_IniciaSistema” (* Mientras que Mx_PonCI esté en 1, ejecutamos la subrutina para poner al sistema en CI Se pondría al sistema en CI p.e. bajaríamos una barrera, calentaríamos un líquido, etc. Cuando el sistema esté en CI una serie de variables estarán a 1 informando, nos de ello, vamos a suponer que es cuando MxP_SistemaEnCI esté a 1*) If MxP_SistemaEnCI THEN Set (Mx_PuestoEnCI); Reset (Mx_PonCI); (* esta instrucción no sería necesaria puesto que INITCHART o SETSTEP borra el bit puesto a 1 por la función CLEARCHART *) END_IF; Sección GRAFCET “Prueba” Pantalla de operador Qx_LuzVerde R Qx_LuzRoja Qx_LuzVerde S Qx_LuzRoja Etapa1 Etapa2 Etapa3 Etapa0 MxP_Sensor0 MxP_Sensor1 MxP_Sensor2 MxP_Marcha
  • 146. 146 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 147. Problemas M340 - 147 Universidad de Oviedo ISA - J. Alonso - I. Machón Subrutinas y puesta en condiciones iniciales Problema 6.0 · Portón con puesta en CI Diseñar el esquema de Mando, , el esquema de Fuerza y el programa de control que realice la apertura y cierre de un portón del modo siguiente: Inicialmente el portón podrá estar abierto, cerrado o en una posición intermedia. Cuando se pulse el Rearme el portón procederá a ponerse en CI, esto es, se cerrará y a partir de esa situación podrá evolucionar normalmente.  Cuando se acciona el pulsador y esté cerrado, ha de iniciar la maniobra de apertura y no interrumpir ésta, hasta que el portón accione el final de carrera "FCA" (ABIERTO).  Cuando se acciona el pulsador y esté abierto, ha de iniciar la maniobra de cierre y no interrumpir ésta hasta que el portón accione el final de carrera "FCC" (CERRADO). PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM3202K entradas y salidas PNP.
  • 148. 148 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Tablas de variables Programa en ST y GRAFCET - (pr0600) Este programa lo hemos estructurado en cinco secciones: Preliminar, escrito en lenguaje ST Control, escrito en lenguaje SFC Salidas, escrito en lenguaje ST Subrutina"Sr_IniciaSistema" escrito en lenguaje ST Sección "Preliminar" (*Inicialización y gestión de la pantalla de operador*) If %S13 THEN Set (MxP_Paro); (*Ponemos el Pulsador de Paro inicialmente cerrado en la pantalla*) END_IF; (* variables utilizadas en la pantalla de operador *) Mx_AuxCerrar := (Etapa4.x Or Mx_Cerrar) And Not Mx_EnParo; Mx_AuxAbrir := (Etapa2.x Or Mx_Abrir) And Not Mx_EnParo;
  • 149. Problemas M340 - 149 Universidad de Oviedo ISA - J. Alonso - I. Machón Mx_AuxParo := Etapa0.x Or (Mx_EnParo And Not Mx_FCC) And (Mx_EnParo And Not Mx_FCA); (* Variables utilizadas en el control Local o a Distancia *) Mx_Pulsador := (Ix_Pulsador And Ix_LocDis) Or (MxP_Pulsador And Not Ix_LocDis); Mx_Paro := (Ix_Paro And Ix_LocDis) Or (MxP_Paro And Not Ix_LocDis); Mx_Rearme := (Ix_Rearme And Ix_LocDis) Or (MxP_Rearme And Not Ix_LocDis); (* en rojo están las que ponemos para poder simularlo en casa, en realidad estas no se usarían, en su lugar, se usarían las entradas Ix correspondientes *) 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); (*con el flanco del pulsador de Rearme, borramos todas las etapas activas del GRAFCET “Control” y se pone automáticamente a 1 la variable Mx_PonCI*) Mx_PonCI := CLEARCHART (Control, RE (Mx_Rearme)); If Mx_PonCI THEN Sr_IniciaSistema(); END_IF; If Mx_PuestoCI And Not Mx_Rearme THEN Setstep (Etapa1); (*Si cuando se activase el Rearme estuviese ya en Condiciones Iniciales, esta instrucción no se ejecutaría si no impusiésemos la condición que no esté activo el rearme. Recordar que cuando está activo CLEARCHART no se ejecuta ni INITCHART ni SETSTEP *) Reset (Mx_EnParo); Reset (Mx_PuestoCI); END_IF; If Not Mx_Paro THEN Set (Mx_EnParo); END_IF; If Mx_EnParo THEN Mx_Congelado := FREEZECHART (Control, true); ELSE Mx_Congelado := FREEZECHART (Control, false); END_IF; If Mx_Pulsador THEN Reset (Mx_EnParo); END_IF;
  • 150. 150 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección GRAFCET "Control" Sección "Salidas" Qx_Abrir := (Etapa2.x And Not Mx_EnParo) And Not Qx_Cerrar; Qx_Cerrar := ((Etapa4.x And Not Mx_EnParo) Or Mx_Cerrar) And Not Qx_Abrir; Qx_Cerrar Qx_Abrir (*Portón Cerrado*) Etapa0 Etapa2 Etapa3 Etapa4 Mx_Pulsador Mx_FCA Mx_Pulsador Mx_FCC False Etapa1 Introducir "False" como nombre de variable
  • 151. Problemas M340 - 151 Universidad de Oviedo ISA - J. Alonso - I. Machón Subrutina “Sr_IniciaSistema” 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
  • 152. 152 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 153. Problemas M340 - 153 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 6.1 · Control de 2 cilindros. EM y EF Un sistema automático consta de:  1 cilindro de doble efecto con electroválvula de potencia biestable servopilotada y detector de posición a1.  1 cilindro de simple efecto con vástago recogido con electroválvula de potencia monoestable servopilotada y detectores de posición b0 y b1.  Pulsadores de Rearme (NA), Marcha (NA) y Paro (NC).  Una luz verde y otra roja. Inicialmente el sistema estará parado con la luz verde apagada y la luz roja en intermitencia de 2 Hz. Cuando se active el pulsador de REARME, el CSE se pondrá con el vástago recogido y el CDE con vástago sacado y se encenderá la luz verde a 2 Hz y se apagará la luz roja. Desde esta posición inicial, cuando se active el pulsador de marcha se procederá a hacer una secuencia B+, A-, A+, B- ininterrumpidamente hasta que se active el pulsador de paro estAndo la luz verde encendida y la roja apagada. Cuando se active el pulsador de paro se mantendrá la configuración que tuviese y no podrá volver a arrancar hasta que se active el pulsador de Marcha, la luz roja estará encendida y la luz verde apagada. Se pide: 1. Esquema de Mando, 2. Esquema de fuerza 3. Tabla de variables 4. Programa de Mando, PD: PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM16025 con entradas PNP a 24 VCC y salidas por relé a 230 VAC. Esquema de fuerza neumático 0 Seta de emergencia A+ A- B+ a1 b0 b1
  • 154. 154 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de Mando, eléctrico
  • 155. Problemas M340 - 155 Universidad de Oviedo ISA - J. Alonso - I. Machón Tablas de variables Programa en ST y GRAFCET - (pr0601) Sección "Preliminar" (*Inicialización y gestión de la pantalla de operador*) If %S13 THEN Set (MxP_Paro); Set (MxP_B0); END_IF; (* Generación de las memorias que se utilizan en control Loc / Dis *) 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); (* en rojo están las que ponemos para poder simularlo en casa, en realidad estas no se usarían, en su lugar, se usarían las entradas Ix correspondientes *) Mx_A1 := (Ix_A1 And Ix_LocDis) Or (MxP_A1 And Not Ix_LocDis); Mx_B0 := (Ix_B0 And Ix_LocDis) Or (MxP_B0 And Not Ix_LocDis); Mx_B1 := (Ix_B1 And Ix_LocDis) Or (MxP_B1 And Not Ix_LocDis);
  • 156. 156 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón If RE (Mx_Rearme) THEN (* para simularlo *) Reset (MxP_B1); Set (MxP_B0); END_IF; 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 inicialización del CHART, ni ninguna orden SETSTEP *) If Mx_PonCI THEN Setstep (Etapa1); (* Esta instrucción se ejecuta en el ciclo siguiente al que se ejecuta la anterior, el autómata activa la etapa1 y borra automáticamente la variable Mx_PonCi *) END_IF; If Not Mx_Paro THEN Set (Mx_EnParada); (*Activar Luz Roja*) END_IF; If Mx_EnParada THEN SequenceFreezed := FREEZECHART (Control,true); (*Congela el GRAFCET dejando activa la etapa en la que estaba y por tanto las salidas asociadas*) else SequenceFreezed := FREEZECHART (Control,false); (* Descongela el GRAFCET *) END_IF; If Mx_Marcha THEN Reset (Mx_EnParada); END_IF; Sección "Salidas" Qx_Bmas := Etapa2.x or Etapa3.x or Etapa4.x; Qx_Amas := Etapa4.x or Etapa1.x; Qx_Amenos := Etapa3.x; Qx_LRoja := Etapa0.x and Mx_Osc2hz or Mx_EnParada; Qx_LVerde := ((Etapa1.x and Mx_Osc2hz) or Etapa2.x or Etapa3.x or Etapa4.x or Etapa5.x) and not Mx_EnParada; (* Se programa el oscilador de 2 Hz, T=500 ms *) TON_Oscilador (IN := NOT TON_Oscilador.Q, PT := t#500ms); Mx_Osc2Hz := TON_Oscilador.ET >= t#250ms; Sección "Transiciones" Tran3_4 := Etapa3.T >= t#5s; Tran1_2 := Mx_Marcha and Mx_A1 and Mx_B0;
  • 157. Problemas M340 - 157 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección GRAFCET (*Recoje el cilindro B*) Qx_LVerde Qx_Bmas Qx_Amas Qx_LVerde Tran3_4 := Etapa3.T>= t#5s Qx_Bmas Qx_Amenos Qx_LVerde Qx_Bmas Qx_LVerde Tran1_2 := Mx_Marcha and Mx_A1 and Mx_B0 (* Sistema parado *) Qx_LVerde 2Hz Qx_Amas (* Sistema parado Luz Verde apagada *) Qx_LRoja 2 Hz Etapa1 Etapa2 Etapa3 Etapa4 Etapa5 Etapa0 Tran1_2 Mx_B1 Tran3_4 Mx_A1 Mx_B0 false
  • 158. 158 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de Operador
  • 159. Problemas M340 - 159 Universidad de Oviedo ISA - J. Alonso - I. Machón Como mostrar un texto en la pantalla de operador en función de una variable El texto se puede animar y hacer que surja cuando interese un mensaje. Este mensaje estará asociado a un número de mensaje. Para introducirlo, iremos y clicaremos con el botón derecho en "pantallas de operador". En la pantalla que sale seleccionaremos "Lista de mensajes" y la abriremos. Posteriormente introduciremos todos aquellos que nos interesen. Cuando queramos sacar uno en la pantalla de operador, introduciremos un texto haciendo uso del icono correspondiente de la barra IOSEditor.
  • 160. 160 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Podremos animarlo para que surja cuando se active una determinada variable dentro de la pestaña "Animación". Posteriormente elegiremos el mensaje en la pestaña "Tipo de animación".
  • 161. Problemas M340 - 161 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 6.2 · Control de plantas con barrera. Puesta en CI con subrutina En la figura se representa el esquema de la salida de un aparcamiento público, por el cual, son evacuados los vehículos situados en dos plantas. La regulación de la salida se efectuará mediante la apertura de las barreras B1 o B2 según proceda. Tenemos en la misma dos lazos sensores S1E y S2E mediante los cuales se efectuará la demanda de salida y un tercer lazo sensor S3, que nos confirmará la salida del vehículo en curso. Otros dos lazos S1S y S2S nos informarán cuando se ha sobrepasado las barreras respectivas. La salida de los vehículos debe efectuarse de forma tal que se evacue un vehículo de cada planta, para evitar esperas en una de las plantas respecto a la otra. La secuencia de apertura debe realizarse de la forma siguiente:  Se realiza la petición de salida cuando un vehículo accede a un lazo sensor, abriéndose la barrera correspondiente, si no hay otro vehículo saliendo.  Cuando el vehículo en curso corresponda a la misma planta que el que hace la petición de salida, la barrera no debe de abrirse, a no ser que en la otra planta no haya una petición de salida. Nota: Disponemos de un pulsador (Rearme) para llevar al sistema a las condiciones iniciales en las cuales las barreras deberán estar cerradas. PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas PNP BMX DDM3202K. Cuando cierre la barrera después de pasar un coche, no sabemos si se activa primer el FCC o el sensor que nos indica que rebasó la barrera. PLANTA 1 PLANTA 2 S1E S2E SALIDA S3 B1 B2 S1S S2S
  • 162. 162 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Tablas de variables
  • 163. Problemas M340 - 163 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en ST y SFC - (pr0602) Sección "Preliminar" (* Generación de las memorias que se utilizan en el control local o a distancia *) Mx_Rearme := (Ix_Rearme and Ix_LocDis) or (MxP_Rearme and not Ix_LocDis); Mx_FCA_B1 := (Ix_FCA_B1 and Ix_LocDis) or (MxP_FCA_B1 and not Ix_LocDis); Mx_FCA_B2 := (Ix_FCA_B2 and Ix_LocDis) or (MxP_FCA_B2 and not Ix_LocDis); Mx_FCC_B1 := (Ix_FCC_B1 and Ix_LocDis) or (MxP_FCC_B1 and not Ix_LocDis); Mx_FCC_B2 := (Ix_FCC_B2 and Ix_LocDis) or (MxP_FCC_B2 and not Ix_LocDis); Mx_S1E := (Ix_S1E and Ix_LocDis) or (MxP_S1E and not Ix_LocDis); Mx_S1S := (Ix_S1S and Ix_LocDis) or (MxP_S1S and not Ix_LocDis); Mx_S2E := (Ix_S2E and Ix_LocDis) or (MxP_S2E and not Ix_LocDis); Mx_S2S := (Ix_S2S and Ix_LocDis) or (MxP_S2S and not Ix_LocDis); Mx_SSal := (Ix_SSal and Ix_LocDis) or (MxP_SSal and not Ix_LocDis); (* Control del rearme*) Mx_PonCI := CLEARCHART (Control, RE (Mx_Rearme)); (*con el flanco del pulsador de Rearme, borramos todas las etapas activas del GRAFCET “Control” y se pone automáticamente a 1 la variable Mx_PonCI*) IF Mx_Rearme THEN RESET (Mx_PEv); END_IF; IF Mx_PonCI THEN Sr_IniciaSistema(); (* Se ejecuta la subrutina que cierra las barreras *) END_IF; (*Si estuviésemos en lenguaje FBD, deberíamos pulsar sobre el 5º icono de la barra FBD-Editor, saldría el símbolo de la figura que rellenaríamos con el valor adecuado *) IF Mx_PuestoCI And Not Mx_Rearme THEN (* Not Mx_Rearme nos asegura que no se esté ejecutando CLEARCHART *) Mx_Initstate:= INITCHART (Control, true); (* se inicializa el GRAFCET borrando todas las etapas que estuviesen activas, se pone a 1 el bit Mx_Initstate y borra automáticamente el bit Mx_PonCI *) RESET (Mx_PuestoCI); (*para que no se ejecute mas este grupo de instrucciones*) SET (Mx_PEv); END_IF;
  • 164. 164 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Subrutina “Sr_IniciaSistema” IF NOT Mx_FCC_B1 THEN SET (Mx_Cerrar_B1); (* cierra barrera 1 *) ELSE RESET (Mx_Cerrar_B1); END_IF; IF NOT Mx_FCC_B2 THEN SET (Mx_Cerrar_B2); (* cierra barrera 2 *) ELSE RESET (Mx_Cerrar_B2); END_IF; IF Mx_FCC_B1 AND Mx_FCC_B2 THEN (* comprueba que el sistema esté en CI *) RESET (Mx_PonCI); (* no sería necesario *) SET (Mx_PuestoCI); END_IF; Sección "Transiciones" Tran0_8 := Mx_S2E and Mx_PEv and not Mx_S1E; Tran0_1 := Mx_S1E and Mx_PEv; Sección "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;
  • 165. Problemas M340 - 165 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección SFC (Control) (* Etapa 10 *) Qx_Cerrar_B2 (* Etapa 3 *) Qx_Cerrar_B1 Qx_Abrir_B2 Qx_Abrir_B1 Tran0_1:= Mx_S1E and Mx_PEv Tran0_8 := Mx_S2E and Mx_PEv and not Mx_S1E Etapa0 Etapa1 Etapa2 Etapa3 Etapa4 Etapa5 Etapa6 Etapa8 Etapa9 Etapa10 Etapa11 Etapa12 Etapa13 Etapa7 Tran0_1 Mx_FCA_B1 Mx_S1S Mx_FCC_B1 Mx_SSal NOT Mx_S2E Mx_S2E Mx_S2S Mx_FCC_B2 Mx_SSal true Tran0_8 Mx_FCA_B2 true
  • 166. 166 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de Operador Sección "Control_Pantalla" (* Generación de las memorias que se utilizan en la pantalla de operador*) (* Este trozo de código sólo es útil para hacer la animación agradable, no para controlar el proceso *) Mx_NoFC_B1 := not Mx_FCA_B1 and not Mx_FCC_B1; Mx_NoFC_B2 := not Mx_FCA_B2 and not Mx_FCC_B2; Mx_FCC_B1_Abriendo := Mx_FCC_B1 and Qx_Abrir_B1; Mx_FCA_B1_Cerrando := Mx_FCA_B1 and Qx_Cerrar_B1; Mx_FCC_B2_Abriendo := Mx_FCC_B2 and Qx_Abrir_B2; Mx_FCA_B2_Cerrando := Mx_FCA_B2 and Qx_Cerrar_B2; Mx_NoFC_B1_Abriendo := Mx_NoFC_B1 and Qx_Abrir_B1; Mx_NoFC_B1_Cerrando := Mx_NoFC_B1 and Qx_Cerrar_B1; Mx_NoFC_B2_Abriendo := Mx_NoFC_B2 and Qx_Abrir_B2; Mx_NoFC_B2_Cerrando := Mx_NoFC_B2 and Qx_Cerrar_B2; IF Mx_Rearme THEN SET (Mx_Coches12_Entrada); RESET (Mx_Coches12_Salida); SET (Mx_Coches34_Entrada); RESET (Mx_Coches34_Salida); END_IF;
  • 167. Problemas M340 - 167 Universidad de Oviedo ISA - J. Alonso - I. Machón 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_1E THEN IF not Mx_Coches12_Entrada and Mx_Coches12_Salida THEN SET (Mx_Coches12_Entrada); RESET (Mx_Coches12_Salida); RESET (Mx_Flanco_1E); END_IF; END_IF; Mx_Coche1_1E := Mx_S1E and Mx_Coches12_Entrada; Mx_Coche2_1E := Mx_S1E and not Mx_Coches12_Entrada; Mx_Flecha_B1 := Mx_S1E and Mx_FCA_B1 and not Mx_Coches12_S and not Etapa4.x; Mx_Coche1_1S := not Mx_Flecha_B1 and Etapa2.x and Mx_Coches12_Salida; Mx_Coche2_1S := not Mx_Flecha_B1 and Etapa2.x and not Mx_Coches12_Salida; Mx_Coches12_S := not Mx_Flecha_B1 and Etapa2.x; Mx_Coche1_S := Etapa4.x and Mx_Coches12_Salida; Mx_Coche2_S := Etapa4.x and not Mx_Coches12_Salida; Mx_Flanco_2E := FE (Mx_S2E); IF Mx_Flanco_2E THEN IF Mx_Coches34_Entrada and not Mx_Coches34_Salida THEN RESET (Mx_Coches34_Entrada); SET (Mx_Coches34_Salida); RESET (Mx_Flanco_2E); END_IF; END_IF; IF Mx_Flanco_2E THEN IF not Mx_Coches34_Entrada and Mx_Coches34_Salida THEN SET (Mx_Coches34_Entrada); RESET (Mx_Coches34_Salida); RESET (Mx_Flanco_2E); END_IF; END_IF; Mx_Coche3_1E := Mx_S2E and Mx_Coches34_Entrada; Mx_Coche4_1E := Mx_S2E and not Mx_Coches34_Entrada; Mx_Flecha_B2 := Mx_S2E and Mx_FCA_B2 and not Mx_Coches34_S and not Etapa11.x; Mx_Coche3_1S := not Mx_Flecha_B2 and Etapa9.x and Mx_Coches34_Salida; Mx_Coche4_1S := not Mx_Flecha_B2 and Etapa9.x and not Mx_Coches34_Salida;
  • 168. 168 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Mx_Coches34_S := not Mx_Flecha_B2 and Etapa9.x; Mx_Coche3_S := Etapa11.x and Mx_Coches34_Salida; Mx_Coche4_S := Etapa11.x and not Mx_Coches34_Salida;
  • 169. Problemas M340 - 169 Universidad de Oviedo ISA - J. Alonso - I. Machón S.P. S.S. SSC SSG SEG SEC S.E. SALIDA ENTRADA SALIDA 100 PLAZAS ENTRADA FCA FCC Problema 6.3 · Control de acceso a garaje con semáforos Un garaje público de 100 plazas de capacidad, tiene un acceso a través de una acera de uso peatonal. Para evitar conflictos, se optó por una regulación automática de entrada y salida de vehículos, de forma tal, que cuando uno quiera entrar o salir, la red semafórica instalada al efecto adopte la disposición conveniente. En la figura vemos esta red, disponiendo ésta, de un semáforo que controla el paso de peatones, otro que controla la entrada de vehículos, y un tercero que controla la salida de estos del interior del garaje. a) Para que un vehículo pueda entrar tiene que tener plaza de aparcamiento, lo cual, se indicará mediante la activación del foco azul (salida = "1" ). El número de plazas de que dispone el aparcamiento es de cien. Además 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 vehículo entrará y contabilizará en uno más el número de vehículos 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 vehículo, deberá esperar a que el vehículo 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 semáforo de peatones se halla en verde, el vehículo que ha efectuado la demanda de entrada, debe permanecer en espera hasta que las condiciones le permitan
  • 170. 170 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón 20 54 24 seg. seg. 40 60 Qx_SPVerde Semáforo de Peatones Mx_PA Qx_SPRojo 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 número de vehículos 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 vehículo, deberá esperar a que el vehículo 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 semáforo de peatones se halla en verde, el vehículo 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 SIMULTÁNEA , LA SALIDA ES SIEMPRE PRIORITARIA. d) El portón 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 semáforo 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, según corresponda a una entrada (SEG) o una salida (SSC). Si se halla en verde el semáforo de peatones el portón debe permanecer cerrado como medida de seguridad. e) El paso de peatones lo regula el semáforo "SP", éste se rige por una secuencia fija de 20 s.. en verde y 40 s.. en rojo. Este semáforo, 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 portón cerrado. PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas PNP BMX DDM3202K. Cronograma
  • 171. Problemas M340 - 171 Universidad de Oviedo ISA - J. Alonso - I. Machón Tablas de variables
  • 172. 172 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en ST y GRAFCET - (pr0603) Sección en SFC (GRAFCET) Sección "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; Qx_SERojo Qx_SSRojo Tran0_1 := Mx_SSGaraje and Mx_PA Qx_SERojo Qx_SSRojo Qx_Abrir Qx_SERojo Qx_SSVerde Qx_SERojo Qx_SSRojo Qx_SERojo Qx_SSRojo Dec Contador Tran4_2 := Mx_SSGaraje and Mx_PA Qx_SERojo Qx_SSRojo Qx_Cerrar Tran9_2 := Mx_SSGaraje and Mx_PA Tran4_5 := (not Mx_SEntCalle and not Mx_SSalGaraje) or not Mx_PermApertura Tran9_5 := (not Mx_SECalle and not Mx_SSGaraje) or not Mx_PA Tran4_7 := Mx_SEntCalle and Mx_PermApertura and not Mx_SSalGaraje Tran9_7 := not Mx_SSGaraje and Mx_SECalle and Mx_PA and Contador.CV < 100 Qx_SERojo Qx_SSRojo Inc Contador Qx_SERojo Qx_SSRojo Qx_SEVerde Qx_SSRojo Qx_SERojo Qx_SSRojo Qx_Abrir Tran0_6 := not Mx_SSGaraje and Mx_SECalle and Mx_PA and Contador.CV < 100 Etapa0 Etapa1 Etapa2 Etapa3 Etapa4 Etapa5 Etapa6 Etapa7 Etapa8 Etapa9 Tran0_1 Mx_FCA NOT Mx_SSGaraje Mx_SSCalle Tran4_5 Mx_FCC Tran0_6 Mx_FCA NOT Mx_SECalle Mx_SEGaraje Tran9_5 Tran4_2 Tran4_7 Tran9_7 Tran9_2
  • 173. Problemas M340 - 173 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "Preliminar" (*Generación de señales*) 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 sólo en el primero, después de STOP cuando el autómata pasa a RUN *) ClearState := CLEARCHART (Control,true); (* Anula el GRAFCET *) END_IF; Mx_PonCI := CLEARCHART (Control, RE (Mx_Rearme)); (* Anula el GRAFCET *) IF RE (Mx_Rearme) THEN RESET (Mx_IniCiclo); END_IF; IF Mx_PonCI THEN Sr_IniciaSistema(); (* ejecuta la subrutina que pone en condiciones iniciales *) END_IF; IF Mx_PuestoCI AND NOT Mx_Rearme THEN RESET (Mx_PuestoCI); InitState := INITCHART (Control, true); (* activa la etapa inicial y Resetea el resto de etapas*) SET (Mx_IniCiclo); END_IF; Posterior (*Portón*) Qx_Abrir := Etapa1.x OR Etapa6.x; Qx_Cerrar := Etapa5.x OR Mx_Cerrar; (*Semáforo de peatones*) Qx_SPVerde := Mx_IniCiclo AND t_Temporizador.ET <= t#20s; Qx_SPRojo := Mx_IniCiclo AND NOT Qx_SPVerde; (*Semáforo de entrada*) Qx_SEVerde := Etapa7.x; Qx_SERojo := NOT Qx_SEVerde; Qx_SEAzul := Contador.CV <100; (*Semáforo de salida*) Qx_SSVerde := Etapa2.x; Qx_SSRojo := NOT Qx_SSVerde; (*Contador*) Contador (CU := Mx_SEGaraje, CD := Mx_SSCalle, R := Mx_Rearme);
  • 174. 174 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón (*Arranca temporizador de ciclo tipo TON*) TON_60s (IN := MX_IniCiclo AND NOT TON_60s.Q, PT := t#60s); (* Permiso de apertura del portón*) Mx_PermApertura := TON_60s.ET >= t#24s AND TON_60s.ET <= t#54s; (* Marca generada para saber cuando se está moviendo el portón en la pantalla de operador *) Mx_PortonMoviendose := Etapa1.x Or Etapa5.x Or Etapa6.x ; Subrutina "Sr_ IniciaSistema " 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
  • 175. Problemas M340 - 175 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 6.4 · Manipulador 2 ejes con cilindros Se desea automatizar un dispositivo clasificador de piezas con un autómata Modicon M340. El módulo de entradas es NPN y el de salida PNP. El sistema consta de un cilindro sin vástago B en cuyo cursor está acoplado otro cilindro A de simple efecto y una pequeña plataforma. El cilindro B, está gobernado por una electroválvula servopilotada de potencia biestable 5/2. El cilindro A está gobernado por una electroválvula servopilotada de potencia monoestable 3/2. Inicialmente el sistema estará parado con una luz roja y otra verde encendiéndose alternativamente a 1 Hz. Cuando se pulse Rearme, el sistema será llevado a condiciones iniciales: cilindro B en la posición inferior, cilindro A recogido. En ese instante quedará encendida la luz verde de forma permanente. Cuando se pulse Marcha el sistema estará en disposición de clasificar las piezas. Las piezas pueden ser de dos tipos: metálicas o de plástico. La alimentación de las piezas se realiza mediante una rampa central y van cayendo una a una cuando el cilindro A (CSE) está en la posición inferior b0, retraido a0, y no hay pieza en la plataforma (ni el sensor inductivo ni el capacitivo detectan). Cuando una pieza cae en la plataforma, un sensor detecta la presencia de esta y el otro distingue si es metálica o no. A continuación se procede a la clasificación de las piezas en dos bandejas:  La bandeja inferior es para las piezas de plástico (el cilindro A avanza hasta a1, espera 1s y retrocede hasta a0).  La bandeja superior es para las metálicas (el cilindro B sube, arrastrando al A hasta b1, el A avanza entonces hasta a1 espera 1s, retrocede hasta a0, y el B baja, arrastrando al A hasta b0). Terminado el ciclo, caerá una nueva pieza en la bandeja, repitiéndose el proceso. Paro: Cuando se active el pulsador de Paro (NC), se procederá a inmovilizar el sistema apagándose la la luz Verde y encendiéndose la luz Roja. Se saldrá de esta situación cuando se pulse de nuevo Marcha. En ese momento, el sistema continuará en el mismo punto en el que estaba. .
  • 176. 176 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM3202K entradas y salidas PNP SE PIDE: El programa de control. Tabla de variables
  • 177. Problemas M340 - 177 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en ST y GRAFCET - (pr0604) Sección "Preliminar" (* Marcas necesarias para animar la pantalla de operador*) if %s13 then set (MxP_Paro); set (MxP_b1); set (MxP_a0); end_If; MxP_b0a0 :=Etapa1.x or Etapa2.x or Etapa2.x or Etapa4.x or Etapa7.x and not MxP_EnMedio; MxP_b0a0Plastico := MxP_b0a0 and Mx_Capacitivo ; MxP_b0a0Metal := MxP_b0a0 and Mx_Inductivo and Mx_Capacitivo; MxP_b0a1 :=Etapa5.x or Etapa6.x; MxP_b1a0Metal := MxP_b1a0 and Etapa8.x; MxP_b1a1Metal := MxP_b1a1 and (Etapa9.x or Etapa10.x); MxP_b1a0 :=Etapa8.x or Etapa11.x and not MxP_EnMedio or (MxP_b1 and MxP_a0); MxP_b1a1 :=Etapa9.x or Etapa10.x; MxP_Subiendo :=Qx_Bmas and not Mx_b0; MxP_Bbajando :=Qx_Bmenos and not Mx_b1; MxP_EnMedio :=MxP_Subiendo or MxP_Bbajando; If Etapa2.t > t#2s and not Mx_Inductivo then set (MxP_PiezaPlastico); else set(MxP_PiezaMetal); end_if; If Etapa2.x then reset (MxP_PiezaPlastico); reset(MxP_PiezaMetal); end_if; If Etapa8.x then reset (MxP_Capacitivo); reset (MxP_Inductivo); end_if; If Etapa5.x then reset (MxP_Capacitivo); end_if; (* Marcas usadas en el control Local / Distancia *) Mx_a0 := (Ix_a0 and Ix_LocDis) or (MxP_a0 and not Ix_LocDis); Mx_a1 := (Ix_a1 and Ix_LocDis) or (MxP_a1 and not Ix_LocDis); Mx_b0 := (Ix_b0 and Ix_LocDis) or (MxP_b0 and not Ix_LocDis); Mx_b1 := (Ix_b1 and Ix_LocDis) or (MxP_b1 and not Ix_LocDis); Mx_Capacitivo := (Ix_Capacitivo and Ix_LocDis) or (MxP_Capacitivo and not Ix_LocDis); Mx_Inductivo := (Ix_Inductivo and Ix_LocDis) or (MxP_Inductivo and not Ix_LocDis); Mx_Rearme := (Ix_Rearme and Ix_LocDis) or (MxP_Rearme and not Ix_LocDis); Mx_Paro := (Ix_Paro and Ix_LocDis) or (MxP_Paro and not Ix_LocDis); Mx_Marcha := (Ix_Marcha and Ix_LocDis) or (MxP_Marcha and not Ix_LocDis);
  • 178. 178 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón (* Condición de Rearme *) Mx_PonCI := Clearchart (Control, RE(Mx_Rearme)); (* con el flanco ascendente del pulsador de rearme, reseteamos el GRAFCET de control y ponemos a 1 la variable Mx_PonCI *) if Mx_PonCI and not Mx_Rearme then Sr_IniciaSistema(); (* ejecutamos la subrutina de inicializar *) end_if; if Mx_PuestoCI then setstep (Etapa1); (* ponemos el GRAFCET de control en la etapa Etapa1 y el AP borra automaticamente la variable Mx_PonCI *) reset (Mx_PuestoCI); end_if; if not Mx_Paro then set(Mx_EnParada); end_if; if Mx_EnParada then Mx_ParoGrafcet := freezechart (Control,true); (* Congela el GRAFCET *) else Mx_ParoGrafcet := freezechart (Control,false); end_if; if Mx_Marcha then reset (Mx_EnParada); end_if; Sección "Transiciones" Tran1_2 := Mx_Marcha and Mx_a0 and Mx_b0; Tran2_4 := Etapa2.t > t#3s and Mx_Capacitivo and not Mx_Inductivo; Tran5_6 := Etapa5.t > t#1s; Tran2_7 := Etapa2.t > t#3s and Mx_Inductivo; Tran9_10 := Etapa9.t > t#1s; Sección "Salidas" Qx_Amas := Mx_Amas or Etapa4.x or Etapa8.x or Etapa5.x or Etapa9.x; Qx_Bmas := Etapa7.x; Qx_Bmenos := Mx_Bmenos or Etapa11.x; Qx_LRoja := (Etapa0.x and %S6) or Mx_EnParada; (*La segunda condicón se debe al rearme y se debe asegurar la ausencia de pieza*); Qx_LVerde := ((Etapa0.x and not %S6) or (not Etapa0.x and not Mx_PonCi) and not Mx_EnParada);
  • 179. Problemas M340 - 179 Universidad de Oviedo ISA - J. Alonso - I. Machón Subrutina "Sr_ IniciaSistema " (* Durante el rearme se debe asegurar la ausencia de pieza*) if not Mx_b0 and not Mx_Capacitivo then set (Mx_Bmenos); else reset (Mx_Bmenos); end_if; if not Mx_a0 then reset (Mx_Amas); end_if; if Mx_b0 and Mx_a0 then set (Mx_PuestoCI); reset (Mx_ponCi); end_if; Pantalla de Operador
  • 180. 180 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón GRAFCET de Mando (* Plástico *) Tran2_4 := Etapa3.t > t#3s and Mx_Capacitivo and not Mx_Inductivo (* Metal *) Tran2_7 := Etapa3.t > t#3s and Mx_Inductivo Tran9_10 := Etapa9.t > t#1s; Qx_Amas (* Temporización de 1 segundo manteniendo la presurización en el cilindro A *) Qx_LVerde (* Los cilindros están en sus posiciones iniciales *) (* En espera de detectar la presencia de una pieza Si Mx_Inductivo = 1 entonces la pieza es metálica Si Mx_Inductivo = 0 entonces la pieza es de plástico *) (* Recoge el vástago A válvula monoestable *) Qx_Amas Qx_Bmenos (* Recoge el vástago B *) Qx_Amas (* Sacar el vástago A *) Qx_Amas (* Temporización de 1 segundo manteniendo la presurización en el cilindro A *) (* Recoge el vástago A válvula monoestable *) Elevar plataforma (B+) Tran1_2 Mx_Marcha and Mx_a0 and Mx_b0; Tran5_6 := Etapa5.t > t#1s; Qx_LRoja y Qx_LVerde a 1Hz alternativamente (* Esperamos la pulsación de REARME *) Etapa0 Etapa4 Etapa5 Etapa6 Etapa7 Etapa8 Etapa9 Etapa10 Etapa11 Etapa1 Etapa2 Mx_a1 Tran5_6 Mx_a0 Tran2_4 Tran2_7 Mx_b1 Mx_a1 Tran9_10 Mx_a0 Mx_b0 Tran1_2 false Etapa2 Etapa2
  • 181. Problemas M340 - 181 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 6.5 · Control de un silo y vagoneta La imagen muestra un vagón cisterna que transportará un material suministrado por un silo hacia una zona de descarga. El vagón debe estar inicialmente en la parte izquierda de la figura indicada por el final de carrera FC_INICIO (NC). En ese lugar se dispone de un sensor capaz de pesar el vagón y de generar la señal VACÍO si el vagón está vacío o la señal LLENO si el peso del vagón es el máximo permitido. Se desea automatizar el proceso mediante el PLC M340 de Schneider. Cuando se establezca el modo RUN en el PLC, el sistema deberá estar parado con la luz verde y la luz roja en intermitencia de 1 Hz alternadamente. Para ir a CI, cuando se active el pulsador de REARME, el vagón se llevará a la zona de descarga -derecha- indicándolo un FC_DESCARGA (NC). Se descargará (durante 5 minutos) y volverá a la posición 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 posición 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 continuación: Se procederá a abrir el silo mediante la apertura de la válvula V_SILO, permitiendo la descarga de material y llevando a cabo el llenado del vagón. Solamente será posible la apertura de V_SILO si el vagón se encuentra en la posición de inicio totalmente descargado y se ha procedido a accionar el pulsador MARCHA. Si el llenado del vagón no se completa en menos de 10 minutos debe procederse al cierre de la válvula del silo y el vagón deberá llevarse a la zona de descarga. En esta zona de descarga, el vagón verterá su contenido abriendo la válvula V_VAGON durante 5 minutos. Transcurridos estos 5 minutos, el vagón deberá retroceder a la posición inicial. Si se ha realizado el llenado del vagón en menos de 10 minutos, este deberá avanzar hacia la zona de descarga. De idéntica forma a la descrita anteriormente, verterá su contenido durante 5 minutos y volverá a la posición inicial. Cuando se active el pulsador de PARO (NC) se mantendrá la configuración 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. PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM3202K entradas y salidas PNP. SE PIDE: Esquema de Mando, y de fuerza con todos los elementos necesarios y el programa de control.
  • 182. 182 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de variables
  • 183. Problemas M340 - 183 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en ST y GRAFCET - (pr0605) Sección "Preliminar" (* Marcas necesarias para la pantalla de operador *) If %s13 THEN Set (MxP_Paro); Set (MxP_FCInicio); Set (MxP_FCDescarga); END_IF; (* Marcas usadas en el control Local / Distancia *) Mx_Marcha := (Ix_Marcha And Ix_LocDist) Or (MxP_Marcha And Not Ix_LocDist); Mx_Paro := (Ix_Paro And Ix_LocDist) Or (MxP_Paro And Not Ix_LocDist); Mx_Rearme := (Ix_Rearme And Ix_LocDist) Or (MxP_Rearme And Not Ix_LocDist); Mx_Lleno := (Ix_Lleno And Ix_LocDist) Or (MxP_Lleno And Not Ix_LocDist); Mx_Vacio := (Ix_Vacio And Ix_LocDist) Or (MxP_Vacio And Not Ix_LocDist); Mx_FCInicio := (Ix_FCInicio And Ix_LocDist) Or (MxP_FCInicio And Not Ix_LocDist); Mx_FCDescarga := (Ix_FCDescarga And Ix_LocDist) Or (MxP_FCDescarga And Not Ix_LocDist); (* Condición de Rearme *) Mx_PonCI := CLEARCHART (Control, RE(Mx_Rearme)); (*con el flanco ascendente del pulsador de rearme, desactivamos el GRAFCET denominado Control y ponemos a 1 la variable Mx_PonCI*) Mx_PonCI := CLEARCHART (Rearme, RE(Mx_Rearme)); (*con el flanco ascendente del pulsador de rearme, desactivamos el GRAFCET denominado Rearme y ponemos a 1 la variable Mx_PonCI*) If Mx_PonCI And Not Mx_Rearme THEN Setstep (Etapa11); Reset (Mx_EnParada); END_IF; If Mx_PuestoCI THEN (*se activa el GRAFCET principal de Control en la etapa 1 que corresponde al estado de condiciones iniciales y se liberan las acciones de salida*) Setstep (Etapa1); (*se borra automáticamente la variable Mx_PonCi*) Reset (Mx_PuestoCI); END_IF; If Not Mx_Paro THEN Set (Mx_EnParada); END_IF; If Mx_EnParada THEN Mx_ParoGRAFCET := FREEZECHART (Control,true); (* Congela el GRAFCET, dejando activa la etapa en la que queda congelado *) else Mx_ParoGRAFCET := FREEZECHART (Control, false); END_IF; If Mx_Marcha THEN Reset (Mx_EnParada); END_IF;
  • 184. 184 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "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; Sección "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
  • 185. Problemas M340 - 185 Universidad de Oviedo ISA - J. Alonso - I. Machón GRAFCET de rearme GRAFCET de control Mx_PuestoCI Qx_Retroceso Qx_LVerde 1Hz Qx_Avance Qx_LVerde 1Hz Qx_VVagón Qx_LVerde 1Hz Etapa12.t>5m Not Mx_FCDescarga Not Mx_FCInicio Etapa10 Etapa11 Etapa12 Etapa13 Etapa14 false NOT Mx_FCDescarga Tran_12_13 NOT Mx_FCInicio Etapa1.x
  • 186. 186 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "ControlPantalla" (* Marcas necesarias para gestionar la pantalla *) MxP_Inicio_Avance :=Not Mx_FCInicio And (Etapa3.x Or Etapa11.x); MxP_Inicio :=(Etapa1.x Or Etapa2.x) And Not MxP_Inicio_VagonSemiLleno And Not MxP_Inicio_VagonLleno ; MxP_CargAndo1 :=Etapa2.x And Etapa2.t<t#5s; If Mx_Vacio And Etapa2.x THEN Reset(MxP_VagonLleno); Reset (MxP_VagonSemiLleno); END_IF; If Etapa2.t>t#5s And Not MxP_VagonLleno THEN Set (MxP_VagonSemiLleno); END_IF; If Mx_Lleno And Etapa2.x And Etapa2.t<t#10s THEN Set (MxP_VagonLleno); Reset (MxP_VagonSemiLleno); END_IF; If Etapa2.t>t#10s And Not MxP_VagonLleno THEN Set (MxP_VagonSemiLleno); END_IF; MxP_Inicio_VagonSemiLleno := (Not Mx_FCInicio And Etapa2.x And MxP_VagonSemiLleno) Or (Not Mx_FCInicio And Etapa11.x); MxP_Inicio_VagonLleno := Not Mx_FCInicio And Etapa2.x And MxP_VagonLleno; MxP_Inicio_Avance_VagonLleno := Not Mx_FCInicio And Etapa3.x And MxP_VagonLleno; MxP_Inicio_Avance_VagonSemiLleno := Not Mx_FCInicio And Etapa3.x And MxP_VagonSemiLleno; MxP_AvanceLleno := Etapa3.x And MxP_VagonLleno And Mx_FCInicio; MxP_AvanceSemiLleno := ((Etapa3.x And MxP_VagonSemiLleno) Or (Etapa11.x)) And Mx_FCInicio; MxP_DescargAndo1 := (Etapa4.x And Etapa4.t<t#2.5s) And MxP_VagonLleno; MxP_DescargAndo2 := (Etapa4.x And Etapa4.t>t#2.5s) Or Etapa12.x Or (Etapa4.x And MxP_VagonSemiLleno); MXP_Retroceso := Mx_FCDescarga And (Etapa5.x Or Etapa13.x); MxP_Descargado_Retroceso := Not Mx_FCDescarga And (Etapa5.x Or Etapa13.x); If Etapa4.x THEN MtP_TiempoDescarga := Etapa4.t; END_IF; If Etapa12.x THEN MtP_TiempoDescarga:=Etapa12.t; END_IF; If Etapa2.x THEN MtP_TiempoLlenado:=Etapa2.t; END_IF;
  • 187. Problemas M340 - 187 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 6.6 · Pesado preciso de sustancias. Sencillo. EM y EF Se desea automatizar un proceso de pesado preciso de un producto sobre una báscula. Para verter el producto se dispone de una tolva con dos tajaderas. La "A" vierte el producto de una forma rápida -gran sección de paso-. La "B" lo vierte de una forma más lenta -sección de paso inferior- para poder afinar en la cantidad de producto vertido. La tolva tiene un sensor de peso calibrado capaz de pesar desde 0 hasta 500 Kg. El proceso consiste en lo siguiente:  Al pulsar Marcha (Pulsador NA), deben abrirse las tajaderas A y B que cierran el vertido de un producto sobre un sistema de pesaje basculante.  Cuando la báscula marque 390 Kg (señal binaria B1), deberá cerrarse la tajadera A controlada por un cilindro de simple efecto, vástago extendido y válvula monoestable.  Cuando la báscula marque 400 Kg (señal binaria B2), deberá cerrarse B con lo que se cerrará la compuerta de afinado. La tajadera B es controlada por un cilindro de simple efecto, vástago extendido y válvula monoestable.  Alcanzado el peso deseado, se vacía la báscula por medio de un cilindro basculante (C) de simple efecto, vástago recogido y válvula monoestable.  El vaciado termina cuando el sensor de peso llegue a cero (señal binaria B3) .  En ese momento se desactiva el cilindro basculante para que la báscula recupere la posición inicial. PARO: Durante cualquier momento del proceso, si se pulsa un interruptor de Paro (NC), se deberá parar el proceso y activar una luz de paro. Se saldrá de esta situación al pulsar Marcha. El sistema volverá a continuar donde estaba y se apagará la luz de paro. PARADA DE EMERGENCIA: Si en cualquier momento se pulsa la Parada de Emergencia (interruptor NC) se deberán cerrar las tajaderas A y B y/o parar el vaciado de la báscula. Se indicará mediante la activación parpadeante de la luz roja de parada de emergencia. Para salir de esta situación, se pulsará Rearme. REARME: Si en un momento determinado se pulsa Rearme, el sistema volverá al estado de reposo inicial, independientemente del estado en el que se produjese la parada. PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo de entradas PNP BMX DDI 1602 y salidas PNP BMX DDO 1602.
  • 188. 188 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de fuerza neumático Esquema de Mando, eléctrico
  • 189. Problemas M340 - 189 Universidad de Oviedo ISA - J. Alonso - I. Machón Módulos DDI 1602 y DDO 1602 Tabla de variables
  • 190. 190 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "Preliminar" (* Marcas necesarias para la pantalla de operador *) If %S13 THEN Set (MxP_Paro); Set (MxP_Emergencia); END_IF; (* IniciaVariables *) 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_Emergencia := (Ix_Emergencia And Ix_LocDis) Or (MxP_Emergencia And Not Ix_LocDis); Mx_B1 := (Ix_B1 And Ix_LocDis) Or (MxP_B1 And Not Ix_LocDis); Mx_B2 := (Ix_B2 And Ix_LocDis) Or (MxP_B2 And Not Ix_LocDis); Mx_B3 := (Ix_B3 And Ix_LocDis) Or (MxP_B3 And Not Ix_LocDis); (* Parada de emergencia *) Mx_EnEmergencia := CLEARCHART (Control, Not Mx_Emergencia); (* Rearme *) If Mx_Rearme THEN Reset (Mx_EnParada); END_IF; Mx_PonCI := INITCHART (Control, RE (Mx_Rearme)); (* Paro *) If Not Mx_Paro THEN Set (Mx_EnParada); END_IF; If Mx_EnParada THEN Mx_ParoGRAFCET := FREEZECHART (Control, true); (* Congela el GRAFCET, dejando activa la etapa en la que queda congelado *) ELSE Mx_ParoGRAFCET := FREEZECHART (Control, false); END_IF; If Mx_Marcha THEN Reset (Mx_EnParada); END_IF; Sección SFC "Control" Sección "Salidas" Qx_A_Menos := Etapa1.x And Not Mx_EnParada; Qx_B_Menos := (Etapa1.x Or Etapa2.x) And Not Mx_EnParada; Qx_C_Mas := Etapa3.x And Not Mx_EnParada; Qx_LParo := Mx_EnParada; Qx_LEmergencia := Mx_EnEmergencia And %S6;
  • 191. Problemas M340 - 191 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de Operador
  • 192. 192 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 193. Problemas M340 - 193 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 6.7 · Pesado preciso de sustancias. EM y EF Se desea automatizar un proceso de pesado preciso de un producto sobre una báscula. Para verter el producto se dispone de una tolva con dos tajaderas. La "A" vierte el producto de una forma rápida -gran sección de paso-. La "B" lo vierte de una forma más lenta -sección de paso inferior- para poder afinar en la cantidad de producto vertido. La tolva tiene un sensor de peso calibrado capaz de pesar desde 0 hasta 500 Kg. El proceso consiste en lo siguiente:  Al pulsar Marcha (Pulsador NA), deben abrirse las tajaderas A y B que cierran el vertido de un producto sobre un sistema de pesaje basculante.  Cuando la báscula marque 390 Kg (señal binaria B1), deberá cerrarse la tajadera A controlada por un cilindro de doble efecto, válvula monoestable 4/2, posición de partida con vastago extendido.  Cuando la báscula marque 400 Kg (señal binaria B2), deberá cerrarse B con lo que se cerrará la compuerta de afinado. La tajadera B es controlada por un cilindro de doble efecto, válvula monoestable 4/2, posición de partida con vastago extendido.  Alcanzado el peso deseado, se vacía la báscula por medio de un cilindro basculante (C) de doble efecto, válvula monoestable 4/2, posición de partida con vastago recogido.  El vaciado termina cuando el sensor de peso llegue a cero (señal binaria B3) .  En ese momento se desactiva el cilindro basculante para que la báscula recupere la posición inicial. PARO: Durante cualquier momento del proceso, si se pulsa un interruptor de Paro (NC), se deberá parar el proceso y activar una luz de paro. Se saldrá de esta situación al pulsar Marcha. El sistema volverá a continuar donde estaba y se apagará la luz de paro. PARADA DE EMERGENCIA: Si en cualquier momento se pulsa la Parada de Emergencia (interruptor NC) se deberán cerrar las tajaderas A y B y/o parar el vaciado de la báscula. Se indicará mediante la activación parpadeante de la luz roja de parada de emergencia. Para salir de esta situación, se pulsará Rearme. REARME: Su pulsación, hará que se vacie la plataforma llevando al sistema a sus CI. PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo de entradas PNP BMX DDI 1602 y salidas PNP BMX DDO 1602.
  • 194. 194 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de fuerza neumático Esquema de Mando, eléctrico
  • 195. Problemas M340 - 195 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de variables Sección "Preliminar" (* Parada de emergencia *) If Not Mx_Emergencia Then Set (Mx_EnEmergencia); End_if; (* Rearme *) If (Mx_Rearme) Then Reset (Mx_EnEmergencia); End_If; Mx_PonEnCI := Clearchart (Control, RE(Mx_Rearme)); If Mx_PonEnCI Then SR_Inicializa(); End_if; If Mx_PuestoEnCI And Not Mx_Rearme Then Reset (Mx_PuestoEnCI); Mx_IniciaChart := Initchart (Control, True); End_if; (* Paro *) if not Mx_Paro then set (Mx_EnParada); end_if;
  • 196. 196 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón if Mx_EnParada then Mx_ParoGRAFCET := FREEZECHART (Control, true); ELSE Mx_ParoGRAFCET := FREEZECHART (Control, false); end_if; if Mx_Marcha then reset (Mx_EnParada); end_if; Sección "Salidas" Qx_A_Menos := Etapa1.x And Not (Mx_EnParada Or Mx_EnEmergencia); Qx_B_Menos := (Etapa1.x Or Etapa2.x) And Not (Mx_EnParada Or Mx_EnEmergencia); Qx_C_Mas := (Etapa3.x And Not (Mx_EnParada Or Mx_EnEmergencia))or Mx_CMas; Qx_LParo := Mx_EnParada; Qx_LEmergencia := Mx_EnEmergencia And %S6; Sección subrutina "SR_Inicializa" set (Mx_CMas); If Mx_B3 Then reset (Mx_CMas); reset (Mx_PonEnCI); set (Mx_PuestoEnCI); end_if; Sección subrutina "SFC" Pantalla de Operador Qx_A_Menos Qx_B_Menos Qx_B_Menos Qx_C_Mas Etapa0 Etapa1 Etapa2 Etapa3 MxP_Marcha MxP_B1 MxP_B2 MxP_B3
  • 197. Problemas M340 - 197 Universidad de Oviedo ISA - J. Alonso - I. Machón 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 establecerán unos GRAFCETs que controlen esos subprocesos de forma que actúen 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 de nuevo la etapa inicial número 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 acción sería:
  • 198. 198 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 199. Problemas M340 - 199 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 7.1 · Control de 2 cintas Diseñar el circuito de Mando, para el control de dos cintas de una instalación. CI : Inicialmente las dos cintas estarán desconectadas y las lámparas de desconexión Qx_LDes_C1 y Qx_LDes_C2 estarán encendidas y el resto apagadas. Cuando se pulse Ix_Con se conectará la cinta 1 y la cinta 2 de forma automática, quedando encendidas las lámparas de conexión Qx_LCon_C1 y Qx_LCon_C2 y apagadas el resto. DESCONEXIÓN: Después de accionar el pulsador de desconexión Ix_Des:  La cinta 1 debe permanecer en régimen de descarga durante 20 segundos, activándose intermitentemente a 2 Hz una lámpara ámbar Qx_LDesccg_C1, estando las de conexión y desconexión apagadas. Cuando acabe el proceso de descarga sólo quedará encendida la lámpara Qx_LDes_C1.  La cinta 2 permanecerá en régimen de descarga durante 40 segundos, activándose intermitentemente a 2 Hz una lámpara ámbar Qx_LDesccg_C2, estando las de conexión y desconexión apagadas. Cuando acabe el proceso de descarga sólo quedará encendida la lámpara Qx_LDes_C2. EMERGENCIA: Mediante un pulsador de emergencia Ix_Emer (NC) parará tanto la cinta 2 como la 1, quedando encendida permanentemente las lámparas de descarga 1 y 2 y apagadas las demás. VIGILANCIA: Unas vigilancias de cintas (control de rotación) señalizan el movimiento de las mismas, no debiendo bajar las ruedas motrices de una velocidad tal que los impulsos lleguen con una frecuencia de 1 Hz (30% ON, 70% OFF). Estas señales no se evaluarán durante la fase de arranque, que dura 5 segundos. Si en marcha normal desaparece la señal de vigilancia de la cinta 1, hay que parar inmediatamente dicha cinta, dejando funcionar en régimen de descarga la cinta 2. Para avisar de la avería la lámpara Qx_LDes_C1 de la cinta 1 se encenderá parpadeando a una frecuencia de 2 Hz y el resto apagadas. Si el fallo se produce en la cinta 2, deberá pararse inmediatamente las dos cintas. Avisando de la avería, mediante el encendido de la lámpara de desconexión Qx_LDes_C2 con una frecuencia de parpadeo de 2 Hz y el resto apagadas. Retorno CI: Para retornar a las condiciones iniciales se pulsará Ix_Rearme. PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM3202K entradas y salidas PNP. Vigilancia de
  • 200. 200 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón cintas La vigilancia de cintas se efectúa evaluando la frecuencia de los impulsos que llegan a través de un controlador de rotación como el de la figura. Los dientes del controlador pasan delante del detector inductivo, de forma tal, que generan una señal de onda cuadrada con una frecuencia proporcional a la velocidad de rotación del eje motor. Cuando el motor está parado o con una velocidad de rotación inferior a la nominal en el proceso de arranque, no se deberán evaluar los impulsos recibidos. Una vez que el motor esté en condiciones nominales, se recibirán los impulsos a una determinada frecuencia. Si la velocidad del motor baja de la nominal por una sobrecarga, los impulsos llegarán con una frecuencia menor a la esperada. Deberemos entonces disparar una señal de emergencia por vigilancia de cintas que pare el proceso según deseemos. El quid de la cuestión es coger la señal complementaria de esta vigilancia de cintas y con ella arrancar un temporizador TON. Cuando se evalúan los impulsos estando el motor girando fuera del periodo de arranque o parado, arrancará el temporizador y antes de que la señal binaria TON.Q se active, esto es, antes de que termine el tiempo de temporización, cae la señal de entrada a este temporizador y por lo tanto su salida no pasa a 1. Si el motor tiene una sobrecarga y va más lento, entonces el temporizador podrá pasar su salida binaria a 1 para luego volver a caer a 0. Cogeremos la señal de salida binaria del temporizador, para poner de forma memorizada una señal de Avería de la Cinta, con la que controlaremos el proceso de parada por avería. P.e.: En este problema recibimos una señal con frecuencia 1 Hz con 700ms en OFF y 300ms en ON. Cogiendo la señal complementaria de Ix_Vig_Cn, y arrancando con ella el temporizador TON_Ave_Cn, cuando se supere el tiempo de 700ms en ON se generará la señal de avería de forma memorizada.
  • 201. Problemas M340 - 201 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en ST y GRAFCET - (pr0701) Tabla de variables
  • 202. 202 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón GRAFCET de Mando GRAFCETs de la Cinta_C1 y de la Cinta_C2 (* Descarga C2 *) (* Descgarga C1 *) (* Funcionamiento normal *) (* Parada *) Etapa0 Etapa1 Etapa2 Etapa3 Mx_Con Not Mx_Desc NOT Qx_Mot_C1 NOT Qx_Mot_C2 Etapa12.t >= 20s Qx_LDes_C1 Qx_Mot_C1 Qx_LDescg_C1 2Hz Qx_Mot_C1 Qx_LCon_C1 (* G Mando{1} *) (* G Mando{2} *) Etapa10 Etapa11 Etapa12 Etapa1.x Etapa2.x Tran12_10 Etapa22.t >= 40s Qx_Mot_C2 Qx_LDescg_C2 2Hz Qx_Mot_C2 Qx_LCon_C2 Qx_LDes_C2 (* G Mando{3} *) (* G Mando{1} *) Etapa20 Etapa21 Etapa22 Etapa1.x Etapa3.x Tran22_20
  • 203. Problemas M340 - 203 Universidad de Oviedo ISA - J. Alonso - I. Machón Preliminar (* Marcas para el control de la pantalla de operador *) IF %S13 then set (MxP_Vig_C1); set (MxP_Vig_C2); set (MxP_Emergencia); set (MxP_Desc); END_IF; Mx_Nominal := TON_Inh_Vig.Q AND NOT Mx_Av_C1 AND NOT Mx_Av_C2; Mx_Sobrecarga := Mx_Av_C1 OR Mx_Av_C2; (* Marcas para el control Local / Distancia *) Mx_Con := (Ix_Con And Ix_LocDist) Or (MxP_Con And Not Ix_LocDist); Mx_Desc := (Ix_Desc And Ix_LocDist) Or (MxP_Desc And Not Ix_LocDist); Mx_Emergencia := (Ix_Emerg And Ix_LocDist) Or (MxP_Emergencia And Not Ix_LocDist); Mx_Rearme := (Ix_Rearme And Ix_LocDist) Or (MxP_Rearme And Not Ix_LocDist); Mx_Vig_C1 := (Ix_Vig_C1 And Ix_LocDist) Or (MxP_Vig_C1 And Not Ix_LocDist); Mx_Vig_C2 := (Ix_Vig_C2 And Ix_LocDist) Or (MxP_Vig_C2 And Not Ix_LocDist); If Not Mx_Emergencia THEN (* Borra GRAFCETs*) Mx_ClearState := CLEARCHART (Mando, true) ; Mx_ClearState := CLEARCHART (Cinta_C1, true) ; Mx_ClearState := CLEARCHART (Cinta_C2, true) ; Set (Mx_EnEmergencia); END_IF; If Mx_Av_C1 THEN (* Borra el GRAFCET de la C1 y pone el GRAFCET de Mando, en descarga de C2 *) Resetstep (Etapa11); Resetstep (Etapa12); Resetstep (Etapa1); Resetstep (Etapa2); Setstep (Etapa3); END_IF; If RE (Mx_Av_C2) THEN (* Borra todos los GRAFCETs*) Mx_ClearState := CLEARCHART (Mando, , true) ; Mx_ClearState := CLEARCHART (Cinta_C1, true) ; Mx_ClearState := CLEARCHART (Cinta_C2, true) ; END_IF; If Mx_Rearme THEN (* INITCHART Activa las etapas iniciales y Resetea el resto de etapas *) Mx_InitState := INITCHART (Mando, , true) ; Mx_InitState := INITCHART (Cinta_C1, true) ; Mx_InitState := INITCHART (Cinta_C2, true) ; Reset (Mx_Av_C1) ; Reset (Mx_Av_C2); Reset (Mx_EnEmergencia); END_IF; (* Generación de la marca del oscilador de 2Hz *) TON_Osc2Hz (IN:= Not TON_Osc2Hz.Q, PT:= t#500ms) ; Mx_Osc2Hz := TON_Osc2Hz.ET > t#250ms; (* Generación de las marcas de averías *) TON_Inh_Vig (IN:= Qx_Mot_C2, PT:= t#5s);
  • 204. 204 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón TON_Ave_C1 (IN:= Not Mx_Vig_C1 And Qx_Mot_C1 And TON_Inh_Vig.Q, PT:= t#700ms); IF TON_Ave_C1.q THEN Set (Mx_Av_C1); END_IF; TON_Ave_C2 (IN:= Not Mx_Vig_C2 And Qx_Mot_C2 And TON_Inh_Vig.Q, PT:= t#700ms); IF TON_Ave_C2.q THEN Set (Mx_Av_C2); END_IF; Sección "Salidas" Qx_Mot_C1 := Etapa11.x Or Etapa12.x; Qx_Mot_C2 := Etapa21.x Or Etapa22.x; Qx_LCon_C1 := Etapa11.x; Qx_Lcon_C2 := Etapa21.x; Qx_LDes_C1 := Etapa10.x Or (Mx_Av_C1 And Mx_Osc2Hz); Qx_Ldes_C2 := Etapa20.x Or (Mx_Av_C2 And Mx_Osc2Hz); Qx_LDescg_C1 := Mx_EnEmergencia Or (Etapa12.x And Mx_Osc2Hz); Qx_LDescg_C2 := Mx_EnEmergencia Or (Etapa22.x And Mx_Osc2Hz); Pantalla de Operador
  • 205. Problemas M340 - 205 Universidad de Oviedo ISA - J. Alonso - I. Machón Como forzar el valor de una entrada o salida o modificar el valor de una variable Podremos hacerlo creando una tabla de animación o sobre el propio código del programa cuando se está ejecutando. Sobre el programa, nos situaremos encima de la variable que queramos forzar y clicaremos con el botón derecho. En la ventana que aparece indicaremos Forzar valor | Forzar a 1 ó Forzar a 0 También podremos cancelar el forzado. Para trabajar con una tabla de animación, primeramente crearemos la tabla. Para ello, iremos a la carpeta Tablas de animación, clicaremos con el botón derecho y en la pantalla que se despliega seleccionaremos Nueva tabla de animación. Indicaremos el nombre de las variables de entrada / salida y de memoria que queramos visualizar. Posteriormente pulsaremos sobre el comando, Forzar E/S o Modificación de variables.
  • 206. 206 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón En las ventanas que aparecen podremos seleccionar los iconos correspondientes para forzar a 1 ó a 0. También podremos modificar el valor binario a 1 ó a 0 como vemos en las siguientes figuras.
  • 207. Problemas M340 - 207 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 7.2 · Tolva a cinta alimentadora giratoria y 3 cintas de salida Diseñar el programa que realiza el control y mando, del sistema descrito a continuación. Descripción General El sistema de la figura representa un nudo de distribución para el transporte del material procedente de una tolva por medio de 4 cintas. La cinta 0 está situada sobre una plataforma giratoria que es accionada por medio del motor MG, permitiéndonos situarla enfrente de cualquiera de las otras tres, para la evacuación del material en el sentido deseado. Selección de la posición de la cinta 0 La selección de la posición para la cinta 0 la realizamos mediante un pulsador "Selec". Utilizamos en el sinóptico tres lámparas LS1, LS2 y LS3, las cuales reflejan la posición de la cinta 0. El giro lo efectuará por accionamiento del motor MG. La posición queda definida mediante tres finales de carrera FC1, FC2 y FC3. La selección debe quedar inhabilitada mientras el sistema se encuentre activo. Movimiento de las cintas Todas las cintas tienen una lámpara que indica la conexión y otra la desconexión, un motor que acciona la banda deslizante y unas vigilancias de cintas (control de rotación), señalizan el movimiento de las mismas, no debiendo bajar las ruedas motrices de una velocidad tal que los impulsos lleguen con una frecuencia de 1 Hz (30% ON, 70% OFF). Estas señales no se evaluarán durante la fase de arranque, que dura 5 segundos. La puesta en marcha se realizará con la secuencia siguiente:  Tiene que estar seleccionada la posición adecuada.  Accionamos el pulsador de “Marcha” con lo cual la cinta 0 gira hasta situarse en la posición seleccionada (esto se define por el accionamiento del final de carrera correspondiente a la posición seleccionada).  Al alcanzar la posición seleccionada se pone en movimiento la cinta 0 por medio de la activación del motor M0, y de manera simultánea lo harán la cinta correspondiente (activando los motores M1, M2 o M3). La tolva debe de abrirse 5 segundos después de la activación 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 más 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 automática de la cinta objeto de alarma, siguiendo en proceso de descarga la otra si procede. Dicha avería se reflejará en el sinóptico mediante el parpadeo a 2 Hz de la lámpara de desconexión correspondiente a la cinta averiada, quedando activadas las lámparas de conexión de las cintas que estaban trabajando. El acuse de recibo de la avería 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”.
  • 208. 208 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 3500 (24VDC 36W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM3202K entradas y salidas PNP. FCTolCe FCTolAb TOLVA MTolAb MTolCe CINTA 1 CINTA 3 CINTA 0 CINTA 2 MG M1 M3 CINTA 0 M0 CINTA 2 M2 FC2 FC1 FC3 LS1 LS2 LS3 LCON LDES Selec Marcha Paro MGDer MGIzq
  • 209. Problemas M340 - 209 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de variables y arquitectura software
  • 210. 210 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en ST y GRAFCET - (pr0702) Sección “Preliminar”: (*Inicialización de la pantalla de operador*) If %S13 THEN Set (MxP_Paro); Set (MxP_Vig_C0); Set (MxP_Vig_C1); Set (MxP_Vig_C2); Set (MxP_Vig_C3); Set (MxP_FC1); Set (MxP_FC_Tol_Ce); END_IF; (*Marcas para el control Local-Distancia*) Mx_Selec := (MxP_Selec And Not Ix_LocDist) Or (Ix_Selec And Ix_LocDist); Mx_Marcha := (MxP_Marcha And Not Ix_LocDist) Or (Ix_Marcha And Ix_LocDist); Mx_Paro := (MxP_Paro And Not Ix_LocDist) Or (Ix_Paro And Ix_LocDist); Mx_FC1 := (MxP_FC1 And Not Ix_LocDist) Or (Ix_FC1 And Ix_LocDist); Mx_FC2 := (MxP_FC2 And Not Ix_LocDist) Or (Ix_FC2 And Ix_LocDist); Mx_FC3 := (MxP_FC3 And Not Ix_LocDist) Or (Ix_FC3 And Ix_LocDist); Mx_FC_Tol_Ab := (MxP_FC_Tol_Ab And Not Ix_LocDist) Or (Ix_FC_Tol_Ab And Ix_LocDist); Mx_FC_Tol_Ce := (MxP_FC_Tol_Ce And Not Ix_LocDist) Or (Ix_FC_Tol_Ce And Ix_LocDist); Mx_Vig_C0 := (MxP_Vig_C0 And Not Ix_LocDist) Or (Ix_Vig_C0 And Ix_LocDist); Mx_Vig_C1 := (MxP_Vig_C1 And Not Ix_LocDist) Or (Ix_Vig_C1 And Ix_LocDist); Mx_Vig_C2 := (MxP_Vig_C2 And Not Ix_LocDist) Or (Ix_Vig_C2 And Ix_LocDist); Mx_Vig_C3 := (MxP_Vig_C3 And Not Ix_LocDist) Or (Ix_Vig_C3 And Ix_LocDist); (*Generación de la marca del oscilador de 2Hz*) TON_Osc2Hz (IN:= Not TON_Osc2Hz.Q, PT:= t#500ms) ; Mx_Osc2Hz := TON_Osc2Hz.ET > t#250ms; (* Temporizadores de avisos *) TON_Inh_Vig (IN:= E2.x or E3.x or E4.x, PT:= t#5s) ; TON_Ave_c0 (IN:= not Mx_Vig_C0 and Qx_Mot_C0 and TON_Inh_Vig.Q, PT:= t#700ms) ; TON_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 TON_Inh_Vig.Q, PT:= t#700ms) ; (* Marca de avería en la cinta 0 *) If TON_Ave_c0.Q then SET(Mx_Ave_C0); end_if; (* Marca de avería en la cinta secundaria *) If TON_Ave_c123.Q then SET(Mx_Ave_C123); end_if; (*Marca para parar el giro del motor*) Mx_Para_Giro := (Mx_FC1 and Qx_LS1) or (Mx_FC2 and Qx_LS2) or (Mx_FC3 and Qx_LS3); (*Si existe avería en la cinta 0 se debe parar la cinta 0 poner el sistema de mando a descarga de cinta secundaria*)
  • 211. Problemas M340 - 211 Universidad de Oviedo ISA - J. Alonso - I. Machón IF Mx_Ave_C0 THEN resetstep (E31); resetstep (E32); (* borra grafcet de C0, parando C0 *) set (Mx_Av_C0); resetstep (E2); resetstep (E3); setstep (E4); (* pone el mando en descarga de Cn *) END_IF; Mx_Flanco_Ave_C123 := RE (Mx_Ave_C123); (* Al aparecer la avería 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 habilitándose el SFC de la tolva otra vez *) IF Mx_SFC_Tolva_OFF THEN setstep(E73); (* Cierra la tolva *) END_IF; (* Habiendo avería en la cinta secundaria, se desactivan el resto de SFCs después que se haber cerrado la tolva. La marca Mx_dummy no es usada en esta aplicación *) if FE (Mx_SFC_Tolva_OFF) then Mx_Dummy := CLEARCHART (Mando, true) ; Mx_Dummy := CLEARCHART (Seleccion_Cinta, true) ; Mx_Dummy := CLEARCHART (Posicionar_Cinta_Alimentadora, true) ; Mx_Dummy := CLEARCHART (Cintas, true) ; end_if; (* Se localiza la cinta secundaria averiada *) IF Mx_Flanco_Ave_C123 THEN IF Qx_LS1 THEN SET (Mx_Av_C1); ELSIF Qx_LS2 THEN SET (Mx_Av_C2); ELSE SET (Mx_Av_C3); END_IF; END_IF; (* Cuando se repara el sistema se vuelve a las CI con el pulsador de paro *) IF (Mx_Ave_C0 OR Mx_Ave_C123) AND NOT Mx_Paro THEN (* Activamos las etapas iniciales *) Mx_Dummy := INITCHART (Mando, true) ; Mx_Dummy := INITCHART (Seleccion_Cinta, true) ; Mx_Dummy := INITCHART (Posicionar_Cinta_Alimentadora, true) ; Mx_Dummy := INITCHART (Tolva, true) ; Mx_Dummy := INITCHART (Cintas, true) ; (* Reseteamos las marcas de avería *) RESET (Mx_Av_C0); RESET (Mx_Ave_C0); RESET (Mx_Av_C1); RESET (Mx_Ave_C123); RESET (Mx_Av_C2);
  • 212. 212 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón RESET (Mx_Av_C3); END_IF; (*Marcas empleadas en la pantalla*) MxP_C0_C1 := Mx_FC1 and Qx_Mot_C0; MxP_C0_C2 := Mx_FC2 and Qx_Mot_C0; MxP_C0_C3 := Mx_FC3 and Qx_Mot_C0; GRAFCETs de "Mando, " y "Selección_cinta" Tran4_0 :0 not Qx_Mot_C1 and not Qx_Mot_C2 and not Qx_Mot_C3 (* Descargar cinta 0 y Cerrar Tolva *) (* Descargar cinta secundaria *) (* Posicionar la cinta alimentadora (Cinta 0) *) (* Conectar Cintas y Abrir Tolva *) (* Selección de cinta de evacuación *) E0 E1 E2 E3 E4 Mx_Marcha E23.x NOT Mx_Paro NOT Qx_Mot_C0 Tran4_0 Tran10_11 := RE(Mx_Selec) and E0.x Tran13_11 := RE(Mx_Selec) and E0.x Tran12_13 := RE(Mx_Selec) and E0.x Tran11_12 := RE(Mx_Selec) and E0.x (* Selección Cinta 1 *) Qx_LS1 (* Selección Cinta 2 *) Qx_LS2 (* Selección Cinta 3 *) Qx_LS3 E10 E11 E12 E13 Tran11_12 Tran12_13 Tran13_11 Tran10_11
  • 213. Problemas M340 - 213 Universidad de Oviedo ISA - J. Alonso - I. Machón GRAFCET de "Posicionar_cinta_alimentadora" GRAFCETs de movimiento de las cintas "Cintas" (* C1 en movimiento *) Qx_Mot_C1 Qx_LCon 1 Tran42_40 := E42.t > t#20s; (* C2 en descarga *) Qx_Mot_C2 Qx_LDes 2 Tran62_60 := E62.t > t#20s; Tran40_41 := E2.x and Qx_LS1; (* C3 parada *) Qx_LDes 3 (* C0 en descarga *) Qx_Mot_C0 Qx_LDes 0 (* C0 parada*) Qx_LDes 0 Tran52_50:= E52.t > t#20s; (* C3 en descarga *) Qx_Mot_C3 Qx_LDes 3 (* C0 en movimiento *) Qx_Mot_C0 Qx_LCon 0 T_Tran15 S_c2_Des.t > t#20s Tran50_51:= E2.x and Qx_LS2; (* C2 en movimiento *) Qx_Mot_C2 Qx_LCon 2 (* C1 parada *) Qx_LDes 1 Tran32_30:= E32.t > t#20s; (* C2 parada *) Qx_Ldes 2 (* C1 en descarga *) Qx_Mot_C1 Qx_LDes 1 (* C3 en movimiento *) Qx_Mot_C3 Qx_LCon 3 E30 E31 E32 E40 E41 E42 E50 E51 E52 E60 E61 E62 E2.x E3.x Tran32_30 Tran40_41 E4.x Tran42_40 Tran50_51 E4.x Tran52_50 Tran60_61 E4.x Tran62_60 Tran21_22 := Mx_FC1 and (Qx_Ls2 or Qx_Ls3) or (Mx_FC2 and Qx_Ls3) Tran21_24 := Mx_FC3 and (Qx_Ls1 or Qx_Ls2) or (Mx_FC2 and Qx_Ls1) Mx_Para_Giro := (Mx_FC1 and Qx_LS1) or (Mx_FC2 and Qx_LS2) or (Mx_FC3 and Qx_LS3) Qx_MG_Izda Qx_MG_Dcha E20 E21 E22 E23 E24 E1.x Tran21_22 Mx_Para_Giro E2.x Mx_Para_Giro Tran21_24 Mx_Para_Giro
  • 214. 214 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón GRAFCET del control de la tolva "Tolva" Sección "Transiciones“ Tran4_0 := not Qx_Mot_C1 and not Qx_Mot_C2 and not Qx_Mot_C3; Tran10_11 := RE (Mx_Selec) and E0.x; Tran11_12 := RE (Mx_Selec) and E0.x; Tran12_13 := RE (Mx_Selec) and E0.x; Tran13_11 := RE (Mx_Selec) and E0.x; Tran21_22 := Mx_FC1 and (Qx_LS2 or Qx_LS3) or (Mx_FC2 and Qx_LS3); Tran21_24 := Mx_FC3 and (Qx_LS1 or Qx_LS2) or (Mx_FC2 and Qx_LS1); Tran70_71 := E2.x and E2.t > t#5s; Tran71_72 := Mx_FC_Tol_Ab or Mx_Ave_C0 or Mx_Ave_C123; Tran72_73 := E3.x or Mx_Ave_C0 or Mx_Ave_C123; Tran32_30 := E32.t > t#20s; Tran40_41 := E2.x and Qx_LS1; Tran42_40 := E42.t > t#20s; Tran50_51 := E2.x and Qx_LS2; Tran52_50 := E52.t > t#20s; Tran60_61 := E2.x and Qx_LS3; Tran72_73 := E3.x or Mx_Ave_C0 or Mx_Ave_C123; Tran71_72 := Mx_Fc_Tol_Ab or Mx_Ave_C0 or Mx_Ave_C123 Tran70_71 := E2.x and E2..t > t#5s (* Cierra la tolva *) Qx_MTol_Ce (* Abre la tolva *) Qx_MTol_Ab (* Tolva abierta o semiabierta *) (* Control de la TOLVA *) E70 E71 E72 E73 Tran70_71 Tran71_72 Tran72_73 Mx_FC_Tol_Ce
  • 215. Problemas M340 - 215 Universidad de Oviedo ISA - J. Alonso - I. Machón Tran62_60 := E62.t > t#20s; Sección “Salidas”: Qx_MG_Izda := E22.x; Qx_MG_Dcha := E24.x; Qx_Mot_C0 := E31.x or E32.x; Qx_Mot_C1 := E41.x or E42.x; Qx_Mot_C2 := E51.x or E52.x; Qx_Mot_C3 := E61.x or E62.x; Qx_MTol_Ab := E71.x; Qx_MTol_Ce := E73.x; Qx_LS1 := E11.x; Qx_LS2 := E12.x; Qx_LS3 := E13.x; Qx_LCon_C0 := E31.x or Mx_Av_C0; Qx_LCon_C1 := E41.x or Mx_Av_C1; Qx_LCon_C2 := E51.x or Mx_Av_C2; Qx_LCon_C3 := E61.x or Mx_Av_C3; Qx_LDes_C0 := E30.x or E32.x or Mx_Av_C0 and Mx_Osc2Hz; Qx_LDes_C1 := E40.x or E42.x or Mx_Av_C1 and Mx_Osc2Hz; Qx_LDes_C2 := E50.x or E52.x or Mx_Av_C2 and Mx_Osc2Hz; Qx_LDes_C3 := E60.x or E62.x or Mx_Av_C3 and Mx_Osc2Hz; Pantalla de Operador
  • 216. 216 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 217. Problemas M340 - 217 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 7.3 · Dos cintas alimentadoras a tolva y cinta de salida (Resolver) Diseñar el circuito de Mando, para el control de tres cintas transportadoras de la instalación indicada en la figura. Las cintas 1 y 2 deberán conectarse y desconectarse, cada una, mediante dos pulsadores manuales (conexión NA, desconexión NC). El estado de marcha se indicará con tres lámparas: LCon, LDes y LDescg. Las cintas 1 y 2 no deben suministrar material a la vez. La cinta 3 ha de ponerse en marcha simultáneamente con la 1 ó la 2. Condiciones Iniciales: Inicialmente las tres cintas estarán desconectadas y las lámparas de desconexión 1 y 2 estarán encendidas y el resto apagadas. Conexión: Cuando se accione el pulsador de conexión 1 o 2 se encenderá la lámpara de conexión y se apagará la de desconexión correspondiente. Desconexión: Una vez accionado el pulsador de desconexión, las cintas 1 ó 2 deberán seguir en funcionamiento 20 segundos más, la cinta 3 debe permanecer en funcionamiento durante 40 segundos más 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 lámparas 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 (30% ON, 70% OFF), para un funcionamiento en régimen normal de velocidad. Durante los tres primeros segundos no deberán evaluarse los impulsos procedentes de las vigilancias de las cintas, ya que no ha habido tiempo para alcanzar la velocidad de régimen. Cinta 3 Cinta 2 Cinta 1 M M M LDescgC3 LConC1 LDesC1 LDescgC1 LConC2 LDesC2 LDescgC2 PConC1 PConC2 Pdes PEmer Rearme LAveríaC1 LAveríaC2 LAveríaC3
  • 218. 218 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Si estando en funcionamiento normal desaparece la señal de vigilancia de la cinta 1 ó 2, hay que parar inmediatamente dicha cinta, dejando funcionar en vaciado la cinta 3 según la secuencia establecida previamente. Para avisar de la existencia de avería, haremos que la lámpara de avería correspondiente parpadee a una frecuencia de 1 Hz, permaneciendo encendida la de conexión. Si durante el periodo de descarga de la cinta alimentadora:  Desaparece su señal de vigilancia, hay que parar inmediatamente dicha cinta, dejando funcionar en vaciado la cinta 3 según la secuencia establecida previamente. Para avisar de la existencia de avería, haremos que la lámpara de avería correspondiente parpadee a una frecuencia de 1 Hz, permaneciendo encendida la de descarga.  Desaparece la señal de vigilancia de la cinta 3, hay que parar inmediatamente todas las cintas. La avería producida se indicará mediante el parpadeo de la lámpara de avería de C3 a una frecuencia de 1 Hz, permaneciendo encendida la de descarga de la cinta alimentadora. Si estando en funcionamiento normal desaparece la señal de vigilancia de la cinta 3, hay que parar inmediatamente todas las cintas. La avería producida se indicará mediante el parpadeo de la lámpara de avería de C3 a una frecuencia de 1 Hz, permaneciendo encendida la de conexión de la cinta alimentadora. Si durante el periodo de descarga de la cinta 3 desaparece la señal de vigilancia, hay que parar inmediatamente la cinta. La avería producida se indicará mediante el parpadeo de su lámpara de avería 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, deberán parar todas las cintas quedando encendidas las 3 lámparas 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 avería accionando el pulsador de Rearme, momento en el cual se volverá a las condiciones iniciales. PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM3202K entradas y salidas PNP. Salidas: Lámpara Conexión para cinta 1 Lámpara Desconexión para cinta 1 Lámpara Descarga para cinta 1 Lámpara Conexión para cinta 2 Lámpara Desconexión para cinta 2 Lámpara Descarga para cinta 2 Lámpara Descarga para cinta 3 Lámpara de Avería en C1 Lámpara de Avería en C2 Lámpara de Avería en C3 Motor para cinta 1 Motor para cinta 2 Motor para cinta 3 Entradas: Pulsador Conexión para cinta 1 Pulsador Conexión para cinta 2 Pulsador Desconexión para cinta 1 Pulsador Desconexión para cinta 2 Pulsador de Emergencia Pulsador de Rearme Vigilancia de cinta 1 Vigilancia de cinta 2 Vigilancia de cinta 3
  • 219. Problemas M340 - 219 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 7.4 · Control de 1 cinta (en construcción)
  • 220. 220 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 221. Problemas M340 - 221 Universidad de Oviedo ISA - J. Alonso - I. Machón Interrupciones Problema 8.1 · Control de tráfico en 2 carriles Diseñar el programa de control de un autómata programable que realice el enunciado siguiente: Un semáforo ha de regir el paso de vehículos, pero éste estará sujeto a una variación en su temporización, según el número de vehículos que se encuentren en cola de espera. La calle, como se puede apreciar en el dibujo, está dividida en dos carriles con sus respectivos sensores (Sensor1, Sensor2) y (Sensor3, Sensor4). Cuando en uno cualquiera de los carriles se encuentran 20 o más vehículos la temporización 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 vehículos en ambos carriles la temporización 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 temporización es la que realiza desde el momento en que el semáforo se pone en rojo hasta un instante antes de producirse el cambio a verde. Nota:  Se supone que los carriles son de dirección única y no se puede cambiar de uno a otro. Los vehículos que circulan son solamente automóviles.  Los sensores irán asociados a entradas de interrupción PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas PNP BMX DDM3202K y al módulo de contaje BMX EHC 0800. S1 S3 S2 S4
  • 222. 222 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de variables Configuración del módulo BMX EHC 0800 En el módulo BMX EHC 0800, se selecciona Contador 0 y abajo se despliega la lista asociada a Función. Se elige "Modo de conteo de eventos". Luego en la pestaña de Configuración, donde pone la ficha de Evento se selecciona Valor "Habilitar". En la etiqueta Número de evento, aparece el número de programa de Evento asociado que se ejecutará cuando se detecte el paso de 0 a 1 en la entrada asociada a contador 0.
  • 223. Problemas M340 - 223 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en FBD - (pr0801a) Sección "Control" en FBD
  • 224. 224 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Subrutina "Asignar_Tiempos" en FBD Evento 0 INC (Mw_NcochesC0); Evento 1 DEC (Mw_NcochesC0); Evento 2 INC (Mw_NcochesC1); Evento 3 DEC (Mw_NcochesC1); IN1 Mw_NcochesC0 IN2 20 OUT .1 GT_INT 1 IN1 Mw_NcochesC1 IN2 20 OUT .2 GT_INT 2 IN1 IN2 OUT .3 OR 3 EN IN t#30s ENO OUT Mt_Verde .4 MOVE 4 EN IN t#15s ENO OUT Mt_Rojo .5 MOVE 5 IN1 Mw_NcochesC0 IN2 20 OUT .6 LE 6 IN1 Mw_NcochesC1 IN2 20 OUT .7 LE 7 EN IN t#20s ENO OUT Mt_Verde .9 MOVE 9 EN IN t#20s ENO OUT Mt_Rojo .10 MOVE 10 IN1 IN2 OUT .8 AND 8
  • 225. Problemas M340 - 225 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de operador Simulación de los eventos (interrupciones) Para simular los eventos, haremos click con el botón derecho en el icono de simulación (a la derecha en la barra de tareas de windows). Se desplegará una ventana donde elegiremos "Simulator panel...". A continuación haremos click en el botón amarillo de Eventos. Nos saldrá otra pantalla, donde haciendo click en el evento que deseemos, se simulará la entrada de evento.
  • 226. 226 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en ST - (pr0801b) Sección "Control" Mx_FinCiclo := TON_Ciclo.Q; IF %S13 OR RE(Mx_FinCiclo) THEN Asignar_Tiempos(); END_IF; (*Temporizador*) TON_Ciclo (IN := Not TON_Ciclo.Q, PT := Mt_Verde + t#8s + Mt_Rojo) ; (*Generación de la marca del oscilador de 2Hz*) TON_Osc2Hz (IN:= Not TON_Osc2Hz.Q, PT:= t#500ms) ; Mx_Oscilador_2hz := TON_Osc2Hz.ET > t#250ms; (*Salidas*) Qx_LVerde := TON_Ciclo.ET < t_Verde; Qx_LAmbar := TON_Ciclo.ET>t_Verde And TON_Ciclo.ET<t_Verde+t#5s Or TON_Ciclo.ET > t_Verde+t#5s And TON_Ciclo.ET<t_Verde+t#8s And Mx_Oscilador_2hz; Qx_LRoja := TON_Ciclo.ET > t_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; Evento 0 INC (Mw_NcochesC0); Evento 1 DEC (Mw_NcochesC0); Evento 2 INC (Mw_NcochesC1); Evento 3 DEC (Mw_NcochesC1);
  • 227. Problemas M340 - 227 Universidad de Oviedo ISA - J. Alonso - I. Machón Funciones de desplazamiento y rotación Función SHL (desplazamiento a la izquierda) "La función desplaza la muestra de bits en la entrada IN en n bits (el valor de la entrada N) hacia la izquierda. En esta operación se utiliza el bit del sistema %S17 como bit CARRY, es decir, el estado del bit desplazado se ubica aquí. Desde la derecha se rellena con ceros. Los tipos de datos de la entrada IN y de la salida OUT deben ser iguales. Como parámetros adicionales se pueden configurar EN y ENO" Representación en FBD Representación en ST ShIftedPattern := SHL (IntputPattern, Number) ; Función SHR (desplazamiento a la derecha) "La función desplaza la muestra de bits en la entrada IN en n bits (el valor de la entrada N) hacia la derecha. En esta operación se utiliza el bit del sistema %S17 como bit CARRY, es decir, el estado del bit desplazado se ubica aquí. Desde la izquierda se rellena con ceros. Caso especial: Si en el diálogo Herramientas / Ajustes del proyecto / Extensiones de lenguaje está activada la opción permitir INT/DINT en lugar de ANY_BIT y se utilizan en la entrada IN los tipos de datos INT o DINT, se rellenará con ceros desde la izquierda , donde el bit 0 será el de mayor valor. Si el bit de mayor valor es 1, se rellenará con unos. El bit de mayor valor contiene el bit de signo en los tipos de datos INT y DINT. Mediante este funcionamiento se asegura que el signo no se pierda durante el desplazamiento. Si no se tiene en cuenta el signo y se rellena siempre con ceros, se puede utilizar en los controles de Premium la función SHRZ_*** de la biblioteca obsoleta. Los tipos de datos de la entrada In y de la salida OUT deben ser iguales. Como parámetros adicionales se pueden configurar EN y ENO" Representación en FBD Representación en ST ShIftedPattern := SHR (IntputPattern, Number) ;
  • 228. 228 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Función ROR (rotación a la derecha) "La función gira la muestra de bits en la entrada In en n bits (el valor de la entrada Number) hacia la derecha en forma de círculo. En esta operación se utiliza el bit del sistema %S17 como bit CARRY, es decir, el estado del bit desplazado se ubica aquí. Los tipos de datos de la entrada IN y de la salida OUT deben ser iguales. Como parámetros adicionales se pueden configurar EN y ENO" Representación en FBD Representación en ST ShIftedPattern := ROR (IntputPattern, Number) ; Función ROL (rotación a la izquierda) "La función gira la muestra de bits en la entrada In en n bits (el valor de la entrada Number) hacia la izquierda en forma de círculo. En esta operación se utiliza el bit del sistema %S17 como bit CARRY, es decir, el estado del bit desplazado se ubica aquí. Los tipos de datos de la entrada IN y de la salida OUT deben ser iguales. Como parámetros adicionales se pueden configurar EN y ENO" Representación en FBD Representación en ST ShIftedPattern := ROL (IntputPattern, Number) ;
  • 229. Problemas M340 - 229 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 8.2 · Desplazamientos de bits e interrupciones Con este problema se pretende que el alumno se familiarice con el concepto de “ Interrupción”. Muy habitual, en los sistemas que precisan en un momento dado detener la secuencia que se está ejecutando, para pasar, a realizar otra secuencia distinta durante un tiempo, y una vez transcurrido éste, volver a la rutina habitual. También manejaremos otro tipo de conceptos, como son: “Desplazamiento de bits”, tanto a la izquierda como a la derecha; “Subrutinas”; “Palabra de Constante ”; y demás componentes. Secuencia normal del programa Se deberá iniciar el Bit 0.1.16 del módulo mixto con el valor “1” lógico (activada). A continuación se irá desplazando la activación al bit siguiente (Bit 0.1.17) y la desactivación del anterior (Bit 0.1.16) en cada segundo, y así sucesivamente hasta alcanzar el Bit 0.1.23, momento en el cual se invierte el proceso. Interrupción 0 Si durante la ejecución de la secuencia anterior , se produce una demanda de interrupción procedente del canal 0 del módulo 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, retomándola desde donde la había dejado. Interrupción 1 Si durante la ejecución de la secuencia anterior , se producen una demanda de interrupción procedente del canal 1 del módulo 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” lógico ( activados ) y los otros cuatro del nibble alto %Q0.1.20 ... %Q0.1.23 = 0 0 0 0 se deben situar a “0” lógico ( desactivados ). Estos se alternarán 1 segundo durante ocho veces. Ejecutado esto, se debe volver a la secuencia habitual, retomándola desde donde la había dejado. Prioridades La secuencia generada por la demanda de interrupción 1 tiene prioridad sobre la demanda de interrupción procedente de la interrupción 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 ejecución de la secuencia del Evt1, se debe retomar la ejecución de la demanda del Evt0, desde el estado en que se había procedido a su interrupción. Si estando ejecutándose la demanda de interrupción 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, según la secuencia que se deba realizar. En la tercera, tratamos las salidas para que reflejen los valores según la secuencia a realizar. Sección 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 aplicación. Con la entrada %I0.1.2 (Ix_Arranque) daremos la orden para que comience la realización de la secuencia de inicio, se define la recepción de dicha orden con el flanco ascendente de Ix_Arranque. Situamos en la Mw_PalBase el
  • 230. 230 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón valor de comienzo, el cual, lo introducimos desde la palabra constante Mw_ValorInicio. Simultáneamente activamos el bit de marca Mx_DesDerIzq para que la subrutina a realizar sea el desplazamiento del bit_X hacia la izquierda. Como oscilador utilizaremos el bit de sistema %S6, el cual funciona como una base de tiempo de 1 sg. lo asignaremos al bit de marca Mx_S6, para poder trabajar sin las trabas que tienen los bits de sistema. Mediante la entrada %I1.7 pondremos a cero el valor de los bits de marca: Mx_DesADer, Mx_DesAIzq, Mx_OscUnosCeros y Mx_OscNibbles. PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas PNP BMX DDM3202K y al módulo de contaje BMX EHC 0800. Tabla de variables En el módulo BMX EHC 0800, se selecciona Contador 0 y abajo se despliega la lista asociada a Función. Se elige "Modo de conteo de eventos". Luego en la pestaña de Configuración, donde pone la ficha de Evento se selecciona Valor "Habilitar". En la etiqueta Número de evento, aparece el número de programa de Evento asociado que se ejecutará cuando se detecte el paso de 0 a 1 en la entrada asociada a contador 0.
  • 231. Problemas M340 - 231 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en ST - (pr0802) Sección "SecuenciaNormal" (*Inicializamos variables*) Mx_Arranque := (Ix_Arranque And Ix_LocDist) Or (MxP_Arranque And Not Ix_LocDist); Mx_PuestaCero := (Ix_PuestaCero And Ix_LocDist) Or (MxP_PuestaCero And Not Ix_LocDist); IF %S13 THEN Mw_PalBase:=Mw_ValorInicio; (*cargamos el valor de inicio en la palabra base 16#0001*) END_IF; IF RE(Mx_Arranque) AND NOT Mx_DesADer THEN SET (Mx_DesAIzq); (*damos la orden de marcha*) END_IF; (*asignamos una memoria al oscilador del sistema para poder evaluar el flanco*) Mx_Osc1Hz:=%S6; (*borramos todos los bits de marca de secuencia*) IF Mx_PuestaCero THEN RESET (Mx_DesADer);RESET (Mx_DesAIzq); RESET (Mx_OscUnosCeros); RESET (Mx_OscNibbles); END_IF; (*desplazamiento de bits a la izquierda*) IF Mx_DesAIzq THEN Sr0_DesAIzq (); END_IF; (*desplazamiento de bits a la derecha*) IF Mx_DesADer THEN Sr1_DesADer (); END_IF; (*Si se produce el Evt0, pone los ocho bits de salida 00000000 <=> 11111111 cuatro veces*) IF Mx_OscUnosCeros THEN Sr2_OscUnosCerosEvt0 (); END_IF; (*Si se produce el Evt1, activa alternativamente el nibble bajo y alto de salida 11110000 <=> 00001111 cuatro veces*) IF Mx_OscNibbles THEN Sr3_OscNibblesEvt1 (); END_IF;
  • 232. 232 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "Salidas" (*las salidas las condicionamos a que esté activa la orden de arranque (Ix_Arranque). Asignamos los ocho bits bajos de la palabra de marca Mw_PalBase: Mw_PalBase.0 ... Mw_PalBase.7 a los bits de salida %Q0.1.16 .... %Q0.1.23*) Qx_L16 := Mw_PalBase.0 AND Mx_Arranque; Qx_L17 := Mw_PalBase.1 AND Mx_Arranque; Qx_L18 := Mw_PalBase.2 AND Mx_Arranque; Qx_L19 := Mw_PalBase.3 AND Mx_Arranque; Qx_L20 := Mw_PalBase.4 AND Mx_Arranque; Qx_L21 := Mw_PalBase.5 AND Mx_Arranque; Qx_L22 := Mw_PalBase.6 AND Mx_Arranque; Qx_L23 := Mw_PalBase.7 AND Mx_Arranque; Subrutina "Sr0_DesAIzq" (* Sr0_DesAIzq Esta subrutina es la encargada de ir activando los 8 bits de salida %Q2.16 .... %Q2.23, de derecha a izquierda con un intervalo de tiempo de un segundo. Para que se realice esta subrutina, tiene que estar activo el bit de marca Mx_DesAIzq, circunstancia que se dará, en el inicio del programa o cuando finalice la subrutina Sr1. Como base de tiempos usamos el bit de marca %S6 (1 Hz). El desplazamiento lo hacemos por flanco ascendente, de esta forma tenemos la certeza de que se dará una sola orden en cada segundo. Cuando activamos el bit %Q0.1.23, pondremos a cero el bit de marca Mx_DesAIzq. Para ello usaremos el flanco negativo de %S6, y a la vez, activaremos el bit Mx_DesADer, para que se ejecute la subrutina Sr1 *) (*desplazamiento a la izquierda del bit activado*) IF Mx_DesAIzq AND RE (Mx_Osc1Hz) AND Mx_Arranque THEN Mw_PalBase := SHL (Mw_PalBase,1); END_IF; (*comprobamos que el bit7="1"*) IF (Mw_PalBase = 16#0080) AND FE (Mx_Osc1Hz) THEN RESET (Mx_DesAIzq); SET (Mx_DesADer); END_IF; Subrutina "Sr1_DesADer" (* Sr1DesADer Esta subrutina es la encargada de ir activando los bits de salida %Q0.1.16 .. %Q0.1.23 de izquierda a derecha con un intervalo de tiempo de un segundo. Para que se realice esta subrutina, tiene que estar activo el bit Mx_DesADer, circunstancia que se dará, cuando finalice la subrutina Sr0. Como base de tiempos usamos el bit %S6 (1 Hz). 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.16, pondremos a cero el bit Mx_DesADer. Para ello usaremos el flanco negativo de %M6, y a la vez, activaremos y activaremos el bit Mx_DesAIzq, para que se ejecute la subrutina Sr0 *) (*desplazamiento a la derecha del bit activado*) IF Mx_DesADer AND RE (Mx_Osc1Hz) AND Mx_Arranque THEN Mw_PalBase := SHR (Mw_PalBase,1); END_IF;
  • 233. Problemas M340 - 233 Universidad de Oviedo ISA - J. Alonso - I. Machón (*comprobamos que el bit0="1"*) IF (Mw_PalBase = 16#0001) AND FE (Mx_Osc1Hz) THEN RESET (Mx_DesADer); SET (Mx_DesAIzq); END_IF; Subrutina "Sr2_OscUnosCerosEvt0" (* Sr2_OscUnosCerosEvt0 Esta subrutina es la encargada de ir activando y desactivando los bits de salida %Q0.1.16 ... %Q0.1.23 cada segundo, así durante ocho veces. Para que se realice esta subrutina, tiene que estar activo el bit de marca Mx_OscUnosCeros, circunstancia que se dará, cuando tenga lugar un flanco ascendente en la entrada %I0.1.0(Evt0 ),teniendo en cuenta que esta es una demanda de interrupción, de menor prioridad que la producida por el Evt1. En caso de que se esté ejecutando esta última, debe esperar a su término 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 tenía cuando se produjo la demanda de interrupción, valor contenido en la palabra de marca Mw_Secuencia. Reseteamos la palabra Mi_ContOscUnosCeros y por último, mediante los bit Mx_MemADer o Mx_MemAIzq, indicamos la subrutina a seguir ejecutando*) IF Mx_OscUnosCeros AND Mx_Osc1Hz THEN Mw_PalBase := 16#00FF; (*oscilación de 00000000 <=> 11111111 ocho veces*) END_IF; IF Mx_OscUnosCeros AND(NOT Mx_Osc1Hz)THEN Mw_PalBase := 16#0000; END_IF; IF RE (Mx_Osc1Hz) THEN INC (Mi_ContOscUnosCeros); END_IF; IF Mi_ContOscUnosCeros=9 THEN RESET (Mx_OscUnosCeros); END_IF; (*restituimos valores*) IF Mi_ContOscUnosCeros = 9 AND Mx_MemADer THEN Mi_ContOscUnosCeros := 0; Mw_PalBase:=Mw_Secuencia; SET (Mx_DesADer); RESET (Mx_MemADer); END_IF; IF Mi_ContOscUnosCeros = 9 AND Mx_MemAIzq THEN
  • 234. 234 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Mi_ContOscUnosCeros := 0; Mw_PalBase := Mw_Secuencia; SET (Mx_DesAIzq); RESET (Mx_MemAIzq); END_IF; Subrutina "Sr3_OscNibblesEvt1" (* Sr3_OscNibblesEvt1 En esta subrutina haremos que el contenido del grupo de cuatro bits de salida %Q0.1.16 ... %Q0.1.19 (nibble bajo), y el contenido del grupo de cuatro bits también 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 interrupción de mayor prioridad, tiene que parar la ejecución de cualquier otra parte del programa, y proceder a la ejecución 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 función del momento de la demanda de interrupción. Restituimos a la palabra de marca Mw_PalBase, el valor que tenía cuando se produjo la demanda de interrupción, valor contenido en las palabras de marca Mw_Secuencia o Mw_SecuenciaEvt0. (*oscilación de 11110000 <=> 00001111 ocho veces*) IF Mx_OscNibbles AND Mx_Osc1Hz THEN Mw_PalBase := 16#0F; END_IF; IF Mx_OscNibbles AND (NOT Mx_Osc1Hz) THEN Mw_PalBase := 16#F0; END_IF; IF RE (Mx_Osc1Hz) THEN INC (Mi_ContOscNibbles); END_IF; (*restituimos valores*) IF Mi_ContOscNibbles = 9 THEN RESET (Mx_OscNibbles); END_IF; (* restituimos bits de marcas *) IF Mi_ContOscNibbles =9 AND Mx_MemADer AND NOT Mx_MemAIzq AND NOT Mx_MemEvt0 THEN SET (Mx_DesADer); RESET (Mx_MemADer); Mw_PalBase := Mw_Secuencia; Mi_ContOscNibbles := 0; END_IF; IF Mi_ContOscNibbles = 9 AND Mx_MemAIzq AND NOT Mx_MemADer AND NOT Mx_MemEvt0 THEN Mi_ContOscNibbles := 0; Mw_PalBase := Mw_Secuencia; SET (Mx_DesAIzq); RESET (Mx_MemAIzq); END_IF; IF Mi_ContOscNibbles = 9 AND Mx_MemEvt0 THEN
  • 235. Problemas M340 - 235 Universidad de Oviedo ISA - J. Alonso - I. Machón Mi_ContOscNibbles := 0; Mw_PalBase := Mw_SecuenciaEvt0; SET (Mx_OscUnosCeros); RESET (Mx_MemEvt0); END_IF; Evt 0 - Interrupción por la entrada %I0.1.0 (* Evt0_Oscila unos y ceros. Cuando activamos este suceso pretendemos que se realice una secuencia determinada, en concreto, la asociada a la marca Mx_OscUnosCeros. Pero como se considera en el anunciado, que esta secuencia es la menos prioritaria, de las dos que pueden darse bajo demanda de interrupción. En el supuesto de que se esté ejecutando la secuencia asociada con Mx_OscNibbles, debemos definir un nuevo bit de marca Mx_MemEvt0, que nos permita esperar a la terminación de la ejecución de la secuencia asociada a Mx_OscNibbles. Si no hay otra demanda de interrupción y estamos en la secuencia normal, salvaguardaremos el valor de la palabra base Mw_PalBase en la palabra Mw_Secuencia, para cuando retornemos nuevamente a la secuencia normal. A continuación salvaguardamos el bit de marca presente, asociado con la secuencia en curso. *) (*definimos ejecución o espera*) IF Mx_OscNibbles THEN SET (Mx_MemEvt0); ELSE SET (Mx_OscUnosCeros); END_IF; (*salvaguardamos los bits de marca*) IF Mx_DesADer AND Mx_OscUnosCeros THEN Mw_Secuencia := Mw_PalBase; SET (Mx_MemADer); RESET (Mx_DesADer); END_IF; IF Mx_DesAIzq AND Mx_OscUnosCeros THEN Mw_Secuencia := Mw_PalBase; SET (Mx_MemAIzq); RESET (Mx_DesAIzq); END_IF; Evt 1 - Interrupción por la entrada %I0.1.1 (*Evt1_Oscila Nibbles. Este evento es prioritario, por tanto, debe ejecutarse inmediatamente la secuencia asociada, esto es, activamos el bit de marca Mx_OscNibbles = ”1” y desactivamos los demás. Salvaguardaremos la palabra base Mw_PalBase, en las palabras Mw_Secuencia o Mw_SecuenciaEvt0 según proceda. Por último, salva guardaremos el bit de marca de la secuencia en ejecución *) (*Demanda de máxima prioridad*) IF Mx_DesADer THEN Mw_Secuencia := Mw_PalBase; SET (Mx_OscNibbles); SET (Mx_MemADer); RESET (Mx_DesADer); END_IF; IF Mx_DesAIzq THEN
  • 236. 236 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón 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
  • 237. Problemas M340 - 237 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 8.3 · Control de acceso de entrada a garaje y pulsador (Resolver) Un garaje dispone de treinta plazas de aparcamiento. El acceso al mismo se realiza través de una entrada y salida común, estando ésta cerrada mediante un portón elevadizo. La entrada-salida de vehículos se controla mediante dos semáforos; uno de entrada, SE, y otro de salida, SS. (Qx_SELVerde, Qx_SELRoja, Qx_SELAzul, Qx_SSLVerde, Qx_SSLRoja) Para que un vehículo pueda entrar debe disponer de aparcamiento, lo que indicaremos mediante la activación del foco azul. La demanda de entrada se hace mediante la activación del lazo sensor Ix_SE1, momento en el cual se pueden dar las opciones siguientes: 1. No esté vehículo alguno en proceso de salida, y tenga plaza de aparcamiento. Procederá en este caso al inicio de la maniobra de entrada, contabilizándose ésta al accionar el lazo sensor Ix_SE2.
  • 238. 238 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón 2. Si encuentra otro vehículo en proceso de salida, deberá entonces el semáforo de entrada permanecer en rojo, hasta que el vehículo haya salido, pudiendo a continuación proceder al inicio de la maniobra de entrada. La demanda de salida se hace mediante la activación del lazo sensor Ix_SS1, momento en el que se pueden dar las opciones siguientes: 1. No esté vehículo alguno en proceso de entrada. Procederá en este caso al inicio de la maniobra de salida, contabilizándose ésta al accionar el lazo sensor Ix_SS2. 2. Si encuentra otro vehículo en proceso de entrada, deberá entonces el semáforo de salida permanecer en rojo, hasta que el vehículo haya entrado, pudiendo a continuación proceder al inicio de la maniobra de salida. Tanto el semáforo de entrada como de salida, deben cambiar de verde a rojo, una vez que el vehículo abandone tanto el lazo sensor, (Ix_SE1), como el, (Ix_SS1). Ante demandas simultáneas de entrada y salida, tiene prioridad la salida. Si se produce una cola de vehículos deberá permitirse una salida y entrada alternada para evitar demasiada espera por parte de los vehículos que deseen entrar. El portón es controlado de manera automática por los sensores de entrada y de salida, (Ix_SE1) y (Ix_SS1), para su apertura. Y los sensores, (Ix_SE2) y (Ix_SS2), para su cierre. Mientras haya una demanda de salida o de entrada, en curso, el portón deberá permanecer abierto. Así mismo, es necesario que el portón se encuentre abierto para que los semáforos, tanto de entrada, como de salida, cambien de rojo a verde. Disponemos de un pulsador, (Ix_P), que nos permite la apertura y cierre manual del portón, en todo momento -si está abierto lo cerrará y si está cerrado lo abrirá- (Qx_Abrir, Qx_Cerrar, Ix_FCA, Ix_FCC). Se dispondrá, así mismo, de un pulsador para Resetear el sistema (Ix_Reset) y llevarlo a las condiciones Iniciales con el portón cerrado. El motor trifásico de la puerta tiene unas características de: Pm = 1,1 KW, Un = 400 V, cos φ=0,85 y  = 0,92. Corriente de arranque 5 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante automático y térmico. Las luces de los semáforos tienen una potencia de 40 W. Resto de elementos Anexo 1. PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo de entradas PNP BMX DDI 1602 y salidas PNP BMX DDO 1602. Se pide:  Diseñar el esquema de mando y de fuerza del sistema.  Elegir los elementos de protección del sistema de mando y de fuerza.  Indicar sobre las gráficas del térmico y del automático CLARAMENTE, la corriente de arranque, la corriente de regulación del térmico y la corriente nominal.  Programa de mando Entradas Salidas Ix_SE1 Qx_SELVerde Ix_SE2 Qx_SELRoja Ix_SS1 Qx_SELAzul Ix_SS2 Qx_SSLVerde Ix_P Qx_SSLRoja
  • 239. Problemas M340 - 239 Universidad de Oviedo ISA - J. Alonso - I. Machón Ix_Reset Qx_Abrir Qx_Cerrar Cómo crear un Bloque de Función de Usuario (DFB) Un bloque de función de usuario DFB (Derived Function Block) es un bloque de programa que define el funcionamiento completo de una parte del proyecto. El bloque se crea de forma que contenga la programación requerida en secciones de programación. El resultado de la creación de un DFB es un bloque de función en el que el usuario puede definir el número de entradas y de salidas necesarias y el comportamiento interno del mismo. Ejemplo. Se ha de crear un bloque motor con las características siguientes: - El motor tiene 2 sentidos de giro (izquierda y derecha). - Físicamente, el pulsador de PARO es normalmente cerrado por seguridad de máquina. - Se ha de definir tiempos de funcionamiento. - El motor se pondrá en marcha a la izquierda o a la derecha cuando se ponga active la orden de Marcha. Primeramente, se debe acudir al explorador de proyectos y abrir la ventana de Editor de datos en la pestaña de Tipos de DFB. Se puede llegar de diversas formas, por ejemplo, doble clic en Tipos de FB derivados en el explorador de proyectos. A continuación se debe introducir el nombre del bloque DFB en la posición indicada. Introducir el nombre del bloque DFB
  • 240. 240 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón 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. Creación de la sección DFB (Solución implementada con el editor FBD) Por otra parte, se deben introducir como siempre las variables del programa principal (Explorador de
  • 241. Problemas M340 - 241 Universidad de Oviedo ISA - J. Alonso - I. Machón proyectos → Variable e Instancias FB). En la sección del programa principal insertaremos el bloque DFB creado. Por ejemplo, aquí se inserta el bloque DFB_MOTOR en la sección FBD denominada “Control”. Para ello se debe editar la sección “Control” y pulsar el botón derecho del ratón. Se despliega la ventana que se muestra en la figura y después seleccionamos “Asistente de entrada FFB…”. Posteriormente buscamos el bloque creado de manera similar a seleccionar bloques de funciones elementales.
  • 242. 242 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Una vez insertado el bloque de función derivado debemos compilar el proyecto para que se puedan ver las entradas y salidas del bloque. A continuación conectaremos las entradas y salidas del bloque a nuestras variables del programa principal. El aspecto que quedaría se muestra en la figura siguiente. Al transferir el proyecto al PLC y ejecutarlo, se puede visualizar la sección de programación de la instancia de la DFB haciendo clic con el botón derecho del ratón y seleccionando “Detallar”.
  • 243. Problemas M340 - 243 Universidad de Oviedo ISA - J. Alonso - I. Machón De esa forma se puede observar la sección indicada según la siguiente figura:
  • 244. 244 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 245. Problemas M340 - 245 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 9.1 · Control de 3 lámparas. EM y EF Efectuar el encendido de tres lámparas de forma secuencial con un único pulsador. En cada activación del pulsador se procederá al encendido de una lámpara y apagado de la anterior. Se impondrá una limitación al accionamiento del pulsador, de forma tal, que si se efectuasen cuatro pulsaciones consecutivas en un tiempo inferior a 12 segundos, se inhibirá el efecto del pulsador durante un tiempo de 60 segundos. En este supuesto se mantendrá encendida la última lámpara activada. PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0600, fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%), módulo de entradas PNP BMX DDI 1602 y salidas PNP BMX DDO 1602. (Módulos ALCOA). Lámparas 5W. Esquemas de fuerza y de Mando P L 1 L 2 L 3
  • 246. 246 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón La corriente que puede dar cada canal de salida es de 0,625A y 10A el módulo de salidas. Por tanto, podemos alimentar directamente esas lámparas a la salida del Autómata Programable. Cronograma de activación y desactivación de las lámparas según una secuencia Tabla de variables
  • 247. Problemas M340 - 247 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa con FBDs - (pr0901a) Sección "Preliminar" Mx_Pulsador := (Ix_Pulsador And Ix_LocDist) Or (MxP_Pulsador And Not Ix_LocDist); Sección “Control” (en FBD)
  • 248. 248 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de operador
  • 249. Problemas M340 - 249 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en ST - (pr0901b) Sección "Preliminar" (* Memorias para el control Local o a Distancia *) Mx_Pulsador := (Ix_Pulsador And Ix_LocDist) Or (MxP_Pulsador And Not Ix_LocDist); Sección "Control" Mx_Impulso := RE (Mx_Pulsador) And Not TP_BloqueoPulsador.Q; Mx_Alarm_LVerde := Mx_Impulso And TP_AlarmLVerde.Q And Not Qx_LVerde And Not Qx_LAmbar And Qx_LRoja; Mx_Alarm_LAmbar := Mx_Impulso And TP_AlarmLAmbar.Q And Qx_LVerde And Not Qx_LAmbar And Not Qx_LRoja; Mx_Alarm_LRoja := Mx_Impulso And TP_AlarmLRoja.Q And Not Qx_LVerde And Qx_LAmbar And Not Qx_LRoja; TP_BloqueoPulsador (IN:= Mx_Alarm_LVerde Or Mx_Alarm_LAmbar Or Mx_Alarm_LRoja, PT:=t#20s); (* ponemos 20s para acortar la simulación *) IF (Mx_Impulso And Not Qx_LVerde And Not Qx_LAmbar And Not Qx_LRoja ) Or (Mx_Impulso And Not Qx_LVerde And Not Qx_LAmbar And Qx_LRoja And Not TP_AlarmLVerde.Q) THEN SET (Qx_LVerde); RESET (Qx_LRoja); RESET (Mx_Impulso); END_IF; TP_AlarmLVerde (IN:= Qx_LVerde, PT:= t#12s); (*Temporizador tipo TP*) IF Mx_Impulso And Qx_LVerde And Not Qx_LAmbar And Not Qx_LRoja And Not TP_AlarmLAmbar.Q THEN SET (Qx_LAmbar); RESET (Qx_LVerde); RESET (Mx_Impulso); END_IF; TP_AlarmLAmbar (IN:= Qx_LAmbar, PT:= t#12s); (* Temporizador tipo TP *) IF Mx_Impulso And Not Qx_LVerde And Qx_LAmbar And Not Qx_LRoja And Not TP_AlarmLRoja.Q THEN SET (Qx_LRoja); RESET (Qx_LAmbar); END_IF; TP_AlarmLRoja (IN:= Qx_LRoja, PT:= t#12s); (* Temporizador tipo TP *)
  • 250. 250 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa mixto ST y SFC - (pr0901c) Sección "Preliminar" Mx_Pulsador := (Ix_Pulsador And Ix_LocDist) Or (MxP_Pulsador And Not Ix_LocDist); Mx_Impulso := RE (Mx_Pulsador); TP_AlarmLVerde (IN:= Etapa1.x, PT:= t#12s); TP_AlarmLAmbar (IN:= Etapa2.x, PT:= t#12s); TP_AlarmLRoja (IN:= Etapa3.x, PT:= t#12s); Sección "Salidas" Qx_LVerde := E tapa1.x Or Etapa4.x; Qx_LAmbar := Etapa2.x Or Etapa5.x; Qx_LRoja := Etapa3.x Or Etapa6.x; Sección "Transiciones" Tran1_2 := Mx_Impulso and not TP_AlarmLAmbar.Q; Tran1_4 := Mx_Impulso and TP_AlarmLAmbar.Q; Tran2_3 := Mx_Impulso and not TP_AlarmLRoja.Q; Tran2_5 := Mx_Impulso and TP_AlarmLRoja.Q; Tran3_1 := Mx_Impulso and not TP_AlarmLVerde.Q; Tran3_6 := Mx_Impulso and TP_AlarmLVerde.Q; Tran4_2 := Mx_Impulso and Etapa4.t >=t#20s; (* ponemos 20s para acortar la simulación *) Tran5_3 := Mx_Impulso and Etapa5.t >=t#20s; Tran6_1 := Mx_Impulso and Etapa6.t >=t#20s; Sección "Pantalla de operador"
  • 251. Problemas M340 - 251 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección SFC "Control" Tran6_1 := Mx_Impulso and Etapa6.t >=t#20s Tran3_1 := Mx_Impulso and not TP_AlarmLVerde.Q Tran3_6 := Mx_Impulso and TP_AlarmLVerde.Q Tran5_3 := Mx_Impulso and Etapa5.t >=t#20s Tran2_3 := Mx_Impulso and not TP_AlarmLRoja.Q Tran2_5 := Mx_Impulso and TP_AlarmLRoja.Q Tran4_2 := Mx_Impulso and Etapa4.t >=t#20s Tran1_2 := Mx_Impulso and not TP_AlarmLAmbar.Q Tran1_4 := Mx_Impulso and TP_AlarmLAmbar.Q Qx_LRoja 12s TP_AlarmLRoja.Q Qx_LAmbar 12s TP_AlarmLAmbar.Q Qx_LVerde Qx_LVerde 12s TP_AlarmLVerde.Q Qx_LAmbar Qx_LRoja Etapa0 Etapa1 Etapa4 Etapa2 Etapa5 Etapa3 Etapa6 Mx_Impulso Tran1_2 Tran1_4 Tran4_2 Tran2_3 Tran2_5 Tran5_3 Tran3_1 Tran3_6 Tran6_1
  • 252. 252 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 253. Problemas M340 - 253 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 9.2 · Control de la mezcla en un depósito. EM y EF Diseñar el programa lógico que efectúe el control de la mezcla realizada en el depósito destinado al efecto, cuyo esquema mostramos en la figura. En el mismo mezclaremos líquidos procedentes de una electroválvula monoestable de fluido " A " y otra " B ", en las proporciones que definimos a continuación. { (A:B) } = { (5:0), (4:1), (3:2), (2:3), (1:4), (0:5), (ninguna) } La elección de la mezcla se realizará de manera secuencial, mediante el accionamiento del pulsador, "Ix_PMezcla". Se conocerá la mezcla por la iluminación del cajetín, asociado con la misma, en el panel de Mando. Mediante el accionamiento del pulsador “Ix_PEjecución” se efectuará la orden de ejecución de la mezcla seleccionada, siendo necesario para que esto se realice que el mezclador se encuentre completamente vacío y la servoválvula C cerrada. Durante la ejecución de la mezcla el pulsador “Ix_PEjecución” debe quedar inhibido hasta que el mezclador se encuentre vacío. Cuando se haya dado la orden de ejecución, ésta comenzará abriendo la electroválvula A "Qx_Abrir_EvA", y permaneciendo abierta hasta que el depósito alcance el nivel que corresponda con el primer dígito de la mezcla establecida, momento en el que deberá procederse al cierre de la electroválvula "A", y a la apertura de la electroválvula B "Qx_Abrir_EvB", permaneciendo ésta abierta hasta que el depósito se incremente en las partes correspondientes para formar la mezcla pedida. Momento en el cual se procederá al cierre de la electroválvula "B". La mezcla quedaría concluida en este momento, pero quizá no fuera todo lo homogénea que sería de desear; para corregir esto se dispone de un homogeneizador H, "Qx_Homogeneizar", el cual deberá funcionar durante 30 segundos, a partir del momento en que se cierra la electroválvula "B".
  • 254. 254 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Concluida la homogeneización de la mezcla, se evacuará por la electroválvula C "Qx_Abrir_EvC", procediéndose a la apertura de l misma, una vez transcurridos los treinta segundos de homogeneización. Vaciado el depósito, se procederá al cierre de la electroválvula "C". Los sensores de nivel S1 ..... S5 se sitúan a "1", cuando la mezcla alcanza el nivel respectivo o superior. El sensor de nivel S0 = "1" indica que el depósito se encuentra vacío, mientras que si S0 = "0", el depósito se encuentra llenándose. El motor que mueve el homogeneizador es de PM = 2,2 KW, UN = 380 V, 3000 rpm, cos ϕ = 0,92,  = 0,93 en triángulo con arranque directo y Iarr = 5 IN y tiempo de arranque 3 s. Los valores normalizados de Interruptores automáticos curvas C y D son son 1, 2, 4, 6, 10, 16, 20, 25, 32, 40, 50, 63 A. El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta a todo el conjunto de entradas y a los módulos BMX DDI 1602 y BMX DRA 1605. Características de las electroválvulas Características pilotos iluminación Características del consumo de los contactores a 230V AC Se pide:  Diseñar el esquema de mando y de fuerza del sistema.  Elegir los elementos de protección del sistema de mando y de fuerza.  Indicar sobre las gráficas del térmico y del automático CLARAMENTE, la corriente de arranque, la corriente de regulación del térmico y la corriente nominal.  Programa de mando
  • 255. Problemas M340 - 255 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de fuerza Esquema de Mando,
  • 256. 256 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Relé térmico F1 PM = 2,2 KW, UN = 380 V, 3000 rpm, cos ϕ = 0,92,  = 0,93 en triángulo con arranque directo y Iarr = 5 IN . 𝜂 = 𝑃𝑢 𝑃𝑒 = 𝑃𝑢 √3 𝑈𝑁 𝐼𝑁 cos  𝐼𝑁 = 𝑃𝑢 𝜂 √3 𝑈𝑁 cos  = 2200 0,92 √3 380 0,93 = 3,9 𝐴 Teniendo en cuenta la corriente que demanda el motor, elegiremos el LRD-12 Ajustaremos la corriente regulada a 3,9 A Iarranque = 5 · IN = 5 · 3,9 = 19,5 A tiempo 3 segundos 𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒 𝐼𝑁 = 19,5 3,9 = 5 Escogeremos el LRD -08 clase 20 p.e. Automático Q1 curvas C y D 1, 2, 4, 6, 10, 16, 20, 25, 32, 40, 50, 63 A. Cuando tengamos la corriente nominal, por el térmico estarán pasando 3,9 A Para que haya selectividad la corriente mínima del automático será: I = 1,6 * 3,9 = 6,24 A Por tanto el calibre del automático elegido será el de 10A (valor normalizado por encima de 6,24 A). Tensión nominal: 380 V 3 polos. 𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒 𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒 = 19,5 10 = 1,95 tiempo 5 segundos La curva podría ser la C o la D. C60 10A o D60 10A.
  • 257. Problemas M340 - 257 Universidad de Oviedo ISA - J. Alonso - I. Machón Diferencial F2 El calibre será igual o superior a Q1 Contactor KM1 Clase de servicio temporal. Categoría de servicio: AC3. Es la adecuada para maniobras de arranque de motores de inducción. Tensión de servicio: 380 V Corriente de servicio: I = 3,9 A Del catálogo de Telemecanique sería válido el calibre LC1-K06 Automático Q2 La fuente de alimentación entrega 20 W con una eficiencia del 82%. Por tanto consume unos 24,39W que significa unos 24,39/230 = 0,11A La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar
  • 258. 258 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón pasar 9 · 0,11 = 0,95 A en los instantes iniciales. Podemos coger el automático C60 1A Automático Q3 Tenemos en cuenta que tanto el contactor como las electroválvulas en el arranque consumen mas corriente que en mantenimiento. Contactor (25VA - 5VA). Electroválvulas (9VA - 6VA). Las lámparas consumen siempre 2 W. El caso más desfavorable es cuando tenemos una lámpara activa, conectada una electroválvula y entra el contactor. (2+6+25)/230 = 0,14A Podríamos poner C60 1A para el consumo actual Tabla de variables
  • 259. Problemas M340 - 259 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa mixto ST y FBD (pr0902a) Preliminar (*Inicialización de la pantalla de operador*) If %S13 THEN Set (MxP_Sensor0); END_IF; (*Marcas para el control Local-Distancia*) Mx_PMezcla := (Ix_PMezcla And Ix_LocDist) Or (MxP_PMezcla And Not Ix_LocDist); Mx_PEjecucion := (Ix_PEjecucion And Ix_LocDist) Or (MxP_PEjecucion And Not Ix_LocDist); Mx_Sensor0 := (Ix_Sensor0 And Ix_LocDist) Or (MxP_Sensor0 And Not Ix_LocDist); Mx_Sensor1 := (Ix_Sensor1 And Ix_LocDist) Or (MxP_Sensor1 And Not Ix_LocDist); Mx_Sensor2 := (Ix_Sensor2 And Ix_LocDist) Or (MxP_Sensor2 And Not Ix_LocDist); Mx_Sensor3 := (Ix_Sensor3 And Ix_LocDist) Or (MxP_Sensor3 And Not Ix_LocDist); Mx_Sensor4 := (Ix_Sensor4 And Ix_LocDist) Or (MxP_Sensor4 And Not Ix_LocDist); Mx_Sensor5 := (Ix_Sensor5 And Ix_LocDist) Or (MxP_Sensor5 And Not Ix_LocDist); (* Marcas de pantalla *) If Qx_Homogeneizar THEN MtP_Tiempo_Homogen:= T_Homogenizar.ET; else MtP_Tiempo_Homogen:= t#0s; END_IF; (* Arranca Oscilador para animar el homegenizador cuando proceda. Usamos un temporizador"T1", introducido como bloque DFB de tipo TON *) T1 (IN := Qx_Homogeneizar And Not T1.Q, PT := t#500ms); Mx_Osc1 := T1.ET>T#250ms;
  • 260. 260 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Selección
  • 261. Problemas M340 - 261 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 262. 262 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Llenado
  • 263. Problemas M340 - 263 Universidad de Oviedo ISA - J. Alonso - I. Machón Vaciado
  • 264. 264 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de operador
  • 265. Problemas M340 - 265 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa mixto ST y SFC (pr0902b) Preliminar (* Inicialización de la pantalla de operador *) If %S13 THEN Set(MxP_Sensor0); END_IF; (* Marcas para el control Local-Distancia *) Mx_PMezcla := (Ix_PMezcla And Ix_LocDist) Or (MxP_PMezcla And Not Ix_LocDist); Mx_PEjecucion := (Ix_PEjecucion And Ix_LocDist) Or (MxP_PEjecucion And Not Ix_LocDist); Mx_Sensor0 := (Ix_Sensor0 And Ix_LocDist) Or (MxP_Sensor0 And Not Ix_LocDist); Mx_Sensor1 := (Ix_Sensor1 And Ix_LocDist) Or (MxP_Sensor1 And Not Ix_LocDist); Mx_Sensor2 := (Ix_Sensor2 And Ix_LocDist) Or (MxP_Sensor2 And Not Ix_LocDist); Mx_Sensor3 := (Ix_Sensor3 And Ix_LocDist) Or (MxP_Sensor3 And Not Ix_LocDist); Mx_Sensor4 := (Ix_Sensor4 And Ix_LocDist) Or (MxP_Sensor4 And Not Ix_LocDist); Mx_Sensor5 := (Ix_Sensor5 And Ix_LocDist) Or (MxP_Sensor5 And Not Ix_LocDist); (* Marcas de pantalla *) If S_Homogen.x THEN MtP_Tiempo_Homogen:= S_Homogen.t; else MtP_Tiempo_Homogen:= t#0s; END_IF; (* ArrancaOscilador para animar el homegenizador cuando proceda. Usamos un temporizador"T1", introducido como bloque DFB de tipo TON *) T1 (IN := Qx_Homogeneizar And Not T1.Q, PT := t#500ms); Mx_Osc1 := T1.ET>T#250ms; (* Inhibición de la selección *) Mx_Seleccion_Parada := FREEZECHART (Seleccion,Not S_Dep_vacio.x); Mx_Flanco := RE (Mx_PMezcla); (* Transiciones *) Tr1 := Mx_PEjecucion AND NOT S_Ninguna.x And Mx_Sensor0; Tr2 := 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; Tr3 := S_Homogen.t> t#30s Or Qx_Mezcla0 Or Qx_Mezcla5;
  • 266. 266 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Chart “Seleccion” (* Ninguna mezcla seleccionada *) Qx_Mezcla_4_1 Qx_Mezcla_5_0 Qx_Mezcla_3_2 Qx_Mezcla_2_3 Qx_Mezcla_1_4 Qx_Mezcla_0_5 E0 E1 E2 E3 E4 E5 E6 Mx_Flanco Mx_Flanco Mx_Flanco Mx_Flanco Mx_Flanco Mx_Flanco Mx_Flanco
  • 267. Problemas M340 - 267 Universidad de Oviedo ISA - J. Alonso - I. Machón Chart “Control” Tran11_12 := E1.x and Mx_Sensor5 or E2.x and Mx_Sensor4 or E3.x and Mx_Sensor3 or E4.x and Mx_Sensor2 or E5.x and Mx_Sensor1 or E6.x and Mx_Sensor0; Tran10_11 := Mx_PEjecucion AND NOT E0.x and Mx_Sensor0; Tran13_14 := S_Homogen.t>t#30s or Mx_Mezcla0 or Mx_Mezcla5 Qx_Abrir_EvA (* El depósito se encuentra vacío *) Qx_Homogeiniza Qx_Abrir_EvC Qx_Abrir_EvB E10 E11 E12 E13 E14 Tran10_11 Tran11_12 Mx_Sensor5 Tran13_14 Mx_Sensor0 E10
  • 268. 268 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Salidas Qx_Abrir_EvA := E11.x; Qx_Abrir_EvB := E12.x; Qx_Abrir_EvC := E14.x; Qx_Homogeneizar := E13.x and not Ix_Termico; Qx_Mezcla_5_0 := E1.x; (* mezcla 5:0 *) Qx_Mezcla_4_1 := E2.x; (* mezcla 4:1 *) Qx_Mezcla_3_2 := E3.x; (* mezcla 3:2 *) Qx_Mezcla_2_3 := E4.x; (* mezcla 2:3 *) Qx_Mezcla_1_4 := E5.x; (* mezcla 1:4 *) Qx_Mezcla_0_5 := E6.x; (* mezcla 0:5 *)
  • 269. Problemas M340 - 269 Universidad de Oviedo ISA - J. Alonso - I. Machón Funciones MOVE y NOT Función MOVE "Esta función asigna el valor de entrada a la salida. Los tipos de datos del valor de entrada y salida deben ser iguales. NOTA: No es posible copiar una matriz de los elementos EBOOL mediante la función MOVE, ya que MOVE no actualizará el historial de asignaciones de los elementos de matriz. Para copiar una matriz de elementos EBOOL, utilice la función COPY_AREBOOL_AREBOOL. Como parámetros adicionales se pueden configurar EN y ENO" Representación en lenguaje FBD Representación en lenguaje LD Representación en lenguaje ST Output := MOVE (Input); Descripción de parámetros Parámetros de entrada Parámetro Tipo de datos Significado Input ANY Valor de entrada Parámetros de salida Parámetro Tipo de datos Significado Output ANY Valor de salida
  • 270. 270 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Función NOT "Esta función devuelve el valor negado del valor de entrada" Representación en lenguaje FBD Representación en lenguaje LD Representación en lenguaje ST NegValue := NOT (Value); Descripción de parámetros Parámetros de entrada Parámetro Tipo de datos Significado Value BOOL, BYTE, WORD, DWORD Secuencia de bits de entrada Parámetros de salida Parámetro Tipo de datos Significado NegValue BOOL, BYTE, WORD, DWORD Secuencia de bits de salida
  • 271. Problemas M340 - 271 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 9.3 · Control de 2 bombas y su desgaste. EM y EF Una estación de bombeo consta de dos bombas B1 y B2 (Qx_B1 y Qx_B2), las cuales deben funcionar de manera alternada para evitar un desgaste excesivo de una respecto de otra. El depósito que recoge los líquidos a evacuar está dotado de dos sensores de nivel, uno para determinar el nivel mínimo (Ix_Nmin) y otro para determinar el nivel máximo (Ix_Nmax). CONDICIONES INICIALES. El sistema parte de la condición de Paro: las bombas deben estar paradas y la luz de paro activada. ARRANQUE DE LAS BOMBAS. El sistema tiene dos modos de trabajo: Marcha automática (Ix_MarAut), el arranque debe producirse de manera automática cuando se activa el sensor de nivel máximo. Funcionará la bomba que menos tiempo de uso tenga. Forzado manual también podremos hacer, mediante un pulsador(Ix_ForMan) que, estando el sistema parado, o desactivadas las bombas en Marcha automática, arranque la bomba que le corresponda, funcionando éstas hasta el vaciado del depósito y quedando luego en la situación de partida. Durante el forzado manual, se activará, además de la luz que estuviese, la de forzado manual. Si una vez arrancado la bomba correspondiente, el nivel máximo permanece 5 minutos sin desactivarse, debe entrar en funcionamiento la otra bomba hasta que se desactive el sensor de nivel máximo. PARADA DE LAS BOMBAS. La parada debe producirse cuando se activa el sensor de nivel mínimo quedando en el modo de trabajo que estuviese. Mediante un pulsador de Paro (Ix_Paro), también podremos hacer que las bombas en funcionamiento se paren volviendo el sistema a las condiciones iniciales. SECUENCIA DE BOMBEO. Cada bomba no debe funcionar más de quince minutos seguidos . SEÑALIZACIÓN. Deberá existir una lámpara para indicar la condición de Paro, Marcha automática o Forzado manual. Nota: El diseño se ha hecho de forma tal que el depósito se puede evacuar siempre con una sóla bomba. El sensor de nivel máximo da un 1 lógico, cuando el agua esté en ese nivel o superior. El sensor de nivel mínimo da un 1 lógico, cuando el agua esté en ese nivel o inferior. El motor de las bombas tiene unas características de: Pm = 2,2 KW, Un = 400 V, cos φ=0,85 y  = 0,92. Corriente de arranque 5 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante automático y térmico. PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de alimentación BMX CPS 2000, módulo de entradas PNP BMX DDI 1602 y de salidas PNP BMX DDO 1602. Entradas: Ix_Nmin Ix_Nmax Ix_MarAut Ix_ForMan Ix_Paro Salidas: Qx_B1 Qx_B2 Qx_LMarAut Qx_LParo Qx_LForMan
  • 272. 272 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de Mando Esquema de fuerza
  • 273. Problemas M340 - 273 Universidad de Oviedo ISA - J. Alonso - I. Machón Motor Bombas El motor de la compuerta tiene unas características de: Pm = 2,2 KW, Un = 400 V, cos φ=0,85 y  = 0,92. Corriente de arranque 5 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante automático y térmico. Relés térmico F1 y F3 𝜂 = 𝑃𝑢 𝑃𝑒 = 𝑃𝑢 √3 𝑈𝑁 𝐼𝑁 cos  𝐼𝑁 = 𝑃𝑢 √3 𝑈𝑁 cos  𝜂 = 2200 √3 400 0,85 0,92 = 4,1 𝐴 La corrientes que pasa por el térmico es 𝐼N = 4,1 𝐴 Teniendo en cuenta esta corriente, elegiremos el LRD-10. Ajustaremos la corriente regulada a 4,1 A Ia = 5 · IN = 5 · 4,1 = 20,5 A tiempo 5 segundos Se observa que en clase 10, estará en el límite de la curva, si bien en la realidad tendrá un valor más favorable. Escogeremos el LRD -10 clase 20 Automáticos Q1 y Q2 Cuando tengamos la corriente nominal, por el térmico estarán pasando los 4,1 A. Aguas arriba por el automático estarán pasando los 4,1 A. Para que haya selectividad, la corriente mínima del automático será: I = 1,6 * 4,1 = 6,56 A Por tanto el calibre del automático elegido será el de 10A (valor normalizado por encima de 6,56 A).
  • 274. 274 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Tensión nominal: 400 V 3 polos. 𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒 𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒 = 20,5 10 = 2,5 tiempo 5 segundos La curva puede ser la C 10A Diferencial F2 y F4 Se elige un Diferencial de calibre > 1,4 * 10 => 25A y sensibilidad 30 mA (p.e. el A9R81425 de Schneider) Calibre de los contactores KM1 y KM2 Clase de servicio temporal. Categoría de servicio: AC3. Tensión de servicio: 400 V Corriente de servicio: 𝐼N = 4,1 𝐴 Del catálogo de Telemecanique sería válido el calibre LC1-K06
  • 275. Problemas M340 - 275 Universidad de Oviedo ISA - J. Alonso - I. Machón Automático Q3 Selección de Q3. Teniendo en cuenta que el consumo de los contactores es de 70 VA | 7 VA Debemos determinar la corriente mas desfavorable. Esta es cuando está activo un contactor y se llama a el otro. Corriente de mantenimiento => 7 / 230 = 0,03 A Corriente de llamada Ia = 70 / 230 = 0,30 A I = 0,3 + 0,03 = 0,33 A Por tanto elegiremos el automático de calibre C1 que permitirá su paso sin problemas. Tabla de variables Instancias de bloques elementales:
  • 276. 276 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa mixto ST y FBD - (pr0903a) Preliminar: (*Inicialización de la pantalla de operador*) If %S13 THEN Set (MxP_Paro); END_IF; (*Memorias para la pantalla de operador*) MxP_NivelMedio := Not Mx_Nmin And Not Mx_Nmax; MxP_Bomba := Qx_B1 Or Qx_B2; (* Memorias para el control local o a distancia *) Mx_ForMan := (Ix_ForMan And Ix_LocDist) Or (MxP_ForMan And Not Ix_LocDist); Mx_MarAut := (Ix_MarAut And Ix_LocDist) Or (MxP_MarAut And Not Ix_LocDist); Mx_Paro := (Ix_Paro And Ix_LocDist) Or (MxP_Paro And Not Ix_LocDist); Mx_Nmin := (Ix_Nmin And Ix_LocDist) Or (MxP_Nmin And Not Ix_LocDist); Mx_Nmax := (Ix_Nmax And Ix_LocDist) Or (MxP_Nmax And Not Ix_LocDist); Sección "Estado-Marcha"
  • 277. Problemas M340 - 277 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "ControlDesgaste" Sección "ControlActivación"
  • 278. 278 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "Salidas"
  • 279. Problemas M340 - 279 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de explotación Simulación en el panel modular de entrenamiento
  • 280. 280 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa mixto ST y SFC - (pr0903b) Sección "Preliminar" (*Inicialización de la pantalla de operador*) If %S13 THEN Set (MxP_PParo); END_IF; (*Marcas para el control Local-Distancia*) Mx_ForMan := (Ix_ForMan And Ix_LocDist) Or (MxP_ForMan And Not Ix_LocDist); Mx_MarAut := (Ix_MarAut And Ix_LocDist) Or (MxP_MarAut And Not Ix_LocDist); Mx_Paro := (Ix_Paro And Ix_LocDist) Or (MxP_Paro And Not Ix_LocDist); Mx_Nmin := (Ix_Nmin And Ix_LocDist) Or (MxP_Nmin And Not Ix_LocDist); Mx_Nmax := (Ix_Nmax And Ix_LocDist) Or (MxP_Nmax And Not Ix_LocDist); (*Parada. Mx_Paro estará a 1 mientras este pulsado el pulsador de Paro. En esas condiciones quedará fija la etapa S_Paro y las transiciones inhabilitadas*) Mx_EnParo := INITCHART (Control, Not Mx_Paro); (*Una vez que se ha dejado de pulsar el pulsador de Paro, la etapa de Paro sigue activa pero las transiciones (pulsar Marcha o ForMan) pueden hacer evolucionar el GRAFCET *) (*Control del desgaste*) (*si el valor del contador es superior a 1000 se debe usar la bomba 2. En caso contrario, la bomba 1 debe ser utilizada*) CONTADOR (CU:= Qx_B1 And %S6 And Not Qx_B2, CD := Qx_B2 And %S6 And Not Qx_B1, LD := %S13, PV := 1000, QU => Mx_TocaB2); Mx_TocaB1 := Not Mx_TocaB2; (*Marcas para la pantalla de operador*) MxP_NivelMedio := not Mx_Nmin and not Mx_Nmax; MxP_Bomba := Qx_B1 or Qx_B2; MtP_B1_ON := E3.t; MtP_B2_ON := E4.t; if Mx_Nmax and not E0.x and E3.x then MtP_Nmax := E3.t; ELSIF Mx_Nmax and not E0.x and E4.x then MtP_Nmax :=E4.t; end_if;
  • 281. Problemas M340 - 281 Universidad de Oviedo ISA - J. Alonso - I. Machón if not Mx_Nmax then MtP_Nmax:=t#0s; end_if; Sección "Transiciones” Tran1_2 := Mx_Nmax or Mx_ForMan; Tran3_5 := Mx_Nmax and E3.t>t#10s; Tran3_4 := E3.t>t#15s; Tran4_3 := E4.t>t#15s; Tran4_5 := Mx_Nmax and E4.t>t#10s; Sección "Salidas" if E0.x then reset (Mx_EnMarAut); reset (Mx_EnForMan); end_if; if E1.x then reset (Mx_EnForMan); set (Mx_EnMarAut); end_if; if E2.x and Mx_ForMan then set (Mx_EnForMan); end_if; Qx_B1 := E3.x or E5.x; Qx_B2 := E4.x or E5.x; Qx_LParo := E0.x; Qx_LForMan := Mx_EnForMan; Qx_LMarAut := Mx_EnMarAut and not Mx_EnForMan;
  • 282. 282 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "Chart" Tran4_5 Mx_Nmax and E4.t > t#5m Tran4_3:= E4.t > t#15m Tran3_4:= E3.t > t#15m Tran3_5:= Mx_Nmax and E3.t > t#5m If E2.x and Mx_ForMan then S Mx_EnForMan Tran1_2 := Mx_Nmax or Mx_PForMan S Mx_EnMarAut R Mx_EnForMan Qx_LParo R Mx_EnMarAut R Mx_EnForMan Qx_B1 Qx_B2 Qx_B1 Qx_B2 E0 E1 E2 E3 E4 E5 Tran1_2 Mx_MarAut Mx_ForMan Mx_TocaB1 Mx_TocaB2 Tran3_4 Tran3_5 Mx_Nmin Tran4_3 Tran4_5 Mx_Nmin not Mx_Nmax E1 E1 E2
  • 283. Problemas M340 - 283 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 9.4 · Proceso de electrólisis El proceso que se quiere automatizar consiste en el procedimiento para el tratamiento de superficies, con el fin de hacerlas resistentes a la oxidación. El sistema constará de tres baños:  Primer baño para el desengrasado de las piezas.  Segundo baño para el aclarado de las piezas.  Tercer baño donde se les dará el baño electrolítico. La grúa introducirá la jaula portadora de las piezas a tratar en cada uno de los baños, comenzando por el de desengrasado, a continuación en el de aclarado y por último les dará el baño electrolítico; en este último, la grúa debe permanecer 5 segundos para conseguir una uniformidad de las piezas tratadas. El ciclo se inicia al presionar el pulsador de marcha; la primera acción a realizar es la subida de la grúa; cuando toca el final de carrera FC2, la grúa comenzará a avanzar, hasta llegar al FC4, en dicho punto la grúa desciende; una vez que toca el FC1, la grúa vuelve a ascender, hasta tocar de nuevo el FC2, momento en el cual la grúa vuelve a avanzar, hasta alcanzar la posición de FC5, momento en el cual se repiten los movimientos de descenso y ascenso de la grúa; cuando la grúa esté de nuevo arriba avanza hasta FC6; vuelve a bajar y cuando toca FC1, se conecta el proceso de electrólisis. Cuando ha pasado el tiempo fijado, se desconecta el proceso de electrólisis, y la grúa comienza a ascender hasta que toca FC2, Al llegar a este punto, la grúa inicia el movimiento de retroceso, hasta llegar al FC3, momento en el cual volverá a descender hasta activar el FC1. PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%), módulo mixto de entradas salidas BMX DDM 3202K. FC1 Jaula FC2 M1: Motor de desplazamiento a izquierda o derecha de la jaula M2: Motor de subida o bajada de la jaula Depósito de desengrase Depósito de aclarado Depósito electrolítico FC3 FC4 FC5 FC6
  • 284. 284 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de variables Instancias de bloques elementales:
  • 285. Problemas M340 - 285 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en FBD ( pr0904a ) Sección "Preliminar" (*Marcas para la pantalla de operador*) IF %S13 then set (MxP_FC3); set (MxP_FC1); END_IF; MtP_TiempoElectrolisis := TON_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_MotSubir; MxP_FC1_FC4_Sub := Mx_FC1 and Mx_FC4 and Qx_MotSubir; MxP_FC1_FC5_Sub := Mx_FC1 and Mx_FC5 and Qx_MotSubir; MxP_FC1_FC6_Sub := Mx_FC1 and Mx_FC6 and Qx_MotSubir; MxP_FC2_FC3 := Mx_FC2 and Mx_FC3; MxP_FC2_FC4 := Mx_FC2 and Mx_FC4; MxP_FC2_FC5 := Mx_FC2 and Mx_FC5; MxP_FC2_FC6 := Mx_FC2 and Mx_FC6; MxP_FC2_FC3_Baj := Mx_FC2 and Mx_FC3 and Qx_MotBajar; MxP_FC2_FC4_Baj := Mx_FC2 and Mx_FC4 and Qx_MotBajar; MxP_FC2_FC5_Baj := Mx_FC2 and Mx_FC5 and Qx_MotBajar; MxP_FC2_FC6_Bbaj := Mx_FC2 and Mx_FC6 and Qx_MotBajar; MxP_FC2_FC3_Dcha := Mx_FC2 and Mx_FC3 and Qx_MotDcha; MxP_FC2_FC4_Dcha := Mx_FC2 and Mx_FC4 and Qx_MotDcha; MxP_FC2_FC5_Dcha := Mx_FC2 and Mx_FC5 and Qx_MotDcha; MxP_FC2_FC4_Izda := Mx_FC2 and Mx_FC4 and Qx_MotIzda; MxP_FC2_FC5_Izda := Mx_FC2 and Mx_FC5 and Qx_MotIzda; MxP_FC2_FC6_Izda := Mx_FC2 and Mx_FC6 and Qx_MotIzda; MxP_NoFC1FC2_FC3 := not Mx_FC1 and not Mx_FC2 and Mx_FC3; MxP_NoFC1FC2_FC3_Sub := not Mx_FC1 and not Mx_FC2 and Mx_FC3 and Qx_MotSubir; MxP_NoFC1FC2_FC3_Baj := not Mx_FC1 and not Mx_FC2 and Mx_FC3 and Qx_MotBajar; MxP_NoFC1FC2_FC4 := not Mx_FC1 and not Mx_FC2 and Mx_FC4; MxP_NoFC1FC2_FC4_Sub := not Mx_FC1 and not Mx_FC2 and Mx_FC4 and Qx_MotSubir; MxP_NoFC1FC2_FC4_Baj := not Mx_FC1 and not Mx_FC2 and Mx_FC4 and Qx_MotBajar; MxP_NoFC1FC2_FC5 := not Mx_FC1 and not Mx_FC2 and Mx_FC5; MxP_NoFC1FC2_FC5_Sub := not Mx_FC1 and not Mx_FC2 and Mx_FC5 and Qx_MotSubir; MxP_NoFC1FC2_FC5_Baj := not Mx_FC1 and not Mx_FC2 and Mx_FC5 and Qx_MotBajar;
  • 286. 286 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón MxP_NoFC1FC2_FC6 := not Mx_FC1 and not Mx_FC2 and Mx_FC6; MxP_NoFC1FC2_FC6_Sub := not Mx_FC1 and not Mx_FC2 and Mx_FC6 and Qx_MotSubir; MxP_NoFC1FC2_FC6_Baj := not Mx_FC1 and not Mx_FC2 and Mx_FC6 and Qx_MotBajar; if MxP_FC2_FC3_Dcha or MxP_FC2_FC4_Izda then set (MxP_T1); end_if; if MxP_FC2_FC3_Baj or MxP_FC2_FC4_Dcha then reset (MxP_T1); end_if; if MxP_FC2_FC4_Dcha or MxP_FC2_FC5_Izda then set (MxP_T2); end_if; if MxP_FC2_FC4_Izda or MxP_FC2_FC5_Dcha then reset (MxP_T2); end_if; if MxP_FC2_FC6_Izda or MxP_FC2_FC5_Dcha then set (MxP_T3); end_if; if MxP_FC2_FC6_Bbaj or MxP_FC2_FC5_Izda then reset (MxP_T3); end_if; MxP_NoFC3FC4_Dcha := MxP_T1 and Qx_MotDcha and not MxP_FC2_FC3 and not MxP_FC2_FC4; MxP_NoFC4FC5_Dcha := MxP_T2 and Qx_MotDcha and not MxP_FC2_FC4 and not MxP_FC2_FC5; MxP_NoFC5FC6_Dcha := MxP_T3 and Qx_MotDcha and not MxP_FC2_FC5 and not MxP_FC2_FC6; MxP_NoFC3FC4_Izda := MxP_T1 and Qx_MotIzda and not MxP_FC2_FC3 and not MxP_FC2_FC4; MxP_NoFC4FC5_Izda := MxP_T2 and Qx_MotIzda and not MxP_FC2_FC4 and not MxP_FC2_FC5; MxP_NoFC5FC6_Izda := MxP_T3 and Qx_MotIzda and not MxP_FC2_FC5 and not MxP_FC2_FC6; MxP_NoFC3FC4 := MxP_NoFC3FC4_Dcha or MxP_NoFC3FC4_Izda; MxP_NoFC4FC5 := MxP_NoFC4FC5_Dcha or MxP_NoFC4FC5_Izda; MxP_NoFC5FC6 := MxP_NoFC5FC6_Dcha or MxP_NoFC5FC6_Izda; (* Inicia variables*) Mx_Marcha := (Ix_Marcha and Ix_LocDist) or (MxP_Marcha and not Ix_LocDist); Mx_Paro := (Ix_Paro and Ix_LocDist) or (MxP_Paro and not Ix_LocDist); Mx_Rearme := (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist); Mx_FC1 := (Ix_FC1 and Ix_LocDist) or (MxP_FC1 and not Ix_LocDist);
  • 287. Problemas M340 - 287 Universidad de Oviedo ISA - J. Alonso - I. Machón Mx_FC2 := (Ix_FC2 and Ix_LocDist) or (MxP_FC2 and not Ix_LocDist); Mx_FC3 := (Ix_FC3 and Ix_LocDist) or (MxP_FC3 and not Ix_LocDist); Mx_FC4 := (Ix_FC4 and Ix_LocDist) or (MxP_FC4 and not Ix_LocDist); Mx_FC5 := (Ix_FC5 and Ix_LocDist) or (MxP_FC5 and not Ix_LocDist); Mx_FC6 := (Ix_FC6 and Ix_LocDist) or (MxP_FC6 and not Ix_LocDist); Sección "Control"
  • 288. 288 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 289. Problemas M340 - 289 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de Operador con sus elementos
  • 290. 290 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de Operador en funcionamiento
  • 291. Problemas M340 - 291 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en SFC ( pr0904b ) Vamos a añadir un pulsador de Paro que parará el proceso hasta que se pulse de nuevo Marcha, en ese momento el proceso continuará donde estaba. Si se pulsa Rearme, el sistema irá a Condiciones Iniciales. Sección "Simulacion" (*Marcas para la pantalla de operador*) If %S13 then set (MxP_Paro); set (MxP_FC4); set (MxP_FC2); (*lo sitúa de mano abajo y en FC4*) end_if; MtP_TiempoElectrolisis := E10.t; MxP_FC1_FC3 :=Mx_FC1 and Mx_FC3; MxP_FC1_FC4 :=Mx_FC1 and Mx_FC4; MxP_FC1_FC5 :=Mx_FC1 and Mx_FC5; MxP_FC1_FC6 :=Mx_FC1 and Mx_FC6; MxP_FC1_FC3_Sub := Mx_FC1 and Mx_FC3 and Qx_MotSubir; MxP_FC1_FC4_Sub := Mx_FC1 and Mx_FC4 and Qx_MotSubir; MxP_FC1_FC5_Sub := Mx_FC1 and Mx_FC5 and Qx_MotSubir; MxP_FC1_FC6_Sub := Mx_FC1 and Mx_FC6 and Qx_MotSubir; MxP_FC2_FC3 :=Mx_FC2 and Mx_FC3; MxP_FC2_FC4 :=Mx_FC2 and Mx_FC4; MxP_FC2_FC5 :=Mx_FC2 and Mx_FC5; MxP_FC2_FC6 :=Mx_FC2 and Mx_FC6; MxP_FC2_FC3_Baj := Mx_FC2 and Mx_FC3 and Qx_MotBajar; MxP_FC2_FC4_Baj := Mx_FC2 and Mx_FC4 and Qx_MotBajar; MxP_FC2_FC5_Baj := Mx_FC2 and Mx_FC5 and Qx_MotBajar; MxP_FC2_FC6_Baj := Mx_FC2 and Mx_FC6 and Qx_MotBajar; MxP_FC2_FC3_Dcha := Mx_FC2 and Mx_FC3 and Qx_MotDcha; MxP_FC2_FC4_Dcha := Mx_FC2 and Mx_FC4 and Qx_MotDcha; MxP_FC2_FC5_Dcha := Mx_FC2 and Mx_FC5 and Qx_MotDcha; MxP_FC2_FC4_Izda := Mx_FC2 and Mx_FC4 and Qx_MoIzda; MxP_FC2_FC5_Izda := Mx_FC2 and Mx_FC5 and Qx_MoIzda; MxP_FC2_FC6_Izda := Mx_FC2 and Mx_FC6 and Qx_MoIzda; MxP_NoFC1FC2_FC3 := not Mx_FC1 and not Mx_FC2 and Mx_FC3; MxP_NoFC1FC2_FC3_Sub := not Mx_FC1 and not Mx_FC2 and Mx_FC3 and Qx_MotSubir; MxP_NoFC1FC2_FC3_Baj := not Mx_FC1 and not Mx_FC2 and Mx_FC3 and Qx_MotBajar; MxP_NoFC1FC2_FC4 := not Mx_FC1 and not Mx_FC2 and Mx_FC4; MxP_NoFC1FC2_FC4_Sub := not Mx_FC1 and not Mx_FC2 and Mx_FC4 and Qx_MotSubir; MxP_NoFC1FC2_FC4_Baj := not Mx_FC1 and not Mx_FC2 and Mx_FC4 and Qx_MotBajar; MxP_NoFC1FC2_FC5 := not Mx_FC1 and not Mx_FC2 and Mx_FC5; MxP_NoFC1FC2_FC5_Sub := not Mx_FC1 and not Mx_FC2 and Mx_FC5 and Qx_MotSubir; MxP_NoFC1FC2_FC5_Baj := not Mx_FC1 and not Mx_FC2 and Mx_FC5 and Qx_MotBajar; MxP_NoFC1FC2_FC6 := not Mx_FC1 and not Mx_FC2 and Mx_FC6; MxP_NoFC1FC2_FC6_Sub := not Mx_FC1 and not Mx_FC2 and Mx_FC6 and Qx_MotSubir;
  • 292. 292 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón MxP_NoFC1FC2_FC6_Baj := not Mx_FC1 and not Mx_FC2 and Mx_FC6 and Qx_MotBajar; if MxP_FC2_FC3_Dcha or MxP_FC2_FC4_Izda then set (MxP_T1); end_if; if MxP_FC2_FC3_Baj or MxP_FC2_FC4_Dcha then reset (MxP_T1); end_if; if MxP_FC2_FC4_Dcha or MxP_FC2_FC5_Izda then set (MxP_T2); end_if; if MxP_FC2_FC4_Izda or MxP_FC2_FC5_Dcha then reset (MxP_T2); end_if; if MxP_FC2_FC6_Izda or MxP_FC2_FC5_Dcha then set (MxP_T3); end_if; if MxP_FC2_FC6_Baj or MxP_FC2_FC5_Izda then reset (MxP_T3); end_if; MxP_NoFC3FC4_Dcha := MxP_T1 and Qx_MotDcha and not MxP_FC2_FC3 and not MxP_FC2_FC4; MxP_NoFC4FC5_Dcha := MxP_T2 and Qx_MotDcha and not MxP_FC2_FC4 and not MxP_FC2_FC5; MxP_NoFC5FC6_Dcha := MxP_T3 and Qx_MotDcha and not MxP_FC2_FC5 and not MxP_FC2_FC6; MxP_NoFC3FC4_Izda : = MxP_T1 and Qx_MoIzda and not MxP_FC2_FC3 and not MxP_FC2_FC4; MxP_NoFC4FC5_Izda := MxP_T2 and Qx_MoIzda and not MxP_FC2_FC4 and not MxP_FC2_FC5; MxP_NoFC5FC6_Izda := MxP_T3 and Qx_MoIzda 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; Sección "Preliminar" (* Inicia Variables*) Mx_Marcha := (Ix_Marcha and Ix_LocDist) or (MxP_Marcha and not Ix_LocDist); Mx_Paro := (Ix_Paro and Ix_LocDist) or (MxP_Paro and not Ix_LocDist); Mx_Rearme := (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist); Mx_FC1 := (Ix_FC1 and Ix_LocDist) or (MxP_FC1 and not Ix_LocDist); Mx_FC2 := (Ix_FC2 and Ix_LocDist) or (MxP_FC2 and not Ix_LocDist); Mx_FC3 := (Ix_FC3 and Ix_LocDist) or (MxP_FC3 and not Ix_LocDist); Mx_FC4 := (Ix_FC4 and Ix_LocDist) or (MxP_FC4 and not Ix_LocDist); Mx_FC5 := (Ix_FC5 and Ix_LocDist) or (MxP_FC5 and not Ix_LocDist); Mx_FC6 := (Ix_FC6 and Ix_LocDist) or (MxP_FC6 and not Ix_LocDist); Tran0_1 := Mx_FC1 and Mx_FC3 and Mx_Marcha; Tran10_11 := E10.t>t#5s;
  • 293. Problemas M340 - 293 Universidad de Oviedo ISA - J. Alonso - I. Machón (*Rearme y parada*) Mx_PonCI := CLEARCHART (Control,Re(Mx_Rearme)); if Mx_PonCI then setstep (E11); end_if; if not Mx_Paro then set (Mx_EnParada); end_if; if Mx_EnParada then Mx_SequenceFreezed := FREEZECHART (Control,true); else Mx_SequenceFreezed := FREEZECHART (Control,false); end_if; if Mx_Marcha then reset (Mx_EnParada); end_if; Sección "Salidas" Qx_MotSubir := (E1.x or E4.x or E7.x or E11.x) and not Mx_EnParada; Qx_MotBajar := (E3.x or E6.x or E9.x or E13.x) and not Mx_EnParada; Qx_MotDcha := (E2.x or E5.x or E8.x) and not Mx_EnParada; Qx_MoIzda := E12.x and not Mx_EnParada; Pantalla de Operador
  • 294. 294 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "CHART" Tran10_11 := E10.t > t#5s Tran0_1 := Mx_FC1 and Mx_FC3 and Mx_Marcha; Qx_MotSubir Qx_MotBajar Qx_MotSubir (* en electrolisis *) Qx_MotDcha Qx_MotSubir Qx_MotDcha Qx_MotDcha Qx_MotIzda (* proceso parado*) Qx_MotBajar Qx_MotBajar Qx_MotBajar Qx_MotSubir E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 E10 E11 E12 E13 Tran0_1 Mx_FC2 Mx_FC4 Mx_FC1 Mx_FC2 Mx_FC5 Mx_FC1 Mx_FC2 Mx_FC6 Mx_FC1 Tran10_11 Mx_FC2 Mx_FC3 Mx_FC1 E7 E0
  • 295. Problemas M340 - 295 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 9.5 · Control de un túnel de lavado Se desea automatizar una estación de lavado de vehículos. La estación consta de 4 puestos por los que irá pasando sucesivamente los vehículos. El sistema se llevará a Condiciones Iniciales Condiciones Iniciales, pulsando el rearme (Ix_Rearme) NA. En estas condiciones, la cinta estará parada, la barrera levantada y el semáforo en verde (Qx_LVerde), permitiéndose evolucionar al sistema. Una vez puesta en CI, cuando se accione el pulsador de marcha (Ix_Marcha), la cinta transportadora será activada (Qx_Cinta) y los vehículos pasarán sucesivamente por los puestos de mojado, detergente, cepillado y aclarado, y, por último por el de secado. Habrá unas barreras fotoeléctricas (Ix_Fn) de tipo PNP 3 hilos, que permitirán activar y desactivar los distintos puestos. Cuando se activa la célula fotoeléctrica 1 (Ix_F1), se activa el puesto 1 (Qx_Mojado). Cuando se active la Ix_F2 y la Ix_F1 no esté activada (no hay un segundo vehículo) se desactiva el puesto 1. Cuando se active Ix_F2 se activará el puesto de detergente (Qx_Detergente). Cuando se active la Ix_F3 y la Ix_F2 esté desactivada, se desactivará el puesto de detergente. Cuando se active Ix_F3 entrará en funcionamiento el puesto de cepillado y aclarado (Qx_CepiAclarado). Cuando se active la Ix_F4 y la Ix_F3 esté desactivada, se desactivará el puesto de cepillado y aclarado. Una vez que se ha activado la fotocélula 4 (Ix_F4), comenzará a funcionar el puesto de secado (Qx_Secado), desactivándose cuando se conecte la Ix_F5 y la fotocélula 4 (Ix_F4) esté desactivada. La barrera, en condiciones normales, deberá estar levantada y el semáforo en verde. Cuando en la estación se detecte que hay 4 vehículos, uno en cada puesto, la barrera deberá bajar y el semáforo se pondrá en rojo (Qx_LRoja), indicando que no se puede pasar. Tanto la barrera como el semáforo permanecerán en éstas condiciones hasta que se detecte que los cuatro vehículos han abandonado la estación, momento en el cual, el semáforo se pondrá en verde (Qx_LVerde), la cinta parará y la barrera se levantará, pudiendo la estación admitir de nuevo coches para el lavado cuando se vuelva a pulsar Marcha. Se dispondrá de una seta de emergencia NC que permitirá parar todo el sistema (Ix_SetaEme). Si se ha activado esta parada de emergencia, se deberá pulsar el rearme para poder evolucionar de nuevo.
  • 296. 296 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de alimentación BMX CPS 2000 (24VDC 60W, eficiencia del 84%), módulo mixto de entradas salidas BMX DDM3202K. Se pide:  Programa de Mando. Programa en ST (pr0905) Tabla de variables
  • 297. Problemas M340 - 297 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "Preliminar" (* Marcas para la PANTALLA de OPERADOR *) If %S13 then Set (MxP_SetaEme); Set (MxP_FCC); Set (Mx_Mensaje1); (* Indica que se pulse Rearme *) END_IF; MxP_F1FCC := Mx_F1 and Mx_FCC; MxP_F1FCA := Mx_F1 and Mx_FCA; MxP_FCCnoF1 := Mx_FCC and not Mx_F1; MxP_BSemiab := Not Mx_FCC and not Mx_FCA; MxP_F1BSemiab := Mx_F1 and Not Mx_FCC and not Mx_FCA; If Mx_PEv and Mx_FCA and not Qx_Cinta then Set (Mx_Mensaje2); ELSE Reset (Mx_Mensaje2); (* Indica que se pulse Marcha *) END_IF; (* Memorias para el control Local o a Distancia *) Mx_Rearme := (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist); Mx_Marcha := (Ix_Marcha and Ix_LocDist) or (MxP_Marcha and not Ix_LocDist); Mx_SetaEme := (Ix_SetaEme and Ix_LocDist) or (MxP_SetaEme and not Ix_LocDist); Mx_F1 := (Ix_F1 and Ix_LocDist) or (MxP_F1 and not Ix_LocDist); Mx_F2 := (Ix_F2 and Ix_LocDist) or (MxP_F2 and not Ix_LocDist); Mx_F3 := (Ix_F3 and Ix_LocDist) or (MxP_F3 and not Ix_LocDist); Mx_F4 := (Ix_F4 and Ix_LocDist) or (MxP_F4 and not Ix_LocDist); Mx_F5 := (Ix_F5 and Ix_LocDist) or (MxP_F5 and not Ix_LocDist); Mx_FCA := (Ix_FCA and Ix_LocDist) or (MxP_FCA and not Ix_LocDist); Mx_FCC := (Ix_FCC and Ix_LocDist) or (MxP_FCC and not Ix_LocDist); (* Programa principal *) If RE (Mx_Rearme) then set (Mx_PonCI); reset (Mx_PEv); Reset (Mx_Mensaje1); (* Indica que se pulse Rearme *) end_if; if Mx_PonCI then SR_Inicializar(); (* abre la barrera y activa Mx_PEv *) end_if; if not Mx_SetaEme then reset (Mx_PEv); end_if; (* Control de la cinta *) if Mx_Marcha and Mx_PEv then set (Qx_Cinta); end_if; if (not Qx_Mojado and not Qx_Detergente and not Qx_CepiAclarado and not Qx_Secado and Mx_F5) or not Mx_SetaEme or Mx_Rearme then reset (Qx_Cinta); end_if;
  • 298. 298 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón (* Control del puesto de mojado *) if Qx_Cinta and Mx_F1 then set (Qx_Mojado); end_if; if (Mx_F2 and not Mx_F1) or not Mx_SetaEme then reset (Qx_Mojado); end_if; (* Control del puesto de detergente *) if Qx_Cinta and Mx_F2 then set (Qx_Detergente); end_if; if (Mx_F3 and not Mx_F2) or not Mx_SetaEme then reset (Qx_Detergente); end_if; (* Control del puesto de cepillado-aclarado *) if Qx_Cinta and Mx_F3 then set (Qx_CepiAclarado); end_if; if (Mx_F4 and not Mx_F3) or not Mx_SetaEme then reset (Qx_CepiAclarado); end_if; (* Control del puesto de secado *) if Qx_Cinta and Mx_F4 then set (Qx_Secado); end_if; if (Mx_F5 and not Mx_F4) or not Mx_SetaEme then reset (Qx_Secado); end_if; (* Puestos LLENOS *) If Qx_Mojado and Qx_Detergente and Qx_CepiAclarado and Qx_Secado then set (Mx_Lleno); end_if; If not Qx_Cinta then reset (Mx_Lleno); (* cuando se vaciaron los puestos se desactivó la cinta *) end_if; (* Control de la barrera *) if Mx_Lleno then set (Qx_Bajar); end_if; if Mx_FCC then reset (Qx_Bajar); end_if;
  • 299. Problemas M340 - 299 Universidad de Oviedo ISA - J. Alonso - I. Machón if not Mx_Lleno and Mx_Pev then set (Qx_Subir); end_if; if Mx_FCA then reset (Qx_Subir); end_if; (* Control del semáforo *) Qx_LRoja:= not Mx_FCA; Qx_LVerde:= not Qx_LRoja; Subrutina "Inicializar" If Not (Mx_Fca) THEN Set (Qx_Subir); END_IF; If Mx_Fca THEN Reset (Qx_subir); Set (Mx_PEv); Reset (Mx_ponCi); END_IF; Pantalla de operador
  • 300. 300 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en SFC (pr0905B) Este problema no se puede abordar con un único GRAFCET para implementar la automatización. Sería imposible recoger todos los casos que se pueden presentar. Lo abordaremos con un GRAFCET de control y un GRAFCET para cada uno de los puestos de trabajo. Sección "Simulación" (* Marcas para la PANTALLA de OPERADOR *) If %S13 then Set (MxP_SetaEme); Set (MxP_FCC); Set (Mx_Mensaje1); (* Indica que se pulse Rearme *) Mx_BorraCharts := CLEARCHART (Puestos, RE (Mx_Rearme)); END_IF; MxP_F1FCC := Mx_F1 and Mx_FCC; MxP_F1FCA := Mx_F1 and Mx_FCA; MxP_FCCnoF1 := Mx_FCC and not Mx_F1; MxP_BSemiab := Not Mx_FCC and not Mx_FCA; MxP_F1BSemiab := Mx_F1 and Not Mx_FCC and not Mx_FCA; If E1.x then Set (Mx_Mensaje2); else Reset (Mx_Mensaje2); (* Indica que se pulse Marcha *) End_if; Sección "Preliminar" (* Memorias para el control local o a distancia *) Mx_Rearme := (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist); Mx_Marcha := (Ix_Marcha and Ix_LocDist) or (MxP_Marcha and not Ix_LocDist); Mx_SetaEme := (Ix_SetaEme and Ix_LocDist) or (MxP_SetaEme and not Ix_LocDist); Mx_F1 := (Ix_F1 and Ix_LocDist) or (MxP_F1 and not Ix_LocDist); Mx_F2 := (Ix_F2 and Ix_LocDist) or (MxP_F2 and not Ix_LocDist); Mx_F3 := (Ix_F3 and Ix_LocDist) or (MxP_F3 and not Ix_LocDist); Mx_F4 := (Ix_F4 and Ix_LocDist) or (MxP_F4 and not Ix_LocDist);
  • 301. Problemas M340 - 301 Universidad de Oviedo ISA - J. Alonso - I. Machón Mx_F5 := (Ix_F5 and Ix_LocDist) or (MxP_F5 and not Ix_LocDist); Mx_FCA := (Ix_FCA and Ix_LocDist) or (MxP_FCA and not Ix_LocDist); Mx_FCC := (Ix_FCC and Ix_LocDist) or (MxP_FCC and not Ix_LocDist); (* Programa principal *) Mx_PonCI := CLEARCHART (Control, RE (Mx_Rearme)); Mx_PonCI := CLEARCHART (Puestos, RE (Mx_Rearme)); If RE (Mx_Rearme) then Reset (Mx_Mensaje1); (* Indica que se pulse Rearme *) end_if; if Mx_PonCI then SR_Inicializar(); (* abre la barrera *) end_if; if Mx_PuestoCI and not Mx_Rearme then resetstep (E0); setstep (E1); Mx_IniciaPuestos := INITCHART (Puestos, true); reset (Mx_PuestoCI); end_if; (* Activación de la Seta de Emergencia *) Mx_BorraCharts := CLEARCHART (Control, not Mx_SetaEme); Mx_BorraCharts := CLEARCHART (Puestos, not Mx_SetaEme); Sección SFC "Puestos" Tran30_31 := Qx_Cinta and Mx_F3; Tran20_21 := Qx_Cinta and Mx_F2; Qx_Secado Qx_Mojado Tran10_11 := Qx_Cinta and Mx_F1; Tran31_30 := Mx_F4 and not Mx_F3; Qx_Detergente Tran21_20 := Mx_F3 and not Mx_F2; Tran41_40 := Mx_F5 and not Mx_F4; Qx_CepiAclarado Tran40_41 := Qx_Cinta and Mx_F4; Tran11_10 := Mx_F2 and not Mx_F1; E10 Tran10_11 E11 Tran11_10 E20 Tran20_21 E21 Tran21_20 E30 Tran30_31 E31 Tran31_30 E40 Tran40_41 E41 Tran41_40
  • 302. 302 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección SFC "Control" Sección "Salidas" Qx_LRoja := not Mx_FCA; Qx_LVerde := not Qx_LRoja; Qx_Cinta := E2.x or E3.x or E4.x; Qx_Subir := E5.x or Mx_Subir; Qx_Bajar := E3.x; Qx_Mojado := E11.x; Qx_Detergente := E21.x; Qx_CepiAclarado := E31.x; Qx_Secado := E41.x; Tran4_5 := Not Qx_Mojado and Not Qx_Detergente and Not Qx_CepiAclarado and Not Qx_Secado and Mx_F5; Tran2_1 := Not Qx_Mojado and not Qx_Detergente and not Qx_CepiAclarado and not Qx_Secado and Mx_F5; Qx_Cinta Qx_Cinta Qx_Cinta Qx_Bajar Qx_Subir Tran2_3 := Qx_Mojado and Qx_Detergente and Qx_CepiAclarado and Qx_Secado; E0 False E1 Mx_Marcha E2 E3 Mx_FCC E4 Tran4_5 E5 Mx_FCA Tran2_3 Tran2_1 E1
  • 303. Problemas M340 - 303 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "Transiciones" (* Cuando se desactivan todos los puestos y sale el último coche, indicado por F5, se para la cinta *) Tran2_1 := Not Qx_Mojado and not Qx_Detergente and not Qx_CepiAclarado and not Qx_Secado and Mx_F5; Tran2_3 := Qx_Mojado and Qx_Detergente and Qx_CepiAclarado and Qx_Secado; Tran4_5 := Not Qx_Mojado and Not Qx_Detergente and Not Qx_CepiAclarado and Not Qx_Secado and Mx_F5; Tran10_11 := Qx_Cinta and Mx_F1; Tran11_10 := Mx_F2 and not Mx_F1; Tran20_21 := Qx_Cinta and Mx_F2; Tran21_20 := Mx_F3 and not Mx_F2; Tran30_31 := Qx_Cinta and Mx_F3; Tran31_30 := Mx_F4 and not Mx_F3; Tran40_41 := Qx_Cinta and Mx_F4; Tran41_40 := Mx_F5 and not Mx_F4; Subrutina "Inicializar" if not (Mx_FCA) then set(Mx_Subir); end_if; if Mx_FCA then reset (Mx_subir); set (Mx_PuestoCI); reset (Mx_PonCI); end_if; Pantalla de operador
  • 304. 304 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 305. Problemas M340 - 305 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 9.7 · Control de un paso a nivel Se desea automatizar el paso a nivel indicado en la figura de forma tal que cumpla: 1. Cuando un tren accione el sensor Ix_S_Izda o Ix_S_Dcha debe iniciarse, con una frecuencia de oscilación de 2 Hz, el apagado y encendido de las luces de los semáforos Sc1 y Sc2 (Qx_LSemCoche11, Qx_LSemCoche12, Qx_LSemCoche21 y Qx_LSemCoche22 ), permaneciendo en esta situación durante 20 segundos, transcurridos estos, deben bajarse las barreras B1 y B2 (Qx_MotBajB1 y Qx_MotBajB2) . Quedando entonces los semáforos Sc1 y Sc2 en luz roja fija. 2. Una vez que las barreras se hallan bajado debe procederse al encendido de la luz verde del semáforo St1 ( Qx_LSemTr1V ) o St2 ( Qx_LSemTr2V ) (según proceda), para que el tren pueda proseguir su marcha. Cuando abandone el sensor opuesto por el que entró, deberá proceder a dar la orden de elevación de las barreras (Qx_MotSubB1 y Qx_MotSubB2), situar el semáforo St1 y St2 en rojo ( Qx_LSemTr1R y Qx_LSemTr2R ) y desconectar Sc1 y Sc2, restableciendo las condiciones iniciales. 3. Si por accidente no se cerrara una barrera o se quedara un automóvil en la vía ( que detectaría el sensor Ix_S_Coche NC), las barreras no se bajarán y el semáforo St1 y St2 permanecerán en rojo hasta que desaparezca la situación que lo provocó. PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%), módulo mixto de entradas salidas BMX DDM3202K. B2 S_dcha St1 Fcc_b1 Fca_b1 Fcc_b2 Fca_b2 Sc2 Sc1 St2 S_coche S_izda B1
  • 306. 306 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de variables
  • 307. Problemas M340 - 307 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa mixto ST y FBD (pr0907a) Preliminar (*Inicialización de la pantalla de operador*) If %S13 THEN set (MxP_S_Coche); set (MxP_FCA_B1); set (MxP_FCA_B2); END_IF; (*Marcas para el control Local-Distancia*) Mx_SIzda := (Ix_S_Izda and Ix_LocDist) or (MxP_S_Izda and not Ix_LocDist); Mx_SDcha := (Ix_S_Dcha and Ix_LocDist) or (MxP_S_Dcha and not Ix_LocDist); Mx_FCA_B1 := (Ix_FCA_B1 and Ix_LocDist) or (MxP_FCA_B1 and not Ix_LocDist); Mx_FCC_B2 := (Ix_FCC_B2 and Ix_LocDist) or (MxP_FCC_B2 and not Ix_LocDist); Mx_FCA_B2 := (Ix_FCA_B2 and Ix_LocDist) or (MxP_FCA_B2 and not Ix_LocDist); Mx_FCC_B1 := (Ix_FCC_B1 and Ix_LocDist) or (MxP_FCC_B1 and not Ix_LocDist); Mx_SCoche := (Ix_S_Coche and Ix_LocDist) or (MxP_S_Coche and not Ix_LocDist); (*Marcas pantalla*) MxP_NO_FCB1 := not Mx_FCA_B1 and not Mx_FCC_B1; MxP_NO_FCB2 := not Mx_FCA_B2 and not Mx_FCC_B2; MxP_FCA_BajB1 := Mx_FCA_B1 and Qx_M_BajaB1; MxP_FCA_BajB2 := Mx_FCA_B2 and Qx_M_BajaB2; MxP_FCC_SubB1 := Mx_FCC_B1 and Qx_M_SubeB1; MxP_FCC_SubB2 := Mx_FCC_B2 and Qx_M_SubeB2; MxP_NO_FCSubB1 := MxP_NO_FCB1 and Qx_M_SubeB1; MxP_NO_FCBajB1 := MxP_NO_FCB1 and Qx_M_BajaB1; MxP_NO_FCSubB2 := MxP_NO_FCB2 and Qx_M_SubeB2; MxP_NO_FCBajB2 := MxP_NO_FCB2 and Qx_M_BajaB2;
  • 308. 308 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Detección Detección del sentido de circulación de los trenes IN Mx_SDcha OUT .1 RE 1 IN1 IN2 Mx_VieneIzda OUT .2 AND 2 EN ENO OUT Mx_VieneDcha .3 SET 3 IN Mx_SIzda OUT .4 FE 4 EN ENO OUT Mx_VieneDcha .5 RESET 5 IN Mx_SIzda OUT .6 RE 6 IN1 IN2 Mx_VieneDcha OUT .7 AND 7 EN ENO OUT Mx_VieneIzda .8 SET 8 IN Mx_SDcha OUT .9 FE 9 EN ENO OUT Mx_VieneIzda .10 RESET 10 IN1 Mx_VieneIzda IN2 Mx_VieneDcha OUT Mx_VieneTren .11 OR 11
  • 309. Problemas M340 - 309 Universidad de Oviedo ISA - J. Alonso - I. Machón Semáforo Coches IN1 Mx_VieneTren IN2 Temp_Osc_2Hz.Q OUT .1 AND 1 IN PT t#500ms Q ET TEMP_OSC_2HZ TON 2 IN1 Temp_Osc_2Hz.ET IN2 t#250ms OUT Mx_Osc2Hz .2 LT_TIME 3 IN Mx_VieneTren PT t#20s Q ET TEMP_20S TON 4 IN1 IN2 Mx_VieneTren OUT .3 AND 6 IN1 Mx_Osc2Hz IN2 Temp_20s.Q OUT .4 OR 5 IN OUT Qx_LSemCoche11 .5 MOVE 7 IN OUT Qx_LSemCoche21 .6 MOVE 8 IN1 IN2 Mx_VieneTren OUT .7 AND 10 IN1 Mx_Osc2Hz IN2 Temp_20s.Q OUT .8 OR 9 IN OUT Qx_LSemCoche12 .9 MOVE 11 IN OUT Qx_LSemCoche22 .10 MOVE 12
  • 310. 310 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Barreras Semáforo Tren Orden de bajar las barreras B1 y B2 IN1 Temp_20s.Q IN2 Mx_SCoche OUT .1 AND 1 EN ENO OUT Qx_M_BajaB1 .2 SET 2 IN1 Mx_FCC_B1 IN2 Mx_SCoche OUT .3 OR 3 EN ENO OUT Qx_M_BajaB1 .4 RESET 4 IN1 Temp_20s.Q IN2 Mx_SCoche OUT .5 AND 5 EN ENO OUT Qx_M_BajaB2 .6 SET 6 IN1 Mx_FCC_B2 IN2 Mx_SCoche OUT .7 OR 7 EN ENO OUT Qx_M_BajaB2 .8 RESET 8 IN1 Mx_VieneDcha IN2 Mx_VieneIzda OUT .9 AND 9 EN ENO OUT Qx_M_SubeB1 .10 SET 10 EN ENO OUT Qx_M_SubeB2 .11 SET 11 EN Mx_FCA_B1 ENO OUT Qx_M_SubeB1 .12 RESET 12 EN Mx_FCA_B2 ENO OUT Qx_M_SubeB2 .13 RESET 13 Activación y desactivación de las lámparas de los semáforos de los trenes IN3 Mx_VieneDcha IN4 Mx_SCoche IN1 Mx_FCC_B1 IN2 Mx_FCC_B2 OUT Qx_LT_DchaV .1 AND 1 IN Qx_LT_DchaV OUT Qx_LT_DchaR .2 MOVE 2 IN3 Mx_VieneIzda IN4 Mx_SCoche IN1 Mx_FCC_B1 IN2 Mx_FCC_B2 OUT Qx_LT_IzdaV .3 AND 3 IN Qx_LT_IzdaV OUT Qx_LT_IzdaR .4 MOVE 4
  • 311. Problemas M340 - 311 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa mixto ST y SFC (pr0907b) Sección "Preliminar" (*Inicialización de la pantalla de operador*) If %S13 then set (MxP_S_Coche); set (MxP_FCA_B1); set (MxP_FCA_B2); end_if; (*Marcas para el control Local-Distancia*) Mx_SIzda := (Ix_S_Izda and Ix_LocDist) or (MxP_S_Izda and not Ix_LocDist); Mx_SDcha := (Ix_S_Dcha and Ix_LocDist) or (MxP_S_Dcha and not Ix_LocDist); Mx_FCA_B1 := (Ix_FCA_B1 and Ix_LocDist) or (MxP_FCA_B1 and not Ix_LocDist); Mx_FCC_B2 := (Ix_FCC_B2 and Ix_LocDist) or (MxP_FCC_B2 and not Ix_LocDist); Mx_FCA_B2 := (Ix_FCA_B2 and Ix_LocDist) or (MxP_FCA_B2 and not Ix_LocDist); Mx_FCC_B1 := (Ix_FCC_B1 and Ix_LocDist) or (MxP_FCC_B1 and not Ix_LocDist); Mx_SCoche := (Ix_S_Coche and Ix_LocDist) or (MxP_S_Coche and not Ix_LocDist); (*Marcas pantalla*) MxP_NO_FCB1 := not Mx_FCA_B1 and not Mx_FCC_B1; MxP_NO_FCB2 := not Mx_FCA_B2 and not Mx_FCC_B2; MxP_FCA_BajB1 := Mx_FCA_B1 and Qx_M_BajaB1; MxP_FCA_BajB2 := Mx_FCA_B2 and Qx_M_BajaB2; MxP_FCC_SubB1 := Mx_FCC_B1 and Qx_M_SubeB1; MxP_FCC_SubB2 := Mx_FCC_B2 and Qx_M_SubeB2; MxP_NO_FCSubB1 := MxP_NO_FCB1 and Qx_M_SubeB1; MxP_NO_FCBajB1 := MxP_NO_FCB1 and Qx_M_BajaB1; MxP_NO_FCSubB2 := MxP_NO_FCB2 and Qx_M_SubeB2; MxP_NO_FCBaB2 := MxP_NO_FCB2 and Qx_M_BajaB2; MtP_Temp20s := E3.t; Sección "Transiciones" Tran0_1 := RE (Mx_SDcha) And Not Mx_VieneIzda; Tran0_2 := RE(Mx_SIzda) and not Mx_VieneDcha; Tran11_14 := FE (Mx_SIzda); Tran3_4_5 := E3.t > t#20s; Tran12_16 := FE (Mx_SDcha);
  • 312. 312 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Chart (* Barrera 1 bajada *) (* Barrera 2 bajada *) (* Detiene la bajada de la barrera 2 *) S Mx_VieneIzda Tran0_1 := RE(Mx_SDcha) And Not Mx_VieneIzda; Qx_LuzSeCoche11 a 2Hz Qx_LuzSeCoche12 a 2Hz Qx_LuzSeCoche21 a 2 Hz Qx_LuzSeCoche22 a 2 Hz Qx_M_BajaB2 S Mx_VieneDcha (* Detiene la bajada de la barrera 1 *) Tran3_4_5 := E3.t > t#20s Qx_M_BajaB1 Tran0_2 := RE(Mx_SIzda) and not Mx_VieneDcha; E0 E1 E2 E3 E4 E5 E6 E7 E9 E8 Tran0_1 Tran0_2 True True Tran3_4_5 NOT Mx_SCoche Mx_FCC_B1 Mx_FCC_B2 Mx_SCoche NOT Mx_SCoche Mx_SCoche true E10
  • 313. Problemas M340 - 313 Universidad de Oviedo ISA - J. Alonso - I. Machón Qx_M_SubeB2 Qx_M_SubeB1 (* El tren ya ha atravesado el paso a nivel *) R Mx_VieneIzda R Mx_VieneDcha Qx_LT_IzdaR (* Barrera 1 subida *) (* Barrera 2 subida *) Tran11_14 := FE Mx_SIzda Tran12_16:= FE Mx_SDcha Qx_LT_IzdaV (* Ambas barreras se encuentran bajadas *) Qx_LT_DchaR Qx_LT_DchaV E10 E11 E13 E14 E12 E15 E16 E17 E18 E19 E20 E21 Mx_VieneDcha NOT Mx_SCoche Tran11_14 Mx_SCoche NOT Mx_VieneDcha Mx_VieneIzda NOT Mx_SCoche Tran12_16 Mx_SCoche NOT Mx_VieneIzda true Mx_FCA_B1 Mx_FCA_B2 true E0
  • 314. 314 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Salidas if E1.x then set (Mx_VieneDcha); end_if; if E2.x then set (Mx_VieneIzda); end_if; if E14.x then reset (Mx_VieneDcha); end_if; if E16.x then reset (Mx_VieneIzda); end_if; (* Se programa el oscilador de 2 Hz, T=500 ms *) Mx_VieneTren := Mx_VieneDcha or Mx_VieneIzda; TON_Osc2HZ (IN:= Mx_VieneTren and not TON_Osc2HZ.Q,PT:=t#500ms); Mx_Osc2Hz := Mx_VieneTren AND TON_Osc2HZ.ET <= t#250ms; Qx_LSemCoche11 := E3.x and Mx_Osc2Hz or (not E0.x and not E3.x); Qx_LSemCoche12 := E3.x and not Mx_Osc2Hz or (not E0.x and not E3.x); Qx_LSemCoche21 := E3.x and Mx_Osc2Hz or (not E0.x and not E3.x); Qx_LSemCoche22 := E3.x and not Mx_Osc2Hz or (not E0.x and not E3.x); Qx_LT_DchaV := E11.x; Qx_LT_DchaR := not Qx_LT_DchaV; Qx_LT_IzdaV := E12.x; Qx_LT_IzdaR := not Qx_LT_IzdaV; Qx_M_BajaB1 := E4.x; Qx_M_BajaB2 := E5.x; Qx_M_SubeB1 := E18.x; Qx_M_SubeB2 := E20.x;
  • 315. Problemas M340 - 315 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de explotación
  • 316. 316 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 317. Problemas M340 - 317 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 9.8 · Control de una compuerta. EM y EF Realizar la automatización del control del nivel en un embalse. Se dispone de una compuerta que es accionada mediante un motor que la desplaza en sentido ascendente o descendente, hasta alcanzar el nivel predeterminado. Hay tres niveles posibles a definir, para lo que disponemos de tres finales de carrera (FC), cada FC sólo se activa única y exclusivamente cuando se alcanza su nivel. Disponemos de un pulsador de preselección, mediante el cual estableceremos el nivel que se desea alcanzar. La elección se hará de forma rotativa, partiendo del estado en el que no tengamos ninguno seleccionado y siguiendo con la selección del nivel1, nivel 2, nivel 3 y volviendo luego al nivel 1. Esto queda reflejado en el panel de control mediante, tres lámparas de preselección LP1, LP2, LP3. La preselección estará inhibida cuando esté en funcionamiento la compuerta. Mediante un pulsador de marcha, haremos que una vez seleccionado el nivel deseado, éste se alcance, mediante el accionamiento del motor con la maniobra adecuada a tal fin. El panel de control reflejará el nivel en el que se encuentra la compuerta mediante una lámpara LN1, LN2 o LN3. El sistema dispone a su vez de dos finales de carrera de final de recorrido FCEI y FCES con 2 contactos NC cada uno de ellos, que pararían la maniobra dejando al sistema parado y con la lámpara de emergencia correspondiente activada LEI o LES. Una vez reparada la avería, se rearmará el sistema que lo llevará a CI. Se dispondrá de un conmutador PLC_Manual que permitirá abandonar el control por autómata y hacerlo por Mando, manual -lógica cableada- con el cuál podremos situar la compuerta a la altura que se quiera. Condiciones iniciales: La compuerta estará de partida, situada en cualquier posición entre FC1 y FC3 incluidas posiciones intermedias, si no, se llevará a una posición intermedia de forma manual. Todas las lámparas de preselección estarán apagadas, la compuerta se situará en el nivel 2 una vez pulsado rearme. El motor de la compuerta tiene unas características de: Pm = 4 KW, Un = 400 V, cos φ=0,85 y  = 0,92. Corriente de arranque 5 veces la nominal. Arranque directo (para simplificar). Tiempo de arranque 5 segundos. Protegido mediante automático y térmico. SE PIDE: Esquema de Mando, y de fuerza con todas las protecciones necesarias y el programa de control. PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de alimentación BMX CPS 2000 (24VDC 40W, eficiencia del 82%) alimenta a todo el conjunto, módulo de entradas PNP BMX DDI 1602 y de salidas PNP BMX DDO 1602. ENTRADAS Preseleccción = Ix_Pul Marcha = Ix_Marcha Sensor1 = Ix_FC1 Sensor2 = Ix_FC2 Sensor3 = Ix_FC3 Emergencia1 = Ix_FCEI (NC) Emergencia2 = Ix_FCES (NC) Rearme = Ix_Rearme PLC/Manual = Ix_PLC_Manual SALIDAS Lámpara de Preseleccción 1 = Qx_LP1 Lámpara de Preseleccción 2 = Qx_LP2 Lámpara de Preseleccción 3 = Qx_LP3 Lámpra de Nivel 1 = Qx_LN1 Lámpra de Nivel 2 = Qx_LN2 Lámpra de Nivel 3 = Qx_LN3 Lámpara de Emergencia 1 = Qx_LEI Lámpara de Emergencia 2 = Qx_LES Acción ascendente = Qx_Subir Acción descendente = Qx_Bajar
  • 318. 318 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de Mando, y fuerza
  • 319. Problemas M340 - 319 Universidad de Oviedo ISA - J. Alonso - I. Machón Motor Compuerta El motor de la compuerta tiene unas características de: Pm = 4 KW, Un = 400 V, cos φ=0,85 y  = 0,92. Corriente de arranque 5 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante automático y térmico. Relé térmico F1 𝜂 = 𝑃𝑢 𝑃𝑒 = 𝑃𝑢 √3 𝑈𝑁 𝐼𝑁 cos  𝐼𝑁 = 𝑃𝑢 √3 𝑈𝑁 cos  𝜂 = 4000 √3 400 0,85 0,92 = 7,38 𝐴 La corriente con la que regularemos el térmico es 𝐼N = 7,38 𝐴 que queda en el medio del rango de regulación. Elegiremos el LRD-12. Iarranque = 5 · IN = 5 · 7,38 = 36,92 A tiempo 5 segundos Se observa que en clase 10, estará en el límite de la curva, si bien en la realidad tendrá un valor más favorable. Escogeremos el LRD 12 clase 10 4 .. 6 A LRD10 clase 10A 90 euros -> LRD1510 clase 20 194 euros 5,5 .. 8 A LRD12 clase 10A 90 euros -> LRD1512 clase 20 197 euros 12 .. 18 A LRD21 clase 10A 97 euros -> LRD1521 clase 20 213 euros 23 .. 32 A LRD32 clase 10A 141 euros -> LRD1532 clase 20 339 euros 63 .. 80 A LRD3363 clase 10A 261 euros -> LR2D3563 clase 20 531 euros
  • 320. 320 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Automático Q1 del circuito de fuerza Cuando tengamos la corriente nominal, por el térmico estarán pasando los 7,38 A. Aguas arriba por el automático estarán pasando los 7,38 A. Para que haya selectividad, la corriente mínima del automático será: I = 1,6 * 7,38 = 11,81 A Por tanto el calibre del automático elegido será el de 16A (valor normalizado por encima de 11,81 A). Tensión nominal: 400 V 3 polos. 𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒 𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒 = 36,92 16 = 2,3 tiempo 5 segundos La curva puede ser la C 16A 16 A -> C curva 173 euros D curva 360 euros B curva 215 euros 63 A -> C curva 518 euros D curva 711 euros B curva 614 euros
  • 321. Problemas M340 - 321 Universidad de Oviedo ISA - J. Alonso - I. Machón Diferencial F2 del circuito de fuerza Se elige un Diferencial de calibre >1,4 * 16 => 25A y sensibilidad 30 mA (p.e. el A9R81425 de Schneider) Contactores KM1 y KM2 de DC enclavados mecánicamente Tensión de servicio: 24 VCC Corriente de servicio: 𝐼N = 4,06 𝐴 Del catálogo de Schneider sería válido el LC2 D09BNE 4x25A 30mA 66 euros 4x40A 30mA 101 euros 4x63A 30mA 155 euros 294 euros
  • 322. 322 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Automático Q2 de DC Elegiremos el interruptor automático especial de CC - C60H - 250 V - 1P - 2 A - curva C A9N61502 Automático Q3 de la FA La fuente de alimentación entrega 40 W con una eficiencia del 82%. Por tanto consume unos 40 / 0,82 = 48,8 W que significa unos 48,8 / 230 = 0,21 A La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar pasar 9 · 0,21 = 1,9 A en los instantes iniciales. Elegimos p.e. el Magnetotérmico, Acti9 iC60N, 2P, 1 A, C curva, 6000 A (IEC 60898-1), 50 kA (IEC 60947-2) 102 euros 153 euros
  • 323. Problemas M340 - 323 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa mixto ST y SFC (pr0908) Preliminar (*Inicialización de la pantalla de operador*) If %S13 THEN Set(MxP_FCEI); Set(MxP_FCES); Set(MxP_PLC_Man);Set(MxP_PosIni); set (Mx_PulseRearme); ClearState := CLEARCHART (Preseleccion, true); ClearState := CLEARCHART (Control, true); END_IF; (* Variables utilizadas en la pantalla de Operador *) Mx_Preseleccion := (Ix_Preseleccion And Ix_LocDist) Or(MxP_Preseleccion And Not Ix_LocDist); Mx_Marcha := (Ix_Marcha And Ix_LocDist) Or(MxP_Marcha And Not Ix_LocDist); Mx_Rearme := (Ix_Rearme And Ix_LocDist) Or(MxP_Rearme And Not Ix_LocDist); Mx_FC1 := (Ix_FC1 And Ix_LocDist) Or(MxP_FC1 And Not Ix_LocDist); Mx_FC2 := (Ix_FC2 And Ix_LocDist) Or(MxP_FC2 And Not Ix_LocDist); Mx_FC3 := (Ix_FC3 And Ix_LocDist) Or(MxP_FC3 And Not Ix_LocDist); Mx_FCEI := (Ix_FCEI And Ix_LocDist) Or(MxP_FCEI And Not Ix_LocDist); Mx_FCES := (Ix_FCES And Ix_LocDist) Or(MxP_FCES And Not Ix_LocDist); Mx_PLC_Man := (Ix_PLC_Man And Ix_LocDist) Or(MxP_PLC_Man And Not Ix_LocDist); (* Variables utilizadas en el programa *) Mx_Para := (Qx_LP1 And Mx_FC1) Or (Qx_LP2 And Mx_FC2) Or (Qx_LP3 And Mx_FC3); If (Not Mx_FCEI) Or (Not Mx_FCES) THEN Set (Mx_EnEmergencia); END_IF; If Not Mx_PLC_Man Or Mx_EnEmergencia THEN ClearState := CLEARCHART (Preseleccion, true); ClearState := CLEARCHART (Control, true); Reset (Mx_Subir); Reset (Mx_Bajar); END_IF; If Mx_Rearme THEN Mx_PonCI := CLEARCHART (Preseleccion, true); Mx_PonCI := CLEARCHART (Control, true); Reset (Mx_EnEmergencia); Reset (Mx_Subir); Reset (Mx_Bajar); Reset (Mx_PulseRearme); END_IF; If Mx_PonCI THEN SR_Inicializa(); END_IF; If Mx_PuestoCI And Not Mx_Rearme THEN InitState := INITCHART (Preseleccion,true); InitState := INITCHART (Control,true); Reset (Mx_puestoCI); END_IF;
  • 324. 324 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Chart "Preselección" Chart "Control" Mx_Para := (Qx_LP1 And Mx_FC1) Or (Qx_LP2 And Mx_FC2) Or (Qx_LP3 And Mx_FC3) Tran11_13 := LP3 (FC2 + FC1) + LP2 FC1 Tran11_12 := LP1 (FC2 + FC3) + LP2 FC3 Qx_Bajar Qx_Subir Etapa10 Etapa11 Etapa12 Etapa13 Mx_Marcha Tran11_12 Tran11_13 Mx_Para Mx_Para Mx_Para Tran3_0 := REMx_Preseleccion and Etapa10.x Tran0_1 := REMx_Preseleccion and Etapa10.x and Mx_FCE2 and Mx_FCE1 Tran1_2 := REMx_Preseleccion and Etapa10.x Tran2_3 := REMx_Preseleccion and Etapa10.x Qx_LP1 Qx_LP2 Qx_LP3 Etapa0 Etapa1 Etapa2 Etapa3 Tran0_1 Tran1_2 Tran2_3 Tran3_0
  • 325. Problemas M340 - 325 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "Salidas" Qx_LN1 := Mx_FC1; Qx_LN2 := Mx_FC2; Qx_LN3 := Mx_FC3; Qx_LEI := Not Mx_FCEI; Qx_LES := Not Mx_FCES; Qx_LP1 := Etapa1.x; Qx_LP2 := Etapa2.x; Qx_LP3 := Etapa3.x; (* enclavamiento por software *) Qx_Subir := (Etapa13.x Or Mx_Subir) And Not Qx_Bajar; Qx_Bajar := (Etapa12.x Or Mx_Bajar) And Not Qx_Subir; Subrutina "SR_Inicializa" (*Partimos de que la compuerta pueda estar en cualquier posición entre FC1 y FC3, si no la pondremos manualmente, lo mandamos bajar a FC1 y una vez finalizada la maniobra, sube automáticamente a FC2 *) If Not Mx_FC1 And Not Mx_Aux THEN Set (Mx_Bajar); ELSE Reset (Mx_Bajar); Set (Mx_Aux); (*Mx_AUX nos indica que ya hizo la maniobra de bajar *) END_IF; IF Mx_FC2 then reset (MxP_PosIni); end_if; If Mx_FC1 And Mx_Aux THEN Set (Mx_Subir); END_IF; If Mx_FC2 THEN Reset (Mx_Subir); Reset (Mx_Bajar); Reset (Mx_Aux); Set (Mx_PuestoCI); Reset (Mx_PonCI); END_IF;
  • 326. 326 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de explotación Lista de mensajes
  • 327. Problemas M340 - 327 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 9.9 · Control de un garaje. EM y EF Se desea automatizar el acceso, la salida y el interior de un garaje de coches que dispone de los siguientes elementos: Un lector de tarjeta magnética para la petición de entrada al garaje (TME) y otro para la salida (TMS), que proporcionaran un uno lógico ante la demanda. Un portón accionado por un motor que dispondrá de dos sentidos de giro (Abrir) y (Cerrar), y dos finales de carrera para indicar que el portón está abierto (FCA) y cerrado (FCC). Una puerta de acceso peatonal con llave. Un sensor (SenCo) que informará cuando hay un coche en la trayectoria del portón. Un sensor de luz (SenLuz) que nos informa mediante un uno lógico que la luz natural en el interior es insuficiente. Cuatro pulsadores (S1, S2, S3, S4) que activarán la luz artificial interior del garaje. Varios puntos de luz artificial en el interior del garaje (Luz). En las condiciones iniciales el portón se deberá cerrar si no lo estuviese al activar un pulsador de Rearme, quedando luego en funcionamiento automático. Ante una petición de entrada, el portón deberá abrirse durante 10 segundos y si no hay suficiente luz natural en el interior del garaje, deberá activarse la luz artificial de forma automática durante 1 minuto. Aunque existiese suficiente luz, ante una pulsación de S1, S2, S3 o S4 deberá activarse el estado de la luz artificial del garaje durante 1 minuto. Ante una petición de salida deberá abrirse el portón un máximo de 10 segundos y luego cerrarse automáticamente. Cuando esté cerrando el portón y haya un coche en el trayecto del mismo, deberá parar la maniobra y abrir el portón hasta que el coche haya pasado. A continuación deberá seguir la maniobra de cierre. Si hubiese una petición de entrada o de salida cuando esté cerrando, se deberá atender automáticamente; para ello abrirá el portón y procederá en consecuencia. El motor de la puerta tiene unas características de: Pm = 2 KW, Un = 400 V, cos φ=0,86 y  = 0,93. Corriente
  • 328. 328 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón de arranque 6 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante automático y térmico. PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de alimentación BMX CPS 2000 (24VDC 40W, eficiencia del 82%) alimenta a todo el conjunto, módulo de entradas PNP BMX DDI 1602, de salidas PNP BMX DDO 1602. Las luces son de 10 W a 230VAC Esquema de mando Esquema de fuerza
  • 329. Problemas M340 - 329 Universidad de Oviedo ISA - J. Alonso - I. Machón Motor portón El motor de la puerta tiene unas características de: Pm = 2 KW, Un = 400 V, cos φ=0,86 y  = 0,93. Corriente de arranque 6 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante automático y térmico. Relés térmico F1 𝜂 = 𝑃𝑢 𝑃𝑒 = 𝑃𝑢 √3 𝑈𝑁 𝐼𝑁 cos  𝐼𝑁 = 𝑃𝑢 √3 𝑈𝑁 cos  𝜂 = 2000 √3 400 0,86 0,93 = 3,6 𝐴 La corrientes que pasa por el térmico es 𝐼N = 3,6 𝐴 Teniendo en cuenta esta corriente, elegiremos el LRD-08. Ajustaremos la corriente regulada a 3,6 A Ia = 6 · IN = 6 · 3,6 = 21,6 A tiempo 5 segundos Se observa que la clase 10 no nos valdría. Escojeremos el LRD -08 clase 20 Automático Q1 Cuando tengamos la corriente nominal, por el térmico estarán pasando los 3,6 A. Aguas arriba por el automático estarán pasando los 3,6 A. Para que haya selectividad, la corriente mínima del automático será: I = 1,6 * 3,6 = 5,76 A Por tanto el calibre del automático elegido será el de 6A (valor normalizado por encima de 5,76 A). Tensión nominal: 400 V 3 polos.
  • 330. 330 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón 𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒 𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒 = 21 6 = 3,6 tiempo 5 segundos La curva puede ser la D 6A Diferencial F2 Se elige un diferencial de calibre > 1,4 * 6 => 10A y sensibilidad 30 mA Calibre de los contactores KM1 y KM2 Clase de servicio temporal. Categoría de servicio: AC3. Tensión de servicio: 400 V Corriente de servicio: 𝐼N = 3,6 𝐴 Del catálogo de Telemecanique sería válido el calibre LC1-K06
  • 331. Problemas M340 - 331 Universidad de Oviedo ISA - J. Alonso - I. Machón Automático Q2 Selección de Q3. Teniendo en cuenta que el consumo de los contactores es de 70 VA | 7 VA Debemos determinar la corriente mas desfavorable. Esta es cuando se llama un contactor y está la luz activada. Corriente de mantenimiento => 7 / 230 = 0,03 A Corriente de llamada Ia = 70 / 230 = 0,30 A I = 0,3 + 60 / 230 = 0,56 A Por tanto elegiremos el automático de calibre C1 que permitirá su paso sin problemas. Automático Q3 La fuente de alimentación de continua entrega 40 W con una eficiencia del 82%. Por tanto consume unos 48,78W. El consumo de corriente es de 48,78/230 = 0,21A La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar pasar 9 · 0,21 = 1,89 A en los instantes iniciales. Podemos escoger el automático C60 2A Tabla de variables
  • 332. 332 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón 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); Mx_Rearme := (Ix_Rearme and Ix_LocDist) or (MxP_Rearme and not Ix_LocDist); (* Iniciamos el sistema *) Mx_PonCI := CLEARCHART (Proceso, RE(Mx_Rearme)); Mx_PonCI := CLEARCHART (Control_Porton, RE(Mx_Rearme)); If Mx_PonCI THEN Sr_CierraPorton(); END_IF; If Mx_PuestoCI And Not Mx_Rearme THEN Setstep (E1); Mx_Aux := INITCHART (Control_Porton,True); Reset (Mx_PuestoCI); END_IF; GRAFCETs del "Proceso" y "Control de la luz" (* Saliendo *) (* Entrando *) (* Portón cerrado *) (* Proceso parado *) E0 E2 E3 Mx_TME Mx_TMS Etapa25.x Etapa25.x E1 E1 False E1 Tran31_30 := Etapa31.t >= t#60s (* Control de la luz *) Tran30_31 := (E2.x and Mx_SenLuz) or Mx_PLuz Qx_Luz Etapa30 Etapa31 Tran30_31 Tran31_30
  • 333. Problemas M340 - 333 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "Transiciones" Tran20_21 := E2.x or E3.x; Tran22_23 := Etapa22.t >= t#10s; Tran24_21 := Etapa24.t >= t#200ms; Tran26_21 := Etapa26.t >= t#200ms; Tran27_21 := Etapa27.t >= t#200ms; Tran30_31 := (E2.x and Mx_SenLuz) or Mx_PLuz; Tran31_30 := Etapa31.t >= t#20s; GRAFCET "Control_Portón" Tran22_23 := Etapa22.t >= t#10s Mx_FCC (* Portón Abierto *) Qx_Cerrar Tran24_21 o 26_21 o 27_21 Etapa24.t >= t#200ms Tran20_21 := E2.x or E3.x Qx_Abrir Mx_FCA Etapa20 Etapa21 Etapa22 Etapa23 Etapa25 Etapa24 Etapa26 Etapa27 Tran20_21 Mx_FCA Tran22_23 Mx_FCC Mx_SenCoche Mx_TME Mx_TMS E1.x Tran24_21 Tran26_21 Tran27_21 Etapa20 Etapa21 Etapa21 Etapa21
  • 334. 334 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "Salidas" Qx_Luz := Etapa31.x; Qx_Abrir := Etapa21.x; Qx_Cerrar := Etapa23.x OR Mx_Cerrar; If Etapa26.x then resetstep (E3); setstep (E2); end_if; If Etapa27.x then resetstep (E2); setstep (E3); end_if; Subrutina "Sr_CierraPortón" 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
  • 335. Problemas M340 - 335 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 9.10 · Control sencillo de un ascensor de 6 plantas Se desea controlar un ascensor con puertas automáticas situado en un edificio de 6 plantas disponiendo de un control manual y otro automático ( Ix_AutMan) mediante autómata que permitan posicionarlo en un lugar determinado. Así mismo, se dispondrá de un control local y a distancia desde una pantalla de operador (Ix_LocDis). CONTROL MANUAL Cuando está activo el control Manual, (conmutador Ix_AutMan posición Man) el control automático mediante autómata debe quedar desactivado y poder subir o bajar el ascensor (Qx_Subir y Qx_Bajar) mediante dos pulsadores situados en la botonera de maniobra quedando limitado el sobrerecorrido superior e inferior por unos finales de carrera Ix_FCES y Ix_FCEI (NC potencia). Cuando por excederse en el recorrido se activase uno de éstos, sólo podrá entrar la orden contraria. Así mismo se deberá poder abrir y cerrar las diferentes puertas del ascensor. CONDICIONES DE INICIO El ascensor estará situado en una planta cualquiera y deberá tener cerradas sus puertas. CONTROL AUTOMÁTICO Cuando está activo el control automático, (conmutador Ix_AutMan posición Aut, 1 lógico), Mando manual desactivado, el autómata gobernará el ascensor, para ello dispondrá de unos finales de carrera que indicarán su situación en las diferentes plantas (FCPlantaN, NO). El FCES y el FCEI tendrán 2 contactos de entrada al autómata para parar la maniobra por malfuncionamiento. Así mismo habrá una botonera interior para indicar a que planta se desea ir (PBotoneraN), un pulsador para poder interrumpir la maniobra de cierre de las puertas y proceder a su apertura (PAbrirPuertas) y un botón exterior por planta para llamar al ascensor (PPlantaN). Cuando se demande una atención, se encenderá la luz amarilla de dichos pulsadores (Qx_LPPlantaN, Qx_LBotPlantaN y Qx_LBotAbrirPuertas ) Cuando el ascensor llegue a la planta de destino, deberá parar su movimiento y proceder a abrir la puerta corredera interior (Qx_AbrirPtaInterior, Ix_FCPtaIntAbierta, Ix_FCPtaIntCerrada), y la puerta exterior (Qx_AbrirPtaPlantaN, Ix_FCPtaPlantaNAbierta, Ix_FCPtaPlantaNCerrada), esperar 5 segundos y si hay una llamada interior o exterior, proceder al cierre de la puerta exterior y cerrar la interior (Qx_CerrarPtaInterior, Qx_CerrarPtaPlantaN). Si estando cerrando, hay un objeto interpuesto, lo detectará una fotocélula (Ix_Fotocelula) que abrirá de nuevo las puertas según la maniobra ya descrita, volviendo a esperar 5 segundos para seguir con la maniobra de cierre. Los finales de carrera de cerradas las puertas exteriores y la interior nos informaran que todas las puertas están cerradas; condición indispensable para que el ascensor pueda subir o bajar. En condiciones iniciales el ascensor estará posicionado en una planta cualquiera (situado por el técnico de forma manual) y las puertas estarán cerradas. Para el movimiento ascendente o descendente del ascensor tendremos en cuenta que:  En subida y bajada irá parando memorizadamente cuando sea necesario en función de las órdenes de cabina y exteriores con prioridad en el movimiento ascendente o descendente de las ordenes de cabina. Finalizará el movimiento en uno u otro sentido, antes de invertirlo. Se pide:  Programa de control del ascensor.
  • 336. 336 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sinóptico
  • 337. Problemas M340 - 337 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de Entradas y Salidas Este problema tiene 40 entradas y 29 salidas
  • 338. 338 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 339. Problemas M340 - 339 Universidad de Oviedo ISA - J. Alonso - I. Machón Configuración del Hardware y del Software
  • 340. 340 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Preliminar (* Memorias para el control Local o a Distancia *) Mx_FCEI := (Ix_DisLoc And Ix_FCEI) Or (Not Ix_DisLoc And MxP_FCEI); Mx_FCES := (Ix_DisLoc And Ix_FCES) Or (Not Ix_DisLoc And MxP_FCES); Mx_FCPlanta1 := (Ix_DisLoc And Ix_FCPlanta1) Or (Not Ix_DisLoc And MxP_FCPlanta1); Mx_FCPlanta2 := (Ix_DisLoc And Ix_FCPlanta2) Or (Not Ix_DisLoc And MxP_FCPlanta2); Mx_FCPlanta3 := (Ix_DisLoc And Ix_FCPlanta3) Or (Not Ix_DisLoc And MxP_FCPlanta3); Mx_FCPlanta4 := (Ix_DisLoc And Ix_FCPlanta4) Or (Not Ix_DisLoc And MxP_FCPlanta4); Mx_FCPlanta5 := (Ix_DisLoc And Ix_FCPlanta5) Or (Not Ix_DisLoc And MxP_FCPlanta5); Mx_FCPlanta6 := (Ix_DisLoc And Ix_FCPlanta6) Or (Not Ix_DisLoc And MxP_FCPlanta6); Mx_FCPtaIntAbierta := (Ix_DisLoc And Ix_FCPtaIntAbierta) Or (Not Ix_DisLoc And MxP_FCPtaIntAbierta); Mx_FCPtaIntCerrada := (Ix_DisLoc And Ix_FCPtaIntCerrada) Or (Not Ix_DisLoc And MxP_FCPtaIntCerrada); Mx_FCPtaPlanta1Abierta := (Ix_DisLoc And Ix_FCPtaPlanta1Abierta) Or (Not Ix_DisLoc And MxP_FCPtaPlanta1Abierta); Mx_FCPtaPlanta1Cerrada := (Ix_DisLoc And Ix_FCPtaPlanta1Cerrada) Or (Not Ix_DisLoc And MxP_FCPtaPlanta1Cerrada); Mx_FCPtaPlanta2Abierta := (Ix_DisLoc And Ix_FCPtaPlanta2Abierta) Or (Not Ix_DisLoc And MxP_FCPtaPlanta2Abierta); Mx_FCPtaPlanta2Cerrada := (Ix_DisLoc And Ix_FCPtaPlanta2Cerrada) Or (Not Ix_DisLoc And MxP_FCPtaPlanta2Cerrada); Mx_FCPtaPlanta3Abierta := (Ix_DisLoc And Ix_FCPtaPlanta3Abierta) Or (Not Ix_DisLoc And MxP_FCPtaPlanta3Abierta); Mx_FCPtaPlanta3Cerrada := (Ix_DisLoc And Ix_FCPtaPlanta3Cerrada) Or (Not Ix_DisLoc And MxP_FCPtaPlanta3Cerrada); Mx_FCPtaPlanta4Abierta := (Ix_DisLoc And Ix_FCPtaPlanta4Abierta) Or (Not Ix_DisLoc And MxP_FCPtaPlanta4Abierta); Mx_FCPtaPlanta4Cerrada := (Ix_DisLoc And Ix_FCPtaPlanta4Cerrada) Or (Not Ix_DisLoc And MxP_FCPtaPlanta4Cerrada); Mx_FCPtaPlanta5Abierta := (Ix_DisLoc And Ix_FCPtaPlanta5Abierta) Or (Not Ix_DisLoc And MxP_FCPtaPlanta5Abierta); Mx_FCPtaPlanta5Cerrada := (Ix_DisLoc And Ix_FCPtaPlanta5Cerrada) Or (Not Ix_DisLoc And MxP_FCPtaPlanta5Cerrada); Mx_FCPtaPlanta6Abierta := (Ix_DisLoc And Ix_FCPtaPlanta6Abierta) Or (Not Ix_DisLoc And MxP_FCPtaPlanta6Abierta); Mx_FCPtaPlanta6Cerrada := (Ix_DisLoc And Ix_FCPtaPlanta6Cerrada) Or (Not Ix_DisLoc And MxP_FCPtaPlanta6Cerrada); Mx_PBotonera1 := (Ix_DisLoc And Ix_PBotonera1) Or (Not Ix_DisLoc And MxP_PBotonera1); Mx_PBotonera2 := (Ix_DisLoc And Ix_PBotonera2) Or (Not Ix_DisLoc And MxP_PBotonera2); Mx_PBotonera3 := (Ix_DisLoc And Ix_PBotonera3) Or (Not Ix_DisLoc And MxP_PBotonera3); Mx_PBotonera4 := (Ix_DisLoc And Ix_PBotonera4) Or (Not Ix_DisLoc And MxP_PBotonera4); Mx_PBotonera5 := (Ix_DisLoc And Ix_PBotonera5) Or (Not Ix_DisLoc And MxP_PBotonera5); Mx_PBotonera6 := (Ix_DisLoc And Ix_PBotonera6) Or (Not Ix_DisLoc And MxP_PBotonera6); Mx_PAbrirPuertas := (Ix_DisLoc And Ix_PAbrirPuertas) Or (Not Ix_DisLoc And MxP_PAbrirPuertas); Mx_Fotocelula := (Ix_DisLoc And Ix_Fotocelula) Or (Not Ix_DisLoc And MxP_Fotocelula); Mx_PPlanta1 := (Ix_DisLoc And Ix_PPlanta1) Or (Not Ix_DisLoc And MxP_PPlanta1); Mx_PPlanta2 := (Ix_DisLoc And Ix_PPlanta2) Or (Not Ix_DisLoc And MxP_PPlanta2);
  • 341. Problemas M340 - 341 Universidad de Oviedo ISA - J. Alonso - I. Machón Mx_PPlanta3 := (Ix_DisLoc And Ix_PPlanta3) Or (Not Ix_DisLoc And MxP_PPlanta3); Mx_PPlanta4 := (Ix_DisLoc And Ix_PPlanta4) Or (Not Ix_DisLoc And MxP_PPlanta4); Mx_PPlanta5 := (Ix_DisLoc And Ix_PPlanta5) Or (Not Ix_DisLoc And MxP_PPlanta5); Mx_PPlanta6 := (Ix_DisLoc And Ix_PPlanta6) Or (Not Ix_DisLoc And MxP_PPlanta6); (* Marcas de trabajo *) Mx_PuertasExtCerradas := Mx_FCPtaPlanta1Cerrada Or Mx_FCPtaPlanta2Cerrada Or Mx_FCPtaPlanta3Cerrada Or Mx_FCPtaPlanta4Cerrada Or Mx_FCPtaPlanta5Cerrada Or Mx_FCPtaPlanta6Cerrada; Lectura Pulsadores (* lectura de los pulsadores de la botonera interior y su memorización en la palabra Mw_PetBotonera*) If Mx_PBotonera1 THEN Mw_PetBotonera.1 := 1; END_IF; If Mx_PBotonera2 THEN Mw_PetBotonera.2 := 1; END_IF; If Mx_PBotonera3 THEN Mw_PetBotonera.3 := 1; END_IF; If Mx_PBotonera4 THEN Mw_PetBotonera.4 := 1; END_IF; If Mx_PBotonera5 THEN Mw_PetBotonera.5 := 1; END_IF; If Mx_PBotonera6 THEN Mw_PetBotonera.6 := 1; END_IF; (* lectura de los pulsadores de planta y su memorización en la palabra Mw_PetPlantas *) If MxP_PPlanta1 THEN Mw_PetPlantas.1 := 1; END_IF; If MxP_PPlanta2 THEN Mw_PetPlantas.2 := 1; END_IF;
  • 342. 342 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón If MxP_PPlanta3 THEN Mw_PetPlantas.3 := 1; END_IF; If MxP_PPlanta4 THEN Mw_PetPlantas.4 := 1; END_IF; If MxP_PPlanta5 THEN Mw_PetPlantas.5 := 1; END_IF; If MxP_PPlanta6 THEN Mw_PetPlantas.6 := 1; END_IF; (* fusión de peticiones *) (* se forma una única palabra que recoja todas las peticiones*) Mw_Peticiones := Mw_PetBotonera Or Mw_PetPlantas; (* lectura de los FC de las plantas para la prioridad de subir o bajar y su memorización en la palabra Mw_FC_Plantas *) Mw_FC_Plantas.1 := Mx_FCPlanta1; Mw_FC_Plantas.2 := Mx_FCPlanta2; Mw_FC_Plantas.3 := Mx_FCPlanta3; Mw_FC_Plantas.4 := Mx_FCPlanta4; Mw_FC_Plantas.5 := Mx_FCPlanta5; Mw_FC_Plantas.6 := Mx_FCPlanta6; (* lectura de los FC de cerradas las puertas exteriores y su memorización en la palabra Mw_FCC_PtasExte *) Mw_FCC_PtasExte.1 := Mx_FCPtaPlanta1Cerrada; Mw_FCC_PtasExte.2 := Mx_FCPtaPlanta2Cerrada; Mw_FCC_PtasExte.3 := Mx_FCPtaPlanta3Cerrada; Mw_FCC_PtasExte.4 := Mx_FCPtaPlanta4Cerrada; Mw_FCC_PtasExte.5 := Mx_FCPtaPlanta5Cerrada; Mw_FCC_PtasExte.6 := Mx_FCPtaPlanta6Cerrada;
  • 343. Problemas M340 - 343 Universidad de Oviedo ISA - J. Alonso - I. Machón Control (* bits de una palabra y su peso asociado 1-2 2-4 3-8 4-16 5-32 6-64 *) (* Da prioridad a la orden desde la botonera *) If Mw_PetBotonera <> 0 THEN If Not Mx_Baja And (Mx_FCPlanta1 AND Mw_PetBotonera > 2) Or (Mx_FCPlanta2 AND Mw_PetBotonera > 6) Or (Mx_FCPlanta3 AND Mw_PetBotonera > 14) Or (Mx_FCPlanta4 AND Mw_PetBotonera > 30) Or (Mx_FCPlanta5 AND Mw_PetBotonera > 62) THEN Set(Mx_Sube); END_IF; If Not Mx_Sube And (Mx_FCPlanta6 AND Mw_PetBotonera < 64) Or (Mx_FCPlanta5 AND Mw_PetBotonera < 32) Or (Mx_FCPlanta4 AND Mw_PetBotonera < 16) Or (Mx_FCPlanta3 AND Mw_PetBotonera < 8) Or (Mx_FCPlanta2 AND Mw_PetBotonera < 4) THEN Set (Mx_Baja); END_IF; END_IF; (* abre puertas cuando está en la planta y se activa el pulsador exterior *) If Mw_PetBotonera = 0 And Not Mx_Baja And Not Mx_Sube And ((Mx_PPlanta1 And Mx_FCPlanta1) Or (Mx_PPlanta2 And Mx_FCPlanta2) Or (Mx_PPlanta3 And Mx_FCPlanta3) Or (Mx_PPlanta4 And Mx_FCPlanta4) Or (Mx_PPlanta5 And Mx_FCPlanta5) Or (Mx_PPlanta6 And Mx_FCPlanta6)) THEN Set (Mx_AbrePuertas); END_IF; (* Si se pulsa desde afuera, sube o baja *) If Mw_PetBotonera = 0 And Mw_PetPlantas <>0 And Not Mx_Baja And ((Mx_FCPlanta1 AND Mw_PetPlantas>2) Or (Mx_FCPlanta2 AND Mw_PetPlantas>6) Or (Mx_FCPlanta3 AND Mw_PetPlantas>14) Or (Mx_FCPlanta4 AND Mw_PetPlantas>30) Or (Mx_FCPlanta5 AND Mw_PetPlantas>62)) THEN Set(Mx_Sube); END_IF; If Mw_PetBotonera = 0 And Mw_PetPlantas <>0 And Not Mx_Sube And ((Mx_FCPlanta6 AND Mw_PetPlantas<64) Or (Mx_FCPlanta5 AND Mw_PetPlantas<32) Or (Mx_FCPlanta4 AND Mw_PetPlantas>16) Or (Mx_FCPlanta3 AND Mw_PetPlantas<8) Or (Mx_FCPlanta2 AND Mw_PetPlantas<4)) THEN Set (Mx_Baja); END_IF; (* Para y abre puertas cuando llega al destino más arriba *) If Mx_Sube And ((Mx_FCPlanta2 And Mw_Peticiones.2=1) Or (Mx_FCPlanta3 And Mw_Peticiones.3=1) Or (Mx_FCPlanta4 And Mw_Peticiones.4=1) Or (Mx_FCPlanta5 And Mw_Peticiones.5=1) Or (Mx_FCPlanta6 And Mw_Peticiones.6=1)) THEN Set (Mx_ParaAscensor); Set (Mx_AbrePuertas); END_IF;
  • 344. 344 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón (* Para y abre puertas cuando llega al destino más abajo *) If Mx_Baja And ((Mx_FCPlanta1 And Mw_Peticiones.1=1) OR (Mx_FCPlanta2 And Mw_Peticiones.2=1) Or (Mx_FCPlanta3 And Mw_Peticiones.3=1) Or (Mx_FCPlanta4 And Mw_Peticiones.4=1) Or (Mx_FCPlanta5 And Mw_Peticiones.5=1)) THEN Set (Mx_ParaAscensor); Set (Mx_AbrePuertas); END_IF; (* con los FC miramos si terminó de subir, para permitirle bajar *) If Mw_FC_Plantas >= Mw_Peticiones THEN Reset (Mx_Sube); END_IF; (* con los FC miramos si terminó de bajar, para permitirle subir *) If Mx_Baja And (Mx_FCPlanta1 And Mw_Peticiones.1=1) Or (Mx_FCPlanta2 And Mw_Peticiones.2=1 AND Mw_Peticiones.1=0) Or (Mx_FCPlanta3 And Mw_Peticiones.3=1 AND Mw_Peticiones.2=0 And Mw_Peticiones.1=0) Or (Mx_FCPlanta4 And Mw_Peticiones.4=1 AND Mw_Peticiones.3=0 And Mw_Peticiones.2=1 AND Mw_Peticiones.1=0) OR (Mx_FCPlanta5 And Mw_Peticiones.5=1 And Mw_Peticiones.4=0 And Mw_Peticiones.3=0 And Mw_Peticiones.2=0 AND Mw_Peticiones.1=0) THEN Reset (Mx_Baja); END_IF; If Mx_PuertasAbiertas THEN Reset (Mx_AbrePuertas); Reset (Mx_UrgeAbrirPuertas); END_IF; (* motor para abrir y cerrar las puertas exteriores e interiores de la cabina *) If Mx_UrgeAbrirPuertas Or Mx_AbrePuertas THEN AbrirPuertas(); END_IF; TON_5s (IN := Mx_PuertasAbiertas, PT := t#5s); If TON_5s.Q AND Mx_Fotocelula THEN Set (Mx_CierraPuertas); Reset (Mx_PuertasAbiertas); END_IF; If Mx_PuertasCerradas THEN Reset (Mx_CierraPuertas); Reset (Mx_PuertasCerradas); Reset (Mx_ParaAscensor); END_IF;
  • 345. Problemas M340 - 345 Universidad de Oviedo ISA - J. Alonso - I. Machón If Mx_CierraPuertas THEN CerrarPuertas(); END_IF; Salidas (* motor para subir y bajar la cabina *) (* utilizar contactores enclavados mecanicamente para la inversión *) Qx_Subir := Mx_Sube And Not Qx_Bajar And Not Mx_ParaAscensor And Not Mx_UrgeAbrirPuertas And Mx_FCES And Mx_FCPtaIntCerrada And Mw_FCC_PtasExte=126; Qx_Bajar := Mx_Baja And Not Qx_Subir And Not Mx_ParaAscensor And Not Mx_UrgeAbrirPuertas And Mx_FCEI And Mx_FCPtaIntCerrada And Mw_FCC_PtasExte=126; (* luces pulsadores de la planta *) If RE (Mx_PPlanta1) THEN Set (Qx_LPPlanta1); END_IF; If RE (Mx_PPlanta2) THEN Set (Qx_LPPlanta2); END_IF; If RE (Mx_PPlanta3) THEN Set (Qx_LPPlanta3); END_IF; If RE (Mx_PPlanta4) THEN Set (Qx_LPPlanta4); END_IF; If RE (Mx_PPlanta5) THEN Set (Qx_LPPlanta5); END_IF; If RE (Mx_PPlanta6) THEN Set (Qx_LPPlanta6); END_IF; (* luces pulsadores de la botonera interior *) If RE (Mx_PBotonera1) THEN Set (Qx_LBotPlanta1); END_IF; If RE (Mx_PBotonera2) THEN
  • 346. 346 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Set (Qx_LBotPlanta2); END_IF; If RE (Mx_PBotonera3) THEN Set (Qx_LBotPlanta3); END_IF; If RE (Mx_PBotonera4) THEN Set (Qx_LBotPlanta4); END_IF; If RE (Mx_PBotonera5) THEN Set (Qx_LBotPlanta5); END_IF; If RE (Mx_PBotonera6) THEN Set (Qx_LBotPlanta6); END_IF; (* Reseteo de todas las salidas en posición manual *) If Ix_AutManual THEN Reset (Qx_Subir); Reset (Qx_Bajar); Reset (Qx_AbrirPtaInterior); Reset (Qx_CerrarPtaInterior); Reset (Qx_AbrirPtaPlanta1); Reset (Qx_CerrarPtaPlanta1); Reset (Qx_AbrirPtaPlanta2); Reset (Qx_CerrarPtaPlanta2); Reset (Qx_AbrirPtaPlanta3); Reset (Qx_CerrarPtaPlanta3); Reset (Qx_AbrirPtaPlanta4); Reset (Qx_CerrarPtaPlanta4); Reset (Qx_AbrirPtaPlanta5); Reset (Qx_CerrarPtaPlanta5); Reset (Qx_AbrirPtaPlanta6); Reset (Qx_CerrarPtaPlanta6); END_IF;
  • 347. Problemas M340 - 347 Universidad de Oviedo ISA - J. Alonso - I. Machón Simulación (* variables asociadas a los objetos de la simulación *) IF %S13 THEN Set(MXP_FCEI); Set(MXP_FCES); Set (MxP_Fotocelula); Set(MxP_FCPlanta1); Set(MxP_FCPtaIntCerrada); Set(MxP_FCPtaPlanta1Cerrada);Set(MxP_FCPtaPlanta2Cerrada); Set(MxP_FCPtaPlanta3Cerrada); Set(MxP_FCPtaPlanta4Cerrada); Set(MxP_FCPtaPlanta5Cerrada); Set(MxP_FCPtaPlanta6Cerrada); END_IF; Mx_PtasIntAbiertas1 := Mx_FCPlanta1 And Mx_FCPtaIntAbierta; Mx_PtasIntAbiertas2 := Mx_FCPlanta2 And Mx_FCPtaIntAbierta; Mx_PtasIntAbiertas3 := Mx_FCPlanta3 And Mx_FCPtaIntAbierta; Mx_PtasIntAbiertas4 := Mx_FCPlanta4 And Mx_FCPtaIntAbierta; Mx_PtasIntAbiertas5 := Mx_FCPlanta5 And Mx_FCPtaIntAbierta; Mx_PtasIntAbiertas6 := Mx_FCPlanta6 And Mx_FCPtaIntAbierta; Mx_PtasExtCerradas1 := Mx_FCPlanta1 And MxP_FCPtaPlanta1Cerrada; Mx_PtasExtCerradas2 := Mx_FCPlanta2 And MxP_FCPtaPlanta2Cerrada; Mx_PtasExtCerradas3 := Mx_FCPlanta3 And MxP_FCPtaPlanta3Cerrada; Mx_PtasExtCerradas4 := Mx_FCPlanta4 And MxP_FCPtaPlanta4Cerrada; Mx_PtasExtCerradas5 := Mx_FCPlanta5 And MxP_FCPtaPlanta5Cerrada; Mx_PtasExtCerradas6 := Mx_FCPlanta6 And MxP_FCPtaPlanta6Cerrada; Mx_PtasExtAbIntCerr1 := Mx_FCPlanta1 And MxP_FCPtaPlanta1Abierta And Mx_FCPtaIntCerrada; Mx_PtasExtAbIntCerr2 := Mx_FCPlanta2 And MxP_FCPtaPlanta2Abierta And Mx_FCPtaIntCerrada; Mx_PtasExtAbIntCerr3 := Mx_FCPlanta3 And MxP_FCPtaPlanta3Abierta And Mx_FCPtaIntCerrada; Mx_PtasExtAbIntCerr4 := Mx_FCPlanta4 And MxP_FCPtaPlanta4Abierta And Mx_FCPtaIntCerrada; Mx_PtasExtAbIntCerr5 := Mx_FCPlanta5 And MxP_FCPtaPlanta5Abierta And Mx_FCPtaIntCerrada; Mx_PtasExtAbIntCerr6 := Mx_FCPlanta6 And MxP_FCPtaPlanta6Abierta And Mx_FCPtaIntCerrada; Mx_AbrePtaIntP1 := Mx_FCPlanta1 and Qx_AbrirPtaInterior; Mx_AbrePtaIntP2 := Mx_FCPlanta2 and Qx_AbrirPtaInterior; Mx_AbrePtaIntP3 := Mx_FCPlanta3 and Qx_AbrirPtaInterior; Mx_AbrePtaIntP4 := Mx_FCPlanta4 and Qx_AbrirPtaInterior; Mx_AbrePtaIntP5 := Mx_FCPlanta5 and Qx_AbrirPtaInterior; Mx_AbrePtaIntP6 := Mx_FCPlanta6 and Qx_AbrirPtaInterior; Mx_CierraPtaIntP1 := Mx_FCPlanta1 and Qx_CerrarPtaInterior; Mx_CierraPtaIntP2 := Mx_FCPlanta2 and Qx_CerrarPtaInterior; Mx_CierraPtaIntP3 := Mx_FCPlanta3 and Qx_CerrarPtaInterior; Mx_CierraPtaIntP4 := Mx_FCPlanta4 and Qx_CerrarPtaInterior; Mx_CierraPtaIntP5 := Mx_FCPlanta5 and Qx_CerrarPtaInterior; Mx_CierraPtaIntP6 := Mx_FCPlanta6 and Qx_CerrarPtaInterior;
  • 348. 348 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Mx_AbrePtaExtP1 := Mx_FCPlanta1 and Qx_AbrirPtaPlanta1; Mx_AbrePtaExtP2 := Mx_FCPlanta2 and Qx_AbrirPtaPlanta2; Mx_AbrePtaExtP3 := Mx_FCPlanta3 and Qx_AbrirPtaPlanta3; Mx_AbrePtaExtP4 := Mx_FCPlanta4 and Qx_AbrirPtaPlanta4; Mx_AbrePtaExtP5 := Mx_FCPlanta5 and Qx_AbrirPtaPlanta5; Mx_AbrePtaExtP6 := Mx_FCPlanta6 and Qx_AbrirPtaPlanta6; Mx_CierraPtaExtP1 := Mx_FCPlanta1 and Qx_CerrarPtaPlanta1; Mx_CierraPtaExtP2 := Mx_FCPlanta2 and Qx_CerrarPtaPlanta2; Mx_CierraPtaExtP3 := Mx_FCPlanta3 and Qx_CerrarPtaPlanta3; Mx_CierraPtaExtP4 := Mx_FCPlanta4 and Qx_CerrarPtaPlanta4; Mx_CierraPtaExtP5 := Mx_FCPlanta5 and Qx_CerrarPtaPlanta5; Mx_CierraPtaExtP6 := Mx_FCPlanta6 and Qx_CerrarPtaPlanta6; Subrutina “AbrirPuertas” (* abre las puertas *) (* utilizar contactores enclavados mecánicamente para la inversión *) If Mx_FCPlanta1 THEN Set (Qx_AbrirPtaPlanta1); END_IF; If Mx_FCPlanta2 THEN Set (Qx_AbrirPtaPlanta2); END_IF; If Mx_FCPlanta3 THEN Set (Qx_AbrirPtaPlanta3); END_IF; If Mx_FCPlanta4 THEN Set (Qx_AbrirPtaPlanta4); END_IF; If Mx_FCPlanta5 THEN Set (Qx_AbrirPtaPlanta5); END_IF; If Mx_FCPlanta6 THEN Set (Qx_AbrirPtaPlanta6); END_IF; If Mx_FCPtaIntAbierta=0 THEN Set (Qx_AbrirPtaInterior); END_IF;
  • 349. Problemas M340 - 349 Universidad de Oviedo ISA - J. Alonso - I. Machón If Mx_FCPtaPlanta1Abierta THEN Reset (Qx_AbrirPtaPlanta1); Mw_PetBotonera.1:=0; Mw_PetPlantas.1:=0; Reset(Qx_LPPlanta1); Reset(Qx_LBotPlanta1); END_IF; If Mx_FCPtaPlanta2Abierta THEN Reset (Qx_AbrirPtaPlanta2); Mw_PetBotonera.2:=0; Mw_PetPlantas.2:=0; Reset(Qx_LPPlanta2); Reset(Qx_LBotPlanta2); END_IF; If Mx_FCPtaPlanta3Abierta THEN Reset (Qx_AbrirPtaPlanta3); Mw_PetBotonera.3:=0; Mw_PetPlantas.3:=0; Reset(Qx_LPPlanta3); Reset(Qx_LBotPlanta3); END_IF; If Mx_FCPtaPlanta4Abierta THEN Reset (Qx_AbrirPtaPlanta4); Mw_PetBotonera.4:=0; Mw_PetPlantas.4:=0; Reset(Qx_LPPlanta4); Reset(Qx_LBotPlanta4); Reset (Mx_ParaAscensor); END_IF; If Mx_FCPtaPlanta5Abierta THEN Reset (Qx_AbrirPtaPlanta5); Mw_PetBotonera.5:=0; Mw_PetPlantas.5:=0; Reset(Qx_LPPlanta5); Reset(Qx_LBotPlanta5); END_IF; If Mx_FCPtaPlanta6Abierta THEN Reset (Qx_AbrirPtaPlanta6);
  • 350. 350 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Mw_PetBotonera.6:=0; Mw_PetPlantas.6:=0; Reset(Qx_LPPlanta6); Reset(Qx_LBotPlanta6); END_IF; If Mx_FCPtaIntAbierta THEN Reset (Qx_AbrirPtaInterior); END_IF; If Mx_FCPtaIntAbierta And ((Mx_FCPlanta1 And Mx_FCPtaPlanta1Abierta) Or (Mx_FCPlanta2 And Mx_FCPtaPlanta2Abierta) OR (Mx_FCPlanta3 And Mx_FCPtaPlanta3Abierta) Or (Mx_FCPlanta4 And Mx_FCPtaPlanta4Abierta) OR (Mx_FCPlanta5 And Mx_FCPtaPlanta5Abierta) OR (Mx_FCPlanta6 And Mx_FCPtaPlanta6Abierta)) THEN Set (Mx_PuertasAbiertas); END_IF; Subrutina “CerrarPuertas” (* cierra las puertas pero en caso pillar a algo interrumpe la maniobra *) (* ¡OJO! UTILIZAR contactores enclavados mecánicamente para la inversión *) If Mx_FCPtaIntCerrada=0 THEN Set (Qx_CerrarPtaInterior); END_IF; If Mx_FCPlanta1 And Mx_FCPtaPlanta1Cerrada=0 THEN Set (Qx_CerrarPtaPlanta1); END_IF; If Mx_FCPlanta2 And Mx_FCPtaPlanta2Cerrada=0 THEN Set (Qx_CerrarPtaPlanta2); END_IF; If Mx_FCPlanta3 And Mx_FCPtaPlanta3Cerrada=0 THEN Set (Qx_CerrarPtaPlanta3); END_IF; If Mx_FCPlanta4 And Mx_FCPtaPlanta4Cerrada=0 THEN Set (Qx_CerrarPtaPlanta4); END_IF; If Mx_FCPlanta5 And Mx_FCPtaPlanta5Cerrada=0 THEN Set (Qx_CerrarPtaPlanta5); END_IF; If Mx_FCPlanta6 And Mx_FCPtaPlanta6Cerrada=0 THEN
  • 351. Problemas M340 - 351 Universidad de Oviedo ISA - J. Alonso - I. Machón Set (Qx_CerrarPtaPlanta6); END_IF; If Mx_FCPtaIntCerrada Or Not Mx_Fotocelula Or Mx_PAbrirPuertas THEN Reset (Qx_CerrarPtaInterior); END_IF; If Mx_FCPtaPlanta1Cerrada Or Not Mx_Fotocelula Or Mx_PAbrirPuertas THEN Reset (Qx_CerrarPtaPlanta1); END_IF; If Mx_FCPtaPlanta2Cerrada Or Not Mx_Fotocelula Or Mx_PAbrirPuertas THEN Reset (Qx_CerrarPtaPlanta2); END_IF; If Mx_FCPtaPlanta3Cerrada Or Not Mx_Fotocelula Or Mx_PAbrirPuertas THEN Reset (Qx_CerrarPtaPlanta3); END_IF; If Mx_FCPtaPlanta4Cerrada Or Not Mx_Fotocelula Or Mx_PAbrirPuertas THEN Reset (Qx_CerrarPtaPlanta4); END_IF; If Mx_FCPtaPlanta5Cerrada Or Not Mx_Fotocelula Or Mx_PAbrirPuertas THEN Reset (Qx_CerrarPtaPlanta5); END_IF; If Mx_FCPtaPlanta6Cerrada Or Not Mx_Fotocelula Or Mx_PAbrirPuertas THEN Reset (Qx_CerrarPtaPlanta6); END_IF; If Mx_FCPtaIntCerrada And Mw_FCC_PtasExte=126 THEN Reset (Mx_CierraPuertas); Set (Mx_PuertasCerradas); END_IF; (* en caso de atrapar algo, interrumpe la maniobra y abre las puertas *) (* si las puertas ya están cerradas, no hace nada *) If (Not Mx_Fotocelula Or Mx_PAbrirPuertas) And Not Mx_PuertasCerradas THEN Reset (Mx_CierraPuertas); Set (Mx_UrgeAbrirPuertas); END_IF;
  • 352. 352 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de operador En la pantalla de operador se puede apreciar lo siguiente:  La caja del ascensor está formada por dos rectángulos llenos de color gris y blanco. En la parte superior, estaría el anclaje al motor de subir y bajar, y lateralmente, el contacto con los Finales de carrera de las plantas. Hay 3 cabinas, 1º con las puertas exteriores e interiores cerradas, 2 º Con la puerta exterior abierta y la interior cerrada y 3ª con las puertas abiertas y una persona en su interior.  Los motores de apertura de las puertas y de subir y bajar, tienen una luz verde para indicar abrir o subir y una roja para indicar cerrar o bajar.  Los Finales de Carrera se muestran cuando están activos o no.  Los pulsadores tienen un marco oscuro cuando no están pulsados, y un marco de color amarillo claro cuando están activos.  Flechas que nos indican si el ascensor está subiendo o bajando.  Flechas que nos indican si las puertas interiores y exteriores están cerrando o abriendo.
  • 353. Problemas M340 - 353 Universidad de Oviedo ISA - J. Alonso - I. Machón Como introducir un valor analógico mediante un indicador de escala Se hace uso del icono correspondiente, número 14 de la barra IOSEditor Como introducir un gráfico de tendencias Se introduce un rectángulo como objeto animado asociado a la variable requerida y se anima como gráfico de tendencias.
  • 354. 354 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Cómo hacer el escalado de una señal analógica de entrada Realizar un pequeño programa que proceda al escalado de una señal analógica de campo de forma que se puedan definir los factores de valor mínimo de escalado y de valor máximo de escalado entre los que se desea acotar el resultado final que se ha de visualizar. La señal de campo se ha de configurar en la correspondiente tarjeta de entradas/salidas analógicas. Ejemplo: Escalado y tratamiento de una señal analógica de temperatura Una sonda de temperatura proporciona una señal analógica 0-10V y está calibrada de forma que indica valores de temperatura comprendidos entre 32 y 212 grados Fahrenheit. Esta sonda se va a utilizar para regular la temperatura en una sala de forma que: - La temperatura ideal de la sala es de 25 ⁰C. - Por encima de 30 ⁰C se ha de poner en marcha el sistema de refrigeración que se ha de detener si la temperatura desciende de 28 ⁰C. - Por debajo de 20 ⁰C se ha de poner en marcha el sistema de calefacción que se ha de detener si la temperatura asciende por encima de los 22 ⁰C. El valor en grados Celsius se debe obtener realizando un cálculo aritmético a partir del valor en grados Fahrenheit. La fórmula de conversión es la siguiente: grados Celsius = grados Fahrenheit − 32 9 ∗ 5 La señal de campo como entrada analógica se ha de tratar con un formato de 16 bits y se le ha de asignar un tipo de dato ENTERO, pero el tratamiento del resto de programa ha de ser con valores de tipo REAL. El hardware elegido para el PLC es: Se debe comenzar realizando la configuración del módulo de entradas analógicas haciendo doble clic sobre él en la vista general del hardware del PLC. Se ha instalado el módulo BMX AMI 0410 que contiene 4 canales de entrada analógica. Aparecerá la siguiente ventana:
  • 355. Problemas M340 - 355 Universidad de Oviedo ISA - J. Alonso - I. Machón Se selecciona el rango de entrada (+/-10V, 0 a 10V, 0 a 5V / De 0 a 20 mA, De 1 a 5V / 4 a 20mA, +/- 5V +/- 20 mA), escala (valores de tipo entero equivalentes a la señal eléctrica medida) y filtro (según los requerimientos de la señal a tratar). En este caso, se ha seleccionado el canal 0 del módulo de entradas analógicas con un rango de 0 a 10V Se selecciona una tarea asociada al canal analógico
  • 356. 356 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 357. Problemas M340 - 357 Universidad de Oviedo ISA - J. Alonso - I. Machón En nuestro caso, tarea maestra Se selecciona el ciclo de exploración del canal de entrada. Lo dejamos en normal A continuación se define la escala La escala de 0 a 10000. Se puede observar la escala clicando sobre ella:
  • 358. 358 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Se especIfica el desborde Se elige el filtrado
  • 359. Problemas M340 - 359 Universidad de Oviedo ISA - J. Alonso - I. Machón Todos estos conceptos quedan definidos en la ayuda del Unity Pro como vemos en el siguiente cuadro: Una vez configurado el módulo de entradas analógicas, se debe realizar el escalado de la señal mediante la inserción de una instancia a un bloque de función elemental denominado SCALING.
  • 360. 360 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Los parámetros del escalado forman parte de una estructura de datos denominada PARA_SCALING. Lo más cómodo es insertar el bloque y asignar como entrada de parámetros PARA la variable de nombre p.e.“parámetros” del tipo PARA_SCALING. Por otra parte, la entrada IN y la salida OUT son del tipo REAL. El bloque PARA_SCALING realiza la siguiente función: 𝑂𝑈𝑇 = (𝐼𝑁 − 𝑖𝑛_𝑚𝑖𝑛) × (𝑜𝑢𝑡_𝑚𝑎𝑥 − 𝑜𝑢𝑡_𝑚𝑖𝑛) (𝑖𝑛_𝑚𝑎𝑥 − 𝑖𝑛_𝑚𝑖𝑛) + 𝑜𝑢𝑡_𝑚𝑖𝑛 Los parámetros de la función anterior quedan descritos en la siguiente tabla: Elemento Tipo de datos Significado in_min REAL Límite inferior de la escala de entrada in_max REAL Límite superior de la escala de entrada out_min REAL Límite inferior de la escala de salida out_max REAL Límite superior de la escala de salida clip BOOL "1": el valor de la salida OUT está limitado por out_min y out_max.
  • 361. Problemas M340 - 361 Universidad de Oviedo ISA - J. Alonso - I. Machón Teniendo en cuenta lo anteriormente expuesto, para el presente ejemplo, se deben asignar los valores a los parámetros de escalado en la tabla de datos derivados:
  • 362. 362 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 363. Problemas M340 - 363 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 9.11 Ejemplo de escalado de señal analógica Preliminar If Ix_LocalDist THEN Mi_TempaSalaF := Iw_TempSalaF; (*El valor de la temperatura de la sala en grados Fahrenheit se mide a través 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; Sección “Escalado”
  • 364. 364 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de operador
  • 365. Problemas M340 - 365 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 9.12 · Pesado preciso de sustancias. EM y EF Se desea automatizar un proceso de pesado preciso de un producto sobre una báscula. La base sobre la que se vierte el producto pesa 20 Kg. Para verter el producto se dispone de una tolva con dos tajaderas controladas neumáticamente. La "A" cerrada mediante un Cilindro de Simple Efecto [CSE] vierte el producto de una forma rápida -gran sección de paso- gobernado por una EV monoestable. La "B" cerrada mediante un CSE, lo vierte de una forma más lenta -sección de paso inferior- para poder afinar en la cantidad de producto vertido, está controlado por una EV monoestable. La tolva tiene un sensor de peso analógico calibrado capaz de pesar desde 0 hasta 700 Kg (Iw_SensorPeso). Supongamos que nos proporciona una señal a través de un interface de 0 a 10V DC. Nos dará 10 V cuando pese 700 Kg y 0 V cuando esté a 0 Kg. El proceso consiste en lo siguiente:  Al pulsar Marcha (Ix_Marcha NA), deben abrirse las tajaderas A (Qx_A_Menos) y B (Qx_B_Menos) que cierran el vertido de un producto sobre un sistema de pesaje basculante.  Cuando se haya vertido 480 Kg de producto, deberá cerrarse la tajadera A.  Cuando se haya vertido 500 Kg de producto, deberá cerrarse B con lo que se cerrará la compuerta de afinado.  Alcanzado el peso deseado, se vacía la báscula por medio de un cilindro basculante “C” (Qx_C_Mas) EV monoestable.  El vaciado se efectúa durante 10 segundos.  En ese momento se desactiva el cilindro basculante para que la báscula recupere la posición inicial.  Durante cualquier momento del proceso, si se pulsa la parada de emergencia (Ix_Emergencia NC) se deberán cerrar las tajaderas A y B y/o parar el vaciado de la báscula. Además se indicará mediante la activación de una luz roja de parada de emergencia oscilando a una frecuencia de 1 Hz (Qx_LEmergencia).  Al pulsar rearme (Ix_Rearme) el sistema vaciará la báscula durante 10 segundos y volverá al estado de reposo, independientemente del estado en el que se produjese la parada.  Durante cualquier momento del proceso, si se pulsa un interruptor de paro (Ix_Paro NC), se deberá parar el proceso y activar una luz de paro (Qx_LParo). Se saldrá de esta situación al pulsar Marcha. El sistema volverá a continuar donde estaba y se apagará la luz de paro. El sistema tendrá un control Local y a Distancia (Ix_LocDis) PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta a todo el conjunto, módulo de entradas PNP BMX DDI 1602, de salidas PNP BMX DDO 1602 y entradas/salidas analógicas BMX AMM 0600.
  • 366. 366 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de Mando, Esquema de fuerza neumático
  • 367. Problemas M340 - 367 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de variables
  • 368. 368 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa (pr0912A) · Pesado sencillo de substancias Sección “Simulación” (* variables para la pantalla de operador *) If %S13 THEN Set(MxP_Paro); Set (MxP_Emergencia); END_IF; Mx_CerrarA := Mr_Peso >= 480.0; Mx_CerrarB := Mr_Peso >= 500.0; If Etapa0.x THEN MiP_SensorPeso := 286; (* para la simulación, ponemos el peso de la base de 20 Kg *) END_IF; Sección “Preliminar” (* IniciaVariables *) 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_Emergencia := (Ix_Emergencia And Ix_LocDis) Or(MxP_Emergencia And Not Ix_LocDis); If Ix_LocDis THEN Mi_SensorPeso := Iw_SensorPeso; (*El valor del sensor de peso se mide a través de la galga *) else Mi_SensorPeso := MiP_SensorPeso; (*El valor del peso se asigna por la pantalla de operador*) END_IF; (* Parada de emergencia *) Mx_EnEmergencia := CLEARCHART (Control, Not Mx_Emergencia); (* Rearme *) If Mx_Rearme THEN Reset (Mx_EnParada); END_IF; Mx_PonCI := CLEARCHART (Control, RE(Mx_Rearme)); If Mx_PonCI And Not Mx_Rearme THEN Setstep (Etapa3); END_IF;
  • 369. Problemas M340 - 369 Universidad de Oviedo ISA - J. Alonso - I. Machón (* Paro *) If Not Mx_Paro THEN Set (Mx_EnParada); END_IF; If Mx_EnParada THEN Mx_ParoGRAFCET := FREEZECHART (Control, true); (* Congela el GRAFCET, dejando activa la etapa en la que queda congelado *) else Mx_ParoGRAFCET := FREEZECHART (Control, false); END_IF; If Mx_Marcha THEN Reset (Mx_EnParada); END_IF; Mr_SensorPeso := INT_TO_REAL (IN := Mi_SensorPeso); Escalado_0 (IN := Mr_SensorPeso, PARA := Parámetros, OUT => Mr_Peso); Sección “Chart”
  • 370. 370 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección “Transiciones” Tran3_0 := Etapa3.t >= t#10s; Sección “Salidas” Qx_A_Menos:= Etapa1.x And Not Mx_EnParada; Qx_B_Menos:= (Etapa1.x Or Etapa2.x) And Not Mx_EnParada; Qx_C_Mas:= Etapa3.x And Not Mx_EnParada; Qx_LParo:= Mx_EnParada; Qx_LEmergencia:= Mx_EnEmergencia And %S6; Pantalla de operador A continuación, podemos observar los distintos elementos creados para confeccionar la pantalla de operación. Están hechos con los objetos gráficos del propio Unity. En esta pantalla usamos un “Indicador de escala” para modificar la variable MiP_SensorPeso y el “Cuadro de giro” para hacer una aproximación más lenta sobre la misma variable.
  • 371. Problemas M340 - 371 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa (pr0912B) · Pesado sencillo de substancias El mismo problema lo resolveremos con una pequeña variación. Modificaremos la sección de simulación para que el peso del producto se vaya incrementando automáticamente. La nueva sección que substituye a la anterior es: Sección “Simulacion” (* variables para la pantalla de operador *) If %S13 THEN Set(MxP_Paro); Set (MxP_Emergencia); END_IF; Mx_CerrarA := Mr_Peso >= 500.0; Mx_CerrarB := Mr_Peso >= 520.0; If Etapa0.x THEN MiP_SensorPeso := 286; (* para la simulación, ponemos el peso de la base de 20 Kg *) END_IF; If Etapa1.x THEN MiP_SensorPeso := MiP_SensorPeso + 10; END_IF; If Etapa2.X THEN MiP_SensorPeso := MiP_SensorPeso + 1; END_IF; Mx_Arena1 := MiP_SensorPeso >286 And Etapa1.x; Mx_Arena2 := MiP_SensorPeso >3500 And Etapa1.x; Mx_Arena3 := MiP_SensorPeso >5000 And Etapa1.x; Mx_Arena4 := MiP_SensorPeso >7000 And Etapa2.x; Mx_Arena5 := Etapa3.x;
  • 372. 372 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de operador La pantalla de operador en pleno funcionamiento es: Y la misma pantalla viendo parte de sus objetos
  • 373. Problemas M340 - 373 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 9.13 · Control de un ascensor de 6 plantas. Botones de planta de subir y bajar (Resolver) Se desea controlar un ascensor con puertas automáticas situado en un edificio de 6 plantas disponiendo de un control manual y otro automático ( Ix_AutMan) mediante autómata que permitan posicionarlo en un lugar determinado. Así mismo, se dispondrá de un control local y a distancia desde una pantalla de operador (Ix_locDis). CONTROL MANUAL Cuando está activo el control manual, (conmutador Ix_AutMan posición Man) el control automático mediante autómata debe quedar desactivado y poder subir o bajar el ascensor (Qx_Subir y Qx_Bajar) mediante dos pulsadores situados en la botonera de maniobra quedando limitado el sobrerecorrido superior e inferior por unos finales de carrera Ix_FCES y Ix_FCEI (NC potencia). Cuando por excederse en el recorrido se activase uno de éstos, sólo podrá entrar la orden contraria. Así mismo se deberá poder abrir y cerrar las diferentes puertas del ascensor. CONDICIONES DE INICIO El ascensor estará situado en una planta cualquiera y deberá tener cerradas sus puertas. CONTROL AUTOMÁTICO Cuando está activo el control automático, (conmutador Ix_AutMan posición Aut, 1 lógico) Mando, manual desactivado, el autómata gobernará el ascensor, para ello dispondrá de unos finales de carrera que indicarán su situación en las diferentes plantas (FCPlantaN, NO). El FCES y el FCEI tendrán 2 contactos de entrada al autómata para parar la maniobra por malfuncionamiento. Así mismo habrá una botonera interior para indicar a que planta se desea ir (PBotoneraN), un pulsador para poder interrumpir la maniobra de cierre de las puertas y proceder a su apertura (PAbrirPuertas) y un dos pulsadores exteriores por planta para llamar al ascensor para subir o bajar (PPlantaNSubir, PPlantaNBajar). Cuando se demande una atención, se encenderá la luz amarilla de dichos pulsadores (Qx_LPPlantaNSubir, Qx_LPPlantaNBajar, Qx_LBotPlantaN y Qx_LBotAbrirPuertas ) Cuando el ascensor llegue a la planta de destino, deberá parar su movimiento y proceder a abrir la puerta corredera interior (Qx_AbrirPtaInterior, Ix_FCPtaIntAbierta, Ix_FCPtaIntCerrada), y la puerta exterior (Qx_AbrirPtaPlantaN, Ix_FCPtaPlantaNAbierta, Ix_FCPtaPlantaNCerrada), esperar 5 segundos y si hay una llamada interior o exterior, proceder al cierre de la puerta exterior y cerrar la interior (Qx_CerrarPtaInterior, Qx_CerrarPtaPlantaN). Si estando cerrando, hay un objeto interpuesto, lo detectará una fotocélula (Ix_Fotocelula) que abrirá de nuevo las puertas según la maniobra ya descrita, volviendo a esperar 5 segundos para seguir con la maniobra de cierre. Los finales de carrera de cerradas las puertas exteriores y la interior nos informaran que todas las puertas están cerradas; condición indispensable para que el ascensor pueda subir o bajar. En condiciones iniciales el ascensor estará posicionado en una planta cualquiera (situado por el técnico de forma manual) y las puertas estarán cerradas. Para el movimiento ascendente o descendente del ascensor tendremos en cuenta que:  En subida y bajada irá parando memorizadamente cuando sea estrictamente necesario en función de las órdenes de cabina y exteriores con prioridad en el movimiento ascendente o descendente de las ordenes de cabina. Finalizará el movimiento en uno u otro sentido, antes de invertirlo. Se pide: Programa de control del ascensor.
  • 374. 374 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 375. Problemas M340 - 375 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 10.01 · Control de un aporte de materiales. CDE AD IG Control de un sistema de aporte de material mediante PLC. La cinta transportadora, será movida mediante un motor con dos sentidos de giro. El motor de Pm = 5 KW, Un = 400 V, η= 84%, cos φ= 0,84 y 2910 rpm. Arranque directo con corriente de arranque 5 veces la nominal. El tiempo de arranque es 5 segundos. En la mitad de la cinta transportadora hay dos tolvas que descargan material A o B sobre la cinta. La apertura y cierre de las tolvas será controlada mediante 2 CDE y sus respectivas electroválvulas monoestables [Qx_Menos Abrir A, Qx_BMenos Abrir B] y posición inicial de vástago extendido. En función del tipo de material que se vaya a transportar, la cinta deberá moverse en un sentido o en otro. Cuando se accione un pulsador S1 [Ix_TAIzda NA], se abrirá la tolva A y la cinta se desplazará hacia la izquierda. Cuando se accione un pulsador S2 [Ix_ParaDchaTB NA], se cerrará inmediatamente la tolva A, y tras 15 segundos, que es el tiempo que tarda el material en ser transportado por la cinta hasta el final de esta y ser evacuado, se invertirá el sentido de giro del motor y se abrirá la tolva B, para llevar el material a un vagón al otro extremo de la cinta. Si, por el contario, se acciona S3 [Ix_TBDcha (NA)], el proceso será el inverso: se abrirá la tolva B y la cinta se desplazará hacia la derecha. Cuando se accione un pulsador S4 [Ix_ParaIzdaTA NA], se cerrará inmediatamente la tolva B, y tras 15 segundos, que es el tiempo que tarda el material en ser transportado por la cinta hasta el final de esta y ser evacuado, se invertirá el sentido de giro del motor y se abrirá la tolva A, para llevar el material a un vagón al otro extremo de la cinta. Cuando se pulsa un pulsador de paro S5 [Ix_Paro NC] al final del ciclo, se cierra la tolva que esté abierta (en el proceso final una vez realizada la inversión de giro) y, tras quince segundos se para el motor y va a CI. Si se activa una seta de emergencia, S6 [Ix_Emergencia NC], se cierra la tolva que esté abierta y se para inmediatamente el motor, aunque quede todavía material en la cinta. No pudiendo evolucionar el sistema hasta que, una vez subsanado el problema; se desbloque la seta y se pulse Rearme. Se encenderá una lámpara de color rojo LRoja a la vez que la blanca. Condiciones iniciales [CI]: El sistema estará parado, con las tajaderas cerradas, vástagos de los cilindros extendidos y una lámpara blanca encendida cuando el sistema esté con tensión. Una lámpara verde [Qx_LVerde] se encenderá cuando el sistema esté en funcionamiento (moviéndose las cintas). Alarmas: Si saltase la protección térmica del motor (rearme manual), deberá parar toda la instalación y cerrar las tajaderas y encenderse exclusivamente una lámpara Ámbar [Qx_LAmbar]. No pudiendo evolucionar el sistema hasta que, una vez subsanado el problema; se Resetee el térmico y se pulse S7 [Ix_Reset NO] lo cual le llevará a CI. Se detectará cuando un relé Reed quede cortocircuitado. Si esto sucede, el sistema seguirá funcionando pero se indicará mediante un mensaje en la pantalla de operación. Si un relé Reed queda abierto o cortocircuitado, deberá parar toda la instalación, cerrar las tajaderas, encenderse exclusivamente una lámpara Roja [Qx_LRoja] y se indicará mediante un mensaje en la pantalla de operación. No pudiendo evolucionar el sistema hasta que, una vez subsanado el problema; se pulse S7 [Ix_Rearme NO] lo cual le llevará a Condiciones Iniciales.
  • 376. 376 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0400, fuente de alimentación BMX CPS 2000 (24VDC 60W, eficiencia del 82%) alimenta a todo el conjunto, módulo 1 de 16 entradas digitales de 24 VCC PNP módulo BMX DDI 1602, módulo 2 de 16 salidas por relé BMX DRA 1605 (8 + 8) alimentado a 24 VCC. Los contactores utilizados serán de bobina DC Los cilindros neumáticos mueven unas tajaderas y sus respectivos vástagos que pesan 30 Kg. Deberán vencer un rozamiento de 200 N con una velocidad de 50 cm/s siendo la carrera es de 50 cm. El compresor trabaja entre 7 y 9 Kg/cm2 y alimenta una instalación de 124 m con un caudal de 1.200 l/min de aire libre con una caída de presión de no más de 0,3 bares en el extremo del tubo. La tubería tiene 6 codos de 90°, 4 codos Elbow y 6 "T" estándar. Se pide:  Diseñar el esquema de mando y de fuerza del sistema.  Elegir los elementos de protección del sistema de mando y de fuerza.  Indicar sobre las gráficas del térmico y del automático CLARAMENTE, la corriente de arranque, la corriente de regulación del térmico y la corriente nominal.  Diámetro los cilindros, aire consumido por ciclo: exacto y aproximado ( Hg 13.600 Kg/ m3 ).  Sección de la tubería.  Programa de mando.
  • 377. Problemas M340 - 377 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de Fuerza Esquema de Mando
  • 378. 378 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Relé térmico F1 𝜂 = 𝑃𝑢 𝑃𝑒 = 𝑃𝑢 √3 𝑈𝑛 𝐼𝑛 cos  𝐼𝑛 = 𝑃𝑢 𝜂 √3 𝑈𝑛 cos  = 5000 0,84 · √3 · 400 · 0,84 = 10,23 𝐴 Teniendo en cuenta la corriente que pasa elegiremos el LRD-16 clase 10A o el clase 20 Ajustaremos la corriente regulada a 10,23 A Iarranque = 5 · IFE = 5 · 10,23 = 51,15 A tiempo 5 segundos Automático Q1 Los valores normalizados de los Interruptores automáticos con curva C o D son 1, 2, 4, 6, 10, 16, 20, 25, 32, 40, 50, 63 A. Cuando tengamos la corriente nominal, por el térmico estarán pasando los 10,23 A. Aguas arriba por el automático estarán pasando los 10,23 A. Para que haya selectividad, la corriente mínima del automático será: I = 1,6 * 10,23 = 16,37 A Por tanto el calibre del automático elegido será el de 20A (valor normalizado por encima de 16,37 A). Tensión nominal: 400 V 3 polos. 𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒 𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒 = 51,15 20 = 2,6 tiempo 5s La curva deberá ser la D 20A
  • 379. Problemas M340 - 379 Universidad de Oviedo ISA - J. Alonso - I. Machón Diferencial F2 Se elige un diferencial de calibre > 1,4 * 20 => 32A y sensibilidad 30 mA Contactor KM1 y KM2 Corriente de servicio: 𝐼𝐸 = 𝐼𝑛 3 = 30,68 3 = 10,23 𝐴 Clase de servicio temporal. Tensión de servicio: <= 440 V de Schneider podría valer [11] el LC1D18BD Contactor Tesys D - 3P(3 NA) - AC-3 - <= 440 V 18 A - 24 V CC bobina consumo 5,4W con Kit de enclavamiento mecánico LAD9V2 para el KM2 y KM3 45...55 ms closing | 20...90 ms opening Categoría de empleo AC1, AC3 y AC4 Consumo 5,4 W / 24 V = 225 mA El módulo DDI 1602 aguanta Corriente/canal 0,625 A Corriente módulo 10 A Automático Q2 La fuente de alimentación entrega 60 W con una eficiencia del 82%. Por tanto consume unos 60 / 0,82 = 73,17 W que significa unos 73,17 / 230 = 0,32 A La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar pasar 9 · 0,32 = 2,86 A en los instantes iniciales. Podemos coger el automático C60 1A
  • 380. 380 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Cálculos neumáticos Como presión de alimentación, podríamos trabajar con la presión media 8 Kg/cm2 o con la más desfavorable 7 Kg/cm2 . La fuerza disponible para acelerar la masa no teniendo en cuenta ni el peso del vástago, ni del émbolo es F = P · S – FR siendo el trabajo desarrollado por ella a lo largo de toda la carrera es W = (P · S – FR )· L y como ese trabajo se convierte en la energía cinética comunicada a la masa EC = 1/2 M · v2 tenemos que (P · S – FR )· L = 1/2 M · v2 y por tanto [(7 Kg/cm2 · 9,81 N/Kg · 10000 cm2 /1 m2 ) · S - 200] · 0,5m = 1/2 · 30 Kg · (0,5m/s)2 ((686700 · S ) – 200 ) · 0,5 = 3,75  686700 · S = 207,5  S = 302,2 mm2 D = (4 · S / π )1/2 = 19,62 mm  D · 1,2 = 23,54 mm  elegimos D= 25 mm V aproximado = 2 · S · L · P = 2 · π · (D2 / 4 ) · 500 · (7+1) = 3,93 l p = ρ · g · h → 1 atm = 13.600 Kg/ m3 · 9,81 m/s2 · 0,760 m = 101.396,16 Pa 1 atm = 101.396,16 N/m2 · 1 Kg/9,81N · 1 m2 /10000 cm2 = 1,0336 kg/cm2 V exacto = [(2·D2 - d2 )/ 4 )] · π · 500 · (7 + 1,0336)/ 1,0336) · 1,05 = 287,5 · π · 500 · 6,8 · 1,05 = 3,22 l La presión más desfavorable es de 7 bares. La caída de presión para 100m es de (0,3·100) /124= 0,24 bares 1200 l/min = 0,02 m3/s Viendo el resultado sobre el nomograma, resulta una tubería de 24 mm. Sobredimensionado la tubería para posibles ampliaciones nos quedaria : 24 · 1,2 = 28.8 La más próxima normalizada es de 30 mm Para 30 mm de tubería los diversos racores suponen un exceso de: 6* 1,8 + 4*0,7 + 6* 0,4 = 16 m Por tanto la caida de presión para 100m es de (0,3·100) /(124+16) = 0,214 bares Gráficamente vemos que para la sección de 30 mm pasaría un caudal de 0.038m3 /s Por lo tanto tenemos un sobredimensionamiento de 0.038 / 0.02 = 1,9 90%
  • 381. Problemas M340 - 381 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 382. 382 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Configuración Hardware y Software Programa Control de un aporte de materiales Tabla de variables
  • 383. Problemas M340 - 383 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección “Simulación” (* Marcas necesarias para la pantalla de operador *) if %S13 then Set (MxP_Emergencia); Set ( MxP_Paro); end_If; MxP_AbrirTB := X11.x Or X4.x Or Mx_EnSobrecarga Or Mx_EnEmergencia; MxP_AbrirTA := X1.x Or X14.x Or Mx_EnSobrecarga Or Mx_EnEmergencia; MxP_ArenaB1 := (X11.x and X11.t>t#0.5s) Or (X4.x and X4.t>t#1s); MxP_ArenaB2 := (X11.x and X11.t>t#4s) Or X12.x Or (X4.x and X4.t>t#4s) Or X5.x; MxP_ArenaA1 := (X1.x and X1.t>t#0.5s) Or (X14.x and X14.t>t#1s); MxP_ArenaA2 := (X1.x and X1.t>t#4s) Or X2.x Or (X14.x and X14.t>t#4s) Or X15.x; MxP_A1 := X0.x Or X2.x Or X3.x Or X4.x Or X5.x Or X11.x Or X12.x Or X13.x Or X15.x Or Mx_EnSobrecarga Or Mx_EnEmergencia Or Mx_PonCI; MxP_A0 := X1.x Or X14.x; MxP_B1 := X0.x Or X12.x Or X13.x Or X14.x Or X15.x Or X1.x Or X2.x Or X3.x Or X5.x Or Mx_EnSobrecarga Or Mx_EnEmergencia Or Mx_PonCI; MxP_B0 := X11.x Or X4.x; Sección Preliminar (* Marcas usadas en el control Local / Distancia *) Mx_Paro := (Ix_Paro and Ix_LocDis) or (MxP_Paro and not Ix_LocDis); Mx_TAIzda := (Ix_TAIzda and Ix_LocDis) or (MxP_TAIzda and not Ix_LocDis); Mx_TBDcha := (Ix_TBDcha and Ix_LocDis) or (MxP_TBDcha and not Ix_LocDis); Mx_ParaDchaTB := (Ix_ParaDchaTB and Ix_LocDis) or (MxP_ParaDchaTB and not Ix_LocDis); Mx_ParaIzdaTA := (Ix_ParaIzdaTA and Ix_LocDis) or (MxP_ParaIzdaTA and not Ix_LocDis); Mx_A0 := (Ix_A0 and Ix_LocDis) or (MxP_A0 and not Ix_LocDis); Mx_A1 := (Ix_A1 and Ix_LocDis) or (MxP_A1 and not Ix_LocDis); Mx_B0 := (Ix_B0 and Ix_LocDis) or (MxP_B0 and not Ix_LocDis); Mx_B1 := (Ix_B1 and Ix_LocDis) or (MxP_B1 and not Ix_LocDis); Mx_Emergencia := (Ix_Emergencia and Ix_LocDis) or (MxP_Emergencia and not Ix_LocDis); Mx_Termico := (Ix_Termico and Ix_LocDis) or (MxP_Termico and not Ix_LocDis); Mx_Rearme := (Ix_Rearme and Ix_LocDis) or (MxP_Rearme and not Ix_LocDis); (* condición de Emergencia: se cierra la tolva que esté abierta y se para inmediatamente el motor, aunque quede todavía material en la cinta. El sistema no evoluciona hasta que, una vez subsanado el problema; se desbloque la seta y se pulse RESET. Se encenderá una lámpara de color rojo LRoja a la vez que la blanca *) if not Mx_Emergencia then set (Mx_EnEmergencia); Mx_CerrarTajaderas := Clearchart (Control, true); (*cierra tajaderas y para el motor*) end_if;
  • 384. 384 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón if Mx_Termico then set(Mx_EnSobrecarga); Mx_CerrarTajaderas := Clearchart (Control, true); (*cierra tajaderas y para el motor*) end_if; if Mx_Rearme then reset (Mx_EnSobrecarga); reset (Mx_EnEmergencia); reset (Mx_MalReedA); reset (Mx_MalReedB); reset (Mx_ReedCortocircuitado); Mx_PonCI := Clearchart (Control, true); (*cierra tajaderas y para el motor*) end_if; if Mx_PonCI And Mx_A1 and Mx_B1 then reset (Mx_PonCI); set (Mx_PuestoCI); end_if; if Mx_PuestoCI and not Mx_Rearme then Reset (Mx_PuestoCI); setstep(X0); end_if; (* gestión de errores *) if (X1.x and x1.t > t#4s and not Mx_A0) OR (X2.x and X2.t > t#4s and not Mx_A1) OR (X14.x and X14.t > t#4s and not Mx_A0) OR (X15.x and X15.t > t#4s and not Mx_A1) then set (Mx_MalReedA); end_if; if (X11.x and x11.t > t#4s and not Mx_B0) OR (X12.x and X12.t > t#4s and not Mx_B1) OR (X4.x and X4.t > t#4s and not Mx_B0) OR (X5.x and X5.t > t#4s and not Mx_B1) then set (Mx_MalReedB); end_if; if (Mx_A0 and Mx_A1) or (Mx_B0 and Mx_B1) then set (Mx_ReedCortocircuitado); end_if; If Mx_MalReedA Or Mx_MalReedB OR Mx_ReedCortocircuitado then Mx_CerrarTajaderas := Clearchart (Control, true); (*cierra tajaderas y para el motor*) end_if;
  • 385. Problemas M340 - 385 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección “Transiciones” (* Programación de las transiciones *) Tr2_3 := X2.t > t#15s; Tr3_4 := X3.t >t#0.2s; Tr5_0 := X5.t > t#15s; Tr12_13 := X12.t > t#015s; Tr13_14 := X13.t >t#0.2s; Tr15_0 := X15.t > t#15s; Sección “Salidas” Qx_AMenos := (X1.x or X14.x); Qx_BMenos := (X11.x or X4.x); Qx_MotIzda := (X1.x or X2.x or X14.x or X15.x); Qx_MotDcha := (X11.x or X12.x or X4.x or X5.x); Qx_LVerde := not X0.x and Not Mx_EnEmergencia and Not Mx_EnSobrecarga; Qx_LAmbar := Mx_EnSobrecarga; Qx_LRoja := Mx_EnEmergencia; (* Qx_LBlanca estaría en paralelo con la alimentación del automáta *)
  • 386. 386 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón CHART ”Control” Tr15_0 :0 X15.t >t#15 s Qx_MotIzda Qx_LVerde Qx_AMenos Qx_MotIzda Qx_LVerde Tr13_14 := X13.t >t#0,2 s Qx_LVerde Tr12_13 := X12.t >t#15 s Qx_MotDcha Qx_LVerde Qx_BMenos Qx_MotDcha Qx_LVerde Tr5_0 := X5.t >t#15 s Qx_MotDcha Qx_LVerde Qx_BMenos Qx_MotDcha Qx_LVerde Tr3_4 := X3.t >t#0,2 s Qx_LVerde Qx_MotIzda Qx_LVerde Qx_AMenos Qx_MotIzda Qx_LVerde Tr2_3 X2.t >t#15 s (*LBlanca, Parado, Tajaderas cerradas*) X0 X1 X2 X3 X4 X5 X11 X12 X13 X14 X15 MxP_TAIzda MxP_ParaDchaTB Tr2_3 Tr3_4 NOT MxP_Paro Tr5_0 MxP_TBDcha MxP_ParaIzdaTA Tr12_13 Tr13_14 NOT MxP_Paro Tr15_0 X0 X0
  • 387. Problemas M340 - 387 Universidad de Oviedo ISA - J. Alonso - I. Machón Lista de mensajes Pantalla de explotación A continuación podemos ver parte de los elementos gráficos que componen la pantalla de operador.
  • 388. 388 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 389. Problemas M340 - 389 Universidad de Oviedo ISA - J. Alonso - I. Machón Prob. 10.02 · Control de un aporte de materiales. CDE A ET IG Control de un sistema de aporte de material mediante PLC. La cinta transportadora, será movida mediante un motor con dos sentidos de giro. El motor de Pm = 15 KW, Un = 400 V, η= 84%, cos φ= 0,84 y 2910 rpm. Arranque estrella/triángulo con corriente de arranque 5 veces la nominal. El tiempo de arranque de paso de E/T es 5s. Con térmico actuando midiendo la corriente de fase. En la mitad de la cinta transportadora hay dos tolvas que descargan material A o B sobre la cinta. La apertura y cierre de las tolvas será controlada mediante 2 CDE y sus respectivas electroválvulas monoestables [Qx_Menos Abrir A, Qx_BMenos Abrir B] y posición inicial de vástago extendido. En función del tipo de material que se vaya a transportar, la cinta deberá moverse en un sentido o en otro. Cuando se accione un pulsador S1 [Ix_TAIzda NA], se abrirá la tolva A y la cinta se desplazará hacia la izquierda. Cuando se accione un pulsador S2 [Ix_ParaDchaTB NA], se cerrará inmediatamente la tolva A, y tras 15 segundos, que es el tiempo que tarda el material en ser transportado por la cinta hasta el final de esta y ser evacuado, se invertirá el sentido de giro del motor y se abrirá la tolva B, para llevar el material a un vagón al otro extremo de la cinta. Si, por el contario, se acciona S3 [Ix_TBDcha (NA)], el proceso será el inverso: se abrirá la tolva B y la cinta se desplazará hacia la derecha. Cuando se accione un pulsador S4 [Ix_ParaIzdaTA NA], se cerrará inmediatamente la tolva B, y tras 15 segundos, que es el tiempo que tarda el material en ser transportado por la cinta hasta el final de esta y ser evacuado, se invertirá el sentido de giro del motor y se abrirá la tolva A, para llevar el material a un vagón al otro extremo de la cinta. Cuando se pulsa un pulsador de paro S5 [Ix_Paro NC], se cierra la tolva que esté abierta (en el proceso final una vez realizada la inversión de giro) y, tras quince segundos se para el motor y va a CI. Si se activa una seta de emergencia, S6 [Ix_Emergencia NC], se cierra la tolva que esté abierta y se para inmediatamente el motor, aunque quede todavía material en la cinta. No pudiendo evolucionar el sistema hasta que, una vez subsanado el problema; se desbloque la seta y se pulse Reset. Se encenderá una lámpara de color rojo LRoja a la vez que la blanca. Condiciones iniciales [CI]: El sistema estará parado, con las tajaderas cerradas, vástagos de los cilindros extendidos y una lámpara blanca encendida cuando el sistema esté con tensión. Una lámpara verde [Qx_LVerde] se encenderá cuando el sistema esté en funcionamiento (moviéndose las cintas). Alarmas: Si saltase la protección térmica del motor (rearme manual), deberá parar toda la instalación y cerrar las tajaderas y encenderse exclusivamente una lámpara Ámbar [Qx_LAmbar]. No pudiendo evolucionar el sistema hasta que, una vez subsanado el problema; se Resetee el térmico y se pulse S7 [Ix_Reset NO] lo cual le llevará a CI. Si un relé Reed queda abierto o cortocircuitado, deberá parar toda la instalación, cerrar las tajaderas, encenderse exclusivamente una lámpara Roja [Qx_LRoja] y se indicará mediante un mensaje en la pantalla de operación. No pudiendo evolucionar el sistema hasta que, una vez subsanado el problema; se pulse S7 [Ix_Reset NO] lo cual le llevará a Condiciones Iniciales. El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0400, fuente de alimentación BMX CPS 2000 (24VDC 60W, eficiencia del 82%) alimenta a todo el conjunto, módulo 1 de 16
  • 390. 390 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón entradas digitales de 24 VCC PNP módulo BMX DDI 1602, módulo 2 de 16 salidas por relé BMX DRA 1605 (8 + 8) alimentado a 24 VCC. Los cilindros neumáticos mueven unas tajaderas y sus respectivos vástagos que pesan 30 Kg. Deberán vencer un rozamiento de 200 N con una velocidad de 50 cm/s siendo la carrera es de 50 cm. El compresor trabaja entre 7 y 9 Kg/cm2 y alimenta una instalación de 124 m con un caudal de 1.200 l/min de aire libre con una caída de presión de no más de 0,3 bares en el extremo del tubo. La tubería tiene 6 codos de 90°, 4 codos Elbow y 6 "T" estándar. Se pide:  Diseñar el esquema de mando y de fuerza del sistema.  Elegir los elementos de protección del sistema de mando y de fuerza.  Indicar sobre las gráficas del térmico y del automático CLARAMENTE, la corriente de arranque, la corriente de regulación del térmico y la corriente nominal.  Diámetro los cilindros, aire consumido por ciclo: exacto y aproximado ( Hg 13.600 Kg/ m3 ).  Sección de la tubería.  Programa de mando. Esquema de Fuerza
  • 391. Problemas M340 - 391 Universidad de Oviedo ISA - J. Alonso - I. Machón Giro a derecha Se establece la estrella cerrando los contactores KM1 y KM2 al cabo de un tiempo se abre la estrella (contactor KM1) y entra el triángulo cerrando el contactor KM4. KM2 L1 L2 L3 KM3 L3 L2 L1 KM4 L1 L2 L3 KM4 L3 L2 L1 Giro a izquierda Se establece la estrella cerrando los contactores KM1 y KM3 al cabo de un tiempo se abre la estrella (contactor KM1) y entra el triángulo cerrando el contactor KM4.
  • 392. 392 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de Mando Relé térmico F1
  • 393. Problemas M340 - 393 Universidad de Oviedo ISA - J. Alonso - I. Machón 𝜂 = 𝑃𝑢 𝑃 𝑒 = 𝑃 𝑢 √3 𝑈𝑛 𝐼𝑛 cos  𝐼𝑛 = 𝑃 𝑢 𝜂 √3 𝑈𝑛 cos  = 15000 0,84 · √3 · 400 · 0,84 = 30,68 𝐴 𝐼f∆ = 𝐼n √3 = 30,68 √3 ≈ 17,71 𝐴 𝐼𝑓𝐸 = 𝐼𝑛 3 = 30,68 3 = 10,23 𝐴 Teniendo en cuenta la corriente que pasa en triángulo, que es la máxima, elegiremos el LRD-21 clase 10A Ajustaremos la corriente regulada a 17,71 A Iarranque = 5 · IFE = 5 · 10,23 = 51,15 A tiempo 5 segundos se observa que puede pasar por el térmico sin problemas Ia = 51,15 / 17,71 = 2,9 Ir Automático Q1 Los valores normalizados de los Interruptores automáticos con curva C o D son 1, 2, 4, 6, 10, 16, 20, 25, 32, 40, 50, 63 A. Cuando tengamos la corriente nominal, por el térmico estarán pasando los 17,71 A. Aguas arriba por el automático estarán pasando los 30,68 A. Para que haya selectividad, la corriente mínima del automático será: I = 1,6 * 30,68 = 49,09 A Por tanto el calibre del automático elegido será el de 50A (valor normalizado por encima de 49,09 A). Tensión nominal: 400 V 3 polos. 𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒 𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒 = 51,15 50 = 1,02 tiempo 5s La curva deberá ser la C o la D 50A
  • 394. 394 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Diferencial F2 Se elige un diferencial de calibre > 1,4 * 50 => 80A y sensibilidad 30 mA Automático Q2 La fuente de alimentación entrega 60 W con una eficiencia del 82%. Por tanto consume unos 60 / 0,82 = 73,17 W que significa unos 73,17 / 230 = 0,32 A La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar pasar 9 · 0,32 = 2,86 A en los instantes iniciales. Podemos coger el automático C60 1A Contactor KM1 Corriente de servicio: 𝐼𝐸 = 𝐼𝑛 3 = 30,68 3 = 10,23 𝐴 Clase de servicio temporal. Tensión de servicio: <= 440 V De Schneider podría valer [11] el LC1D12BD Contactor Tesys D - 3P(3 NA) - AC-3 - <= 440 V 12 A - 24 V CC bobina consumo 5,4W 45...55 ms closing | 20...90 ms opening Categoría de empleo AC1, AC3 y AC4 Consumo 5,4 W / 24 V = 225 mA El módulo DDI 1602 aguanta Corriente/canal 0,625 A Corriente módulo 10 A Contactores KM2, KM3 Corriente de servicio: 𝐼N = 30,68 A Tensión de servicio: <=440 V de Schneider podría valer [11] el LC2D32BD Contactor Tesys D - 3P(3 NA) - AC-3 - <= 440 V 18 A - 24 V CC bobina consumo 5,4W con Kit de enclavamiento mecánico LAD9V2 para el KM2 y KM3 45...55 ms closing | 20...90 ms opening Categoría de empleo AC1, AC3 y AC4 Contactores KM4 Corriente de servicio: 𝐼∆ = 𝐼n √3 = 30,68 √3 ≈ 17,71 𝐴 Tensión de servicio: <=440 V de Schneider podría valer [11] el LC1D18BD Contactor Tesys D - 3P(3 NA) - AC-3 - <= 440 V 18 A - 24 V CC bobina consumo 5,4W con Kit de enclavamiento mecánico LAD9V2 para el KM2 y KM3 45...55 ms closing | 20...90 ms opening Categoría de empleo AC1, AC3 y AC4
  • 395. Problemas M340 - 395 Universidad de Oviedo ISA - J. Alonso - I. Machón Cálculos neumáticos Como presión de alimentación, podríamos trabajar con la presión media 8 Kg/cm2 o con la más desfavorable 7 Kg/cm2 . La fuerza disponible para acelerar la masa no teniendo en cuenta ni el peso del vástago, ni del émbolo es F = P · S – FR siendo el trabajo desarrollado por ella a lo largo de toda la carrera de W = (P · S – FR )· L y como ese trabajo se convierte en la energía cinética comunicada a la masa EC = 1/2 M · v2 tenemos que (P · S – FR )· L = 1/2 M · v2 y por lo tanto [(7 Kg/cm2 · 9,81 N/Kg · 10000 cm2 /1 m2 ) · S - 200] · 0,5m = 1/2 · 30 Kg · (0,5m/s)2 ((686700 · S ) – 200 ) · 0,5 = 3,75  686700 · S = 207,5  S = 302,2 mm2 D = (4 · S / π )1/2 = 19,62 mm  D · 1,2 = 23,54 mm  elegimos D= 25 mm V aproximado = 2 · S · L · P = 2 · π · (D2 / 4 ) · 500 · (7+1) = 3,93 l p = ρ · g · h → 1 atm = 13.600 Kg/ m3 · 9,81 m/s2 · 0,760 m = 101.396,16 Pa 1 atm = 101.396,16 N/m2 · 1 Kg/9,81N · 1 m2 /10000 cm2 = 1,0336 kg/cm2 V exacto = [(2·D2 - d2 )/ 4 )] · π · 500 · (7 + 1,0336)/ 1,0336) · 1,05 = 287,5 · π · 500 · 6,8 · 1,05 = 3,22 l La presión más desfavorable es de 7 bares. La caída de presión para 100m es de (0,3·100) /124= 0,24 bares 1200 l/min = 0,02 m3 /s Viendo el resultado sobre el nomograma, resulta una tubería de 24 mm. Sobredimensionado la tubería para posibles ampliaciones nos quedaria : 24 · 1,2 = 28.8 La más próxima normalizada es de 30 mm Para 30 mm de tubería los diversos racores suponen un exceso de: 6* 1,8 + 4*0,7 + 6* 0,4 = 16 m Por tanto la caida de presión para 100m es de (0,3·100) /(124+16) = 0,214 bares Gráficamente vemos que para la sección de 30 mm pasaría un caudal de 0.038m3 /s Por lo tanto tenemos un sobredimensionamiento de 0.038 / 0.02 = 1,9 90%
  • 396. 396 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 397. Problemas M340 - 397 Universidad de Oviedo ISA - J. Alonso - I. Machón Configuración Hardware y Software Programa Tabla de variables
  • 398. 398 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección “Simulación” (* Marcas necesarias para la pantalla de operador *) if %S13 then Set (MxP_Emergencia); Set ( MxP_Paro); end_If; MxP_AbrirTB := X11.x Or X12.x Or X6.x Or X7.x Or X8.x; MxP_AbrirTA := X1.x Or X2.x Or X16.x Or X17.x Or X18.x; MxP_ArenaB1 := X11.x Or X12.x Or X13.X Or (X6.x and X6.t >t#0.5s) Or X8.x; MxP_ArenaB2 := X12.x Or X13.X Or X14.x Or X7.x Or X8.x Or X9.x; MxP_ArenaA1 := X1.x Or X2.x Or X3.X Or (X16.x and X16.t >t#0.5s) Or X18.x; MxP_ArenaA2 := X2.x Or X3.X Or X4.x Or X17.x Or X18.x Or X19.x; MxP_A1 := X0.x Or X4.x Or X5.x Or X6.x Or X7.x Or X8.x Or X9.x Or X11.x Or X12.x Or X13.x Or X14.x Or X15.x Or X19.x Or Mx_EnSobrecarga Or Mx_EnEmergencia Or Mx_PonCI; MxP_A0 := X1.x Or X2.x Or X3.x Or X16.x Or X17.x Or X18.x; MxP_B1 := X0.x Or X1.x Or X2.x Or X3.x Or X4.x Or X5.x Or X9.x Or X14.x Or X15.x Or X16.x Or X17.x Or X18.x Or X19.x Or Mx_EnSobrecarga Or Mx_EnEmergencia Or Mx_PonCI; MxP_B0 := X11.x Or X12.x Or X13.x Or X6.x Or X7.x Or X8.x; Mx_Descarga := X4.x Or X9.x Or X14.x Or X19.x; Sección Preliminar (* Marcas usadas en el control Local / Distancia *) Mx_Paro := (Ix_Paro and Ix_LocDis) or (MxP_Paro and not Ix_LocDis); Mx_TAIzda := ( Ix_TAIzda and Ix_LocDis) or (MxP_TAIzda and not Ix_LocDis); Mx_TBDcha := (Ix_TBDcha and Ix_LocDis) or (MxP_TBDcha and not Ix_LocDis); Mx_ParaDchaTB := (Ix_ParaDchaTB and Ix_LocDis) or (MxP_ParaDchaTB and not Ix_LocDis); Mx_ParaIzdaTA := (Ix_ParaIzdaTA and Ix_LocDis) or (MxP_ParaIzdaTA and not Ix_LocDis); Mx_A0 := (Ix_A0 and Ix_LocDis) or (MxP_A0 and not Ix_LocDis); Mx_A1 := (Ix_A1 and Ix_LocDis) or (MxP_A1 and not Ix_LocDis); Mx_B0 := (Ix_B0 and Ix_LocDis) or (MxP_B0 and not Ix_LocDis); Mx_B1 := (Ix_B1 and Ix_LocDis) or (MxP_B1 and not Ix_LocDis); Mx_Emergencia := (Ix_Emergencia and Ix_LocDis) or (MxP_Emergencia and not Ix_LocDis); Mx_Termico := (Ix_Termico and Ix_LocDis) or (MxP_Termico and not Ix_LocDis); Mx_Rearme := (Ix_Rearme and Ix_LocDis) or (MxP_Rearme and not Ix_LocDis); (* condición de Emergencia: se cierra la tolva que esté abierta y se para inmediatamente el motor, aunque quede todavía material en la cinta. El sistema no evoluciona hasta que, una vez subsanado el problema; se desbloque la seta y se pulse Rearme. Se encenderá LRoja a la vez que Lblanca *) If not Mx_Emergencia then set (Mx_EnEmergencia); reset (Qx_AMenos); reset (Qx_BMenos); (* cierra tajaderas *) Mx_CerrarTajaderas := Clearchart (Control, true); (* además para el motor *) end_if;
  • 399. Problemas M340 - 399 Universidad de Oviedo ISA - J. Alonso - I. Machón (* fallo térmico: se cierra la tolva que esté abierta y se para inmediatamente el motor, aunque quede todavía material en la cinta. No pudiendo evolucionar el sistema hasta que, una vez subsanado el problema; se Resetee el térmico y se pulse Rearme. Se encenderá una lámpara de color ámbar a la vez que la blanca *) if Mx_Termico then set(Mx_EnSobrecarga); Mx_CerrarTajaderas := Clearchart (Control, true); (*cierra tajaderas y para el motor *) end_if; if Mx_Rearme then reset (Mx_EnSobrecarga); reset (Mx_EnEmergencia); reset (Mx_MalReedA); reset (Mx_MalReedB); reset (Mx_ReedCortocircuitado); Mx_PonCI := Clearchart (Control, true); end_if; if Mx_PonCI and Mx_A1 and Mx_B1 then reset (Mx_PonCI); set (Mx_PuestoCI); end_if; if Mx_PuestoCI and not Mx_Rearme then Reset (Mx_PuestoCI); setstep(X0); end_if; (* gestión de errores *) if (X1.x and x1.t > t#4s and not Mx_A0) OR (X4.x and x4.t > t#4s and not Mx_A1) OR (X16.x and x16.t > t#4s and not Mx_A0) OR (X19.x and x19.t > t#4s and not Mx_A1) then set (Mx_MalReedA); end_if; if (X6.x and x6.t > t#4s and not Mx_B0) OR (X9.x and x9.t > t#4s and not Mx_B1) OR (X11.x and x11.t > t#4s and not Mx_B0) OR (X14.x and x14.t > t#4s and not Mx_B1) then set (Mx_MalReedB); end_if; if (Mx_A0 and Mx_A1) or (Mx_B0 and Mx_B1) then set (Mx_ReedCortocircuitado); end_if; If Mx_MalReedA Or Mx_MalReedB OR Mx_ReedCortocircuitado then Mx_CerrarTajaderas := Clearchart (Control, true); (*cierra tajaderas y para el motor *) end_if;
  • 400. 400 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección “Transiciones” (* Programación de las transiciones *) Tr1_2 := X1.t > t#5s; Tr2_3 := X2.t > t#0.1s; Tr4_5 := X4.t > t#15s; Tr5_6 := X5.t >t#0.2s; Tr6_7 := X6.t >t#5s; Tr7_8 := X7.t > t#0.1s; Tr9_0 := X9.t > t#15s; Tr11_12 := X11.t > t#5s; Tr12_13 := X12.t > t#0.1s; Tr14_15 := X14.t > t#15s; Tr15_16 := X15.t >t#0.2s; Tr16_17 := X16.t >t#5s; Tr17_18 := X17.t > t#0.1s; Tr19_0 := X19.t > t#15s; Sección “Salidas” Qx_AMenos := (X1.x or X2.x or X3.x or X16.x or X17.x or X18.x); Qx_BMenos := (X11.x or X12.x or X13.x or X6.x or X7.x or X8.x); Qx_MotIzda := (X1.x or X2.x or X3.x or X4.x or X16.x or X17.x or X18.x or X19.x); Qx_MotDcha := (X11.x or X12.x or X13.x or X14.x or X6.x or X7.x or X8.x or X9.x); Qx_KME := (X1.x or X6.x or X11.x or X16.x); Qx_KMT := (X3.x or X4.x or X8.x or X9.x or X13.x or X14.x or X18.x or X19.x); Qx_LVerde := not X0.x and Not Mx_EnEmergencia and Not Mx_EnSobrecarga; Qx_LAmbar := Mx_EnSobrecarga; Qx_LRoja := Mx_EnEmergencia; (* LBlanca estaría en paralelo con la alimentación del autómata *) (* KME = KM1 *) (* KMT = KM4 *) (* MotIzda = KM2 *) (* MotDcha = KM3 *)
  • 401. Problemas M340 - 401 Universidad de Oviedo ISA - J. Alonso - I. Machón CHART ”Control”
  • 402. 402 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 403. Problemas M340 - 403 Universidad de Oviedo ISA - J. Alonso - I. Machón Lista de mensajes Pantalla de explotación A continuación podemos ver parte de los elementos gráficos que componen la pantalla de operador.
  • 404. 404 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 405. Problemas M340 - 405 Universidad de Oviedo ISA - J. Alonso - I. Machón Prob. 10.03 Control de un aporte de materiales. CSE A ET IG La cinta transportadora, será movida mediante un motor con dos sentidos de giro. El motor de Pm = 10 KW, Un = 400 V, η= 85%, cos φ= 0,86 y 2910 rpm. Arranque estrella/triángulo con corriente de arranque 5 veces la nominal. El tiempo de arranque de paso de E/T es 5s. Con térmico actuando midiendo la corriente de fase. En la mitad de la cinta transportadora hay dos tolvas que descargan material A o B sobre la cinta. La apertura y cierre de las tolvas será controlada mediante 2 CSE con vástago extendido y sus respectivas electroválvulas monoestables [Qx_Menos Abrir A, Qx_BMenos Abrir B] y posición inicial de vástago extendido. En función del tipo de material que se vaya a transportar, la cinta deberá moverse en un sentido o en otro. Cuando se accione un pulsador S1 [Ix_TAIzda NA], se abrirá la tolva A y la cinta se desplazará hacia la izquierda. Cuando se accione un pulsador S2 [Ix_ParaDchaTB NA], se cerrará inmediatamente la tolva A, y tras 15 segundos, que es el tiempo que tarda el material en ser transportado por la cinta hasta el final de esta y ser evacuado, se invertirá el sentido de giro del motor y se abrirá la tolva B, para llevar el material a un vagón al otro extremo de la cinta. Si, por el contario, se acciona S3 [Ix_TBDcha (NA)], el proceso será el inverso: se abrirá la tolva B y la cinta se desplazará hacia la derecha. Cuando se accione un pulsador S4 [Ix_ParaIzdaTA NA], se cerrará inmediatamente la tolva B, y tras 15 segundos, que es el tiempo que tarda el material en ser transportado por la cinta hasta el final de esta y ser evacuado, se invertirá el sentido de giro del motor y se abrirá la tolva A, para llevar el material a un vagón al otro extremo de la cinta. Cuando se pulsa un pulsador de paro S5 [Ix_Paro NC], se cierra la tolva que esté abierta (en el proceso final una vez realizada la inversión de giro) y, tras quince segundos se para el motor y va a CI. Si se activa una seta de emergencia, S6 [Ix_Emergencia NC], se cierra la tolva que esté abierta y se para inmediatamente el motor, aunque quede todavía material en la cinta. No pudiendo evolucionar el sistema hasta que, una vez subsanado el problema; se desbloque la seta y se pulse Reset. Se encenderá una lámpara de color rojo LRoja a la vez que la blanca. Condiciones iniciales [CI]: El sistema estará parado, con las tajaderas cerradas, vástagos de los cilindros extendidos y una lámpara blanca encendida cuando el sistema esté con tensión. Una lámpara verde [Qx_LVerde] se encenderá cuando el sistema esté en funcionamiento (moviéndose las cintas). Alarmas: Si saltase la protección térmica del motor (rearme manual), deberá parar toda la instalación y cerrar las tajaderas y encenderse exclusivamente una lámpara Ámbar [Qx_LAmbar]. No pudiendo evolucionar el sistema hasta que, una vez subsanado el problema; se Resetee el térmico y se pulse S7 [Ix_Reset NO] lo cual le llevará a CI. Se detectará cuando un relé Reed quede cortocircuitado. Si esto sucede, el sistema seguirá funcionando pero Si un relé Reed queda abierto o cortocircuitado, deberá parar toda la instalación, cerrar las tajaderas, encenderse exclusivamente una lámpara Roja [Qx_LRoja] y se indicará mediante un mensaje en la pantalla de operación. No pudiendo evolucionar el sistema hasta que, una vez subsanado el problema; se pulse S7 [Ix_Reset NO] lo cual le llevará a Condiciones Iniciales. El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0400, fuente de alimentación BMX CPS 2000 (24VDC 60W, eficiencia del 82%) alimenta a todo el conjunto, módulo 1 de 16
  • 406. 406 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón entradas digitales de 24 VCC PNP módulo BMX DDI 1602, módulo 2 de 16 salidas por relé BMX DRA 1605 (8 + 8) alimentado a 24 VCC. Se pide:  Diseñar el esquema de mando y de fuerza del sistema.  Elegir los elementos de protección del sistema de mando y de fuerza.  Indicar sobre las gráficas del térmico y del automático CLARAMENTE, la corriente de arranque, la corriente de regulación del térmico y la corriente nominal.  Programa de mando.
  • 407. Problemas M340 - 407 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de Fuerza Esquema de mando
  • 408. 408 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Relé térmico F1 𝜂 = 𝑃𝑢 𝑃 𝑒 = 𝑃 𝑢 √3 𝑈𝑛 𝐼𝑛 cos  𝐼𝑛 = 𝑃 𝑢 𝜂 √3 𝑈𝑛 cos  = 10000 0,85 · √3 · 400 · 0,86 = 𝟏𝟗, 𝟕𝟓 𝑨 𝐼f∆ = 𝐼n √3 = 19.75 √3 ≈ 𝟏𝟏, 𝟒 𝑨 𝐼𝑓𝐸 = 𝐼𝑛 3 = 19.75 3 = 𝟔, 𝟓𝟖 𝑨 Teniendo en cuenta la corriente que pasa en triángulo, que es la máxima, elegiremos el LRD-16 clase 10A Ajustaremos la corriente regulada a 11,4 A Iarranque = 5 · IFE = 5 · 6,58 = 32,9 A tiempo 5 segundos se observa que puede pasar por el térmico sin problemas 32.9 / 11.4 = 2,9 Ir Automático Q1 Cuando tengamos la corriente nominal, por el térmico estarán pasando los 11,4 A. Aguas arriba por el automático estarán pasando los 19,75 A. Para que haya selectividad, la corriente mínima del automático será: I = 1,6 * 19,75 = 31,6 A Por tanto el calibre del automático elegido será el de 32A (valor normalizado por encima de 31,6 A). Tensión nominal: 400 V 3 polos. 𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒 𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒 = 32,9 32 = 1,03 tiempo 5s La curva deberá ser la C o la D 50A
  • 409. Problemas M340 - 409 Universidad de Oviedo ISA - J. Alonso - I. Machón Diferencial F2 Se elige un diferencial de calibre > 1,4 * 50A => 80A y sensibilidad 30 mA Automático Q2 La fuente de alimentación entrega 60 W con una eficiencia del 82%. Por tanto consume unos 60 / 0,82 = 73,17 W que significa unos 73,17 / 230 = 0,32 A La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar pasar 9 · 0,32 = 2,86 A en los instantes iniciales. Podemos coger el automático C60 1A Contactor KM1 Corriente de servicio: 𝐼𝐸 = 𝐼𝑛 3 = 19,75 3 = 6,58 𝐴 Clase de servicio temporal. Tensión de servicio: <= 440 V De Schneider podría valer [11] el LC1D09BD Contactor Tesys D - 3P(3 NA) - AC-3 - <= 440 V 12 A - 24 V CC bobina consumo 5,4W 53...72 ms closing | 16...24 ms opening Categoría de empleo AC1, AC3 y AC4 Consumo 5,4 W / 24 V = 225 mA El módulo DDI 1602 aguanta Corriente/canal 0,625 A Corriente módulo 10 A Contactores KM2, KM3 Corriente de servicio: 𝐼N = 19,75 A Tensión de servicio: <=440 V de Schneider podría valer [11] el LC2D25BD Contactor Tesys D - 3P(3 NA) - AC-3 - <= 440 V 18 A - 24 V CC bobina consumo 5,4W con Kit de enclavamiento mecánico LAD9V2 para el KM2 y KM3 45...55 ms closing | 20...90 ms opening Categoría de empleo AC1, AC3 y AC4
  • 410. 410 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Contactores KM4 Corriente de servicio: 𝐼∆ = 𝐼n √3 = 19,75 √3 ≈ 11,4 𝐴 Tensión de servicio: <=440 V de Schneider podría valer [11] el LC1D12BD Contactor Tesys D - 3P(3 NA) - AC-3 - <= 440 V 18 A - 24 V CC bobina consumo 5,4W con Kit de enclavamiento mecánico LAD9V2 para el KM2 y KM3 45...55 ms closing | 20...90 ms opening Categoría de empleo AC1, AC3 y AC4 Configuración Hardware y Software Tabla de variables
  • 411. Problemas M340 - 411 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección “Simulación” (* Marcas necesarias para la pantalla de operador *) if %S13 then Set (MxP_Emergencia); set (MxP_Paro); end_If; MxP_AbrirTB := X11.x Or X12.x Or X6.x Or X7.x Or X8.x; MxP_AbrirTA := X1.x Or X2.x Or X16.x Or X17.x Or X18.x; MxP_ArenaB1 := X11.x Or X12.x Or X13.X Or(X6.x and X6.t >t#0.5s) Or X7.x Or X8.x; MxP_ArenaB2 := X12.x Or X13.X Or X14.x Or X7.x Or X8.x Or X9.x; MxP_ArenaA1 := X1.x Or X2.x Or X3.X Or (X16.x and X16.t >t#0.5s) Or X17.x Or X18.x; MxP_ArenaA2 := X2.x Or X3.X Or X4.x Or X17.x Or X18.x Or X19.x; MxP_A1 := X0.x Or X4.x Or X5.x Or X6.x Or X7.x Or X8.x Or X9.x Or X11.x Or X12.x Or X13.x Or X14.x Or X15.x Or X19.x Or Mx_EnSobrecarga Or Mx_EnEmergencia Or Mx_PonCI; MxP_A0 := X1.x Or X2.x Or X3.x Or X16.x Or X17.x Or X18.x; MxP_B1 := X0.x Or X1.x Or X2.x Or X3.x Or X4.x Or X5.x Or X9.x Or X14.x Or X15.x Or X16.x Or X17.x Or X18.x Or X19.x Or Mx_EnSobrecarga Or Mx_EnEmergencia Or Mx_PonCI; MxP_B0 := X11.x Or X12.x Or X13.x Or X6.x Or X7.x Or X8.x; MxP_Descarga := X4.x OR X9.x Or X14.X Or X19.x; Sección Preliminar (* Marcas usadas en el control Local / Distancia *) Mx_Paro := (Ix_Paro and Ix_LocDis) or (MxP_Paro and not Ix_LocDis); Mx_TAIzda := (Ix_TAIzda and Ix_LocDis) or (MxP_TAIzda and not Ix_LocDis); Mx_TBDcha := (Ix_TBDcha and Ix_LocDis) or (MxP_TBDcha and not Ix_LocDis); Mx_ParaDchaTB := (Ix_ParaDchaTB and Ix_LocDis) or (MxP_ParaDchaTB and not Ix_LocDis); Mx_ParaIzdaTA := (Ix_ParaIzdaTA and Ix_LocDis) or (MxP_ParaIzdaTA and not Ix_LocDis); Mx_A0 := (Ix_A0 and Ix_LocDis) or (MxP_A0 and not Ix_LocDis); Mx_A1 := (Ix_A1 and Ix_LocDis) or (MxP_A1 and not Ix_LocDis); Mx_B0 := (Ix_B0 and Ix_LocDis) or (MxP_B0 and not Ix_LocDis); Mx_B1 := (Ix_B1 and Ix_LocDis) or (MxP_B1 and not Ix_LocDis); Mx_Emergencia := (Ix_Emergencia and Ix_LocDis) or (MxP_Emergencia and not Ix_LocDis); Mx_Termico := (Ix_Termico and Ix_LocDis) or (MxP_Termico and not Ix_LocDis); Mx_Rearme := (Ix_Rearme and Ix_LocDis) or (MxP_Rearme and not Ix_LocDis); (* condición de Emergencia: se cierra la tolva que esté abierta y se para inmediatamente el motor, aunque quede todavía material en la cinta. El sistema no evoluciona hasta que, una vez subsanado el problema; se desbloque la seta y se pulse RESET. Se encenderá una lámpara de color rojo LRoja a la vez que la blanca *) If not Mx_Emergencia Then Set (Mx_EnEmergencia);
  • 412. 412 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Mx_CerrarTajaderas := Clearchart (Control, true); (* válvulas monoestables, cilindros SE vástago extendido *) End_If; (* fallo térmico: se cierra la tolva que esté abierta y se para inmediatamente el motor, aunque quede todavía material en la cinta. No pudiendo evolucionar el sistema hasta que, una vez subsanado el problema; se Resetee el térmico y se pulse RESET. Se encenderá una lámpara de color ámbar a la vez que la blanca *) If Mx_Termico Then set(Mx_EnSobrecarga); Mx_CerrarTajaderas := Clearchart (Control, true); End_If; If RE(Mx_Rearme) Then Reset (Mx_EnSobrecarga); Reset (Mx_EnEmergencia); Reset (Mx_MalReedA); Reset (Mx_MalReedB); Reset (Mx_ReleCortocircuitado); Mx_PonCI := Initchart (Control, true); End_If; (* gestión de errores *) If (X1.x and x1.t > t#4s and not Mx_A0) OR (X4.x and x4.t > t#4s and not Mx_A1) OR (X16.x and x16.t > t#4s and not Mx_A0) OR (X19.x and x19.t > t#4s and not Mx_A1) then set (Mx_MalReedA); end_if; If (X6.x and x6.t > t#4s and not Mx_B0) OR (X9.x and x9.t > t#4s and not Mx_B1) OR (X11.x and x11.t > t#4s and not Mx_B0) OR (X14.x and x14.t > t#4s and not Mx_B1) then set (Mx_MalReedB); end_if; If (Mx_A0 And Mx_A1) Or (Mx_B0 And Mx_B1) Then Set (Mx_ReleCortocircuitado); End_if; If Mx_MalReedA Or Mx_MalReedB OR Mx_ReedCortocircuitado then reset (Qx_AMenos); reset (Qx_BMenos); (* cierra tajaderas *) Mx_CerrarTajaderas := Clearchart (Control, true); (* además para el motor *) end_if; Sección “Transiciones” Tr1_2 := X1.t > t#5s; Tr11_12 := X11.t > t#5s; Tr2_3 := X2.t > t#0.1s; Tr12_13 := X12.t > t#0.1s; Tr4_5 := X4.t > t#15s; Tr14_15 := X14.t > t#15s; Tr5_6 := X5.t >t#0.2s; Tr15_16 := X15.t >t#0.2s; Tr6_7 := X6.t >t#5s; Tr16_17 := X16.t >t#5s;
  • 413. Problemas M340 - 413 Universidad de Oviedo ISA - J. Alonso - I. Machón Tr7_8 := X7.t > t#0.1s; Tr17_18 := X17.t > t#0.1s; Tr9_0 := X9.t > t#15s; Tr19_0 := X19.t > t#15s; Sección “Salidas” Qx_AMenos := ( X1.x or X2.x or X3.x or X16.x or X17.x or X18.x) and not Mx_EnSobrecarga; Qx_BMenos := ( X11.x or X12.x or X13.x or X6.x or X7.x or X8.x) and not Mx_EnSobrecarga; Qx_MotIzda := (X1.x or X2.x or X3.x or X4.x or X16.x or X17.x or X18.x or X19.x) and not Mx_EnSobrecarga; Qx_MotDcha := (X11.x or X12.x or X13.x or X14.x or X6.x or X7.x or X8.x or X9.x) and not Mx_EnSobrecarga; Qx_KME := (X1.x or X6.x or X11.x or X16.x) and not Mx_EnSobrecarga; Qx_KMT := (X3.x or X4.x or X8.x or X9.x or X13.x or X14.x or X18.x or X19.x) and not Mx_EnSobrecarga; (* LBlanca estaría en paralelo con la alimentación del automáta *) Qx_LVerde := Not X0.x And Not Mx_EnEmergencia And Not Mx_EnSobrecarga; Qx_LAmbar := Mnx_EnSobrecarga; Qx_LRoja := Mx_EnEmergencia;
  • 414. 414 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Chart
  • 415. Problemas M340 - 415 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 416. 416 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Lista de mensajes Pantalla de explotación
  • 417. Problemas M340 - 417 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 10.04 · Control de un horno motorizado. EM y EF Mediante un autómata M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de alimentación BMX CPS 2000 y módulo de entradas BMX DDI1602 y de salidas BMX DRA 1605. Se desea automatizar un horno cuya puerta se abre y cierra mediante un motor eléctrico. Inicialmente el horno estará desactivado con las luces apagadas. No podrá ponerse en marcha hasta que no se ponga en CI. CI. Cuando se pulse rearme [Ix_Rearme] se encenderá la luz azul [Qx_LAzul] y se procederá a abrir el horno [Qx_Abrir]. Una vez abierto [Ix_FCA] se apagará la luz azul y se encenderá la luz verde [Qx_LVerde]. FN. Funcionamiento normal. Con la puerta abierta y una vez cargado el material, cuando el operador pulse marcha [Ix_Marcha] el horno cerrará su puerta [Qx_Cerrar] indicado por [Ix_FCC] y luego, comenzará a funcionar activando su resistencia [Qx_KResistencia]. Si está en fase de calentamiento y el operador pulsa paro [Ix_Paro NC], se desactivará la resistencia, y se activará un ventilador FAN [Qx_Ventilador] durante 20s para que el baje la temperatura. Después procederá a abrirse automáticamente el horno [Qx_Abrir] hasta activar el [Ix_FCA]. En ese instante estará en disposición de un nuevo proceso. Un piloto rojo [Qx_LRoja] indicará que el horno está maniobrAndo su puerta, en funcionamiento o en fase de enfriamiento. Un piloto verde [Qx_LVerde] indicará que el horno está abierto esperAndo la orden de marcha en FN. Se dotará al sistema de todas las protecciones necesarias para la seguridad de las personas y de la máquina. La protección contra cortocircuitos deberá implementarse mediante disyuntor. La resistencia calefactora es trifásica con una alimentación de Un = 400 V y de una potencia de 15 KW en triangulo. La resistencia irá conectada en estrella. El motor de la puerta del horno tiene unas características de: Pm = 4 KW, Un = 400 V, cos φ=0,85 y  = 0,92. Corriente de arranque 5 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante automático y térmico. El motor del ventilador monofásico, tiene Pm = 0,13 KW, Un = 230 V, cos φ=0,85 y  = 0,92. Corriente de arranque 5 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante guardamotor tripolar y accionado por contactor bipolar. Los valores normalizados de los Interruptores automáticos con curva C o D son 1, 2, 4, 6, 10, 16, 20, 25, 32, 40, 50, 63 A. Los calibres de los Interruptores Diferenciales con 30 mA de sensibilidad son 6, 10, 16, 20, 25, 32, 40, 50 A. Los valores de algunos guardamotores son 0,1 a 0,16 A | 0,16 a 0,25 A | 0,25 a 0,4 A | 0,4 a 0,63 A | 0,63 a 1 A | 1 a 1,6 A | 1,6 a 2,5 A | 2,5 a 4 A. El disparo magnético es a 13·In. Las salidas están conectadas a 230 V AC, siendo el consumo de los relés auxiliares y contactores de 5-25VA, las lámparas tienen un consumo de 5 W. Se pide: 2. Diseñar el esquema de mando y de fuerza del sistema. 3. Elegir los elementos de protección adecuados de los motores, resistencia calefactora y del mando. 4. Indicar sobre las gráficas las corrientes puestas en juego en los diferentes elementos. 5. Programa de control.
  • 418. 418 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Módulos de interface BMX DDI 1602 BMX DRA 1605
  • 419. Problemas M340 - 419 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de fuerza Esquema de Mando
  • 420. 420 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón PUERTA motor de la puerta del horno tiene unas características de: Pm = 4 KW, Un = 400 V, cos φ=0,85 y  = 0,92. Corriente de arranque 5 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante automático y térmico. Relé térmico F1 𝜂 = 𝑃𝑢 𝑃𝑒 = 𝑃𝑢 √3 𝑈𝑁 𝐼𝑁 cos  𝐼𝑁 = 𝑃𝑢 √3 𝑈𝑁 cos  𝜂 = 4000 √3 400 0,85 0,92 = 7,38 𝐴 La corrientes que pasa por el térmico es 𝐼N = 7,38 𝐴 Teniendo en cuenta esta corriente, elegiremos el LRD-12. Ajustaremos la corriente regulada a 7,38 A Iarranque = 5 · IN = 5 · 7,38 = 36,92 A tiempo 5 segundos Se observa que en clase 10, estará en el límite de la curva, si bien en la realidad tendrá un valor más favorable. Escogeremos el LRD -12 clase 10 Automático Q1 Cuando tengamos la corriente nominal, por el térmico estarán pasando los 7,38 A. Aguas arriba por el automático estarán pasando los 7,38 A. Para que haya selectividad, la corriente mínima del automático será: I = 1,6 * 7,38 = 11,81 A Por tanto el calibre del automático elegido será el de 16A (valor normalizado por encima de 11,81 A).
  • 421. Problemas M340 - 421 Universidad de Oviedo ISA - J. Alonso - I. Machón Tensión nominal: 400 V 3 polos. 𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒 𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒 = 36,92 16 = 2,3 tiempo 5 segundos La curva puede ser la C 16A Diferencial F2 Se elige un Diferencial de calibre 25A y sensibilidad 30 mA (p.e. el A9R81225 de Schneider) Contactores KM1 y KM2 Clase de servicio temporal. Categoría de servicio: AC3. Es la adecuada para maniobras de arranque de motores de inducción con inversión de movimiento Tensión de servicio: 400 V Corriente de servicio: 𝐼N = 7,38 𝐴 Del catálogo de Telemecanique sería válido el calibre LC1-D09
  • 422. 422 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón RESISTENCIA CALEFACTORA La resistencia calefactora es trifásica con una alimentación de Un = 400 V y de una potencia de 15 KW. Será conectada en estrella. 𝐼𝑁 = 𝐼𝐿𝑇 = 𝑃𝑢 √3 𝑈𝑁 = 15000 √3 400 = 21,65 𝐴 𝐼𝑓𝐸 = 𝐼𝐿𝐸 = 𝐼𝑛 3 = 21,65 3 = 7,21 𝐴 Automático Q3 Tensión nominal: 400 V 3 polos Corriente de servicio: 𝑰𝐍 = 𝟕, 𝟐𝟏 𝑨 La curva puede ser la C 10 Diferencial F4 Se elige un Diferencial de calibre 25A y sensibilidad 30 mA (p.e. el A9R81225 de Schneider). Contactor KM4 de la resistencia calefactora Clase de servicio permanente. Categoría de servicio: AC1. Es la adecuada para hornos de resistencia Tensión de servicio: 400 V Corriente de servicio: 𝑰𝐍 = 𝟕, 𝟐𝟏 𝑨 Del catálogo de Telemecanique sería válido el calibre LC1-D09
  • 423. Problemas M340 - 423 Universidad de Oviedo ISA - J. Alonso - I. Machón VENTILADOR El motor del ventilador monofásico, tiene Pm = 0,13 KW, Un = 230 V, cos φ=0,85 y  = 0,92. Corriente de arranque 5 veces la nominal. Tiempo de arranque 5 segundos. Protegido mediante guardamotor. 𝐼𝑁 = 𝑃𝑢 𝑈𝑁 cos 𝜂 = 130 230 0,85 0,92 = 0,72 𝐴 Guardamotor Q2 Tensión nominal: 230 V 3 polos. Corriente de servicio: 𝑰𝐍 = 𝟎, 𝟕𝟐 𝑨 Calibre 0,63 a 1 A Elegimos el WEG MPW12-3-U001S Contactor KM3 del motor del ventilador Clase de servicio permanente. Categoría de servicio: AC1. Es la adecuada para cargas débilmente inductivas Tensión de servicio: 230 V Corriente de servicio: 𝑰𝐍 = 𝟎, 𝟕𝟐 𝑨 FUENTES DE ALIMENTACIÓN Automático Q4 La fuente de alimentación de continua entrega 20 W con una eficiencia del 82%. Por tanto consume unos 24,39W. El consumo de corriente es de 24,39/230 = 0,11A La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar pasar 9 · 0,11 = 0,95 A en los instantes iniciales. Podemos escoger el automático C60 1A
  • 424. 424 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Automático Q5 Las salidas trabajan en 230 V AC. Tenemos en cuenta que los contactores en la llamada consumen mas corriente que en mantenimiento. Contactor (25VA - 5VA). Las lámparas consumen siempre 5 W. El caso más desfavorable es cuando tenemos una lámpara activa y entra un contactor. (5+25) / 230 = 0,13A Podríamos poner C60 1A para el consumo actual Programa de control Tabla de variables
  • 425. Problemas M340 - 425 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "ControlPantalla" (* variables utilizadas en la inicialización de la pantalla de operador*) If %S13 THEN Set(MxP_Paro); Set(MxP_FCC); END_IF; TON_4Hz (IN := Qx_Ventilador AND NOT TON_4Hz.Q,PT := t#250ms); Mx_Osc5Hz := TON_4Hz.ET >= t#125ms; Mx_VentON1:= NOT Mx_Osc5Hz AND Qx_Ventilador; Mx_VentON2 := Mx_Osc5Hz AND Qx_Ventilador; MxP_Aux1:= Etapa0.x Or Etapa4.x Or Etapa5.x; (*puerta cerrada*) MxP_Aux6:= (Etapa1.x AND NOT TP_Abriendo.Q) OR Etapa2.x; (* puerta abierta *) "Sección Preliminar" (* variables utilizadas en el control Local o a Distancia *) Mx_Marcha := (MxP_Marcha And Not Ix_LocDist) Or (Ix_Marcha And Ix_LocDist); Mx_Paro := (MxP_Paro And Not Ix_LocDist) Or (Ix_Paro And Ix_LocDist); Mx_Rearme := (MxP_Rearme And Not Ix_LocDist) Or (Ix_Rearme And Ix_LocDist); (* las siguientes variables sólo es posible modIficarlas en simulación o en control local*) Mx_FCA := (MxP_FCA And Not Ix_LocDist) Or (Ix_FCA And Ix_LocDist); Mx_FCC := (MxP_FCC And Not Ix_LocDist) Or (Ix_FCC And Ix_LocDist); Mx_PonCI:=CLEARCHART (Control, RE (Mx_Rearme)); If Mx_PonCI THEN Setstep (Etapa1); END_IF; Tran5_6:=Etapa5.t >= T#20s; Sección "Simulación" Esta sección se ejecuta de forma condicional. Depende de la variable MxP_Simulacion. TP_Abriendo (IN :=Etapa1.x Or Etapa6.x ,PT := t#5s); TP_Cerrando (IN := Etapa3.x ,PT := t#5s); If Etapa1.x Or Etapa6.x THEN Reset (MxP_FCC); END_IF; If Etapa3.x And Not TP_Cerrando.Q THEN Set (MxP_FCC); END_IF;
  • 426. 426 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón If Etapa3.x THEN Reset(MxP_FCA); END_IF; If (Etapa1.x Or etapa6.x) And Not TP_Abriendo.Q THEN Set (MxP_FCA); END_IF; MxP_Aux2 := (TP_Abriendo.ET >= t#1s And TP_Abriendo.ET < t#2s) OR (TP_Cerrando.ET >= t#4s And TP_Cerrando.ET < t#5s); MxP_Aux3 := (TP_Abriendo.ET >= t#2s And TP_Abriendo.ET < t#3s) OR (TP_Cerrando.ET >= t#3s And TP_Cerrando.ET < t#4s); MxP_Aux4 := (TP_Abriendo.ET >= t#3s And TP_Abriendo.ET < t#4s) OR (TP_Cerrando.ET >= t#2s And TP_Cerrando.ET < t#3s); MxP_Aux5 := (TP_Abriendo.ET >= t#4s And TP_Abriendo.ET < t#5s) OR (TP_Cerrando.ET >= t#1s And TP_Cerrando.ET < t#2s); MxP_Pieza := Etapa2.t>t#3s Or Etapa3.x Or Etapa4.x Or Etapa5.x Or Etapa6.x; Sección "Salidas" Qx_LAzul := Etapa1.x; Qx_LVerde := Etapa2.x; Qx_LRoja := Etapa3.x OR Etapa4.x Or Etapa5.x OR Etapa6.x; Qx_Abrir := Etapa1.x; Qx_Cerrar := Etapa3.x; Qx_KResistencia := Etapa4.x; Qx_Ventilador := Etapa5.x; Elementos de la pantalla de explotación
  • 427. Problemas M340 - 427 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "Chart" Qx_Lverde Qx_KResistencia Qx_LRoja QX_Cerrar Qx_LRoja Tran5_6:= Etapa5.t >= t#20s Qx_Abrir Qx_Ventilador Qx_LRoja Qx_LAzul Qx_Abrir Etapa0 false Etapa1 Mx_FCA Etapa2 Mx_Marcha Etapa3 Mx_FCC Etapa4 not Mx_Paro Etapa5 Tran5_6 Etapa6 Mx_FCA Etapa2
  • 428. 428 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 429. Problemas M340 - 429 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 10.05 · Control de un molino. EM y EF Se desea emplear un autómata para automatizar un molino de bolas para producción de arena de cantera. Está movido mediante un motor de inducción asíncrono trifásico. Este motor tiene una PUTIL = 15KW, 400 V, cos ϕ 0,81, 750 rpm, =92%. La intensidad de arranque es de 6 veces la nominal y el tiempo de arranque se de 5 segundos. Para arrancar el sistema se dispone de un pulsador NA (Marcha) y otro NC para pararlo (Paro). Para asegurarse que efectivamente el motor ha arrancado se dispone de un contacto auxiliar (Km1Aux). Si 3 segundos después de dar la orden de arranque, se observa que éste no se ha producido, se deberá encender una lámpara de alarma (LRoja) y revocar la orden de arranque. Hasta que no se pulse el acuse de recibo de la alarma NA (AcuAlarma) no se apagará la luz de aviso, ni se permitirá un nuevo arranque. Si el número de veces que se produce la alarma es 5, se impedirá la posibilidad de volver a arrancar el motor hasta que no se pulse rearme (Rearme). El motor estará conectado mediante un contactor (KM1) con bobina de AC y protegido mediante automático (Q1), diferencial (F1) y térmico (F1). Se avisará mediante una luz ámbar (LSobrecarga) cuando el sistema pare por una sobrecarga (F2). Los valores normalizados de los Interruptores automáticos con curva C o D son 1, 2, 4, 6, 10, 16, 20, 25, 32, 40, 50, 63 A. El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0400, fuente de alimentación BMX CPS 2000 (24VDC 60W, eficiencia del 82%) alimenta a el módulo BMX DDM 16025 de 8 entradas digitales de 24 VCC PNP y 8 salidas por relé que están alimentadas a 230 VAC. Se pide: 1. Diseñar el esquema de mando y de fuerza del sistema. 2. Elegir el automático de fuerza (Q1), diferencial (F1), contactor de mando (KM1), relé térmico del motor (F2) y los automáticos de mando (Q2 y Q3). 3. Indicar sobre las gráficas del térmico y del automático CLARAMENTE, la corriente de arranque, la corriente de regulación del térmico y la corriente nominal. 4. Programa de mando BMX DDM 16025
  • 430. 430 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de variables Esquema de Mando, y fuerza
  • 431. Problemas M340 - 431 Universidad de Oviedo ISA - J. Alonso - I. Machón Relé térmico F2 Las corrientes que pasan por el térmico son 𝐼𝑁 = 𝑃ú𝑡𝑖𝑙 𝜂 √3 𝑈𝑁 cos 𝜑 = 15000 0,92 · √3 · 400 · 0,81 = 29 𝐴 Corriente regulada a 29 A Iarranque = 6 · IN = 6 · 29 = 174 A tiempo 5 segundos se observa que se debe emplear el relé térmico de clase 20 LRD-32 Automático Q1 Cuando tengamos la corriente nominal, por el térmico estarán pasando 29 A. Para que haya selectividad la corriente mínima del automático será: I = 1,6 * 29 = 46,4 A Por tanto el calibre del automático elegido será el de 50A (valor normalizado por encima de 46,4 A). Tensión nominal: 400 V 3 polos. 𝐼𝑎𝑟𝑟𝑎𝑛𝑞𝑢𝑒 𝐼𝑐𝑎𝑙𝑖𝑏𝑟𝑒 = 174 50 = 3,5
  • 432. 432 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón La curva debe der ser la D. C60N D50A. Diferencial F1 Se elige un diferencial de calibre > 1,4 * 50 => 80A y sensibilidad 30 mA Contactor KM1 Clase de servicio temporal. Viene dado por el enunciado del problema. Categoría de servicio: AC3. Es la adecuada para maniobras de arranque de motores de inducción. Tensión de servicio: 400 V Corriente de servicio: IN = 29 A Del catálogo de Telemecanique sería válido el calibre LC1-D32. Corriente y potencia de empleo según IEC de los contactores Tamaño de los contactores LC1- LC1- LC1- LC1- LC1- LC1- LC1- LC1- LC1- LP1- LP1- LP1- LP1- LP1- LP1- LP1- LP1- LP1- K06 D09 D12 D18 D25 D32 D40 D50 D65 Corriente de empleo máxima en AC-3 <=440 V A 6 9 12 18 25 32 40 50 65 Potencia nominal de empleo P 220/240 V KW 1,5 2,2 3 4 5,5 7,5 11 15 18,5 380/400 V KW 2,2 4 5,5 7,5 11 15 18,5 22 30
  • 433. Problemas M340 - 433 Universidad de Oviedo ISA - J. Alonso - I. Machón Automático Q2 La fuente de alimentación entrega 60 W con una eficiencia del 82%. Por tanto consume unos 60 / 0,82 = 73,17 W que significa unos 73,17 / 230 = 0,32 A La fuente en su arranque consume unas 9 veces más de corriente, por tanto el automático tiene que dejar pasar 9 · 0,32 = 2,86 A en los instantes iniciales. Podemos coger el automático C60 1A Automático Q3 El caso más desfavorable es cuando arranca el contactor KM1. Corriente de llamada del KM1 Ia = 70 / 230 = 304 mA Corriente de mantenimiento del KM1 Im = 7 / 230 = 30 mA Consumo del piloto I = 5 / 230 = 22 mA Por tanto elegiremos el automático de calibre C1 que permitirá su paso sin problemas.
  • 434. 434 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa en ST (pr0906) Sección "Control" (* Creación de las variables utilizadas en el programa en control Local o a Distancia *) 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); (* en rojo están las que ponemos para poder simularlo en casa, en realidad estas no se usarían, en su lugar, se usarían las entradas Ix correspondientes *) 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); (* para poner el interruptor NC en la pantalla de operador *) END_IF; If Mx_Marcha And Contador.CV <5 And Not Mx_Alarma THEN Set (Qx_KM1); END_IF; If Not Mx_paro Or Mx_alarma Or Mx_Termico THEN Reset (Qx_KM1); END_IF; (* lanzamos un temporizador para verificar que arrancó el contactor *) TON_VerificaCon (IN := Qx_KM1, PT := t#3s); If TON_VerificaCon.Q And Not Mx_KM1Aux THEN (* si no entró el contactor, a los 3s provoca una alarma *) Set (Mx_Alarma); Set (Qx_LuzRoja); END_IF; If Mx_AcuAlarma THEN Reset (Mx_Alarma); Reset (Qx_LuzRoja); END_IF; Contador (CU := Mx_Alarma, R := Mx_Rearme, PV := 5); (* el valor de PV es indiferente, sólo se va a mirar el valor actual del contador *) Qx_LuzSobrecarga := Mx_Termico; Pantalla de operador
  • 435. Problemas M340 - 435 Universidad de Oviedo ISA - J. Alonso - I. Machón Tipos de datos con formato BCD Formato BCD [03] pág. 323-329. "Los tipos de datos con formato BCD pertenecen a la familia de datos elementales EDT (Elementary data type), que agrupa tipos de datos denominados simples y no compuestos (matrices, estructuras o bloques de funciones). El formato Decimal codificado Binario (Binary coded Decimal) permite representar las cifras decimales comprendidas entre 0 y 9 mediante un conjunto de cuatro bits (cuarteto). En este formato, los cuatro bits que permiten codificar las cifras decimales tienen un rango de sus combinaciones inutilizado. Tabla de correspondencias: Decimal Binario 0 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 1010 (no utilizado) 1011 (no utilizado) 1100 (no utilizado) 1101 (no utilizado) 1110 (no utilizado) 1111 (no utilizado) Ejemplo de codificación en un formato de 16 bits: Valor decimal 1578 1 5 7 8 Valor binario 0001 0101 0111 1000 Ejemplo de codificación en un formato de 16 bits: Valor decimal 15785902 1 5 7 8 5 9 0 2 Valor binario 0001 0101 0111 1000 0101 1001 0000 0010
  • 436. 436 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Tipo Date Tipo Designación Escala (bits) Valor predeterminado Date Fecha 32 D#1990-01-01 El tipo Date, codificado en un formato de 32 bits, contiene la siguiente información:  el año codificado en un campo de 16 bits (cuatro cuartetos de mayor valor),  el mes codificado en un campo de 8 bits (dos cuartetos) y  el día codificado en un campo de 8 bits (dos cuartetos de menor valor).  Representación de la fecha 2017-07-20 con formato BCD: Año (2017) Mes (07) Día (20) 0010 0000 0001 0111 0000 0111 0010 0000 Tipo Time of Day Tipo Designación Escala (bits) Valor predeterminado Time_of_day Hora del día 32 TOD#00:00:00 El tipo Time of Day , codificado en un formato de 32 bits, contiene la siguiente información:  la hora codificada en un campo de 8 bits (dos cuartetos de mayor valor),  los minutos codificados en un campo de 8 bits (dos cuartetos), y  los segundos codificados en un campo de 8 bits (dos cuartetos). NOTA: Los ocho bits de menor valor no se utilizan. Representación con formato BCD de la hora del día 11:41:32 Hora (11) Minutos (41) Segundos (32) Byte de menor valor 0001 0001 0100 0001 0011 0010 No se utiliza Tipo Date And Time Tipo Designación Escala (bits) Valor predeterminado Date_And_Time Fecha y hora 64 DT#1990-01-01-00:00:00 El tipo Date And Time, codificado en un formato de 64 bits, contiene la siguiente información:  el año codificado en un campo de 16 bits (cuatro cuartetos de mayor valor),  el mes codificado en un campo de 8 bits (dos cuartetos) y  el día codificado en un campo de 8 bits (dos cuartetos),  la hora codificada en un campo de 8 bits (dos cuartetos),  los minutos codificados en un campo de 8 bits (dos cuartetos), y  los segundos codificados en un campo de 8 bits (dos cuartetos). NOTA: Los ocho bits de menor valor no se utilizan. Ejemplo: Representación de la fecha y la hora 2017-07-20:11:41:32 con formato BCD:
  • 437. Problemas M340 - 437 Universidad de Oviedo ISA - J. Alonso - I. Machón Año (2017) Mes (07) Día (20) Hora (11) Minutos (41) Segundos (32) Byte de menor valor 0010 0000 0001 0111 0000 0111 0010 0000 0001 0001 0100 0001 0011 0010 No se utiliza Reglas de sintaxis Campo Límites Comentario Año [1990,2099] Mes [01,12] El 0 situado a la izquierda aparece siempre y se puede omitir al introducir los datos Día [01,31] [01,30] [01,29] [01,28] Para los meses 01|03|05|07|08|10|12 Para los meses 04|06|09|11 Para el mes 02 de años bisiestos Para el mes 02 de años no bisiestos Hora [00,23] El 0 situado a la izquierda aparece siempre y se puede omitir al introducir los datos Minuto [00,59] El 0 situado a la izquierda aparece siempre y se puede omitir al introducir los datos Segundo [00,59] El 0 situado a la izquierda aparece siempre y se puede omitir al introducir los datos
  • 438. 438 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Funciones de fecha y hora [03] pág. 173-186. Leer para ampliar ADD_***_TIME: Adición de una duración a una fecha La función ADD_***_TIME agrega una duración a una fecha o a una hora. Funciones disponibles Las funciones disponibles son las siguientes: ADD_DT_TIME, ADD_TOD_TIME. Representación en ST Representación aplicada a una hora del día: Result_Value := ADD_TOD_TIME (Source_Value, Time_to_Add); Descripción de los parámetros En la siguiente tabla se describen los parámetros de entrada: los parámetros de salida son: NOTA: la aplicación debe prever la gestión de los años bisiestos. DIVTIME: División La función divide el valor de la entrada TIME_variable (tipo de datos TIME) entre el valor de la entrada Divisor y emite el resultado en la salida. Representación en ST Quotient := DIVTIME (TIME_variable, Divisor) ;
  • 439. Problemas M340 - 439 Universidad de Oviedo ISA - J. Alonso - I. Machón Descripción de los parámetros Descripción de los parámetros de entrada: los parámetros de salida son: MULTIME: Multiplicación La función multiplica los valores de entrada y emite el resultado en la salida. El tipo de datos del primer valor de entrada (TIME_variable) debe ser TIME. Representación en ST Product := MULTIME (TIME_variable, Factor) ; Descripción de los parámetros Descripción de los parámetros de entrada: los parámetros de salida son:
  • 440. 440 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón SUB_***_***: Calcula la diferencia de tiempo entre dos fechas u horas La función SUB_***_*** calcula la desviación de tiempo entre dos fechas u horas. Funciones disponibles Las funciones disponibles son las siguientes: SUB_DATE_DATE, SUB_DT_DT, SUB_TOD_TOD. Representación de ST Representación aplicada a una hora del día: Delay1 := SUB_TOD_TOD (Input_IN1, Input_IN2); Descripción de los parámetros En la siguiente tabla se describen los parámetros de entrada: los parámetros de salida son: SUB_***_TIME: Resta de una duración de una fecha La función SUB_***_TIME aumenta una duración de una fecha o de una hora. Funciones disponibles Las funciones disponibles son las siguientes: SUB_DT_TIME, SUB_TOD_TIME. Representación en ST Representación aplicada a una hora del día: Result_Value := SUB_TOD_TIME (Source_Value, Time_to_Sub);
  • 441. Problemas M340 - 441 Universidad de Oviedo ISA - J. Alonso - I. Machón Descripción de los parámetros En la siguiente tabla se describen los parámetros de entrada: los parámetros de salida son: NOTA: la aplicación debe prever la gestión de los años bisiestos. ARINT_TO_DATE: Conversión de matriz de enteros con fecha en una variable DATE ARINT_TO_DT: Conversión de matriz de enteros con fecha y hora en una variable DT ARINT_TO_TOD: Conversión de matriz de enteros con hora del día en una variable TOD BCD_TO_INT: Conversión de un entero BCD en binario puro DATE_TO_ARINT: Conversión de variable DATE en matriz de enteros DATE_TO_STRING: Conversión de una variable en formato DATE a una cadena de caracteres DT_TO_ARINT: Conversión de variable DT en matriz de enteros DT_TO_STRING: Conversión de una variable en formato DT a una cadena de caracteres
  • 442. 442 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón TIME_AS_WORD: Conversión de tipos TIME_TO_***: Conversión de tipos TIME_TO_STRING: Conversión de una variable en formato TIME a una cadena de caracteres TOD_TO_ARINT: Conversión de variable TOD en matriz de enteros TOD_TO_STRING: Conversión de una variable en formato TOD a una cadena de caracteres
  • 443. Problemas M340 - 443 Universidad de Oviedo ISA - J. Alonso - I. Machón Descripción del panel modular de entrenamiento para automatización y control de procesos Para desarrollar las siguientes prácticas se va a hacer uso de unos módulos diseñados por el profesor Felipe Mateos Martin y financiados por la Fundación ALCOA. Módulo HMI-1 (Interface Hombre Máquina) consta de los siguientes elementos:  Un voltímetro, identificado como V30  Un amperímetro, identificado como A20  Un potenciómetro, identificado como P10  3 lámparas (verde, ámbar y roja), identificadas como HG, HY y HR  3 pulsadores (verde y ámbar NA y uno rojo NC), identificados como BG, BY y BR  Una Seta de emergencia (2 contactos NC), identificada como ES  Una sirena, identificada como SR  Un conmutador de 2 posiciones, identificado como S2P  Un conmutador de 3 posiciones, identificado como S3P Módulo IFC-1 (Interface de señales) Consta de los siguientes elementos:  Una fuente de alimentación, identificada como PS  Un convertidor de temperatura [PT100 -V], identificado como MCR [MINI MCR-SL-PT100-UINC- 2864273 de Phoenix Contact]  5 relés, identificados como R1 a R5 [OPT-24DC/230AC/ 1 de Phoenix Contact]  1 automático de protección
  • 444. 444 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Módulo PCS-0 (Emulador de horno industrial) Consta de los siguientes elementos:  Una lámpara alimentada a 220 V AC, identificada como LP  Un ventilador de 24V DC, identificado como FAN  1 sonda PT100, identificados como RTD  1 termostato, identificado como TH [EDT2411 Temperature Controller]  1 sonda de temperatura con salida directa al TH  1 Final de Carrera, identificado como SW Módulo AP Consta de los siguientes elementos:  FA CPS2000 de 20W  AP M340 P342020  DDI 1602  AMM 0600  DDO 1602
  • 445. Problemas M340 - 445 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de Mando, y fuerza de los módulos en general Pantalla de operador completa En la siguiente pantalla se reflejan los distintos componentes que nos pueden servir para la realización de las pantallas de operador en los problemas.
  • 446. 446 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 447. Problemas M340 - 447 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 11.01 · Encendido y apagado sencillo del horno. EM y EF Se partirá de que el horno tiene la puerta cerrada (detectado por el fin de carrera SW [Ix_SW], contacto NA) Cuando el operador pulse el botón verde BG [Ix_PMarcha] el horno comenzará a funcionar activando la lámpara LP [Qx_KLamp]. Si está en fase de calentamiento y el operador pulsa el botón rojo BR [Ix_PParo], se desactivará la lámpara, y se activará el ventilador FAN [Qx_Ventilador] durante 20s para que el baje la temperatura. Si el operador abre la puerta mientras están calentando el horno o el ventilador funcionando, entonces se activará la señal acústica SR [QxZumbador] y permanecerá sonando hasta que se vuelva a cerrar. Un piloto amarillo HY [QxLAmbar] indicará que el horno está en funcionamiento. Un piloto verde HG [QxLVerde] indicará que se puede abrir la puerta del horno por estar el horno parado. PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de alimentación BMX CPS 2000 (24VDC 40W, eficiencia del 82%) alimenta a todo el conjunto, módulo de entradas PNP BMX DDI 1602 y salidas PNP BMX DDO 1602. squema de Mando, y fuerza
  • 448. 448 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa (pr1101) en ST · Encendido y apagado sencillo del horno Tabla de variables Sección "Preliminar" (*Inicialización de la pantalla de operador*) If %S13 THEN Set (MxP_SW); Set (MxP_PParo); END_IF; (* Variables utilizadas en el control Locol o a Distancia *) Mx_PMarcha := (Ix_PMarcha And Ix_LocDist) Or (MxP_PMarcha And Not Ix_LocDist); Mx_PParo := (Ix_PParo And Ix_LocDist) Or (MxP_PParo And Not Ix_LocDist); (* Variables utilizadas en la pantalla de operador *) TON_0sc5Hz (IN := Qx_Ventilador AND NOT TON_0sc2Hz.Q, PT := t#200ms); Mx_Osc5Hz := TON_0sc5Hz.ET >= t#100ms; Mx_VentON1 := NOT Mx_Osc5Hz AND Qx_Ventilador; Mx_VentON2 := Mx_Osc5Hz AND Qx_Ventilador; Sección "Control_Horno" IF Mx_PMarcha AND Ix_SW THEN Set (Qx_KLamp); RESET (Mx_Ventila);
  • 449. Problemas M340 - 449 Universidad de Oviedo ISA - J. Alonso - I. Machón END_IF; IF NOT Mx_PParo THEN RESET (Qx_KLamp); SET (Mx_Ventila); (* cada vez que se pulse, parará el proceso y ventilará 10segundos *) END_IF; TP_10s (IN := Mx_Ventila, PT := t#10s, Q => Qx_Ventilador); Qx_LAmbar := Qx_KLamp OR Qx_Ventilador; Qx_Zumbador := (Qx_KLamp OR Qx_Ventilador) And NOT Ix_SW; Qx_LVerde := NOT Qx_LAmbar; Pantalla de operador
  • 450. 450 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Programa (pr1101b) en ST y SFC Encendido y apagado sencillo del horno Tabla de variables Sección "Preliminar" (*Inicialización de la pantalla de operador*) If %S13 THEN Set(MxP_PParo); END_IF; (* Variables utilizadas en el control Locol o a Distancia *) Mx_PMarcha := (Ix_PMarcha And Ix_LocDist) Or (MxP_PMarcha And Not Ix_LocDist); Mx_PParo := (Ix_PParo And Ix_LocDist) Or (MxP_PParo And Not Ix_LocDist); (* Variables utilizadas en la pantalla de operador *) Mx_VentON1 := NOT %S6 AND Qx_Ventilador; Mx_VentON2 := %S6 AND Qx_Ventilador; (* Variables de transición *) Tran0_1 := Mx_PMarcha AND Ix_SW; Tran2_3 := Etapa2.t>= t#20s; (* Salidas *) Qx_LVerde := Etapa0.x; Qx_LAmbar := Etapa1.x OR Etapa2.x; Qx_Ventilador := Etapa2.x; Qx_Zumbador := (Qx_KLamp OR Qx_Ventilador) And NOT Ix_SW; Qx_KLamp := Etapa1.x;
  • 451. Problemas M340 - 451 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección SFC "Horno" Forzado de una entrada Si quisiéramos simularlo en casa, tenemos que tener en cuenta que el programa está hecho para ejecutarlo sobre la maqueta. Por ello, para poder simularlo deberemos forzar la variable Ix_SW para hacer que empiece cerrado. Creariamos una tabla de animación e introduciríamos la variable Ix_SW. Posteriormente la forzaremos con el icono correspondiente. Tran0_1 := Mx_PMarcha AND Ix_SW Qx_Ventilador Qx_LAmbar Qx_KLamp Qx_LAmbar Qx_LVerde Tran2_3 := Etapa2.t >= t#20s Qx_Ventilador Qx_LAmbar Etapa0 Etapa1 Etapa2 Tran0_1 NOT Mx_PParo Tran2_3
  • 452. 452 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 453. Problemas M340 - 453 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 11.02 · Control sencillo de la temperatura de un horno. EM y EF Se partirá de que el horno tiene la puerta cerrada (detectado por el fin de carrera SW [Ix_SW], contacto NA). Cuando el operador pulse el botón verde BG [Ix_PMarcha] el horno comenzará a funcionar activando la lámpara LP [Qx_KLamp]. Una sonda de temperatura PT100 proporciona una señal analógica 0-10V a través de un módulo adaptador y está calibrada de forma que indica valores de temperatura comprendidos entre 0 y 100 grados Centígrados. Esta sonda se va a utilizar para regular la temperatura del horno de forma que: - La temperatura ideal del horno será de 40 ⁰C. - Por encima de 42⁰C se ha de poner en marcha el sistema de refrigeración (ventilador) y parar el calentamiento - Por debajo de 38⁰C se ha de detener la ventilación y conectar de nuevo el calentamiento. Si está en fase de calentamiento y el operador pulsa el botón rojo BR [Ix_PParo], se desactivará la lámpara, y se activará el ventilador FAN [Qx_Ventilador] durante el tiempo necesario para que el baje la temperatura a 30⁰C. Si el operador abre la puerta mientras se está en proceso de calentamiento del horno o la temperatura es superior a 35⁰C, se activará la señal acústica SR [Qx_Zumbador] y la luz roja HR [Qx_LRoja] oscilará a 2Hz. Permanecerá en esta situación hasta que se vuelva a cerrar la puerta. Un piloto amarillo HY [Qx_LAmbar] indicará que el horno está en funcionamiento. Un piloto verde HG [Qx_LVerde] indicará que se puede abrir la puerta del horno por estar el horno parado y su temperatura es inferior a 30°C. Se dispondrá de una Seta de emergencia [Ix_SetaEmer] que parará todo el proceso poniendo la lámpara roja a oscilar a 2 Hz, hasta que se desactive dicha Seta . La señal de campo como entrada analógica se ha de tratar con un formato de 16 bits y se le ha de asignar un tipo de dato ENTERO, pero el tratamiento del resto de programa ha de ser con valores de tipo REAL. PD: El autómata utilizado será un M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de alimentación BMX CPS 2000 (24VDC 40W, eficiencia del 82%) alimenta a todo el conjunto, módulo de entradas PNP BMX DDI 1602, de salidas PNP BMX DDO 1602 y entradas/salidas analógicas BMX AMM 0600.
  • 454. 454 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Esquema de Mando y Fuerza
  • 455. Problemas M340 - 455 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de variables Configuración del módulo analógico Se debe comenzar realizando la configuración del módulo de entradas analógicas haciendo doble clic sobre él en la vista general del hardware del PLC. Se ha instalado el módulo BMX AMI 0600 que contiene 4 canales de entrada y 2 de salidas analógicas. Aparecerá la siguiente ventana: Como la señal la introducimos por el canal 0, se selecciona el rango de entrada 0 a 10V de todos los posibles. Para la escala (valores de tipo entero equivalentes a la señal eléctrica medida), introducimos los
  • 456. 456 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón valores 0 al 10000. Como desborde dejamos -500 y 10500 De filtro, según los requerimientos de la señal a tratar, elegimos 3. Seleccionamos una tarea asociada al canal analógico. En nuestro caso, tarea maestra. Seleccionamos el ciclo de exploración del canal de entrada. Lo dejamos en normal. Una vez configurado el módulo de entradas analógicas, se debe realizar el escalado de la señal mediante la inserción de una instancia a un bloque de función elemental denominado SCALING. Los parámetros del escalado forman parte de una estructura de datos denominada PARA_SCALING. Lo más cómodo es insertar el bloque y asignar como entrada de parámetros “parámetros” en la entrada PARA del tipo PARA_SCALING. Por otra parte, la entrada IN y la salida OUT son del tipo REAL. Programa en ST (pr1102) Sección "Control" (* VARIABLES utilizadas en la pantalla de operador*) If %S13 THEN Set(MxP_SetaEmer); Set(MxP_Paro); END_IF; TON_5Hz (IN := Qx_Ventilador AND NOT TON_5Hz.Q, PT := t#200ms); Mx_Osc5Hz := TON_5Hz.ET >= t#100ms; Mx_VentON1:= NOT Mx_Osc5Hz AND Qx_Ventilador; Mx_VentON2 := Mx_Osc5Hz AND Qx_Ventilador; (* VARIABLE utilizadas en el control Local o a Distancia *) 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_SetaEmer := (Ix_SetaEmer And Ix_LocDis) Or (MxP_SetaEmer And Not Ix_LocDis); (* Escalado de la señal de la sonda PT100 *) Ir_PT100 := INT_TO_REAL (IN := Ii_PT100); SCALING_0 (IN := Ir_PT100, PARA := Parámetros_SCALING, OUT => Mr_TempHorno); IF Mx_Marcha AND Ix_SW THEN SET (Mx_Calienta); RESET (Mx_Ventila); END_IF; IF NOT Mx_Paro THEN RESET (Mx_Calienta); RESET (Mx_Intervalo); SET (Mx_Ventila); END_IF;
  • 457. Problemas M340 - 457 Universidad de Oviedo ISA - J. Alonso - I. Machón IF NOT Mx_SetaEmer THEN RESET (Mx_Calienta); RESET (Mx_Intervalo); RESET (Mx_Ventila); SET (Mx_EnEmerg); ELSE RESET (Mx_EnEmerg); END_IF; (* Control de la lámpara*) If GE (Mr_TempHorno, 42.0) THEN SET (Mx_Intervalo); END_IF; If LE (Mr_TempHorno, 38.0) THEN RESET (Mx_Intervalo); END_IF; Qx_Lamp := Mx_Calienta AND NOT Mx_Intervalo; (* Control del ventilador*) IF LE (Mr_TempHorno,30.0) THEN RESET (Mx_Ventila); END_IF; Qx_Ventilador := (Mx_Calienta AND (Mx_Intervalo)) OR (Mx_Ventila); TON_2HZ (IN := NOT TON_2HZ.Q, PT := t#500ms); Mx_Osc2Hz:=TON_2HZ.ET>T#250ms; Qx_LAmbar := Qx_Lamp; Qx_Zumbador := (Mx_Calienta OR GE (Mr_TempHorno, 35.0)) And NOT Ix_SW; Qx_LRoja := ((Mx_Calienta OR GE (Mr_TempHorno, 35.0)) And NOT Ix_SW) OR Mx_EnEmerg AND Mx_Osc2Hz; Qx_LVerde := NOT Qx_Lamp And LT (Mr_TempHorno, 30.0);
  • 458. 458 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de operador Se introducen dos rectángulos animados con la variable de control la Mr_TempHorno. Uno como gráfico de tendencias y otro como gráfico de barras.
  • 459. Problemas M340 - 459 Universidad de Oviedo ISA - J. Alonso - I. Machón Programación por fases Emplearemos este tipo de programación cuando se trate de programar una parte secuencial de nuestro programa. Nos basaremos en el GRAFCET de nivel 2. Se trata de habilitar y desahabilitar unas secciones del código de nuestro programa mediante unas instrucciones condicionales basadas en unas variables (Mx_Fase1, Mx_Fase2,.. ) de forma tal, que de esas variables sólo podrá estar activa una de ellas, el resto estará a 0. Utilizaremos para ello las instruciones SET y RESET. Como ejemplo programaremos por fases una variante del programa 5.1 visto anteriormente. Problema 12.01 · Control de un portón. Programación mediante FASES Diseñar el circuito lógico que realice la siguiente apertura y cierre de un portón. Cuando se acciona el pulsador "P" y esté cerrado, ha de iniciar la maniobra de apertura, hasta que el portón accione el final de carrera "FCA" (ABIERTO). En el caso de que se produjera, durante la maniobra de apertura, el accionamiento del pulsador "P", el portón debe pararse, permaneciendo en este estado hasta que se produzca de nuevo el accionamiento del pulsador, "P", momento en el cual debe proceder denuevo a la maniobra de apertura. Cuando se acciona el pulsador "P" y esté abierto, ha de iniciar la maniobra de cierre hasta que el portón accione el final de carrera "FCC" (CERRADO). De forma análoga, si, durante la maniobra de cierre, se acciona el pulsador "P", el portón 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. En ambos casos, una vez dada la orden de parada al portón, éste no permanezca en este estado indefinidamente, sino que, una vez transcurridos quince segundos, se abrirá automaticamente el portón. El portón estará parado abierto o semiabierto, un máximo de 30 segundos. PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, la fuente de alimentación BMX CPS 2000 (24VDC 20W, eficiencia del 82%) alimenta al módulo mixto de entradas salidas BMX DDM3202K entradas y salidas PNP. El pulsador y los finales de carrera, se consideran normalmente abiertos.
  • 460. 460 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Tablas de variables Sección "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); Mx_FPulsador := RE (Mx_Pulsador); If %S13 THEN Set (MxP_FCC); (* para controlar la PANTALLA de operador*) Set (Mx_Fase1); END_IF; Mx_PortonParado := Mx_Fase4 Or Mx_Fase6; Sección "Control" (* Fase1 - PORTON CERRADO *) If Mx_Fase1 and Mx_FPulsador Then Reset (Mx_Fase1); Set (Mx_Fase2); (* Fase2 - ABRIR el portón *) Reset (Mx_FPulsador); End_if; (* Fase2 - ABRIR el portón *) If Mx_Fase2 Then Set(Qx_Abrir); If Mx_FCA Then Reset (Qx_Abrir); Reset (Mx_Fase2); Set(Mx_Fase3); (* Fase3 - ABIERTO esperando Pulsador para cerrar o 30s para Cerrar *) End_if; If Mx_FPulsador Then Reset (Qx_Abrir); Reset (Mx_Fase2); Set (Mx_Fase4); (* Fase4 - PARADO esperando Pulsador para Abrir o 30s para Cerrar *) Reset (Mx_FPulsador); End_if; End_if; TON_30s (IN := Mx_Fase3 Or Mx_Fase4 Or Mx_Fase6,PT := t#30s);
  • 461. Problemas M340 - 461 Universidad de Oviedo ISA - J. Alonso - I. Machón (* Fase3 - ABIERTO esperando Pulsador para cerrar o 30s para Cerrar *) If Mx_Fase3 and (Mx_FPulsador Or TON_30s.Q) Then Reset (Mx_Fase3); Set(Mx_Fase5); (* Fase5 - CERRAR el portón *) Reset (Mx_FPulsador); End_if; (* Fase4 - PARADO esperando Pulsador para Abrir o 30s para Cerrar *) If Mx_Fase4 Then If Mx_FPulsador Then Set(Mx_Fase2); (* Fase2 - ABRIR el portón *) Reset (Mx_Fase4); Reset (Mx_FPulsador); End_if; If TON_30s.Q Then Reset (Mx_Fase4); Set(Mx_Fase5); (* Fase5 - CERRAR el portón *) End_if; End_if; (* Fase5 - CERRAR el portón *) If Mx_Fase5 Then Set(Qx_Cerrar); If Mx_FCC Then Reset (Qx_Cerrar); Reset (Mx_Fase5); Set (Mx_Fase1); (* Fase1 - PORTON CERRADO *) End_if; If Mx_FPulsador Then Reset (Qx_Cerrar); Reset (Mx_Fase5); Set(Mx_Fase6); (* Fase6 - PARADO esperando Pulsador para Abrir o 30s para Cerrar *) Reset (Mx_FPulsador); End_if; End_if; (* Fase6 - PARADO esperando Pulsador para Abrir o 30s para Cerrar *) If Mx_Fase6 Then If Mx_FPulsador Then Reset (Mx_Fase6); Set(Mx_Fase2); (* Fase2 - ABRIR el portón *) Reset (Mx_FPulsador); End_if; If TON_30s.Q Then Reset (Mx_Fase6); Set(Mx_Fase5); (* Fase5 - CERRAR el portón *) End_if; End_if; Elementos de la Pantalla de explotación
  • 462. 462 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 463. Problemas M340 - 463 Universidad de Oviedo ISA - J. Alonso - I. Machón GEMMA 1. Introducción [12] Cuando se desea automatizar una máquina o un proceso industrial automatizado, se deben contemplar todos los posibles estados en los que se pueda encontrar esa máquina o proceso. Así mismo se deberán tener también en cuenta las distintas formas de evolucionar de unos estados hacia los otros. El programa implementado no solamente controlará el funcionamiento normal automático, si no que deberá preveer todas las situaciones de fallo, de avería y de parada de emergencia. Asimismo, una cuestión fundamental es el rearme de la máquina o proceso y su puesta en marcha, debiendo contemplar el caso en el que la producción deba continuar en el estado previo a la emergencia, o si ya no es posible continuar, si el proceso debe ser iniciado de nuevo. Se deberán implementar también las marchas de test, el control manual etc. El objetivo es reducir al mínimo los tiempos de parada de las máquinas y hacer simple el proceso de rearranque y los cambios de modo de funcionamiento, por ejemplo paso de control manual a control automático. Necesidad de un vocabulario preciso Cuando automatizamos un proceso y definimos sus modos de marcha y paro, utilizamos un vocabulario que a veces es impreciso y algunas veces incluso contradictorio. Por ejemplo los términos "marcha automática, semiautomática, manual" se emplean de forma diferente por las personas dependiendo de su experiencia, de su entorno, de la tecnología utilizada, dándoles un significado diferente. Por tanto, es necesario utilizar un vocabulario preciso según unos criterios uniformes independientemente de las personas que lo utilicen y de la tecnología que se emplee. 2. Conceptos básicos Un Sistema Automatizado de Producción (SAP) puede ser descompuesto simbolicámente en 3 partes diferenciadas.  La Parte Operativa (PO) que comprende los mecanismos, los efectores, los accionadores, los preaccionadores y los sensores.  La Parte de Supervisión y Explotación (PS) comprende los componentes de señalización, de visualización y de comunicaciones (redes).  La Parte de Control (PC) que recoge todas las informaciones de la PO y de la PS y proporciona las ordenes destinadas a los preaccionadores de la PO y a los componentes de señalización, de visualización y comunicación. Figura 1. Sistema Automático de Producción
  • 464. 464 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón (SAP) Concepto número 1 Los procedimientos de marcha, paro y defecto son vistos por la parte del control en orden de marcha. Por tanto, se supone que la parte de control está en marcha, con todos sus elementos alimentados, tanto si la parte operativa está sin energía, en defecto o parada. Concepto número 2 Un sistema automatizado es concebido fundamentalmente para producir un bien con un valor añadido. Es la justificación principal de la construcción del sistema. Esta producción puede ser variada: modificación de productos, control, manutención, la experiencia nos enseña que se puede siempre caracterizar por un sistema dado de manera única y precisa. Diremos que el sistema está en producción si el valor añadido para el cual el sistema fué concebido es obtenido, diremos que el sistema está fuera de producción en caso contario. Concepto número 3 Se puede clasificar en tres grandes familias los modos de Marcha y Paro de un sistema automatizado. • Grupo A · Procesos de Parada y Puesta en Marcha Engloba los procesos de parada activados a petición del operador por diversas causas como fin de trabajo, parada pedida a fin de ciclo, parada en un estado determinado y que no responden a eventos generados por la propia máquina (A1 a A4). También engloba los procesos conducentes a la puesta en marcha de la máquina como son la puesta del sistema en el estado inicial o la puesta del sistema en un estado determinado (A5 a A7). • Grupo F · Procesos de funcionamiento Designa los procesos necesarios para la producción y obtención de productos. Además del estado de producción normal automática, engloba también las marchas de preparación y de cierre (F2 y F3), las marchas de test y las marchas de verificación (F4 a F6). • Grupo D · Procesos de fallo de la Parte Operativa Es raro que un sistema automatizado funcione sin incidentes durante toda su vida: es necesario por tanto preveer todos los posibles defectos. Este grupo contiene todos los modos en los que el sistema está en defecto tanto si está produciendo (D3), está parado a petición del operador al pulsar la seta de emergencia (D1) o está en fase de diagnóstico o tratamiento del defecto (D2). Corresponden a todas las paradas por causas internas al proceso. 3. La guía GEMMA La guía GEMMA (Guide d'Étude des Modes de Marches et Arrêts, Guía de Estudio de los Modos de Marcha y Paro) fue desarollada por la ADEPA (Agence nationale pour le DÉveloppement de la Productique Appliquée à l'industrie, Agencia nacional francesa para el desarrollo de la producción aplicada a la industria) en el año 1992. Es una guía gráfica que describe de forma simple, los diferentes estados de marcha y paro, así como sus posibles evoluciones de un estado a otro [ver la figura en la página siguiente]. Es de tipo "CHECK-LIST", cuando se implementa, no se tienen porque recoger todos los estados de la guía. Recogerá solamente aquellos que son precisos por estar demandados en las especificaciones funcionales del sistema.
  • 465. Problemas M340 - 465 Universidad de Oviedo ISA - J. Alonso - I. Machón Figura 2. Guía de Estudio de los Modos de Marcha y Paro La guía GEMMA también representa el estado en que la Parte de Mando se encuentra fuera de Servicio. Es decir, el autómata está sin alimentación o en Stop (zona PZ). Los rectángulos de estado Sobre la guía gráfica GEMMA cada modo de marcha o paro deseado puede ser descrito en uno de los "rectángulos de estado" previstos para este fin. La posición de un rectángulo de estado sobre la guía define:  su pertenencia a una de las tres familias.  el hecho que el esté "EN" o "FUERA" de producción. El rectángulo de estado lleva una designación de marcha o paro utilizando un vocabulario que no lleva a confusión. La guía GEMMA contiene rectángulos de estado en los cuales serán definidos los diferentes estados de marcha y paro del proceso estudiado. Se explicitarán sólo los que sean necesarios, precisando el nombre de cada uno de los estados en el interior del rectángulo correspondiente. El rectángulo de estado representa un modo de funcionamiento, no se puede estar en un momento determinado en más que un sólo rectángulo. La guía GEMMA está concebida para un proceso operativo único controlado por un sistema de control único.
  • 466. 466 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Procedimientos de PARADA Y PUESTA EN MARCHA - A Este grupo contiene todos los modos de funcionamiento en los que el sistema está parado, los que llevan a una parada del sistema y los que permiten pasar el sistema de un estado de defecto a un estado de parada para volver a poner en marcha el sistema. Estos procesos se ejecutan normalmente a petición del operador y también cuando se arranca la máquina para efectuar un posicionamiento inicial. Estos son los significados de los rectágulos de estado de la zona de Paro y puesta en Marcha. A1 - Parada en el estado inicial (CI) Es el estado normal de reposo de la máquina. Este estado se corresponde habitualmente con la etapa inicial de un GRAFCET, se representa por un rectángulo doble. Para un estudio más fácil del automatismo, se recomienda representar en este estado inicial la máquina. A2 - Parada solicitada a final de ciclo Es un estado transitorio en el que la máquina, que hasta ese momento estaba produciendo normalmente, debe producir sólo hasta acabar el ciclo y pasar a estar parada en el estado inicial. Es un estado que memoriza una parada solicitada por el operador para que la máquina acabe de ejecutar un ciclo y pase a estado de paro en estado inicial A1. A3 - Parada solicitada en un estado determinado Es un estado que memoriza una parada solicitada por el operador para que la máquina pare en un estado intermedio del ciclo y pase al estado de parada obtenida en A4. A4 - Parada obtenida Es un estado de paro en un estado intermedio del ciclo de la máquina distinto del paro al final del ciclo en el estado inicial. Según la máquina, pueden implementarse varios estados diferentes de parada obtenida que se corresponderán con diferentes estados intermedios del proceso de fabricación, lo cual supone varios estados de parada solicitada en un estado determinado. Por lo tanto, existirán tantos mandos en el panel de control como los que necesite el operador para realizar las peticiones. A5 - Preparación para la puesta en marcha después de defecto En este estado se deben realizar las acciones necesarias para corregir los fallos o defectos que han supuesto que se ejecutara una parada de emergencia. Esto lo realizarán los operarios de mantenimiento de la instalación, el autómata les podrá indicar, si se ha programado para ello, dónde se encuentra aproximadamente el fallo. Una vez finalizado el proceso el operador elegirá cómo se reinicia la máquina. A este estado también se le conoce como selección del modo de reinicio por parte del operador. El operador, mediante mandos del panel de control, decidirá pasar la máquina a control manual, o bien pasarla al estado A6 para situarla en el estado inicial. A6 - Puesta del sistema en el estado inicial (P.O.) La máquina es puesta por el autómata programable de forma automática o manualmente, en el estado inicial A6. Se realiza el llamado proceso de retorno automático al estado inicial. A7 - Puesta del sistema (P.O.) en un estado determinado Desde el estado A7 el operador decide situar la máquina en un estado diferente al inicial, dado que la producción debe continuar a partir de ese estado y no comenzar desde el principio. Corresponde a casos en que ha existido previamente un defecto o una parada de emergencia que ha dejado el sistema a medio producir.
  • 467. Problemas M340 - 467 Universidad de Oviedo ISA - J. Alonso - I. Machón Procedimientos de FUNCIONAMIENTO - F Estos son los significados de los rectágulos de estado de la zona de Funcionamiento F1 - Producción normal (Automático) Representa al GRAFCET que realiza la producción normal de la máquina. Es el estado más importante, va representado por un rectángulo de paredes más gruesas que los demás. El estado de producción normal suele ser un funcionamiento automático, por lo cual al GRAFCET asociado se le denomina GRAFCET de producción normal automática. F2 - Marcha de preparación Este estado recoge las acciones necesarias en modo manual o modo automático previas para que una máquina entre en producción: calentamiento de un producto, selección de una herramienta específica, preparación de señales neumáticas, hidraúlicas o eléctricas, vaciado de tuberías, limpieza, enfriamiento etc. F3 - Marcha de cierre Corresponde a la fase de vaciado y/o limpieza que muchas máquinas deben llevar a cabo antes de parar o de cambiar algunas características del producto. F4 - Marchas de verificación sin orden (Mantenimiento) La máquina está en control manual, el operador por medio de mandos del panel de control, puede mover los accionadores de la máquina. Estos movimientos pueden ser hechos de forma aleatoria/desorden y deben ser realizados dentro de las condiciones de seguridad de la máquina. Se suele utilizar para fijar el correcto funcionamiento de los captadores y accionadores de la máquina. F5 - Marchas de verificación con orden (Semiautomático) En este caso la máquina realiza el ciclo completo de funcionamiento en orden pero de forma manual al ritmo fijado por el operador. Se usa para funciones de mantenimiento y verificación. En este estado la máquina puede producir o no. F6 - Marchas de test (Test) De forma manual, sirve para realizar operaciones de ajuste y mantenimiento preventivo. El autómata activa los accionadores de la máquina esperando la activación de los captadores para su reglaje o calibración, curvas de comportamiento de algunos actuadores... Procedimientos de DEFECTO - D Estos son los significados de los rectágulos de estado de la zona de Defectos D1 - Parada de emergencia A este estado se debe poder llegar desde cualquier estado del automatismo. Se debe llevar la máquina a una situación segura tanto para el operario como para el sistema, normalmente implica la parada de los accionadores. Se deberá procurar que el autómata memorice el estado en que se encontraba antes de ejecutar la parada emergencia para una vez superado el defecto se pueda rearmar la máquina en la situación correcta. D2 - Diagnóstico y/o tratamiento de los defectos El autómata puede guiar al operador para indicarle más o menos dónde se encuentra el defecto. La reparación del defecto tendrá que ser realizada por el operador o por el personal de mantenimiento. Llevado
  • 468. 468 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón el proceso al estado A5, puede ser implementado un proceso para el arranque del proceso. D3 - Producción a pesar de los defectos Corresponde a aquellos casos en que hay que continuar produciendo a pesar de que el sistema no trabaja correctamente. Casos en los que falla un accionador que puede ser sustituido por un operador o casos como el de una línea de fabricación en que falla un puesto, pero que al estar duplicado la producción puede continuar. Una máquina se puede encontrar en producción o fuera de producción. Si está en producción, puede encontrarse en un proceso tipo F, tipo A o tipo D. Igualmente si está fuera de producción puede encontrarse en procesos tipo F, A o D. La situación de algunos estados dentro o fuera de producción depende de la implementación real. Por ejemplo el estado F5, Marchas de verificación con orden, puede estar dentro o fuera de producción. En este estado se realiza un ciclo de la máquina, pero puede ser que no cumpla los requisitos temporales de producción. Lo mismo sucede con las marchas de test, que pueden producir o no según como se realice el test. Procedimientos del control fuera de servicio - PZ Estudiaremos el caso general de controlar el sistema mediante un Autómata Programable Industrial Figura 3. Bucles pérdida de energía en estado de marcha de la PC PZ1 - Puesta del control sin energía Se corresponde al caso de que el automatismo se queda sin energía estando trabajando la PC en cualquier, estado. Las condiciones para acceder a este estado son a partir de cualquier estado, voluntariamente o accidentalmente. Voluntariamente  por la maniobra de un seccionador  por el desactivamiento de un contactor intermedio No es aconsejable acceder de este modo cuando se está en zona de producción La situación voluntaria solo debería darse cuando el sistema se encuentra en el estado A1, en PZ2 o en PZ3.
  • 469. Problemas M340 - 469 Universidad de Oviedo ISA - J. Alonso - I. Machón Accidentalmente  por cortes en la red de alimentación Si se trata de un microcorte, la duración de la falta de energía puede ser tenida en cuenta en el estado PZ2 En el estado PZ1, es necesario especificar cúales son las acciones que hay que llevar a cabo en la parte operativa (proceso) por ejemplo  quitar la energía a la parte operativa si esto no está relacionado con la falta de energía de la PC.  parada inmediata o terminar los movimientos en curso  bloquear mecánicamente las cargas suspendidas PZ2 - Puesta del control en estado de marcha Se parte de que la Parte de Control y de que la Parte de Supervisión están alimentadas. La conexión de energía se ha hecho al mismo tiempo, estando alimentadas desde la misma fuente de alimentación o diferentes. De todas formas, es necesario que la PS esté en servicio antes o a la vez que la PC. El estado del sistema automático es conocido por medio de los indicadores de señalización o las pantallas de los terminales de diálogo. Esto es importante para la supervisión permanente del sistema. Cuando se conectan los autómatas programables, ejecutan un procedimiento interno de autotest: autodiagnóstico y autocontrol dentro de lo que denominamos ciclo de SCAN  la concordancia de la configuración real con la configuración en memoria  los posibles defectos en los módulos de hardware de entradas y salidas  la presencia o el cambio de la tarjeta de memoria del programa de control  si hay desbordamiento en el temporizador watch dog Si el resultado es positivo, permite la activación automática de la PC (modo RUN), la parte de control está activa. Si el resultado es negativo, según sea la naturaleza de los fallos se queda en el estado PZ2 (modo STOP) o pasa al estado PZ3. La condición de Parte de Control activa es condición necesaria y obligatoria para pasar de la zona PZ a la zona de los modos de marcha y paro. En el momento que se ponga el AP en RUN, el programa de inicialización impondrá una situación particular de los GRACETs y de las salidas a los preaccionadores. PZ3 - Puesta del control fuera del estado de marcha En este estado, la Parte de Control está energizada, pero no está operativa (modo STOP). Se puede  volver al estado PZ1 por un corte en la energía  volver al estado PZ2 si se dispone de un medio para suprimir la causa de los fallos. También se puede acceder a este estado a partir de A1 a petición del operario, o a partir de cualquier estado si se detectan anomalías en el automatismo (módulos de entrada/salida, memoria RAM, anomalías en la CPU o desbordamiento de watch dog). Para simplificar la representación gráfica de la guía GEMMA, los modos PZ1, PZ2 y PZ3 no se incluyen en la figura 2. 4. Gestión de la energía en la Parte de Control La gestión de la pérdida de energía, está contemplada en el desarrollo de este documento dentro del apartado dedicado al método GEMMA: "Estados de la familia PZ", el cual trata de un manera sistemática las diferentes posibilidades que se pueden presentar al gestionar los modos de marcha y parada.
  • 470. 470 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón En este apartado se va describir los procedimientos que vienen implementados en los equipos M340 para gestionar la perdida y la conexión a la energía. Si hay un corte en la alimentación inferior a 10 ms, el programa no lo ve y se ejecuta normalmente. Al quitar alimentación o un corte superior a 10 ms, todos los datos direccionados y no direccionados y el buffer de diagnóstico se salvarán en la Memoria Flash Interna automáticamente. Se restauran después de un arranque en caliente. También sitúa todas las salidas en estado de retorno (estado definido en la configuración). Cuando se restablece la alimentación, se realizan diversas acciones y comprobaciones para verificar si está disponible el reinicio en caliente:  Restauración del contexto de la aplicación desde la memoria Flash interna,  Verificación con la tarjeta de memoria (presencia, disponibilidad de la aplicación),  Comprobación de que el contexto de la aplicación es idéntico al de la tarjeta de memoria. Si todas las comprobaciones son correctas, se efectuará un reinicio en caliente; de lo contrario, se realizará un arranque en frío (véanse págs 157 y siguientes de [S03]). %MW backup: Los valores de las %Mwi se pueden salvar en la memoria Flash interna de la CPU en modo STOP usando el bit 0 de %SW96. Estos valores se restaurarán al arrancar en frio en una descarga de la aplicación, si la opción “Inicialización de %MW al arranque en frio" no está marcada en la pantalla de configuración del procesador, si no, se inicializarán. ¡OJO! Es necesario asignar a los datos una dirección topológica si el proceso requiere conservar los valores actuales de estos datos al transferir la aplicación.
  • 471. Problemas M340 - 471 Universidad de Oviedo ISA - J. Alonso - I. Machón El programa se salva en la tarjeta de memoria: Automáticamente, después: De una descarga: si la tarjeta de memoria está presente y no tiene protegida la escritura. Modificación Online: si la tarjeta de memoria está presente y no tiene protegida la escritura, por detección del bit sistema %S66 (flanco ascendente) Manualmente, con el comando PLC -> backup de proyecto -> Guardamos Backup . Nota: si se quita la tarjeta de memoria cuando el backup está en progreso, el programa sobre la tarjeta de memoria se pierde. El programa se copia desde la tarjeta de memoria a la memoria interna: Automáticamente después de: Un arranque en caliente. Un arranque en frio. Manualmente, con el comando: PLC -> Backup de proyecto -> Restaurar Backup. Nota: Cuando tu insertas la tarjeta de memoria en el modo run o stop, Se ha de esperar un tiempo de alimentación para restaurar el proyecto en el PLC
  • 472. 472 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Hay dos modos de arranque de los equipos.  Arranque en frío.  Arranque en caliente. 5. Procesamiento en arranque en frio Causa de un arranque en frío En la tabla siguiente se describen las diferentes causas de un inicio en frío. Causas Características del inicio Carga de una aplicación Inicio en frío forzado en STOP Restaurar la aplicación de la tarjeta de memoria si difiere de la que hay en la memoria RAM interna Inicio en frío forzado en STOP o en RUN, según la definición de la configuración Restaurar aplicación de tarjeta de memoria, con comandos de Unity Pro PLC → Backup del proyecto →.... Inicio en frío forzado en STOP o en RUN, según la definición de la configuración Pulsación del botón RESET de la fuente de alimentación Inicio en frío forzado en STOP o en RUN, según la definición de la configuración Pulsación del botón RESET de la fuente de alimentación durante menos de 500 ms tras una desconexión Inicio en frío forzado en STOP o en RUN, según la definición de la configuración Pulsación del botón RESET de la fuente de alimentación tras un error del procesador, salvo que se trate de un error del watchdog Inicio en frío forzado en STOP. El inicio en la modalidad RUN, según está definido en la configuración, no se tiene en cuenta Inicialización desde Unity Pro Forzado del bit de sistema %S0 Inicio en STOP o en RUN (conservando la modalidad operativa en curso en el momento de la desconexión), inicialización únicamente de la aplicación Restablecimiento después de un corte de alimentación con pérdida del contexto Inicio en frío forzado en STOP o en RUN, según la definición de la configuración
  • 473. Problemas M340 - 473 Universidad de Oviedo ISA - J. Alonso - I. Machón En el diagrama siguiente se describe el funcionamiento de un reinicio en frío. Tabla en la que se presenta las fases de reinicio de la ejecución del programa en el reinicio en frío. Fase Descripción 1 El inicio se efectúa en RUN o en STOP, según el estado del parámetro Inicio automático en RUN definido en la configuración o, si se utiliza, en función del estado de la entrada RUN/STOP. La ejecución del programa se reanuda al comienzo del ciclo. 2 El sistema efectúa lo siguiente:  Desactiva las tareas, excepto la tarea maestra, hasta que termine el primer ciclo de la tarea maestra.  Inicializa los datos (bits, imagen de E/S, palabras, etc.) con los valores iniciales definidos en el editor de datos (valor 0 si no se ha definido ningún valor inicial). Para las palabras %MW, los valores pueden recuperarse en un reinicio en frío si se cumplen estas dos condiciones: o La opción (véase Unity Pro, Modalidades de funcionamiento) Inicializar %MW en reinicio en frío está desactivada en la pantalla de configuración del procesador. o La memoria flash interna tiene una copia de seguridad válida (consulte %SW96 (véase EcoStruxure™ Control Expert, System Bits and Words, Reference Manual)). Nota: si el número de palabras %MW supera el tamaño de la copia de seguridad (consulte la estructura de la memoria de los PLC M340 (véase página 141)) durante la operación de almacenamiento, las palabras restantes se establecen en 0.  Inicializa los bloques de funciones elementales a partir de los datos iniciales.  Inicializa los datos declarados en los DFB: en 0 o en el valor inicial declarado en el tipo de DFB.  Inicializa los bits y palabras de sistema.  Posiciona los gráficos en los pasos iniciales.  Cancela los forzados que haya.  Inicializa las filas de mensajes y de eventos.  Envía los parámetros de configuración a todos los módulos de entradas/salidas binarias y los módulos específicos de la aplicación. 3 En este primer ciclo de reinicio, el sistema efectúa lo siguiente:  Reinicia la tarea maestra con los bits %S0 (reinicio en frío) y %S13 (primer ciclo en RUN) en la posición 1, la palabra %SW10 (detección de un reinicio en frío en el primer ciclo de una tarea) se pone a 0.  Pone a 0 los bits %S0 y %S13, y pone a 1 cada bit de la palabra %SW10, cuando finaliza el primer ciclo de la tarea maestra.
  • 474. 474 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón  Activa la tarea rápida y los tratamientos de eventos cuando finaliza este primer ciclo de la tarea maestra. 6. Procesamiento en arranque en caliente Causa de un reinicio en caliente Se puede provocar un reinicio en caliente mediante un restablecimiento de la alimentación sin perder contexto. Si no hay ninguna tarjeta de memoria en el PLC durante un reinicio en caliente, se pierde la aplicación. La figura siguiente describe el funcionamiento de un reinicio en caliente Tabla en la que se presenta las fases de reinicio de la ejecución del programa en el reinicio en caliente. Fase Descripción 1 La ejecución del programa no se reanuda a partir del elemento en el cual ha tenido lugar el corte de corriente. El resto del programa se descarta durante el arranque en caliente. Cada tarea se reiniciará desde el principio 2 Cuando termina el ciclo de reinicio, el sistema:  restaura el valor de las variables de la aplicación,  ajusta el bit %S1 a 1,  la inicialización de las filas de mensajes y de eventos,  el envío de parámetros de configuración a todos los módulos de entradas/salidas binarias y funciones específicas,  la desactivación de la tarea rápida y de los tratamientos de eventos (hasta que termine el primer ciclo de la tarea maestra). 3 El sistema lleva a cabo un ciclo de reinicio en el que:  reinicia la tarea maestra desde el principio del ciclo,  vuelve a poner en estado 0 los bits %S1 cuando termina este primer ciclo de la tarea maestro y  reactiva la tarea rápida y los tratamientos de eventos cuando finaliza este primer ciclo de la tarea maestra.
  • 475. Problemas M340 - 475 Universidad de Oviedo ISA - J. Alonso - I. Machón Procesamiento por programa de un reinicio en caliente En caso de reinicio en caliente, si se desea un tratamiento particular respecto a la aplicación, deberá escribirse el programa correspondiente para que pruebe que %S1 está definido en 1 al inicio del programa de la tarea maestra. 7. Método de utilización del GEMMA Con el estudio GEMMA, los modos de Marcha y Paro son previstos desde la concepción de la máquina y son integradados en su realización. Después de la realización del GRAFCET de Producción Normal (GPN), tenemos en cuenta la guía GEMMA para seleccionar todos los modos de Marcha y Paro que nos puedan afectar. Selección de los modos de Marcha y Paro 1. Considerar todos los Estados posibles Con sus rectángulos de Estados, la guía constituye una lista de chequeo de los distintos modos de Marcha y Paro en la automatización de un proceso industrial. Para un proceso dado, es importante examinar si es necesario implementar cada uno de los Estados.  Si el Estado del GEMMA es utilizado, se especificará su acción en lenguaje literal dentro del rectángulo de Estado.  Si el Estado del GEMMA no será utilizado, se especificará poniendo una cruz dentro del rectángulo. 2. Especificar las transiciones de un estado al otro Hay dos Estados esenciales definidos al principio de todo estudio de un proceso, el A1 (Parada en el estado inicial) y el F1 (Producción normal). Partiendo de estos dos estados se busca la evolución hacia los otros estados.  Comenzamos con la conexión del proceso desde A1 a F1 preguntándonos,  ¿ es necesaria una Marcha de preparación ? A1 -> F2  Cuando paremos el proceso,  ¿ lo haremos al fin del ciclo ? F1 -> A2 -> A1  ¿ lo haremos en otra posición intermedia ? F1 -> A3 -> A4  En caso de fallo  Una parada de Emergencia por seguridad -> D1  Con producción a pesar de los fallos -> D3 3. Condiciones de evolución entre los modos de marcha y paro Una vez que tengamos seleccionados los modos de marcha y paro a utilizar, y especificado que se va a hacer en el rectángulo de estado; deberemos indicar cúal es la receptividad asociada a la transición de un estado a otro. La especificación de estas condiciones de evolución hacen posible el diseño del armario de control y la posible adición de sensores suplementarios. La transición de un estado a otro se puede hacer de dos maneras:  con una receptividad asociada a la transición (debido a un sensor o a un mando del armario de control)  sin una receptividad asociada a la transición (se ejecuta siempre al final del proceso del estado)
  • 476. 476 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Ejemplo de partida de un GEMMA
  • 477. Problemas M340 - 477 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 13.01 · Manipulador de cubos (Comprobar código) Un sistema manipulador consta de:  1 eje horizontal constituido por un cilindro de doble efecto A, controlado por una electroválvula de potencia biestable servopilotada A+ (Qx_EH_Ext_AM), A- (Qx_EH_Rec_Am) y detectores de posición a0 (Ix_EH_Rec_a0 ) y a1 (Ix_EH_Ext_a1)  1 eje vertical constituido por un cilindro de doble efecto B, controlado por una electroválvula de potencia biestable servopilotada B+ (Qx_EV_Baja_BM), B- (Qx_EV_Sube_Bm) y detectores de posición b0 (Ix_EV_Rec_b0) y b1 (Ix_EV_Ext_b1)  1 actuador de giro C, controlado por una electroválvula de potencia monoestable servopilotada C+ (Qx_PinzaGira_CM) y detectores de posición c0 (Ix_Pinza0_c0) y c1 (Ix_Pinza90_c1). Por defecto la pinza estará en la posición de 0 grados  1 pinza D, controlada por una electroválvula de potencia monoestable servopilotada D+ (Qx_PinzaAbre_DM) y detector de posición d1 (Ix_PinzaAbta_d1). Por defecto la pinza estará cerrada.  1 cilindro de doble efecto E de alimentación de pieza, controlado por una electroválvula de potencia biestable servopilotada E+ (Qx_VAlimExt_EM), E- (Qx_VAlimReco_Em) y detectores de posición e0 (Ix_Alimenta_e0) y e1 (Ix_Alimenta_e1)  1 cilindro de doble efecto F de expulsión de pieza, controlado por una electroválvula de potencia biestable servopilotada F+ (Qx_ VExpExt_FM), F- (Qx_VExpReco_Fm) y detectores de posición f0 (Ix_Expulsa_f0)y f1(Ix_Expulsa_f1)  1 detector inductivo B2 (Ix_CaraMetalica) que nos indica que la pieza bajo la pinza tiene la cara metálica paralela a la botonera y orientada hacia atrás  1 detector capacitivo B1 (Ix_PiezaEnAlimen_DC) que nos indica que hay una pieza baja la pinza  1 detector capacitivo B3 (Ix_PiezaEnRampa) que nos indica que hay una pieza en la zona de expulsión a la rampa  1 Fotocélula B4 (Ix_PiezaEnPetaca_DR), que nos indica que hay piezas en la petaca de alimentación
  • 478. 478 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón  Pulsadores de Rearme (Ix_Rearme NA), Marcha (Ix_Marcha NA) y Paro (Ix_Paro NC)  Conmutador de Local_Distancia (Ix_LocDis Distancia =1)  Una luz indicadora de Defecto (Qx_LuzDefecto) y otra de Falta de Material (Qx_LuzFM). El manipulador nos trasladará las piezas almacenadas de forma arbitraria en la petaca de alimentación, hasta el final de la rampa de bajada con su cara metálica paralela a la botonera de control y visible desde el lado contrario a esta. En la puesta en el estado inicial A6 el sistema estará parado con las luces apagadas. Cuando se active el pulsador Ix_Rearme, el sistema irá a A1 (parada en el estado inicial - Condiciones Iniciales): La pinza se abrirá, se elevará el eje vertical, se recogerá el eje horizontal y luego se cerrará la pinza y se pondrá en 0 º. Los cilindros de expulsión y alimentación recogerán sus vástagos. Funcionamiento en modo local o a distancia Mediante un conmutador en el manipulador podrá seleccionarse el modo de funcionamiento local o a distancia (Ix_LocDis, Loc = 1, Dis = 0) en modo local el manipulador se controlará mediante la botonera situada en él (Marcha, Paro, Rearme), en el modo a distancia, el manipulador será operado desde una pantalla de explotación en un PC. Modo Local En modo local sólo se dispone de los pulsadores de Marcha, Paro y Rearme. Se trabajará por defecto en modo automático, (conmutador MxP_AutMan a 0). Modo automático (exclusivamnete) En el estado A1 (Parada en el estado inicial) se emitirá un mensaje indicado que el sistema está parado en el estado inicial y que se pulse Marcha para continuar. Una vez pulsado marcha, se pedirá al operario que rellene la petaca de alimentación de cubos y pulse Marcha para poner en funcionamiento el manipulador pasando a F1 (Producción normal). Este trabajará de manera autónoma si no se detecta ninguna anomalía hasta que se accione el pulsador de paro (Ix_Paro). Cuando el manipulador se pare en un estadio intermedio (A3), se saldrá de este volviendo a pulsar Marcha, momento en el cual seguirá con el proceso donde estuviese. En cada ciclo deberá realizarse el siguiente procedimiento: 1. Si se detecta pieza en el alimentador por medio del sensor fotoeléctrico B4 (Ix_PiezaEnPetaca_DR), dicha pieza debe situarse bajo el brazo manipulador, empleando el cilindro de alimentación E (Qx_VAlimExt_EM). Esta acción será confirmada por el sensor capacitivo B1 (Ix_PiezaEnAlimen_DC). ¡OJO! Para poder realizar este paso, la pinza del brazo manipulador debe estar situada en posición elevada para no obstaculizar el camino de la pieza. 2. Si en este punto el sensor inductivo B2 (Ix_CaraMetalica) detecta la cara metálica, el brazo manipulador deberá situar la pieza en la posición indicada en el enunciado y llevarla frente a la rampa de expulsión.
  • 479. Problemas M340 - 479 Universidad de Oviedo ISA - J. Alonso - I. Machón En caso contrario, la pieza deberá girarse el número de veces necesario hasta que dicha cara sea detectada, pudiendo darse dos casos: a. Si la detección ha sido realizada, la pieza deberá girarse hasta posicionar la cara metálica en la posición indicada en el enunciado y llevarla frente a la rampa de expulsión. b.Si tras el número de giros necesarios la cara metálica no pudo ser detectada, se llevará la pieza frente a la rampa de expulsión. ¡OJO! Los giros de la pieza deberán realizarse mientras el manipulador mantenga la pieza en posición elevada y nunca abajo o en posiciones intermedias para no dañar el sensor inductivo. 3. Una vez que la pieza sea detectada con el sensor capacitivo B3 (Ix_PiezaEnRampa) se abrirá la pinza (Qx_PinzaAbre_DM), se recoge y se procederá a la expulsión de la pieza mediante el cilindro F (Qx_VExpExt_FM). 4. Si la cara metálica no pudo ser detectada en el paso 2 (error), deberá indicarse que la pieza no satisface las exigencias del enunciado mediante un mensaje en la Pantalla de Operador.  Se encenderá intermitente y alternadamente las lámparas de defecto y falta de material (Qx_LuzDefecto) y (Qx_LuzFM), parando el proceso tras la finalización del ciclo en curso.  Se retirará la pieza defectuosa y luego se pulsara Rearme para ir a el estado A6 de "Puesta en el estado inicial". Modo Distancia Una vez que el sistema llegue a A1 (Parada en el estado inicial) desde A6 (Puesta en el estado inicial) a través de un rearme, se puede elegir:  Ir a F1-Producción Normal (modo automático) seleccionando Mando Automático y pulsando Marcha.  Ir a F4-Marcha de Verificación Sin Orden ( modo manual - mantenimiento), seleccionando Mando Manual, Mantenimiento y pulsando Ack. En este modo, se podrá accionar cada actuador neumático de forma independiente para comprobar su funcionamiento. Se implementará en la pantalla de operador del PC. Se saldrá de este modo pulsando Rearme, momento en el cual se irá al estado A6 (Puesta en el estado inicial). También se podrá acceder a este estado desde F1-Producción Normal si se selecciona modo Mando Manual - Mantenimiento y Ack.  Ir a F5 - Marcha de Verificación Con Orden ( modo manual - semiautomático) seleccionando Manual, Semiautomático y pulsando Ack. Será una producción equivalente a la normal, sólo que habrá que ir pulsando marcha en determinados momentos para seguir con la producción. Se puede pasar desde aquí a ir a F4 - Marcha de Verificación Sin Orden (modo manual - mantenimiento), seleccionando Manual - Mantenimiento y Ack. Producción normal En el estado A1 (Parada en el estado inicial) se emitirá un mensaje indicado que el sistema está parado en el estado inicial y que se pulse Marcha para continuar. Una vez pulsado marcha, se pedirá al operario que rellene la petaca de alimentación de cubos y pulse Marcha para poner en funcionamiento el manipulador
  • 480. 480 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón pasando a F1 (Producción normal). Este trabajará de manera autónoma si no se detecta ninguna anomalía hasta que se accione el pulsador de paro (Ix_Paro). Cuando el manipulador se pare en un estadio intermedio (A3), se saldrá de este volviendo a pulsar marcha, momento en el cual seguirá con el proceso donde estuviese. Si se pulsase Paro a Final de Ciclo (MxP_PFC), se terminará el ciclo en curso y se terminará la producción debiendo pulsar Rearme para ir a A1 (Parada en el estado inicial). En cada ciclo deberá realizarse el siguiente procedimiento: 1. Si se detecta pieza en el alimentador por medio del sensor fotoeléctrico B4 (Ix_PiezaEnPetaca_DR), dicha pieza debe situarse bajo el brazo manipulador, empleando el cilindro de alimentación E (Qx_VAlimExt_EM). Esta acción será confirmada por el sensor capacitivo B1 (Ix_PiezaEnAlimen_DC). ¡OJO! Para poder realizar este paso, la pinza del brazo manipulador debe estar situada en posición elevada para no obstaculizar el camino de la pieza. 2. Si en este punto el sensor inductivo B2 (Ix_CaraMetalica) detecta la cara metálica, el brazo manipulador deberá situar la pieza en la posición indicada en el enunciado y llevarla frente a la rampa de expulsión. En caso contrario, la pieza deberá girarse el número de veces necesario hasta que dicha cara sea detectada, pudiendo darse dos casos: a. Si la detección ha sido realizada, la pieza deberá girarse hasta posicionar la cara metálica en la posición indicada en el enunciado y llevarla frente a la rampa de expulsión. b.Si tras el número de giros necesarios la cara metálica no pudo ser detectada, se llevará la pieza frente a la rampa de expulsión. ¡OJO! Los giros de la pieza deberán realizarse mientras el manipulador mantenga la pieza en posición elevada y nunca abajo o en posiciones intermedias para no dañar el sensor inductivo. 3. Una vez que la pieza sea detectada con el sensor capacitivo B3 (Ix_PiezaEnRampa) se abrirá la pinza (Qx_PinzaAbre_DM), se recoge y se procederá a la expulsión de la pieza mediante el cilindro F (Qx_VExpExt_FM). 4. Si la cara metálica no pudo ser detectada en el paso 2 (error), deberá indicarse que la pieza no satisface las exigencias del enunciado mediante un mensaje en la Pantalla de Operador.  Se encenderá intermitente y alternadamente las lámparas de defecto y falta de material (Qx_LuzDefecto) y (Qx_LuzFM), parando el proceso tras la finalización del ciclo en curso.  Se retirará la pieza defectuosa y luego se pulsara Rearme para ir a el estado A6 de "Puesta en el estado inicial". Defectos y errores del sistema Falta de material: Si la fotocélula no detecta cubos en la petaca en el comienzo del ciclo (error) , deberá indicarse mediante el encendido de la señalización de falta de material de forma intermitente en el estado D2 parando el proceso. En la Pantalla de Operador saldrá un mensaje indicando que se repongan piezas en el alimentador y se pulse Marcha. El ciclo de producción continuará normalmente. Fallo de exceso de material: Si los dos sensores capacitivos se encuentran activados a la vez, indicarán que hay dos piezas en el entorno de trabajo del manipulador. Deberá paralizarse todo el proceso y señalarse la
  • 481. Problemas M340 - 481 Universidad de Oviedo ISA - J. Alonso - I. Machón anomalía mediante el encendido de la señalización de defecto de forma intermitente en el estado D2 (Diagnóstico y/o tratamiento de los errores). En la Pantalla de Operador saldrá un mensaje indicando que se retiren las piezas y se pulse Rearme. El sistema evolucionará hacia A6 (Puesta en el estado inicial). Fallo sensores: si algún sensor falla por cortocircuito o apertura del mismo (defecto), se irá al estado D2 (Diagnóstico y/o tratamiento de los errores). Se indicará con la activación de la señalización de defecto (Qx_LuzDefecto) y se emitirá un mensaje en la Pantalla de Operador Se saldrá de este estado pulsando Rearme, momento en el cual se irá al estado A6 (Puesta en el estado inicial). Fallos críticos: es muy importante evitar estados en la programación que al ejecutarlos pudieran dañar de forma irreversible alguna parte de la estación, a saber:  Girar la pinza en la posición baja.  Extender el eje horizontal con el eje vertical bajado.  Extender el vástago de alimentación si hay otra pieza bajo la pinza.  Avanzar el eje horizontal en la posición baja. Parada de emergencia: En una parada de emergencia que se podrá efectuar en cualquier momento tanto en control local como a distancia, se parará completamente el movimiento estado D1. Abriremos la pinza y cuando pulsemos Rearme, iremos al estado inicial A6. PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de alimentación BMX CPS 2000, módulo de entradas 1 y 2 BMX DDI1602, módulos de salidas 3 y 4 BMX DDO1602
  • 482. 482 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón GEMMA del sistema
  • 483. Problemas M340 - 483 Universidad de Oviedo ISA - J. Alonso - I. Machón Tabla de variables de E/S Sección "Preliminar" (* Inicialización de variables de la pantalla de operación -------------------- *) If %S13 then Set (MxP_Seta); Set (MxP_Paro); (* Emergencia y Paro NC *) End_if; (* Variables utilizadas en CONTROL LOCAL Y A DISTANCIA ------------------------- *) Mx_Seta := Ix_Seta And MxP_Seta; (* pulsador NC *) 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); (* pulsador NC *) Mx_AutoManual := (Ix_AutoManual And Ix_LocDis) Or (MxP_AutoManual And Not Ix_LocDis); (* Auto=0 Manual=1*) Mx_Rearme := (Ix_Rearme And Ix_LocDis) Or (MxP_Rearme And Not Ix_LocDis); (* variables usadas por legibilidad *) Mx_Local := Ix_LocDis; Mx_Distancia := Not Ix_LocDis; Mx_Automatico := Not Mx_AutoManual; (* Auto=0 Manual=1*) Mx_Manual := Mx_AutoManual; Mx_Manten := Not MxP_Mant_SemiA; (* MSVO - Marchas Sin Verificación Orden *) Mx_SemiAutom := MxP_Mant_SemiA; (* MCVO - Marchas Con Verificación Orden *) Mx_FlanRearme := RE(Mx_Rearme);
  • 484. 484 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón (* D1 Parada de EMERGENCIA ------------------------------------------------------- *) If Not Mx_Seta Then Set(Mx_EnEmergencia); (* Se debería pasar a una condición segura *) SR_BorraFases (); SR_BorraMensajes (); SR_BorraImagenes (); SR_BorraModos (); Set (Mx_Imagen_Inicial); Set (Mx_Mensaje06); (* M06 Corrija los problemas y pulse Rearme *) Set (Mx_AbrePinzaDM); (* salvo estas 2, el resto de salidas son anuladas *) SeT (Mx_EV_SubeBm); End_if; If Mx_EnEmergencia And Ix_PinzaAbta_d1 And Ix_EV_Rec_b0 And Mx_FlanRearme Then Reset (Mx_FlanRearme); (* para que no afecte a los siguientes cambios de modo *) Reset (Mx_AbrePinzaDM); Reset (Mx_EV_SubeBm); Set (Mx_A6_PuestaEnEI); Reset (Mx_EnEmergencia); Reset (Mx_Mensaje06); (* M06 Corrija los problemas y pulse Rearme *) End_if; (* A6 - PUESTA en el ESTADO INICIAL ------------------------------------------- *) If %S13 then Set (Mx_A6_PuestaEnEI); End_if; If (Mx_A6_PuestaEnEI) Then Set (Mx_Mensaje01); (* M01 Pulse Rearme para ir a A1 CI *) Set (Mx_Imagen_Inicial); (* PetacaVacía, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *) End_if; (* A6->A1 Llevar el sistema a A1 *) If Mx_A6_PuestaEnEI And Mx_FlanRearme Then Reset (Mx_FlanRearme); Reset (Mx_A6_PuestaEnEI); Reset (Mx_Mensaje01); Set (Mx_PonEnCI); End_If; If Mx_PonEnCI Then SR_PonEnCI (); End_If; (* A1 - PARADA en el ESTADO INICIAL ------------------------------------------- *) If Mx_PuestoEnCI Then Reset (Mx_PuestoEnCI); Set (Mx_A1_ParadaEnEI); Reset (Mx_Mensaje01); Set (Mx_Mensaje02); (* M02 Seleccione [Auto y pulse Ack] o [Manual y (Manten o Semiaut) y pulse Ack] *) End_if; (* F2 - Marcha de PREPARACIÓN · Rellenar la petaca --------------------------- *) If Mx_A1_ParadaEnEI And (Mx_Automatico Or (Mx_Manual And Mx_SemiAutom)) And MxP_Ack Then Reset (Mx_A1_ParadaEnEI); Set (Mx_F2_MarchaPreparacion); Reset (Mx_Mensaje02); Set (Mx_Mensaje03); (* M03 rellene la petaca y pulse Marcha *) End_if; (* Pasar a F5 Modo MANUAL SemiAutomatico MVCO ------------------------------------------ *) If (Mx_A1_ParadaEnEI And Mx_Manual And Mx_SemiAutom And MxP_Ack) Or (Mx_F1_ProduccionNormal And Mx_Manual And Mx_SemiAutom And MxP_Ack) Then Set (Mx_F5_SemiAutom); (* sigue produciendo en F1 automático*) End_if; If (Mx_F5_SemiAutom) Then Mx_Pev := Mx_F5_SemiAutom And Mx_Marcha;
  • 485. Problemas M340 - 485 Universidad de Oviedo ISA - J. Alonso - I. Machón Else Mx_Pev := True; End_if; If (Mx_F5_SemiAutom) And Mx_Automatico Then Reset (Mx_F5_SemiAutom); (* sigue produciendo en F1 automático *) End_if; (* Pasar a F4 - Modo MANUAL MANTENIMIENTO MVSO ------------------------------------- *) If (Mx_A1_ParadaEnEI And Mx_Manual And Mx_Manten And MxP_Ack) Or (Mx_F1_ProduccionNormal And Mx_Manual And Mx_Manten And MxP_Ack) Or (Mx_F5_SemiAutom And Mx_Manual And Mx_Manten And MxP_Ack) Then SR_BorraModos (); SR_BorraFases (); Set (Mx_F4_Mantenimiento); SR_BorraMensajes (); Set (Mx_Mensaje04); (* M04 En mantenimiento para salir pulse Rearme *) End_if; If (Mx_F4_Mantenimiento) And Mx_FlanRearme Then Reset (Mx_FlanRearme); Reset (Mx_F4_Mantenimiento); Set (Mx_A6_PuestaEnEI); Reset (Mx_Mensaje04); (* M04 En mantenimiento para salir pulse Rearme *) End_if; (* F1 - PRODUCCIÓN NORMAL - Automático --------------------------------------- *) If Mx_F2_MarchaPreparacion And Ix_PiezaEnPetaca_DR Then SR_BorraImagenes (); Set (Mx_Imagen0); (* I0 PetacaLlena, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *) End_if; If Mx_F2_MarchaPreparacion And Ix_PiezaEnPetaca_DR And RE(Mx_Marcha) Then Reset (Mx_Mensaje03); Reset (Mx_F2_MarchaPreparacion); Set (Mx_F1_ProduccionNormal); Set (Mx_Fase1); End_if; If (Mx_F1_ProduccionNormal) Then Set (Mx_Mensaje12);(*Para cambiar de modo: Seleccione Auto o [Manual y (Manten o Semiaut) y pulse Ack]*) (* Fase 1 - alimenta una pieza --------------------------------------- *) If Mx_Fase1 And Not Ix_PiezaEnPetaca_DR Then Set (Mx_FM); Set (Mx_D2_DiagnosticoErrores); SR_BorraMensajes (); Set (Mx_Mensaje07); (* M07 Falta Material, reponga y pulse Marcha *) Reset (Mx_Imagen0); Set (Mx_Imagen_Inicial); (* PetacaVacía, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *) Reset (Mx_F1_ProduccionNormal); Reset (Mx_Fase1); End_if; If Mx_Fase1 And Ix_PiezaEnPetaca_DR And Not Mx_EnParo Then Set (Mx_Mensaje12);(* Cambiar de modo: Seleccione Auto o [Manual y (Manten o Semiaut) y pulse Ack]*) Set (Mx_VAlimExtiendeEM); (* alimentamos un cubo *) Reset (Mx_Imagen0); Set (Mx_Imagen1); (* I1 CuboEnAlim., V.Alim.Extendido, PinzaAbta, Alta, EH recogido *) Reset (Mx_Fase1); Set (Mx_Fase1_1); End_If; If Mx_Fase1_1 And Ix_PiezaEnAlimen_DC And Ix_Alimenta_e1 And Mx_PEV Then Reset (Mx_VAlimExtiendeEM); Set (Mx_VAlimRecogeEm); (* Recoge el vástago de alimentación *) Reset (Mx_Mensaje10);
  • 486. 486 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Elsif (Mx_Fase1_1 And Ix_PiezaEnAlimen_DC And Ix_Alimenta_e1) and Mx_PEV = 0 Then Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *) End_if; If Mx_Fase1_1 And Ix_PiezaEnAlimen_DC And Ix_Alimenta_e0 Then Reset (Mx_VAlimRecogeEm); Reset (Mx_Imagen1); Set (Mx_Imagen2); (* I2 CuboEnAlim., V.Alim.Recogido, PinzaAbta, Alta, EH recogido *) Reset (Mx_Fase1_1); Set (Mx_Fase2); Mi_Contador := 0; (* inicializa un contador de vueltas a la pieza *) End_if; (* Fase 2 - detección de cara metálica ----------------------------- *) (* NO HAY cara metálica ------ *) If Mx_Fase2 And Not Ix_CaraMetalica And Ix_EV_Rec_b0 And Not Mx_Fase2_2 And Not Mx_Fase2_3 And Mi_Contador < 4 And Not (Mx_EnParo) Then Set (Mx_Fase2_1); (* gira la pieza 4 veces a lo sumo *) End_if; If Mx_Fase2_1 And Not Ix_PinzaAbta_d1 Then Set (Mx_AbrePinzaDM); (* abre pinza *) Set (Mx_Imagen2); (* I2 CuboEnAlim., V.Alim.Recogido, PinzaAbta, Alta, EH recogido *) End_if; If Mx_Fase2_1 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1 Then Set (Mx_EV_BajaBM); (* baja la pinza *) Reset (Mx_Imagen2); Set (Mx_Imagen3); (* I3A CuboEnAlim., V.Alim.Recogido, PinzaAbta, Baja, EH recogido *) End_if; If Mx_Fase2_1 And Ix_EV_Ext_b1 And Ix_PinzaAbta_d1 And Mx_PEV Then Reset (Mx_AbrePinzaDM); (* cierra la pinza *) Reset (Mx_EV_BajaBM); Set (Mx_Fase2_2); Reset (Mx_Fase2_1); Reset (Mx_Mensaje10); Elsif (Mx_Fase2_1 And Ix_EV_Ext_b1 And Ix_PinzaAbta_d1) and Mx_PEV = 0 Then Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *) End_if; TON_2_2_500ms (IN := Mx_Fase2_2, PT := t#500ms); If TON_2_2_500ms.Q And Mx_Fase2_2 And Not Mx_EnParo And Mx_PEV Then Set (Mx_EV_SubeBm); (* sube la pinza *) Set (Mx_Imagen4); (* I4 CuboEnAlim., V.Alim.Recogido, PinzaCda, Alta, EH recogido *) Reset (Mx_Imagen3); Reset (Mx_Mensaje10); Elsif (TON_2_2_500ms.Q And Mx_Fase2_2 And Not Mx_EnParo) and Mx_PEV = 0 Then Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *) End_If; If Mx_Fase2_2 And Ix_EV_Rec_b0 Then Set (Mx_GiraPinzaCM); (* gira la pinza arriba*) Set (Mx_Imagen5); (* I5 GiraCuboEnPinza, V.Alim.Recogido, PinzaCda, Alta, EH recogido*) Reset (Mx_Imagen4); End_if; If Mx_Fase2_2 And Ix_EV_Rec_b0 and Ix_Pinza90_c1 Then Reset (Mx_EV_SubeBm); Set (Mx_Imagen4); (* I4 CuboEnAlim., V.Alim.Recogido, PinzaCda, Alta, EH recogido *) Reset (Mx_Imagen5); Set (Mx_Fase2_3); Reset (Mx_Fase2_2); End_if; If Mx_Fase2_3 And Not Ix_EV_Ext_b1 And Not (Mx_EnParo) And Mx_PEV Then Set (Mx_EV_BajaBM); (* baja la pinza *) Set (Mx_Imagen3); (* I3 CuboEnAlim., V.Alim.Recogido, PinzaCda, Baja, EH recogido *) Reset (Mx_Imagen4); Reset (Mx_Mensaje10); Elsif (Mx_Fase2_3 And Ix_PinzaAbta_d1 ) and Mx_PEV = 0 Then Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *)
  • 487. Problemas M340 - 487 Universidad de Oviedo ISA - J. Alonso - I. Machón End_If; If Mx_Fase2_3 And Ix_EV_Ext_b1 Then Set (Mx_AbrePinzaDM); (* abre pinza *) Reset (Mx_EV_BajaBM); End_if; If Mx_Fase2_3 And Ix_PinzaAbta_d1 And Mx_PEV Then Set (Mx_EV_SubeBm); (* sube la pinza *) Set (Mx_Imagen2); (* I2 CuboEnAlim., V.Alim.Recogido, PinzaAbta, Alta, EH recogido *) Reset (Mx_Imagen3); Reset (Mx_Mensaje10); Elsif (Mx_Fase2_3 And Ix_PinzaAbta_d1 ) and Mx_PEV = 0 Then Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *) End_if; If Mx_Fase2_3 And Ix_EV_Rec_b0 Then Reset (Mx_EV_SubeBm); Mi_Contador := Mi_Contador + 1; (* incrementa contador *) Reset (Mx_Fase2_3); End_if; (* HAY cara metálica ------ *) If Mx_Fase2 And Ix_Alimenta_e0 And Ix_CaraMetalica And Not Mx_Fase2_2 And Not Mx_Fase2_3 Then Set (Mx_Fase3); (* está la cara metálica o la encontró después de girarla *) Reset (Mx_Fase2); End_if; (* GIRÓ y no encontró la cara metálica en 3 giros ---------------------------------- *) If Mx_Fase2 And Ix_Alimenta_e0 And Not Ix_CaraMetalica And Not Mx_Fase2_2 And Not Mx_Fase2_3 And Mi_Contador = 4 Then Set (Mx_NoCaraMetal); (* error *) SR_BorraFases (); SR_BorraModos (); SR_BorraMensajes (); Set (Mx_D2_DiagnosticoErrores); End_if; (* Fase 3 - abre la pinza y la baja -------------------------------------------------- *) If Mx_Fase3 And Not (Mx_EnParo) And Mx_PEV Then Set (Mx_AbrePinzaDM); (* abre pinza *) Set (Mx_Imagen2); (* I2 CuboEnAlim, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *) Reset (Mx_Mensaje10); Elsif (Mx_Fase2_3) and Mx_PEV = 0 Then Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *) End_if; If Mx_Fase3 And Not (Mx_EnParo) And Ix_PinzaAbta_d1 And Ix_EV_Rec_b0 Then Set (Mx_EV_BajaBM); (* baja pinza, B biestable *) End_If; If Mx_Fase3 And Not (Mx_EnParo) And Ix_PinzaAbta_d1 And Ix_EV_Ext_b1 Then Reset (Mx_EV_BajaBM); Reset (Mx_Imagen2); (* I2 CuboEnAlim, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *) Set (Mx_Imagen3); (* I3A CuboEnAlim, V.AlimExtend, V.ExpRecog, PinzaAbta, EV.Extend, EH.Recog *) Reset (Mx_Fase3); Set (Mx_Fase4); End_if; (* FASE 4 - cierra la pinza, coje la pieza y la sube ------------------------------------ *) If Mx_Fase4 And Not (Mx_EnParo) Then Reset (Mx_AbrePinzaDM); (* cierra pinza y temporiza 500ms *) Set (Mx_Imagen3); (* I3 CuboEnAlim., V.Alim.Recogido, PinzaCda, Baja, EH recogido *) End_if; TON_4_500ms (IN := Mx_Fase4, PT := t#500ms);
  • 488. 488 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón If Mx_Fase4 And Ix_EV_Ext_b1 And TON_4_500ms.Q Then (* Pinza cerrada, válvula monoestable *) Set (Mx_EV_SubeBm); (* sube pinza *) Set (Mx_Imagen4); (* I4 CuboEnPinza, V.Alim.Recogido, PinzaCda, Alta, EH recogido *) Reset (Mx_Imagen3); End_if; If Mx_Fase4 And Ix_EV_Rec_b0 And TON_4_500ms.Q And Mx_PEV Then Reset (Mx_EV_SubeBm); Reset (Mx_Fase4); Set (Mx_Fase5); Reset (Mx_Mensaje10); Elsif (Mx_Fase4 And Ix_EV_Rec_b0 And TON_4_500ms.Q) and Mx_PEV = 0 Then Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *) End_if; (* FASE 5 - avanza pinza, la baja y la abre depositando la pieza ----------------- *) If Mx_Fase5 And Not (Mx_EnParo) Then If Ix_EH_Rec_a0 And Ix_EV_Rec_b0 Then Set (Mx_EH_ExtiendeAM); (* avanza pinza *) End_if; If Ix_EH_Ext_a1 Then Reset (Mx_EH_ExtiendeAM); Set (Mx_Imagen6); (* I6 CuboEnPinza, V.AlimRecogido, PinzaCda, Alta, EH extendido *) Reset (Mx_Imagen4); End_if; If Ix_EH_Ext_a1 And Ix_EV_Rec_b0 And Mx_PEV Then Set (Mx_EV_BajaBM); (* baja pinza *) Reset (Mx_Mensaje10); Elsif (Ix_EH_Ext_a1 And Ix_EV_Rec_b0) and Mx_PEV = 0 Then Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *) End_if; If Ix_EH_Ext_a1 And Ix_EV_Ext_b1 And Mx_PEV Then Reset (Mx_EV_BajaBM); Set (Mx_AbrePinzaDM); (* abre pinza válvula monoestable y suelta pieza *) Set (Mx_Imagen7); (* I7A Cubo en pinza, V.Alim.Recogido, PinzaAbta, Baja, EH extendido *) Reset (Mx_Mensaje10); Elsif (Ix_EH_Ext_a1 And Ix_EV_Ext_b1) and Mx_PEV = 0 Then Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *) End_if; If Ix_EH_Ext_a1 And Ix_EV_Ext_b1 And Ix_PinzaAbta_d1 Then Reset (Mx_Fase5); Set (Mx_Fase6); End_if; End_if; (* Fase 6 - sube pinza abierta, retrocede la pinza y expulsa la pieza, ----------------- *) If Mx_Fase6 And Not (Mx_EnParo) Then If Ix_EH_Ext_a1 And Ix_EV_Ext_b1 And Ix_PinzaAbta_d1 Then Set (Mx_EV_SubeBm); (* sube pinza *) End_if; If Ix_EH_Ext_a1 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1 Then Reset (Mx_EV_SubeBm); Set (Mx_Imagen8); (* I8 CuboEnExpul, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Extend *) Reset (Mx_Imagen7); Set (Mx_EH_RecogeAm); (* retrocede pinza *) End_If; If Ix_EH_Rec_a0 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1 And Mx_PEV Then Reset (Mx_EH_RecogeAm); Set (Mx_Imagen9); (* I9 CuboEnExpul, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *) Reset (Mx_Imagen8); Set (Mx_VExpExtiendeFM); (* expulsa pieza *) Set (Mx_Imagen10); (*I10 PetacaLlena, V.AlimRecog, V.ExpExtend, PinzaAbta, EV.Recog, EH.Recog *) Reset (Mx_Imagen9); Reset (Mx_Mensaje10);
  • 489. Problemas M340 - 489 Universidad de Oviedo ISA - J. Alonso - I. Machón Elsif (Ix_EH_Rec_a0 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1) and Mx_PEV = 0 Then Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *) End_if; If Ix_EH_Rec_a0 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1 And Ix_Expulsa_f1 Then Reset (Mx_VExpExtiendeFM); Set (Mx_VExpRecogeFm); (* recoge vástago de expulsión *) End_if; If Ix_EH_Rec_a0 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1 And Ix_Expulsa_f0 And Mx_PEV Then Reset (Mx_VExpRecogeFm); Reset (Mx_Imagen10); Set (Mx_Imagen0); (* I0 PetacaLlena, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *) Reset (Mx_Mensaje10); Elsif (Ix_EH_Rec_a0 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1 And Ix_Expulsa_f0) and Mx_PEV = 0 Then Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *) End_if; If Ix_EH_Rec_a0 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1 And Ix_Expulsa_f0 And Not Mx_ParoEnFC Then Reset (Mx_Fase6); Set (Mx_Fase1); (* está en CI, vuelve a empezar un proceso de forma continua *) End_if; If Ix_EH_Rec_a0 And Ix_EV_Rec_b0 And Ix_PinzaAbta_d1 And Ix_Expulsa_f0 And Mx_ParoEnFC Then Reset (Mx_Fase6); Set(Mx_Fase7); End_if; End_if; (* FASE 7 - espera Rearme para ir a A1 Parada en el Estado Inicial ----------------- *) If Mx_Fase7 And Mx_ParoEnFC Then Set (Mx_Mensaje01); (* M01 Pulse Rearme para ir a A1 CI *) End_if; If Mx_Fase7 And Mx_Rearme Then Reset (Mx_ParoEnFC); Reset (Mx_Mensaje01); (* M01 Pulse Rearme para ir a A1 CI *) Reset (Mx_Mensaje11); (* M11 Sistema parará al Final del Ciclo*) Reset (Mx_Fase7); Set (Mx_A1_ParadaEnEI); (* A1 PARADA en el ESTADO INICIAL *) End_if; End_if; (* F5 - Modo MANUAL SemiAutomatico MVCO ------------------------------------------ *) If Mx_F1_ProduccionNormal And Mx_Manual And Mx_SemiAutom And MxP_Ack Then Set (Mx_F5_SemiAutom); (* sigue produciendo en F1 automático*) End_if; If (Mx_F5_SemiAutom) Then Mx_Pev := Mx_F5_SemiAutom And Mx_Marcha; ELSE Mx_Pev := True; End_if; If (Mx_F5_SemiAutom) And Mx_Automatico Then Reset (Mx_F5_SemiAutom); (* sigue produciendo en F1 automático *) End_if; (* A3 - PARADA pedida en un estado intermedio ------------------------------------ *) If Not Mx_Paro Then Set(Mx_EnParo); (* programado en las distintas fases *)
  • 490. 490 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Set (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *) End_if; If Ix_Marcha Then Reset (Mx_EnParo); Reset (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *) End_if; (* A2 - PARADA pedida a final del ciclo ------------------------------------------ *) If MxP_ParoFC Then Set (Mx_ParoEnFC); Set (Mx_Mensaje11); (* M11 Sistema parará al Final del Ciclo*) (* saldremos, cuando haya acabado, pulsando Rearme en la fase 6 de F1 Producción Normal *) End_if; Sección "F4_Mantenimiento" (* F4 - Modo MANUAL MANTENIMIENTO MVSO ------------------------------------- *) If (Mx_F4_Mantenimiento) Then If MxP_EH_Ext_Man Then Reset (Mx_EH_RecogeAm); (* A- biestable *) Set (Mx_EH_ExtiendeAM); (* A+ biestable *) End_if; If MxP_EH_Reco_Man Then Reset (Mx_EH_ExtiendeAM); Set (Mx_EH_RecogeAm); End_if; If MxP_EV_Bajar_Man Then Reset (Mx_EV_SubeBm); (* B- biestable*) Set (Mx_EV_BajaBM); (* B+ biestable *) End_if; If MxP_EV_Subir_Man Then Reset (Mx_EV_BajaBM); Set (Mx_EV_SubeBm); End_if; If MxP_PinzaGirar_Man Then Set (Mx_GiraPinzaCM); (* C+ gira a 90grados monoestable *) ELSE Reset (Mx_GiraPinzaCM); End_if; If MxP_PinzaAbrir_Man Then Set (Mx_AbrePinzaDM); (* D+ monoestable *) ELSE Reset (Mx_AbrePinzaDM); End_if; If MxP_VAlimExt_Man Then Reset (Mx_VAlimRecogeEm); (* E- biestable*) Set (Mx_VAlimExtiendeEM); (* E+ biestable *) End_if; If MxP_VAlimReco_Man Then Reset (Mx_VAlimExtiendeEM); Set (Mx_VAlimRecogeEm); End_if; If MxP_VExpExt_Man Then Reset (Mx_VExpRecogeFm); (* F- biestable*) Set (Mx_VExpExtiendeFM); (* F+ biestable *) End_if; If MxP_VExpReco_Man Then Reset (Mx_VExpExtiendeFM); Set (Mx_VExpRecogeFm); End_if; End_if;
  • 491. Problemas M340 - 491 Universidad de Oviedo ISA - J. Alonso - I. Machón Sección "Salidas" (* Con condiciónes de seguridad CS *) Qx_EH_Ext_AM := Mx_EH_ExtiendeAM And Ix_EV_Rec_b0 And Not (Mx_EnEmergencia); (* CS *) Qx_EH_Rec_Am := Mx_EH_RecogeAm And Not (Mx_EnEmergencia); Qx_EV_Baja_BM := Mx_EV_BajaBM And Not (Mx_EnEmergencia); Qx_EV_Sube_Bm := Mx_EV_SubeBm; Qx_PinzaGira_CM := Mx_GiraPinzaCM And Ix_EV_Rec_b0 And Not (Mx_EnEmergencia); (* CS *) Qx_PinzaAbre_DM := Mx_AbrePinzaDM; Qx_VAlimExt_EM := Mx_VAlimExtiendeEM And Not Ix_PiezaEnAlimen_DC And Not (Mx_EnEmergencia); (* CS *) Qx_VAlimReco_Em := Mx_VAlimRecogeEm And Not (Mx_EnEmergencia); Qx_VExpExt_FM := Mx_VExpExtiendeFM And Not Ix_EV_Ext_b1 And Not (Mx_EnEmergencia); (* CS *) Qx_VExpReco_Fm := Mx_VExpRecogeFm And Not (Mx_EnEmergencia); Qx_LuzDefecto := (Mx_NoCaraMetal And %S6) Or (Mx_EnEmergencia) OR (Mx_FalloSensores); Qx_LuzFM := (Mx_FM And %S6) Or (Mx_NoCaraMetal And Not %S6); Sección "D2_DiagnosticoErrores" (* D2 Diagnostico y/o tratamiento de los errores----------------------------------- *) (* No encontró la cara metálica -------------------- *) If (Mx_D2_DiagnosticoErrores) And Mx_NoCaraMetal Then Set (Mx_Mensaje05); (* M05 Pieza sin cara metálica, retire la pieza y pulse Rearme *) End_if; If (Mx_D2_DiagnosticoErrores) And Mx_NoCaraMetal And Mx_FlanRearme Then Reset (Mx_FlanRearme); Reset (Mx_D2_DiagnosticoErrores); Set (Mx_A6_PuestaEnEI); Reset (Mx_NoCaraMetal); Reset (Mx_Mensaje05); End_if; (* FALTA MATERIAL -------------------------------------------------------*) If (Mx_D2_DiagnosticoErrores) And Mx_FM And Ix_PiezaEnPetaca_DR And Not (Mx_Marcha)Then Reset (Mx_Imagen_Inicial); Set (Mx_Imagen0); (* I0 CubosEnPetaca, PinzaAbta, Alta, EH recogido *) End_if; If (Mx_D2_DiagnosticoErrores) And Mx_FM And Ix_PiezaEnPetaca_DR And (Mx_Marcha)Then Reset (Mx_FM); Reset (Mx_D2_DiagnosticoErrores); Set (Mx_F1_ProduccionNormal); Set (Mx_Fase1); Reset (Mx_Imagen_Inicial); Set (Mx_Imagen0); (* I0 CubosEnPetaca, PinzaAbta, Alta, EH recogido *) End_if; (* FALLO EXCESO MATERIAL ------------------------------------------------*) If Ix_PiezaEnAlimen_DC And Ix_PiezaEnRampa Then SR_BorraFases (); Set (Mx_ExcesoMaterial); Set (Mx_Mensaje08); (* M08 Exceso de material, retire las piezas y pulse Rearme *) End_if; If (Mx_ExcesoMaterial) And Mx_Rearme Then Reset (Mx_ExcesoMaterial); Reset (Mx_Mensaje08); (* M08 Exceso de material, retire las piezas y pulse Rearme *)
  • 492. 492 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Set (Mx_A6_PuestaEnEI); End_if; (* FALLO de SENSORES cortocircuitados --------------------------------*) If (Ix_EH_Rec_a0 And Ix_EH_Ext_a1) Or (Ix_EV_Rec_b0 And Ix_EV_Ext_b1) Or (Ix_Pinza0_c0 And Ix_Pinza90_c1) Or (Ix_Alimenta_e0 And Ix_Alimenta_e1) Or (Ix_Expulsa_f0 And Ix_Expulsa_f1 )Then SR_BorraFases (); Set (Mx_FalloSensores); Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *) End_If; (* FALLO de SENSORES abiertos --------------------------------*) TON_4_500ms (IN := Qx_EH_Ext_AM,PT := t#03s); If TON_4_500ms.Q And Not Ix_EH_Ext_a1 Then SR_BorraFases (); Set (Mx_FalloSensores); Set (Mx_mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *) End_if; TON_4_500ms (IN := Qx_EH_Rec_Am,PT := t#03s); If TON_4_500ms.Q And Not Ix_EH_Rec_a0 Then SR_BorraFases (); Set (Mx_FalloSensores); Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *) End_if; TON_4_500ms (IN := Qx_EV_Sube_Bm,PT := t#03s); If TON_4_500ms.Q And Not Ix_EV_Rec_b0 Then SR_BorraFases (); Set (Mx_FalloSensores); Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *) End_if; TON_4_500ms (IN := Qx_EV_Baja_BM,PT := t#03s); If TON_4_500ms.Q And Not Ix_EV_Ext_b1 Then SR_BorraFases (); Set (Mx_FalloSensores); Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *) End_if; TON_4_500ms (IN := Qx_VAlimExt_EM,PT := t#03s); If TON_4_500ms.Q And Not Ix_Alimenta_e1 Then SR_BorraFases (); Set (Mx_FalloSensores); Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *) End_if; TON_4_500ms (IN := Qx_VAlimReco_Em,PT := t#03s); If TON_4_500ms.Q And Not Ix_Alimenta_e0 Then SR_BorraFases (); Set (Mx_FalloSensores); Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *) End_if; TON_4_500ms (IN := Qx_VExpExt_FM,PT := t#03s); If TON_4_500ms.Q And Not Ix_Expulsa_f1 Then SR_BorraFases (); Set (Mx_FalloSensores); Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *) End_if; TON_4_500ms (IN := Qx_VExpReco_Fm,PT := t#03s); If TON_4_500ms.Q And Not Ix_Expulsa_f0 Then SR_BorraFases ();
  • 493. Problemas M340 - 493 Universidad de Oviedo ISA - J. Alonso - I. Machón Set (Mx_FalloSensores); Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *) End_if; TON_4_500ms (IN := Qx_PinzaAbre_DM,PT := t#03s); If TON_4_500ms.Q And Not Ix_PinzaAbta_d1 Then SR_BorraFases (); Set (Mx_FalloSensores); Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *) End_if; TON_4_500ms (IN := Qx_PinzaGira_CM,PT := t#03s); If TON_4_500ms.Q And Not Ix_Pinza90_c1 Then SR_BorraFases (); Set (Mx_FalloSensores); Set (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *) End_if; If Mx_FalloSensores And Mx_FlanRearme Then Reset (Mx_FlanRearme); Reset (Mx_FalloSensores); Reset (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *) Set (Mx_A6_PuestaEnEI); End_if; Subrutina "SR_PonEnCI" (* CI -> Pinza abierta a 0 grados, EV subida la pinza, EH recogido, V Alim recogido, V Expul Recogido *) Set (Mx_AbrePinzaDM); (* D+ abrir pinza - monoestable *) TON_2_2_500ms (IN := Mx_AbrePinzaDM, PT := t#500ms); If Ix_PinzaAbta_d1 and TON_2_2_500ms.Q Then Reset (Mx_EV_BajaBM); Set (Mx_EV_SubeBm); (* B- recoger vástago eje vertical - biestable *) Reset (Mx_EH_ExtiendeAM); Set (Mx_EH_RecogeAm); (* A- recoger cursor eje horizontal - biestable *) Reset (Mx_GiraPinzaCM); (* C+ gira pinza a o grados - monoestable *) Reset (Mx_VAlimExtiendeEM); Set (Mx_VAlimRecogeEm); (* E- recoger vastago alimentación - biestable *) Reset (Mx_VExpExtiendeFM); Set (Mx_VExpRecogeFm); (* F- recoger vástago cilindro expulsión - biestable *) End_if; If Ix_EV_Rec_b0 and Ix_EH_Rec_a0 and Ix_Pinza0_c0 and Ix_Alimenta_e0 and Ix_PinzaAbta_d1 and Ix_Expulsa_f0 then Reset (Mx_EV_SubeBm); (* B- recoger vástago eje vertical - biestable *) Reset (Mx_EH_RecogeAm); (* A- recoger cursor eje horizontal - biestable *) Reset (Mx_VAlimRecogeEm); (* E- recoger vastago alimentación - biestable *) Reset (Mx_VExpRecogeFm); (* F- recoger vástago cilindro expulsión - biestable *) Reset (Mx_PonEnCI); Set (Mx_PuestoEnCI); End_if; Subrutina "SR_BorraFases" Reset (Mx_Fase1); Reset (Mx_Fase2); Reset (Mx_Fase2_1); Reset (Mx_Fase2_2); Reset (Mx_Fase2_3); Reset (Mx_Fase3); Reset (Mx_Fase4); Reset (Mx_Fase5); Reset (Mx_Fase6); Reset (Mx_Fase7);
  • 494. 494 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Subrutina "SR_BorraMensajes" Reset (Mx_Mensaje01); (* M01 Pulse Rearme para ir a A1 CI *) Reset (Mx_Mensaje02); (* M02 Seleccione [Auto y pulse Ack] o [Manual y (Manten o Semiaut) y pulse Ack] *) Reset (Mx_Mensaje03); (* M03 rellene la petaca y pulse Marcha *) Reset (Mx_Mensaje04); (* M04 En mantenimiento para salir pulse Rearme *) Reset (Mx_Mensaje05); (* M05 Pieza sin cara metálica, retire la pieza y pulse Rearme *) Reset (Mx_Mensaje06); (* M06 Corrija los problemas y pulse Rearme *) Reset (Mx_Mensaje07); (* M07 Falta Material, reponga y pulse Marcha *) Reset (Mx_Mensaje08); (* M08 Exceso de material, retire las piezas y pulse Rearme *) Reset (Mx_Mensaje09); (* M09 Fallo de sensores, sustituya el averiado y pulse Rearme *) Reset (Mx_Mensaje10); (* M10 Sistema parado, para continuar pulse MARCHA *) Reset (Mx_Mensaje11); (* M11 Sistema parará al Final del Ciclo*) Subrutina "SR_BorraModos" Reset (Mx_A6_PuestaEnEI); Reset (Mx_A1_ParadaEnEI); Reset (Mx_F2_MarchaPreparacion); Reset (Mx_F1_ProduccionNormal); Reset (Mx_F5_SemiAutom); Reset (Mx_F4_Mantenimiento); Reset (Mx_D2_DiagnosticoErrores); Subrutina "SR_BorraImagenes" Reset (Mx_Imagen_Inicial); (* IIni PetacaVacía, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *) Reset (Mx_Imagen0); (* I0 PetacaLlena, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *) Reset (Mx_Imagen1); (* I1 CuboEnAlim, V.AlimExtend, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *) Reset (Mx_Imagen2); (* I2 CuboEnAlim, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *) Reset (Mx_Imagen3); (* I3 CuboEnAlim, V.AlimExtend, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *) Reset (Mx_Imagen4); (* I4 CuboEnPinza, V.AlimRecog, V.ExpRecog, PinzaCda, EV.Recog, EH.Recog *) Reset (Mx_Imagen5); (* I5 CuboEnPinzaGiro, V.AlimRecog, V.ExpRecog, PinzaCda, EV.Recog, EH.Recog *) Reset (Mx_Imagen6); (* I6 CuboEnPinza, V.AlimRecog, V.ExpRecog, PinzaCda, EV.Recog, EH.Extend *) Reset (Mx_Imagen7); (* I7 CuboEnExpul, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Extend, EH.Extend *) Reset (Mx_Imagen8); (* I8 CuboEnExpul, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Extend *) Reset (Mx_Imagen9); (* I9 CuboEnExpul, V.AlimRecog, V.ExpRecog, PinzaAbta, EV.Recog, EH.Recog *) Reset (Mx_Imagen10); (* I10 PetacaLlena, V.AlimRecog, V.ExpExtend, PinzaAbta, EV.Recog, EH.Recog *)
  • 495. Problemas M340 - 495 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de operador © Dibujos de la pantalla hechos por Angel Sancho y Sonia Madero
  • 496. 496 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 497. Problemas M340 - 497 Universidad de Oviedo ISA - J. Alonso - I. Machón Problema 13.02 · Manipulador de fichas (Resolver) Un sistema manipulador consta de:  un sistema de petaca con fichas opacas y transparentes.  1 cilindro de doble efecto A de alimentación de la pieza desde la petaca, controlado por una electroválvula de potencia monoestable servopilotada (Qx_SacaPieza_Amas) y detectores de posición (Ix_AlimRecogido_a0) y (Ix_AlimExtendido_a1)  1 eje vertical constituido por un cilindro sin vástago de doble efecto F, controlado por una electroválvula de potencia monoestable servopilotada (Qx_SubirBrazo_Fmas) y detectores de posición (Ix_BrazoAbajo_f0) y (Ix_BrazoArriba_f1).  1 cilindro de doble efecto E que nos permite girar el brazo que lleva la pinza y su actuador de giro, controlado por una electroválvula de potencia monoestable servopilotada (Qx_GiraBrazo_Emas) y detectores de posición (Ix_GiroBrazo0_e0) y (Ix_GiroBrazo90_e1).  1 eje constituido por un cilindro de doble efecto D, controlado por una electroválvula de potencia monoestable servopilotada (Qx_ExtenderPinza_Dmas) y detectores de posición (Ix_PinzaRecogida_d0) y (Ix_PinzaExtendida_d1) que nos permite avanzar o recoger la pinza.  1 actuador de giro de la pinza C, controlado por una electroválvula de potencia monoestable servopilotada sin detectores de posición (Qx_GiraPinza_Cmas).  1 pinza B, controlada por una electroválvula de potencia monoestable servopilotada sin detector (Qx_AbrePinza_Bmas), en posición inicial cerrada.  1 detector capacitivo NPN B1 (Ix_HayPieza) que nos indica que hay piezas en la petaca de alimentación.  1 barrera fotoeléctrica PNP B2 (Ix_PiezaOscura) que nos indica que hay una pieza transparente u opaca  Pulsadores de Marcha S1 (Ix_Marcha NA), Paro S2 (Ix_Paro NC) y Rearme S3 (Ix_Rearme NA).  Selector de Local/Distancia S4 (Ix_LocDis Distancia =1)  Una luz roja H1 (Qx_LuzRoja) y otra verde H2 (Qx_LuzVerde).
  • 498. 498 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón El funcionamiento básico del manipulador consiste en, coger una pieza del alimentador de petaca, y meterla en el cajón 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 sucesivo claras) las meta en sentido paralelo al bastidor En la puesta en el estado inicial A6 el sistema estará parado con las luces apagadas. Cuando se active el pulsador Ix_Rearme, el sistema irá a A1 (parada en el estado inicial - Condiciones Iniciales): Se abrirá la pinza, se recogerá el brazo que la porta, y se pondrá en la posición de partida (0). El brazo que porta la pinza se situará en la parte inferior del eje vertical y el alimentador de pieza recogerá su vástago. En este proceso, estará apagada la luz roja y oscilante a 2 Hz la verde. Cuando estemos en CI, se activará la luz verde permanentemente para indicarnos que está preparado para funcionar. Funcionamiento en modo local o a distancia Mediante un conmutador en el manipulador podrá seleccionarse el modo de funcionamiento local o a distancia (Ix_LocDis) en modo local el manipulador se controlará mediante la botonera situada en él (Marcha, Paro, Rearme), en el modo a distancia, el manipulador será operado desde una pantalla de explotación en un PC. Modo Local En modo local sólo se dispone de los pulsadores de Marcha, Paro y Rearme. Se trabajará por defecto en modo automático, (conmutador MxP_AutMan a 0). Modo automático (exclusivamnete) En el estado A1 (Parada en el estado inicial) se emitirá un mensaje indicado que el sistema está parado en el estado inicial y que se pulse Marcha para continuar. Una vez pulsado marcha, se pedirá al operario que rellene la petaca de alimentación de fichas y pulse Marcha para poner en funcionamiento el manipulador pasando a F1 (Producción normal). Este trabajará de manera autónoma si no se detecta ninguna anomalía hasta que se accione el pulsador de paro (Ix_Paro). Cuando el manipulador se pare en un estadio intermedio (A3), se saldrá de este volviendo a pulsar marcha, momento en el cual seguirá con el proceso donde estuviese. En cada ciclo deberá realizarse el siguiente procedimiento: 1. Si se detecta pieza en el alimentador por medio del sensor capacitivo B1 (Ix_HayPieza), se dará la orden de avanzar el vástago de dicho actuador, para dejar la pieza bajo la barrera fotoeléctrica B2 (Ix_PiezaOscura). Este sensor nos informará si es opaca o clara. 2. A continuación se elevará el brazo por medio del cilindro sin vástago -eje vertical- (Qx_SubirBrazo_Fmas) , y una vez alcanzada la parte superior (Ix_BrazoArriba_f1), se efectúa un giro de 90 (Qx_GiraBrazo_Emas) para que la pinza quede en la dirección de la pieza a recoger (Ix_GiroBrazo90_e1).
  • 499. Problemas M340 - 499 Universidad de Oviedo ISA - J. Alonso - I. Machón 3. Se abrirá la pinza (Qx_AbrePinza_Bmas) y seguidamente (una vez abierta) se extenderá el brazo para proceder a coger la pieza (Qx_ExtenderPinza_Dmas) detector (Ix_PinzaExtendida_d1) . 4. Una vez sujeta la pieza, se recoge el brazo y se gira a la posición vertical, detector (Ix_GiroBrazo0_e0). Se desciende el brazo y se procede a girar la pinza en función del material que porte. El vástago alimentador se recoge. 5. Para finalizar se extiende el brazo y se abre la pinza para dejar caer la pieza en la posición adecuada en el guarda-piezas. Dejando a continuación la pinza y el brazo en la posición inicial. Modo Distancia Una vez que el sistema llegue a A1 (Parada en el estado inicial) desde A6 (Puesta en el estado inicial) a través de un rearme, se puede elegir:  ir a Producción Normal (modo automático) seleccionando Mando Automático y pulsando Marcha. Opaca Transparente
  • 500. 500 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón  ir a F4 - Marcha de Verificación Sin Orden (MVSO - modo manual), seleccionando Manual, MVSO y pulsando Ack. En este modo, se podrá accionar cada actuador neumático de forma independiente para comprobar su funcionamiento. Se implementará en la pantalla de operador del PC. Se saldrá de este modo pulsando Rearme, momento en el cual se irá al estado A6 (Puesta en el estado inicial). También se podrá acceder a este estado desde F1 (Producción normal) si se selecciona modo Manual y F4 - Marcha de Verificación Sin Orden (MVSO - Mantenimiento) y Ack.  Ir a F5 - Marcha de Verificación Con Orden (MVCO - modo manual) seleccionando Manual, MVCO y pulsando Ack. Será una producción equivalente a la normal, sólo que habrá que ir pulsando marcha en determinados momentos para seguir con la producción. Se puede pasar desde aquí a ir a F4 - Marcha de Verificación Sin Orden (MVSO - modo manual), seleccionando Manual, MVSO y pulsando Ack. Producción normal En el estado A1 (Parada en el estado inicial) se emitirá un mensaje indicado que el sistema está parado en el estado inicial y que se pulse Marcha para continuar. Una vez pulsado marcha, se pedirá al operario que rellene la petaca de alimentación de fichas y pulse Marcha para poner en funcionamiento el manipulador pasando a F1 (Producción normal). Este trabajará de manera autónoma si no se detecta ninguna anomalía hasta que se accione el pulsador de paro (Ix_Paro). Cuando el manipulador se pare en un estadio intermedio (A3), se saldrá de este volviendo a pulsar marcha, momento en el cual seguirá con el proceso donde estuviese. Si se pulsase Paro a Final de Ciclo (MxP_PFC), se terminará el ciclo en curso y se terminará la producción debiendo pulsar Rearme para ir a A1 (Parada en el estado inicial). En cada ciclo deberá realizarse el siguiente procedimiento: 1. Si se detecta pieza en el alimentador por medio del sensor capacitivo B1 (Ix_HayPieza), se dará la orden de avanzar el vástago de dicho actuador, para dejar la pieza bajo la barrera fotoeléctrica B2 (Ix_PiezaOscura). Este sensor nos informará si es opaca o clara. 2. A continuación se elevará el brazo por medio del cilindro sin vástago -eje vertical- (Qx_SubirBrazo_Fmas) , y una vez alcanzada la parte superior (Ix_BrazoArriba_f1), se efectúa un giro de 90 (Qx_GiraBrazo_Emas) para que la pinza quede en la dirección de la pieza a recoger (Ix_GiroBrazo90_e1). 3. Se abrirá la pinza (Qx_AbrePinza_Bmas) y seguidamente (una vez abierta) se extenderá el brazo para proceder a coger la pieza (Qx_ExtenderPinza_Dmas) detector (Ix_PinzaExtendida_d1) . 4. Una vez sujeta la pieza, se recoge el brazo y se gira a la posición vertical, detector (Ix_GiroBrazo0_e0). Se desciende el brazo y se procede a girar la pinza en función del material que porte. El vástago alimentador se recoge. 5. Para finalizar se extiende el brazo y se abre la pinza para dejar caer la pieza en la posición adecuada en el guarda-piezas. Dejando a continuación la pinza y el brazo en la posición inicial. Defectos y errores del sistema Falta de material: Si el detector capacitivo no detecta fichas en la petaca en el comienzo del ciclo (error) , deberá indicarse mediante el encendido de la luz roja de forma intermitente en el estado D2 parando el proceso. Cuando se pulse Ack, el sistema evoluciona al estado A5 ( Preparación para la puesta en marcha después de los errores). Aquí en este caso, indica que se repongan piezas en el alimentador y se pulse Ack
  • 501. Problemas M340 - 501 Universidad de Oviedo ISA - J. Alonso - I. Machón continuando el ciclo de producción donde estaba en cuanto se pulse Marcha. Fallo sensores: si algún sensor falla por cortocircuito o apertura del mismo (defecto), se irá al estado D3 (Producción a pesar de los defectos). Se indicará con la activación de la luz roja de forma permanente. En este estado se chequeará el Paro y Paro a fin de ciclo para pasar a los estados correspondientes A3 o A2. Fallos críticos: es muy importante evitar estados en la programación que al ejecutarlos podrían dañar o dañaran de forma irreversible alguna parte del manipulador, a saber:  El brazo no debe estar extendido cuando se procede a su elevación y giro a 90º, ya que sino se produciría el choque entre la pinza y el sensor inductivo, con lo que podría dañar el componente. Igualmente no puede bajar o girar la pinza sin haber antes recogido el brazo por las mismas razones.  Para poder recoger la pieza por la pinza existen dos obligaciones: a la hora de extender el brazo en el instante de la recogida, la pinza debe estar bien girada y abierta, a su vez el vástago del alimentador tiene que estar extendido para que pueda soportar el peso de las demás fichas. Si no fuera así, la pieza a distribuir se vería obstaculizada por las otras y el almacenamiento por la pinza no sería el correcto.  Evitar dar el giro de la pinza con el brazo abajo y extendido. Conllevaría a la colisión entre la ficha y el guarda-piezas, donde se dañaría la instalación. Parada de emergencia: En una parada de emergencia que se podrá efectuar en cualquier momento tanto en control local como a distancia, se parará completamente el movimiento estado D1. Pulsaremos Ack pasando al estado A5 donde abriremos la pinza y luego de pulsar rearme iremos al estado inicial A6. PD: El autómata utilizado será un Modicon M340 con CPU BMX P34 2020 en rack BMX XBP 0800, fuente de alimentación BMX CPS 2000, módulo de entrada 1 BMX DDI1602 y módulo de salidas 2 BMX DDO1602
  • 502. 502 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón GEMMA del sistema Tabla de variables
  • 503. Problemas M340 - 503 Universidad de Oviedo ISA - J. Alonso - I. Machón Pantalla de operador © Dibujos hechos por Angel Sancho y Sonia Madero
  • 504. 504 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón
  • 505. Problemas M340 - 505 Universidad de Oviedo ISA - J. Alonso - I. Machón Descripción general de la planta piloto educacional "Depósitos" La planta está formada por tres depósitos situados a diferentes alturas. Se denominan depósito superior (en adelante (DS), depósito principal (en adelante DP) y depósito inferior (en adelante (DI). Estos depósitos contendrán líquido que podrá ser trasladado de unos hacia otros mediante las tuberías que los conectan y la activación de unas determinadas electroválvulas y bombas. El tamaño de los depósitos esta pensado para que si hay un desborde de agua por los aliviaderos, el total del líquido del depósito principal y superior quepa en el depósito inferior. En la parte baja del armario, a la altura del depósito inferior hay instalada una bomba centrifuga hidráulica
  • 506. 506 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón que eleva el líquido a los depósitos superiores. Esta bomba monofásica 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. Depósito Superior: Es el depósito situado en la parte mas alta de la instalación, capaz de almacenar líquido procedente de cualquiera de los otros dos, gracias a la acción de la bomba centrífuga B2 y la combinación adecuada de las electroválvulas V3, V4 y V5. Dispone de: Un sensor de temperatura tipo Pt100 (TempDS) que nos da una señal analógica. Dos sensores de nivel de tipo flotador NA (MaxDSP) y (MinDS) que nos darán un 1 lógico cuando el líquido esté en ese nivel o superior Una tubería de desbordamiento, que conecta la parte alta del DS con el DP, que evitaría el derrame del líquido en el caso de efectuar una mala maniobra. Salida a través de una electroválvula V1 que comunica el DS con el DP. Entrada a través de una electroválvula V5 que comunica con el DP por medio de la electroválvula V3 y bomba B2, o con el DI por medio de la electroválvula V4 y bomba B2 Las medidas del depósito 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 tubería 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 número de ellas. Dispone de : Un sensor de temperatura tipo Pt100 (TempDP) que nos da una señal analógica. Dos sensores de nivel de tipo flotador NA (MaxDP) y (MinDP) que nos darán un 1 lógico cuando el líquido esté en ese nivel o superior Una tubería de desbordamiento, que conecta la parte alta del DP con el DI, que evitaría el derrame del líquido en el caso de efectuar una mala maniobra. Un sensor de nivel (Presión) obtenido a través de un sensor de presión que nos da una señal analógica que posteriormente acondicionaremos. Un circuito de recirculación del líquido del depósito mediante la acción 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 través de una electroválvula V2 que comunica el DP con el DI. Salida a través de una válvula manual que comunica el DP con el DI. Las medidas del depósito son iguales que el depósito superior: 110mm de ancho, 190mm de largo y 260mm de alto. Dando un volumen efectivo de 4,7 Litros. Depósito 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 depósitos restantes. Esto permite, por ejemplo, hacer una operación de rearme descargando el agua de los depósitos al tanque inferior para comenzar a realizar tareas. Dispone de: Dos sensores de nivel de tipo flotador NA (MaxDI) y (MinDI) que nos darán un 1 lógico cuando el líquido esté en ese nivel o superior. Salida a través de una electroválvula V4 que comunica el DI con el DS o el DP a través de la electroválvula V5 y la bomba B2. Las medidas del depósito son: 195mm de ancho, 215mm de largo y 260mm de alto. Dando un volumen de
  • 507. Problemas M340 - 507 Universidad de Oviedo ISA - J. Alonso - I. Machón 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 3 posiciones: para elegir el modo de funcionamiento Automático/Operación /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 tensión en la planta. Bombas centrífuga B2 Es una bomba trifásica de acoplamiento magnético, 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 vacío. Se puede destruir de forma parcial o total la bomba. El motor esta equipado con un térmico de seguridad, que en caso de sobrecalentamiento detiene el motor hasta que la temperatura descienda. También viene prevista de un accionamiento magnético. Si la rotación de la turbina se bloquea por la presencia de partículas solidas o por cualquier otra razón, se produce un desacoplamiento del campo magnético y el imán conductor y el motor continúan girando. En este caso, se recomienda parar el motor. Variador de velocidad Para controlar el caudal de la bomba B2 que eleva el líquido a los depósitos 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 analógica de 0 a 10v del autómata controlará la velocidad de la bomba conectada al altivar. Sensor de nivel El sensor de nivel nos indica los litros que posee el depósito principal en cada momento. En el caso del sensor que tenemos instalado, se trata de un sensor de presión, la altura del líquido será h = p / ( · G) Caudalímetro Son dispositivos capaces de medir el caudal de fluido que pasa por un conducto, en nuestro caso el agua. En la instalación hemos colocado un caudalímetro a la salida de la bomba centrifuga que eleva el agua del depósito inferior. Este componente nos proporciona una señal de onda cuadrada, cuya frecuencia es proporcional al caudal medido por el sensor. Módulo de seguridad preventa Este dispositivo de protección actúa sobre un contactor, que corta la alimentación de todos los actuadores en caso de emergencia. La señal de estado del módulo es enviada al autómata como entrada digital, de esta manera se controlarían los procesos en consecuencia a una emergencia.
  • 508. 508 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Se puede observar como la señal de la Seta de emergencia está conectada entre las entradas S11 y S12 del módulo de seguridad. Las salidas 14 y 24 se utilizan para controlar dos relés que se utilizan para abrir el contactor de potencia en caso de fallo o emergencia, y también para rearmar el módulo. Para llevar a cabo el rearme hay que soltar el pulsador de marcha (en la figura START), con la condición de que no se encuentre accionado ningún elemento de seguridad. Pilotos Son elementos para la señalización 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 señalización acústica instalado en la planta. Es un zumbador que indica el estado de una operación, en nuestro caso nos indica cuando una operación finalizó. Caudalímetro. El rango de valores numérico que proporciona el canal analógico del autómata asociado al caudalímetro 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 caudalímetro nos proporciona una frecuencia máxima de 550hz para 10L/min y una frecuencia de 55Hz para 1L/min, según el fabricante. Por tanto la señal numérica antes de emplear la función 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 analógico del autómata 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 0ºC y a 20mA sean 100ºC.
  • 509. Problemas M340 - 509 Universidad de Oviedo ISA - J. Alonso - I. Machón Anexo A · Desactivación de Aero en W7 El programa Unity Pro XL 7.0 funciona correctamente en el Sistema Operativo Windows XP. No funciona en W8 ni en sistemas Apple, por lo cual se deberá implementar una máquina virtual de XP o W7. En Windows 7, se deberá eliminar el escritorio "Aero", si no, no funcionará correctamente y dará muchos problemas. Para desactivar el escritorio "Aero", clicar con el botón derecho en el escritorio y elegir la opción "personalizar". Luego establecer en "Temas Básico y de Contraste alto" el tema "Windows 7 Basic", por ejemplo, o el que más nos guste. SOLO FUNCIONA CORRECTAMENTE DE ESTA FORMA. Si así y todo, sale un mensaje que dice "es imposible establecer la comunicación 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 botón derecho y salir.
  • 510. 510 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Anexo B · Errores típicos Errores trabajando en el Unity Pro Instalé el Unity Pro XL y no funciona El Unity 13 se debe de instalar en modo administrador y compatibilidad con windows 7 u 8 según sea tu sistema operativo. Para ello vete al archivo Setup.exe, clica con el botón derecho | propiedades y elígelas Error de token Algunas veces el Unity nos dice que hay un error de token y nos impide seguir. La solución consiste en habilitar el multitoken. Para ello iremos a Herramientas / Ajustes del proyecto. En la ventana que sale, seleccionaremos "Permitir token múltiple".
  • 511. Problemas M340 - 511 Universidad de Oviedo ISA - J. Alonso - I. Machón No se hace efectiva la orden SETSTEP o RESETSTEP de cualquier variable del grafcet en una sección de código  El SETSTEP o RESETSTEP de las variables asociadas a las etapas de un GRAFCET sólo se puede ejecutar si no está activo CLEARCHART.  Repasar las "Funciones fundamentales para controlar los SFC". El autómata está embrujado y hace cada vez una cosa distinta  No lo dudes, el que lo hace mal eres TU. Lo tienes mal programado, probablemente tienes las salidas programadas en mas de un sitio. Inserté un bitmap hecho con otro programa en la pantalla de explotación y no lo ve  Asegurarse de copiarlo en el espacio de trabajo actual. Intento abrir un archivo hecho con una versión anterior de Unity y no me lo abre  Abre el archivo con extensión *.sta Es recomendable guardar todos los archivos con esa extensión. Para ello, una vez Regenerado todo el proyecto y sin errores, ir al menú "Fichero", opción "Archivar". Regenero el proyecto y me salen errores del tipo {Variables elementales} : La instancia está ubicada en una dirección que no está configurada. : Ix_???  Probablemente no has configurado correctamente los módulos de entradas y salidas.  Has definido entradas como salidas o viceversa. Regenero el proyecto y me salen errores del tipo {Nombre_del_proyecto : [MAST]} : (l: 4, c: 31) E1061 Símbolo no definido 'Ix_Locfis' {Control_de_la_luz : [MAST]} : 1 errores, 0 advertencias {Control_de_la_luz : [MAST]} : Fallo de análisis de objetos Probablemente has escrito mal un nombre de variable en tu programa Error "Dirección del PLC no es válida" Deberemos tener el PLC en modalidad simulador.
  • 512. 512 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Error al conectarse con el el simulador Cuando intentamos conectarnos con el simulador aparece el mensaje: Deberemos desactivar la casilla "Use default application to start simulator (enforce security)" de la pantalla siguiente Si no aparece esta pantalla, ir a los iconos de abajo a la derecha, clicar sobre el de simulador (una interrogación sobre un cuadrado verde) e ir a propiedades. A continuación, hacer lo anteriormente expuesto. Errores trabajando en la FMS200 Sale un mensaje indicando que no es posible establecer la comunicación con el autómata  Asegurarse de tener la seta de emergencia sin activar y tener conectada la alimentación del autómata.  Tener instalados los drivers SchneiderPLCUSBDriverSuite y SchneiderXIPDriverSuite de la carpeta de programas Communication Drivers  Hacer el proceso indicado en Conexión entre el PC y el PLC (Anexo C).  Probablemente alguien le transfirió un programa sin tener configurado correctamente las comunicaciones o el hardware. Debereis resetear el AP y transferirle el programa correcto via USB  Puede que tengas mal configurado el tipo de CPU y su versión de firmware El autómata presenta un error de I/O (led rojo de I/O permanentemente encendido)  Asegurarse de tener conectada la alimentación de las entradas salidas  Asegurarse de tener configurado correctamente el hardware del Autómata.
  • 513. Problemas M340 - 513 Universidad de Oviedo ISA - J. Alonso - I. Machón Di tensión a la célula, pulsé marcha pero no tenemos aire en las estaciones Transfiere el programa de mando del transfer (estación0 - autómata premiun). Pon en RUN éste autómata y luego desconectas. Ya puedes trabajar en tu estación. En el rearme, el bit %S22 no nos deja inicializar los grafcet Al hacer un SET %S22, este bit nos borra todas las variables asociadas a las etapas de los grafcet y el propio autómata lo borra después de ejecutar el preliminar. Ahora bien, no podremos inicializar el grafcet con el %S21, ni manualmente haciendo SET de las variables %Xn que nos interesen, ni RESETEAR el bit %S23 en el mismo ciclo de programa. Lo deberemos hacer en un ciclo diferente (ej. programa de control de unos cilindros). No podemos escribir un SET %X0 o de cualquier otra variable del grafcet en una subrutina o en el posterior El SET o RESET de las variables asociadas a las etapas de un grafcet sólo se puede hacer en el preliminar del grafcet. Me equivoqué y alimenté con dos piezas y no puedo quitar una de ellas  Al lado del regulador de presión, en el bastidor está una llave de corte azul. Cuando está en sentido longitudinal con el tubo de aire, deja pasar el aire. Gírala hacia la derecha, en sentido transversal, con ello cortas la alimentación de aire y pones a escape todo tu circuito neumático. ¿A que ahora ya puedes deshacer el entuertu. El cilindro me tiene manía y empieza con el vástago como a mi no me interesa  Recuerda que hay una cosa que se llama válvula biestable, y que cuando se le da aire a la estación, se conecta con presión la via que corresponda, teniendo en cuenta la última posición de la corredera. ¿Que tal si haces que se ponga en condiciones iniciales con el rearme?. Inserté un bitmap hecho con otro programa en la pantalla de explotación y no lo veo  Asegurarse de copiarlo en el espacio de trabajo actual.
  • 514. 514 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Anexo C · Conexión del PC con el PLC vía USB y Ethernet Para poder conectarnos con el PLC por medio de un cable USB o Ethernet, deberemos instalar los drivers SchneiderPLCUSBDriverSuite y SchneiderXIPDriverSuite que vienen en la carpeta "Communication Drivers" del software de Schneider Unity Pro Xl 13.0. Una vez instalados deberemos reiniciar el computador y cuando nos conectemos al PLC mediante un cable USB saldrá la siguiente pantalla Deberemos dejar que instale los archivos que necesite para poder luego acceder al PLC sin problemas. Una vez instalados, nos aparecerá en la barra de información inferior un icono informándonos que se está ejecutando el driver PLCUSB
  • 515. Problemas M340 - 515 Universidad de Oviedo ISA - J. Alonso - I. Machón Conexión a través de Ethernet 1) Una vez configurado correctamente el hardware del PLC, crear una nueva red en el explorador de proyectos. Para ello ir a "Comunicación -> Redes", clicar el botón derecho y seleccionar "Nueva red". 2) Seleccionar Ethernet en la lista de redes disponibles: 3) Por defecto se crea el nombre Ethernet_1. Si se desea cambiar el nombre creado por defecto, introducir el nombre deseado. Para finalizar pulsar aceptar. 4) En redes aparecerá el nuevo componente de red creado. Hacer doble click sobre él. 5) Debemos elegir el módulo que realizará la conexión 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 también la versión.
  • 516. 516 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón 6) En el ejemplo, elegimos la CPU 2020 versión 1.0, confirmamos el cambio clicando en Sí. 7) Se introduce la IP del PLC que será 156.35.153.2X, siendo X el número de estación en la que se encuentra el PLC. La máscara de subred es 255.255.255.0. La dirección de pasarela es 156.35.153.205. En el caso del laboratorio de Autómatas será, 192.168.0.20X, siendo X el número del módulo en el que se encuentra el PLC. La máscara de subred es 255.255.255.0. La dirección de pasarela es 192.168.0.1 .
  • 517. Problemas M340 - 517 Universidad de Oviedo ISA - J. Alonso - I. Machón 8) A continuación cerramos la ventana Ethernet_1 y nos pregunta sobre aceptar los cambios. Clicamos Sí.
  • 518. 518 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón 9) Seguidamente, acudimos a la configuración del hardware del PLC. Clicamos sobre la figura del puerto Ethernet de la CPU del PLC ya que es por donde físicamente conectaremos nuestro cable de red. 10) Nos aparecerá la siguiente ventana:
  • 519. Problemas M340 - 519 Universidad de Oviedo ISA - J. Alonso - I. Machón 11) Doble click sobre Canal 3 y seleccionaremos la función ETH TCP IP. 12) En conexión elegimos el componente creado anteriormente, es decir, Ethernet_1.
  • 520. 520 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón 14) Cerramos la ventana 0.0:Ethernet 15) Se nos pregunta si deseamos aceptar las modificaciones. Contestamos que Sí.
  • 521. Problemas M340 - 521 Universidad de Oviedo ISA - J. Alonso - I. Machón Conexión a través de USB Para que el autómata almacene esta dirección IP, le deberemos pasar previamente nuestro programa mediante una conexión USB. Para conectarnos al autómata mediante el cable USB. Deberemos indicar que queremos trabajar en el modo ESTÁNDAR no el de SIMULACIÓN Iremos al menú "PLC" y escogeremos la opción "Establecer dirección" especificando que vamos a hacer una conexión por cable USB a la dirección SYS y aceptamos. Después Transferimos el programa creado y con ello lograremos establecer la dirección IP en el PLC. Posteriormente, si deseamos conectarnos con el PLC mediante Ethernet, deberíamos acceder a "PLC-- Establecer dirección "y en Dirección pondremos la IP de nuestro PLC y en Medios seleccionaremos TCPIP. RECORDAR que se deberá haber seleccionado el modo ESTÁNDAR de conexión, no el modo simulador. Seguidamente ya podríamos clicar en Aceptar y luego Conectar para establecer la conexión PC-PLC.
  • 522. 522 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Anexo D · Bits del sistema [04] apéndice A.1. “Los bits del sistema %Si, son unos bits que indican los estados del autómata o que permiten controlar el funcionamiento de éste. Dichos bits pueden probarse en el programa del usuario con el fin de detectar cualquier evolución de funcionamiento que conlleve un procedimiento de procesamiento establecido. Algunos de estos bits deben volver a su estado inicial o normal por programa. No obstante, los bits de sistema que vuelven a su estado inicial o normal a través del sistema, no deben hacerlo a través del programa ni del terminal”. Bit Función Descripción Estado Inicial %S4 TB10MS Base de tiempo 10 ms Un temporizador interno regula el cambio de estado de este bit. Es asíncrono en relación con el ciclo del PLC. - %S5 TB100MS Base de tiempo 100 ms Ídem %S4 - %S6 TB1SEC Base de tiempo 1 s Ídem %S4 - %S7 TB1MIN Base de tiempo 1 min Ídem %S4 - %S13 1RSTSCANRUN Primer ciclo después de la puesta en RUN La conmutación del PLC de la modalidad STOP a RUN (incluso después de un arranque en frío con arranque automático en ejecución) se indica al establecer el bit de sistema %S13 en 1. Este bit vuelve a ponerse a 0 al final del primer ciclo de la tarea MAST en la modalidad de ejecución. -
  • 523. Problemas M340 - 523 Universidad de Oviedo ISA - J. Alonso - I. Machón Anexo E · Palabras del sistema [04] apéndice A.1. Palabra símbolo Función Descripción Estado Inicial %SW49 DAYOFWEEK %SW50 SEC %SW51 HOURMIN %SW52 MONTHDAY %SW53 YEAR Función del reloj de tiempo real Palabras del sistema que contienen la fecha y hora actuales (en BCD): %SW49: día de la semana: 1 = Lunes 2 = Martes 3 = Miércoles 4 = Jueves 5 = Viernes 6 = Sábado 7 = Domingo %SW50: segundos (16#SS00) %SW51: horas y minutos (16#HHMM) %SW52: mes y día (16#MMDD) %SW53: año (16#YYYY) El sistema gestiona estas palabras cuando el bit %S50 se define en 0. El usuario del programa o el terminal pueden escribir estas palabras cuando el bit %S50 se define en 1. - %SW59 ADJDATETIME Ajuste de la fecha actual Contiene dos series de 8 bits para ajustar la fecha actual. La acción se ejecuta siempre en el flanco ascendente del bit. Esta palabra se activa por el bit %S59=1 En la ilustración siguiente, los bits de la columna de la izquierda aumentan el valor y los bits de la columna de la derecha lo disminuyen: 0
  • 524. 524 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón [13] Página 105 y 106
  • 525. Problemas M340 - 525 Universidad de Oviedo ISA - J. Alonso - I. Machón Anexo F · Como generar la documentación del proyecto Para poder generar la documentación del proyecto y poder ver el código del programa, sus pantallas de operador, variables utilizadas,… clicaremos dos veces en la carpeta "Documentación" de la ventana "explorador de proyectos". Nos saldrá una ventana donde deberemos seleccionar que partes queremos imprimir bien sea por la impresora, o generar un documento PDF con toda la información seleccionada. A continuación, clicaremos con el botón derecho en la parte que queremos incluir en la documentación y saldrá una ventana emergente donde deberemos indicar que se incluya el encabezamiento. Sólo nos quedará ahora que clicar con el botón derecho encima de "Proyecto" y saldrá una pantalla donde elegiremos la opción de Imprimir.
  • 526. 526 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Anexo G · Tipos de Bloques "En Unity Pro se utilizan distintos tipos de bloques. El término general que abarca todos los tipos de bloques es FFB. Debemos distinguir los siguientes tipos de bloques:  Función elemental (EF)  Bloque de funciones elementales (EFB)  Bloque de funciones derivado (DFB)  Procedimiento Función elemental (EF) Las funciones elementales (EF) no disponen de estado interno y solo cuentan con una salida. Si en las entradas aparecen los mismos valores, el valor de la salida será el mismo cuando se ejecute la función; por ejemplo, siempre que se ejecuta la suma de dos valores, el resultado es el mismo. En los lenguajes gráficos (FBD y LD), una función elemental se representa como un bloque de datos con entradas y una salida. Las entradas aparecen a la izquierda de la trama del bloque y las salidas, a la derecha. El nombre de la función, es decir, el tipo de función, aparece centrado dentro de la trama del bloque. El número de entradas puede aumentarse en algunas funciones elementales. Bloque de funciones elementales (EFB) Los bloques de funciones elementales (EFB) tienen estados internos. Si las entradas disponen del mismo valor, el valor de la salida puede variar cada vez que se ejecute el bloque de funciones. Por ejemplo, con un contador aumenta el valor de la salida. En los lenguajes gráficos (FBD y LD), un bloque de funciones elementales se representa como un bloque de datos con entradas y salidas. En él, las entradas siempre aparecen a la izquierda y las salidas a la derecha. El nombre del bloque de funciones, es decir, el tipo de bloque de funciones, aparece centrado dentro del bloque de datos. El nombre de la instancia aparece por encima del bloque de datos. Bloques de funciones derivados (DFB) Los bloques de funciones derivados (DFB) presentan las mismas propiedades que los bloques de funciones elementales. Sin embargo, el usuario los crea en los lenguajes de programación FBD, LD, IL o ST. Procedimiento Los procedimientos son funciones con distintas salidas. No disponen de estado interno. La única diferencia con las funciones elementales es que los procedimientos pueden tener más de una salida y admiten variables del tipo de datos VAR_IN_OUT. Los procedimientos no devuelven ningún valor. Los procedimientos son una ampliación de la norma CEI 61131-3 y se deben habilitar de forma explícita. Los procedimientos no se distinguen visualmente de las funciones elementales". [4] S05_Unity Pro_ Estándar Librería de bloques 10_2013 pág. 22-24
  • 527. Problemas M340 - 527 Universidad de Oviedo ISA - J. Alonso - I. Machón Anexo H · Configuración BMX EHC 0200 - (Estación 5 de la FMS200) Modo contador libre de 32 bits En el explorador de proyectos seleccionamos el módulo BMX EHC200 y nos saldrá la siguiente pantalla. En ella seleccionamos el "Contador 0" y desplegamos la lista de "Función" escogeremos la opción "Modo de contador libre 32 bits" En la pestaña de configuración que sale, se elige "Interface de conteo / Cuadratura normal X1" Después pinchamos en "BMX EHC 0200" aceptamos las modificaciones y vamos a la pestaña "Objetos de E/S" seleccionamos todos los objetos "Seleccionar todo" y "Actualizar cuadrícula". Después cambiamos el prefijo para el módulo. Pinchamos sobre %CH0.3.MOD y en prefijo para nombre ponemos p.e. "EHC0200_MideTapa"
  • 528. 528 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Pinchamos en el nombre de %CH0.3.0 y le asignamos un nombre al contador 0 p.e. "CTR0". Observamos que se han creado unas variables del tipo IODDT De entre ellas, hay varias que usaremos para controlar el contador p.e. "CTR0.FORCE_ENABLE". Indicamos a Unity que genere los cambios.
  • 529. Problemas M340 - 529 Universidad de Oviedo ISA - J. Alonso - I. Machón Anexo I · Referencias y curvas de elementos de protección Referencias y Curvas de relés térmicos Valores y curvas de interruptores automáticos Los calibres de las curvas C y D son 0.5, 1, 2, 3, 4, 6, 10, 16, 20, 25, 32, 40, 50, 63, 80, 100, 125 A
  • 530. 530 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Calibres y Curvas de Fusibles Valores de los interruptores diferenciales Los calibres de los interruptores diferenciales con 30 mA de sensibilidad son 6, 10, 16, 20, 25, 32, 40, 50, 63, 80, 125 A Consumo de los preaccionadores LC1-XXX Contactor 3 polos bobina de 220-230 V AC Consumo en llamada 70 VA | Consumo en mantenimiento 7 VA Duración de maniobra 12...22 ms cierre | 4...19 ms apertura LC1-XXX Contactor 3 polos bobina de 24 V DC Consumo 5,4 W 45...55 ms closing | 20...90 ms opening * Kit de enclavamiento mecánico LAD9V2 para inversores Relé auxiliar de 220-230 VAC Consumo en llamada 70 VA | Consumo en mantenimiento 7 VA Relé auxiliar de 24 V CC Resistencia 650 Ω (± 10%) Consumo medio 0,9 W Tiempo de activación / desactivación 20ms Relé temporizador de 24-240 V AC 50-60 Hz 3 VA Consumo de los pilotos 5 W
  • 531. Problemas M340 - 531 Universidad de Oviedo ISA - J. Alonso - I. Machón Corriente y potencia de empleo de los contactores LC1D** 230 V AC Coil voltage Tamaño de los contactores LC1- LC1- LC1- LC1- LC1- LC1- LC1- LC1- LC1- K06 D09 D12 D18 D25 D32 D40 D50 D65 Corriente de empleo máxima en AC-3 <=440 V A 6 9 12 18 25 32 40 50 65 Potencia nominal de empleo P 220/240 V KW 1,5 2,2 3 4 5,5 7,5 11 15 18,5 380/400 V KW 2,2 4 5,5 7,5 11 15 18,5 22 30 LC2D**BD 24 V DC Coil voltage Tamaño de los contactores LC2- LC2- LC2- LC2- LC2- LC2- LC2- LC2- D09BD D12BD D18BD D25BD D32BD D40BD D50BD D65BD Corriente de empleo máxima en AC-3 400 V A 9 12 18 25 32 40 50 65 Potencia nominal de empleo P 220/240 V KW 2,2 3 4 5,5 7,5 11 15 18,5 400 V KW 4 5,5 7,5 11 15 18,5 22 30 Valores de los guardamotores
  • 532. 532 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Valores para cálculos neumáticos Pinza de dedos deslizantes, pinza de dedos pivotantes, actuador de giro Actuador sin vástago de arrastre magnético y de arrastre mecánico
  • 533. Problemas M340 - 533 Universidad de Oviedo ISA - J. Alonso - I. Machón Anexo J · Caract. generales de los procesadores BMX P342020 [13] Página 73
  • 534. 534 - Problemas M340 Universidad de Oviedo ISA - J. Alonso - I. Machón Bibliografía [01] S03 "Unity Pro. Lenguajes y estructura del programa. Manual de referencia". Schneider Electric. 07/2018 [02] H02 "Modicon M340 con Unity Pro. Módulos de entradas/salidas binarias. Manual de usuario". Schneider Electric. 07/2008 [03] H03 "Modicon M340 con Unity Pro. Módulos de entradas/salidas analógicas. Manual de instalación". Schneider Electric. 07/2012 [04] S05 "Unity Pro. Estándar. Librería de bloques". Schneider Electric. 10/2013. [05] Problemas propuestos por el catedrático Jorge Argüelles García para otros AAPP. [06] Guardamotores ABB. https://www.voltimum.es/e-catalogue/brAnd/abb/family/guardamotor-ms116-para-control-motores- 016-16a [07] Guardamotores WEG. https://static.weg.net/medias/downloadcenter/he5/h4d/WEG-guardamotores-MPW-50030559-es.pdf [08] Contactores, protecciones magnetotérmica y Diferencial, etc. Acti 9 de Schneider. 2011 https://download.schneider-electric.com/files?p_enDocType=Catalog&p_File_Name=catalogo-acti9- .pdf&p_Doc_Ref=ESMKT01033A11 [09] Catalogue 2019 – 2020. Motor control And protection components https://download.schneider- electric.com/files?p_enDocType=Catalog&p_File_Name=MKTED210011EN.pdf&p_Doc_Ref=MKTED210 011EN [10] Electroválvulas de fluido https://pneumaxspa.com/ [11] Selector de productos de Schneider https://www.se.com/cl/es/product-range- presentation/664-tesys-d/?selected-node-id=12146387287#tabs-top [12] "Le GEMMA, Guide d`Etude des Modes de Marches et d`Arretês". ADEPA: Agence pour le Développment de la Productique á l`industrie. [13] H01 "Modicon M340 con Unity Pro. Procesadores, bastidores y módulos de fuente de alimentación. Manual de configuración". Schneider Electric. 5/2010.