En la última entrada, hemos realizado un breve introducción a la programación y hemos explicado como hacer que funcione la lógica de la Periferia E/S, sin tener un maestro operativo. Ahora vamos a hacer un pequeño programa con DeviceLogix.
¡Comenzamos!.
El programa que implementamos, consistía en activar una salida con una entrada. Ahora vamos a realizar un programa, un poco más complejo, para así conocer mejor el entorno RSNetworx.
Comenzamos poniendo en “Edit Mode” la lógica.
Añadimos la instrucción “BAND” (boolean AND). Esta instrucción es una puerta lógica AND.
Conectamos la ED 0 a “In1” de la instrucción “BAND” y “Out” de ésta a la SD 4.
Añadimos una ED nueva, con la función “Discrete Input” y le asignamos el canal 1.
Podemos verificar la lógica, no obstante como comentamos en la entrada anterior, no es necesario teniendo en cuenta que es un programa muy pequeño y con pocas instancias.
A continuación, procedemos a descargar el programa mediante el botón “Download”.
Como teníamos la lógica habilitada antes de la descarga, nos pregunta si queremos habilitarla una vez que finaliza el proceso. Decimos que sí.
Ya tenemos el programa corriendo en el módulo 1734-8CFGDLX y realizamos una prueba mediante el simulador de señales.
ED0 = 1 y ED1 =0 implica que SD4 = 0
ED0 = 1 y ED1 =1 implica que SD4 = 1
Ahora vamos a implementar un temporizador, para ello volvemos a poner el módulo en “Edit Mode” y en la pestaña “Timer/Counter” procedemos a seleccionar y arrastrar la instrucción “TONR” (On Delay Timer), esto es un temporizador con retardo al trabajo o conexión.
El temporizador lo vamos a implementar entre la puerta AND y la SD 4. Para ello conectamos “Out” de la puerta AND, con el terminal “TimerEnable” del “TONR” y el terminal “DN” lo conectamos con la SD 4. Para negar una conexión, pulsando en la conexión con botón derecho seleccionamos “Negate” y aparecerá un “circulo” en el terminal. En este programa, no es necesario la conexión negada “Out” de la puerta AND sobre el terminal “Reset” del temporizador, ya que al caer (no estar activo) “TimerEnable” éste se resetea y pone a cero su valor acumulado.
Es igual de válido, no conectar el terminal “Reset” del temporizador, como podéis ver en la siguiente captura. Y teniendo presente la máxima de automatización que es simplificar, sería más correcto ésta.
Si pulsamos el botón “Logic verify”, verificamos la lógica.
Si todo es correcto, nos lo indicará una ventana emergente y si no es así, como vimos en una entrada anterior, podemos ver el detalle del error en la “Ventana Message”.
-
Ventana Message.
Esta ventana aparece en la parte inferior de la pantalla, para activarla ir al menú View→Messages→Show.
La ventana Message visualiza mensajes de información, advertencia I/O error. Para solucionar un mensaje particular, se puede seleccionar el mensaje y pulsar la tecla F1, automáticamente se irá a la ayuda OnLine, también se puede ir en View→Messages→Troubleshoot.
Si la verificación es correcta, procedemos a la descarga sobre el módulo con el botón “Download”. Validamos, parar la ejecución del módulo.
Reiniciamos la lógica del módulo y aceptamos el mensaje de que se ha realizado correctamente la descarga.
Una vez descargado, procedemos a parametrizar el temporizador, para ello pulsamos sobre el cuadrado en la parte superior derecha de la instrucción “TONR”. Y aparecerá la siguiente ventana emergente, pulsamos sobre la pestaña “Parameters”.
Y procedemos a introducir el tiempo deseado en el campo “PREConstantValue”, en nuestro caso diez (15) s, lo que implica introducir “15000”, ya que el campo “TimeBase”, está en cero (0), es decir en ms.
Si pulsamos en el botón ayuda, podemos ver la descripción de la instrucción que estemos usando, para su correcta implementación y parametrización.
Procedemos a monitorizar el temporizador, activando las dos ED. Podemos observar como el valor “ACC” se incrementa, hasta llegar a “15000” (15 s).
Para finalizar esta entrada, vamos a incluir un comentario en la lógica, para ello pulsamos el botón derecho del ratón y pulsamos sobre “Add Comment”. Introducimos el texto que deseemos, en nuestro ejemplo: PUERTA “AND” DE ED0 Y ED1.
En las siguiente entradas veremos como hacer un upload de la red y como forzar variables.
Saludos.