Instrucciones GSV/SSV

En la siguiente práctica vamos a ver claramente como los controladores Logix5000 guardan los datos del sistema en objetos, un claro ejemplo de Programación Orientada a Objetos aplicado a los PLC´s, para acceder a ellos hacemos uso de las instrucciones GSV Get System Value o SSV Set System Value.

Los argumentos que le tenemos que pasar a dichas funciones son: Nombre de la Clase, Instancia e Atributo, por último según sea Set/Get origen/destino.

Primero de todo es preciso conocer todas las Clases a las que podemos acceder, se pueden observar en la siguiente imagen: Amplia información en la ayuda.

Como bien muestra la ayuda, cuando de una misma clase tenemos varias instancias, accedemos a cada una de ellas por su nombre, vamos a suponer el siguiente ejemplo, tenemos 2 instancias de TASK, MainTask y LeerReloj ese es el nombre que tenemos que pasarle, seguidamente tenemos que especificar que atributo es el que nos interesa leer (Get) o escribir (Set), aquí recomiendo consultar la ayuda que nos ofrece el RSLogix5000 ya que a la hora de definir los tags Origen/Destino deben coincidir exactamente con el tipo que nos interese.

Vamos a ponerlo en práctica y vamos a realizar un ejemplo de cada una de las funciones, utilizaremos GSV para leer la fecha y hora del Controlador, estó lo ejecutaremos un una tarea periodica, (LeerReloj) y la funcion SSV la utilizaremos para inhabilitar que se ejecute dicha tarea periodica (LeerReloj)

Para leer del Objeto WallClockTime el atributo LocalDataTime, lo primero que vamos a definir es un nuevo Data Types del tipo necesario según el manual, en este caso es una Array de 7 elementos del tipo DINT

Una vez hemos definido nuestro nuevo tipo de datos, vamos a crear un nuevo Tag a nivel de programa de la tarea LeerReloj, este tag solo es accesible desde donde la hemos creado, proximamente haré una introducción sobre la organizacion del controlador, que seria lo primero que deberia haber hecho!.

Desde la RutinaPrincipal de nuestra Tarea LeerReloj, insertamos la instruccion GSV, el primer argumento que le pasamos es la Clase del objeto que nos interesa, en este caso WallClockTime, este tipo de objeto no tiene instancias, con lo cual ese argumento no se puede pasar, lo próximo es el atrivuto que nos interesa leer (Get), en destino utilizamos el tag que acabmos de crear con el .Year que es el primer elemento

Por otra parte en la tarea MainTask, rutina principal vamos ha hacer una llamada a la función SSV desde MainRoutine, en la cual utilizaremos la Clase Task y el atributo inhibitTask para deshabilitar o habilitar la tarea tal y como se observa

Previamente consultando el tipo de atributo al que me interesa acceder, declaro un nuevo tag de ese tipo, se que pasandole un 0 la tarea esta habilitada, cualquier valor diferente, la tarea estará inhabilitada.

En este caso es mejor ver un pequeño video demostrativo de un minuto para comprobar su funcionamiento:

3 de Junio del 2013

Si te ha gustado o la información te ha sido útil, compartelo...