viernes, 16 de octubre de 2015

Uso de R_TRIG y F_TRIG.

Capturar un momento, en programación SCL y las instrucciones
R_TRIG y F_TRIG.

A quien no le interesa capturar un momento o instante en función de la activación o desactivación de una señal de entrada, salida o variable y no estoy hablado de usar eventos (interrupciones) no!!.

Vamos hacer algo más sencillo y creo que muy útil para ciertos casos, por ejemplo, cuando se activa una entrada del PLC queremos saber a que hora se ha activado y a que hora se ha vuelto a desactivar y que estos datos, queden registrados para una posterior consulta. Si esto lo intentamos hacer sin usar estas instrucciones os digo que es prácticamente imposible, o nos sale un programa muy complicado.

Como funciona R_TRIG, cuando la entrada clok de la instrucción que sera una variable (Tag), cambia de estado de 0 a 1, en este flanco de subida se dispara la salida Q de R_TRIG y queda activa durante ese ciclo de la maquina en el que ha ocurrido el cambio de estado, en los siguientes ya no permanece activo. Esto ya se que choca con lo que dice la ayuda de TIA portal e incluso el manual, pero si miráis los ejemplos que pongo en este texto podéis juzgar por vosotros mismo y si creéis que me equivoco hacedme lo saber.

Como iba diciendo la salida Q permanece activa durante el ciclo en el que se produce el cambio de estado, circunstancia que aprovecharemos para realizar la captura de algún dato que nos interese, en este caso registrar la hora en que se activa una salida. Para ello nos ayudaremos de la instrucción WHILE DO dentro de esta sentencia colocaremos las instrucciones necesarias para leer el reloj y guardar esa lectura en una variable para su registro. Una vez terminado el ciclo del flaco la condición de WHILE cambia y ya no vuelve a leer ni registrar el dato.

El funcionamiento de F_TRIG es igual que el de R_TRIG pero para el flanco de bajada.

Un ejemplo de uso de lo que aquí digo, lo tenéis en la pagina del blog, Mis programas, control de llenado de fosa, si os descargáis el proyecto en la pagina 39 a la 42 tenéis un ejemplo de uso de R_TRIG y FTRIG.


Si el ejemplo anterior os sabe a poco aquí os dejo otro es un desplazamiento de salida activa cada cinco segundos usando la R_TRIG y SHL que es la instrucción que hace el registro de desplazamiento.

ir al enlace:
https://drive.google.com/folderview?id=0B_H6mOzK5877ejZUWmI1dmVhd1k&usp=sharing