Programación encoder con PLC S7-1200

 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" debemos 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


Comentarios

Lo más leído del Blog

Explicación del Estado de la CPU y errores de LED Siemens S7 300

Instrucciones de Bit

Introducción al PLC