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
https://drive.google.com/folderview?id=0B_H6mOzK5877ejZUWmI1dmVhd1k&usp=sharing