Hardware interrupt - Programacion encoder con autómata S7-1200 CTRL_HSC
La instrucción CTRL_HSC permite controlar los contadores rápidos utilizados para contar eventos que ocurren más rápidamente que la frecuencia de ejecución del OB.
La frecuencia de contaje de las instrucciones CTU, CTD y CTUD está limitada por la frecuencia de ejecución del OB en el que están contenidas.
Cuando tenemos que utilizar un encoder y trabajar con el de manera precisa debemos hacerlo con Rutina de Interrupción.
Una rutina de interrupción de un Contador de Alta Velocdad (HSC - High Speed Counter) lo que hace es controlar el contaje de pulsos del encoder con un valor de referencia. Cuando el valor de contaje del encoder es iguala al de referencia, el programa principal OB1 se detiene y se ejecuta una subrutina por ejemplo el OB40 y actua directamente sin esperar a que termine el ciclo de SCAN
En el siguiente ejemplo vamos a mostrar como configurar y programar un HSC de un autómata Siemens S7-1200, simulando que al pulsar marcha se activa una cinta que transporta una botella y cuando se cumpla un determinado número de pulsos ejecutaremos el paro de esta cinta transpotadora dentro de una subrutina (OB40).
Para ello vamos a cablear el encoder al S7-1200 de la siguiente manera:
Para configurar el HSC debemos acceder a las propiedades del autómata
Aquí buscamos la opción del HSC donde vamos a poder configurar diferentes parámetros
# General: Lo activamos y le podemos asignar un nombre
# Función: Le indicamos los siguientes parámetros
- Modo de contaje: Podemos seleccionar entre contaje y frecuencia, seleccionamos "Contaje"
- Fase de servicio: Cómo queremos que gestione las señales del encoder, en nuestro caso "Contador A/B cuádruple "
- Sentido de contaje inicial: Le decimos que que de inicio cuente en positivo "Incrementar contador"
Podemos pre fijar una valores iniciales del contador y del valor de referencia (consigna) así como la función de realizar el reset del contador
Aquí es donde vamos a configurar el evento (subrutina) que se va a activar cuando el valor del contador llegue al valor de referencia (consigna)
Activamos la opción de "Generar alarma para envento si el valor del contador" - " Valor de contador igual valor de
En "Alarma de proceso" debemso indicarle que subrutina queremos ejecutar, si pulsamos se nos abrirá una ventana para seleccionarla o crearla
Se abre la ventana y como no tenemos ninguna nos deja crear una pulsando sobre "Agregar Objeto"
Esto nos permite agregar un nuevo bloque del tipo "Hardware Interrupt" que será la subrutina en este caso la OB40
De esta manera disponemos de dos bloques de programa
OB1 - Es el programa principal que se ejecuta ciclicamente
OB40 - Es una subrutina que se ejecutará únicamente un ciclo de SCAN cuando el contaje del encoder sea igual al valor de referencia
OB1 - Programa pincipal e instruccion CTRL_HSC_
En el programa principal vamos a introducir la instrucción CTRL_HSC que es la que controla el cotador de alta velocidad.
Podemos arrastrarla desde el árbol de instrucciones dentro de "Tecnología - Contadores"
Esta función CTRL_HSC permite entre otras cosas:
# Cambiar el valor de contaje : Escribiendo el nuevo valor en New_CV y activando el bit CV
# Cambiar el valor de referencia : Escribiendo el nuevo valor en New_RV y activando el bit RV
Ademas en nuestra programa principal vamos a poner una línea que al pulsar la entrada I0.4 ponga a SET la salida Q0.0 del motor
Este es el programa que se va a ejecutar inmediatamente en cuando valor de contaje sea igual que el valor de referencia
Vamos a poner directamente un RESET de la salida Q0.0 del motor
Carga y test de programa
Un vez que tenemos la configuración Hardware y el programa es muy importante trasferir ambas cosas Hardware y Software, esto se hace estando Ofline y siguiendo los siguientes pasos
Con esto ya lo tenemos listo para probar el programa:
Lo primero es asignar un valor de referencia a "NEW_RV1" - %MD28, por ejemplo 250 y activar el bit "RV1"- %M10.2 a On para que tome el nuevo valor de referencia
Si activamos la entrada %I0.4 se pondrá a SET el motor %Q0.0 y el motor empezará a moverse y por tanto el encoder a contar.
De esta manera cuando el valor de contaje del encoder (lo podemos ver en la memoria %ID1000) es igual al de referencia se ejecuta la OB40 que pone a reset la salida %Q0.0
De esta manera se puede trabajar con el autómata S7-1200 con encoders y los contadores de alta velocidad
Más artículos del contador de alta velocidad
# El contador rápido para encoder “HSC” del S7-1200
# Guardar el valor del contador rápido encoder "HSC" para un S7-1200
# Hardware interrupt - Entradas de Interrupción en autómata Siemens S7-1200
# Hardware interrupt - Programacion encoder con autómata S7-1200 CTRL_HSC