temporizadores y contadores - ELAI-UPM

Anuncio
Práctica 2
Automatización Industrial (10/11)
TEMPORIZADORES Y CONTADORES
1 Objetivo
El objetivo de esta práctica es ahondar en las técnicas de programación básicas del
autómata. Para ello, el alumno deberá implementar en STEP 5 un automatismo que
necesite de elementos de temporización y de cuenta e implementarlo sobre el autómata
S95-U de Siemens. Como sistema se empleará la maqueta neumática a disposición en el
laboratorio de prácticas. El entorno de programación será el programa S5Win empleado
en la práctica anterior.
2 Temporizadores en STEP 5
El identificador de las variables de temporización viene predefinida en STEP 5 con
la letra T seguido del número de temporizador que se va a usar. En el modelo de
autómata S95-U el número de temporizadores a disposición del programador es de 128
(T 1 hasta T 128).
Cada temporizador tiene un área de 16 bits reservada en la memoria de la CPU. Los
bits desde el 0 al 11 del área de memoria contienen el valor de temporización en
decimal codificado en formato BCD (cada grupo de cuatro bits contiene el código
binario de dicho valor decimal). Los bits 12 y 13 contienen la base de tiempo en código
binario (ver figura 1). Cuando el autómata está en estado RUN, va decrementando en
una unidad (que corresponde a un tiempo fijado en la base de tiempos) el valor de
temporización hasta llegar a 0.
Figura 1. Presencia en memoria de un temporizador
El valor de temporización se representa mediante una constante que en STEP 5 tiene
el formato
KT X.Y
donde X es el valor de temporización (0-999) e Y es la base de tiempos. Existen 4
bases de tiempos posibles (bits 12-13 en la figura 1): 0 para 10ms (centésimas de
segundo), 1 para 100ms (décimas de segundo), 2 para 1s y 3 para 10s. Así por ejemplo,
la constante de tiempo KT 500.0 marca un tiempo de 5s con precisión de 10ms. El
Práctica 2
Automatización Industrial (10/11)
máximo tiempo de contaje de un temporizador es, por tanto, 9990 segundos (no llega a
las 3 horas).
Nota: Esta sintaxis de formato de tiempo cambia para el lenguaje más moderno
STEP 7; éste proporciona el tipo de dato S5TIME para preservar compatibilidad.
2.1 Tipos de temporizadores
El lenguaje STEP 5 (y también STEP 7) ofrece al programador 5 tipos de
temporizadores, dos temporizadores de pulso, dos de retardo a la conexión y uno de
retardo a la desconexión. Su uso se determina por la instrucción de disparo empleada.
Éstos son:
• SI: Temporizador de pulso sin memoria
• SV: Temporizador de pulso con memoria redisparable
• SE: Temporizador de retardo a la conexión sin memoria
• SV: Temporizador de retardo a la conexión con memoria y redisparable
• SA: Temporizador de retardo a la desconexión con memoria y redisparable.
(en negrita el nemónico del operador correspondiente)
Es imprescindible que el alumno conozca a la perfección el funcionamiento de cada
uno de ellos ya que, en cada situación, la elección de uno u otro puede resultar del todo
inapropiada o, al menos, complicar en exceso la implementación. Para ello consultar los
manuales de Step5/Step 7 que se encuentran en el servidor del departamento. Si se
dispone del entorno avanzado de programación Simatic Manager para Step 7 lo más
cómodo es consultar directamente la ayuda contextual con el comando F1.
2.2 Programación de un temporizador
Para utilizar cualquier temporizado son imprescindible al menos dos instrucciones.
La primera es una instrucción que carga el valor de memoria del temporizador en el
registro ACU1 (alias AKK1 en la documentación de STEP 5), el primer acumulador
disponible en la ALU de los autómata SIEMENS. Esta instrucción es del tipo:
L KT X.Y
donde L es la instrucción conocida de carga y KT X.Y la constante de tiempo, es decir
el lapso de tiempo que marca la temporización.
La segunda instrucción necesaria es la de disparo y tiene la forma:
<Tipo de temporizador> <Identificador de temporizador>
Así por ejemplo, la instrucción “SI T1” indica que se va a emplear al temporizador
T1 como temporizador de pulso. Una típica secuencia de instrucciones para configurar
el comportamiento de dicho temporizador es:
U
L
SI
E
KT
T
32.0
500.0
1
donde se emplea el temporizador de pulso para medir un tiempo de 5s con señal de
disparo la entrada U E 32.0. Esto es así porque la señal de disparo queda determinada
Práctica 2
Automatización Industrial (10/11)
por el valor lógico del registro RLO justo en el momento de ejecutarse la instrucción de
disparo (“SI T1” en el ejemplo), que en este caso es E 32.0 (suponiendo, claro está, que
“U E32.0” sea una instrucción de primera consulta).
NOTA IMPORTANTE: Todos los temporizadores (y contadores) se ven
estimulados por un flanco de la señal de disparo (y no por su nivel). Este flanco es
normalmente de subida a excepción de los temporizadores de retardo a la desconexión
que detectan un flanco de bajada. Internamente, el temporizador guarda un registro
binario con el valor de la señal de disparo en el anterior ciclo scan y comparan dicho
valor con el del ciclo actual.
2.3 Valor de un temporizador
El valor lógico de un temporizador viene determinado por su comportamiento. Para
razonar con dicho valor durante la programación se emplea su identificador (por
ejemplo T1) como argumento de un operador lógico (U, O, UN, ON etc.). Nunca se
puede modificar el valor lógico de un temporizador (el acceso a memoria está
protegida), por lo que las instrucciones S T1 o = T1 no son admisibles en STEP 5 (ni en
STEP 7).
El valor numérico de un temporizador es su valor de temporización (el tiempo
contado hasta el momento). La instrucción L T1 carga dicho valor en el primer
acumulador (ACU1) en formato decimal y LC T1 lo carga en formato BCD.
3 Contadores en STEP 5
Los elementos para la cuenta de eventos vienen predefinidos en STEP 5 por la letra
Z seguido de un número de identificación. El modelo S95-U lleva integrados 128
contadores numerados desde el 1 al 128. Al igual que los temporizadores, los
contadores tienen un área reservada en memoria de 16 bits de los que sólo se emplean
los 12 primeros para almacenar el valor de cuenta en formato BCD. Esto supone que,
como en el caso del valor de temporización, el valor de cuenta está siempre
comprendido entre 0 y 999 (en consecuencia, no es posible almacenar números
negativos). Cuando el valor del contador llega a 999 simplemente deja de aumentar ante
un evento incremento. Lo mismo ocurre al intentar decrementar un contador a 0.
Existen dos tipos de contadores en STEP 5: los ascendentes, que suman una unidad
al valor de cuenta y los descendentes que restan una unidad. En ambos casos el evento
de disparo es por flanco de subida (no por nivel). Los nemónicos de los operadores
para SETP 5 son:
• ZV: Contador ascendente
• ZR : Contador descendente
A diferencia de los temporizadores, basta una única instrucción que determine la
señal de disparo para emplear un contador en AWL. Dicha señal será el valor del RLO
en el momento de ejecutar la instrucción. Como ejemplo, la secuencia de instrucciones
U
ZV
E
Z
32.0
1
programa al contador Z1 para incrementar en una unidad su valor siempre que se
produzca un evento flanco positivo de la señal E 32.0. Como no existe ninguna
Práctica 2
Automatización Industrial (10/11)
información adicional, el valor de cuenta vale inicialmente 0. Para poder iniciar la
cuenta en cualquier otro número, es necesario asignar dicho valor al contador antes de la
instrucción de disparo. Este valor se carga previamente en formato BCD en el
acumulador ACU1 y después se utiliza una instrucción del tipo “S <Identificador de
contador>” para realizar la copia al área de memoria. Como ejemplo, el conjunto de
instrucciones:
U
L
S
U
ZV
E
KZ
Z
E
Z
32.1
12
1
32.0
1
inicia la cuenta del contador ascendente en 12 cuando la entrada E 32.1 está a nivel alto.
En este caso, tras el primer flanco positivo de E 32.0 el valor del contador será 13, el
segundo flanco positivo provoca que el valor del contador llegue a 14 y así
sucesivamente.
KZ <X> es la forma de definir en STEP 5 una constante en BCD. El número X (de
tamaño WORD), se introduce en formato decimal pero internamente se almacena como
BCD (4 bytes para cada dígito). Para el caso de los contadores, es imprescindible
introducir el valor de contaje con este formato.
3.1 Valor del contador
El valor lógico del contador es el mismo que le otorga el lenguaje C a un número: 0
(falso) si el contador vale 0 y 1 (verdadero) para cualquier otro valor (se recuerda que
no es posible que el valor numérico del contador sea negativo). Para razonar con el
valor lógico dentro de un programa se deben utilizar, como en el caso de los
temporizadores, los operadores lógicos (por ejemplo “U Z1” copia el valor lógico del
contador en el registro RLO si es una instrucción de primera consulta).
Análogamente a los temporizadores, la instrucción “L Z1” carga el valor del
contador en decimal en el registro ACU1 y “LC Z1” carga el valor en formato BCD.
EJERCICIO 1
Para una mejor comprensión de los recursos que ofrece STEP 5 en relación con los
temporizadores y contadores se recomienda al alumno el siguiente ejercicio:
1) Arranque la herramienta de desarrollo S5Win y abra un nuevo proyecto
2) En el bloque OB1 y mediante contactos escriba la siguiente ecuación compuesta
por un contador ascendente (ZV) y un temporizador de pulso con memoria (SV) (figura
2).
Práctica 2
Automatización Industrial (10/11)
Figura 2. Temporización y Cuenta
3) Alterne entre las representaciones AWL y KOP para ver la sintaxis empleada y su
trascripción al lenguaje ensamblador.
4) Cierre el editor del bloque y guarde la aplicación.
5) Arranque el simulador y transfiera el bloque OB1.
6) Configure el simulador para visualizar las variables relativas al programa que
acaba de transferir. En concreto, debe activar la entrada E 32.0 e incluir los
identificadores Z1 y T1 en cualquiera de las cajas de texto situadas debajo de la etiqueta
“Visualizar”. Al terminar este proceso, la ventana de simulación debería tener el aspecto
siguiente:
Figura 3. Ventana de simulación del entorno S5Win
Práctica 2
Automatización Industrial (10/11)
7) Arranque ahora el simulador y verifique lo que ocurre cuando se pulsa y se apaga
la señal E 32.0.
8) Modifique ahora el bloque OB1 cambiando el temporizador de tipo SV por uno
de tipo SI. Para ello basta con editar el segmento en modo AWL y sobrescribir el texto
de forma conveniente.
9) Grabe y transfiera el nuevo bloque OB1 modificado al simulador. Presione el
botón Reset en la ventana de simulación para borrar los valores del contador y el
temporizador y ejecute nuevamente el programa. ¿Hay alguna diferencia de
comportamiento respecto al caso anterior? Justifique la respuesta al profesor.
EJERCICIO 2
Para realizar esta práctica con éxito será necesario programar el control del sistema
automático que se describe a continuación en STEP 5, prestando especial atención a los
detalles de implementación que se exigen.
1 Descripción del automatismo
El ciclo de trabajo del automatismo implica el movimiento automático de los dos
cilindros de doble efecto de la maqueta neumática a disposición del alumno para que se
correspondan con los diagramas de desplazamiento-fase que se muestran en la figura 4.
E
C1
t
5s
E
C2
2s
2s
t
Figura 4. Diagrama Desplazamiento-Fase de dos cilindros de doble efecto
El sistema arranca con ambos cilindros comprimidos. Tras un flanco positivo de un
interruptor de arranque P_ON, se expanden simultáneamente ambos cilindros.
Posteriormente se producen compresiones y expansiones consecutivas del cilindro C2
mientras que el C1 se mantiene expandido, según indica la figura. La tercera
compresión del cilindro C2 marca el punto de sincronismo para la compresión de C1
y la terminación el ciclo.
El sistema debe cumplir además las siguientes especificaciones:
1-Tiene un interruptor de arranque P_ON (detectado por flanco) y un pulsador de
reanudación P_CON (cuya función se describe en el apartado 3). Para simplificar el
Práctica 2
Automatización Industrial (10/11)
problema, no se tiene en cuenta la necesidad de un pulsador OFF para detener el
automatismo, ni la de un pulsador de emergencia. La figura 5 muestra el cuadro de
mandos del operario.
2-Modo semiautomático: Terminado el ciclo de producción es necesario volver a
pulsar ON para que empiece un nuevo ciclo.
8
CONT
9
Compresión
de C1 y C2
P_ON
P_CON
Figura 5: Cuadro de mandos
A etapa de reposo
Figura 6: Secuencia de escape
3-Watch dog que controla el tiempo total de ciclo: El tiempo previsto para el ciclo
completo es de 19 segundos más los retardos derivados de los tiempos de compresión y
expansión de los cilindros. Superado dicho tiempo en 1 segundo sin que haya
terminado el ciclo principal se efectuará la siguiente secuencia de escape (ver figura 6):
• Se detiene toda acción (figura 6, etapa 8), lo que permitirá revisar el estado de
los cilindros.
• Corregido el problema manualmente, el operador activará el pulsador P_CON
con lo que se comprimen los dos cilindros (figura 6, etapa 9). Dicho evento se
detectará por nivel.
• Finalizada la compresión se vuelve a la etapa inicial de reposo y el sistema
retorna al funcionamiento semiautomático.
2 Normas para la realización de la práctica
Esta práctica se realizará en el laboratorio dispuesto a tal efecto situado en la
primera planta. Para la realización de la misma será necesario:
1) Modelado GRAFCET del ciclo principal (obviamente incluyendo la secuencia
de escape). El modelo debe incluir obligatoriamente una rama de actividad para
cada cilindro que funcionan en paralelo.
2) Estructuración del código:
• OB1, OB21
• PB1: Ecuaciones de activación de etapas (parte secuencial del automatismo)
• PB2: Ecuaciones de transición Estado-Actuadores
• PB3: Secuencia de escape
3) Todos los bloques PB deben ser invocados incondicionalmente desde el bloque
OB1 (instrucción SPA <Nombre de bloque>).
Práctica 2
Automatización Industrial (10/11)
4) Es obligatorio el uso de un contador descendente disparado por cada compresión
del cilindro C2. Por tanto, debe arrancarse con valor inicial 3 y se utilizará su
valor lógico como condición dentro del programa.
5) Simulación previa del programa en el ordenador y supervisión del profesor de
prácticas del correcto funcionamiento.
6) Cableado del sistema y control de la maqueta neumática.
El alumno deberá traer al inicio de la práctica un borrador con los Grafcets de
niveles 1 y 2. Este punto es fundamental para poder terminar la práctica en tiempo y
forma. Durante la realización de la misma se procederá en primer lugar a la simulación
del programa para posteriormente realizar el cableado y la ejecución en el autómata S5.
Al comienzo de la siguiente práctica el alumno entregará en papel el código
debidamente comentado, los Grafcets de niveles 1 y 2 así como la tabla de símbolos
empleada para su realización.
Consejos adicionales:
1) Se recomienda realizar una segmentación adecuada del código, lo que
facilitará su posterior depuración y evitará la aparición de errores.
2) Ambos cilindros son de doble efecto y se controlan mediante electroválvulas de
2 posiciones y 5 vías.
3) Toda la información adicional relativa a temporizadores y contadores para STEP
5 se encuentra a disposición del alumno en la página Web del departamento
(http://www.elai.upm.es).
Descargar