Hardware interrupt - Programacion encoder con autómata S7-1200 CTRL_HSC

Fecha de publicación
Cateogría del artículo Automatas
Visualizaciones del artículo Leído 44346 veces

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 contajeEscribiendo el nuevo valor en New_CV y activando el bit CV

# Cambiar el valor de referenciaEscribiendo 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




Últimas descargas