En esta entrada haré un resumen de mis pruebas con los tags productores/consumidores. Como no dispongo físicamente de ningún controlador CompactLogix o ControlLogix con el que trastear, he preparado dos máquinas virtuales con un SoftLogix en cada una, tal y como hice en esta entrada. Las ejecutaré simultáneamente en mi ordenador a la vez que la máquina virtual donde tengo el software de programación, lo cual supone tres máquinas virtuales simultáneas sobre mi portátil, que, aparte de calentarse más que una sartén, ha aguantado estoicamente.
Teniendo ya todo el sistema de pruebas preparado, lo primero será comprobar que los controladores se ven entre sí. Para ello ejecuto el RSLinx en cualquier máquina virtual y con la herramienta RSWho observo que aparecen mis dos controladores SoftLogix:

Ahora tengo que preparar dos proyectos (ver esta entrada), uno para el contolador productor (SoftLogix A) y otro para el controlador consumidor (SoftLogix B). No voy a hacer ninguna programación, simplemente voy a configurar un tag productor, cambiar su valor en la monitorización de tags y comprobar que el valor se transmite al tag consumidor.
En el SoftLogix A (productor) creo una variable llamada PRODUCIDA del tipo DINT (obligatoriamente debe estar en el ámbito del controlador) y voy a sus propiedades.
Selecciono el tipo Produced y pulso sobre Conection...
Como solo voy a tener un consumidor, dejo la opción Max Consumers a 1 y acepto.
En el controlador productor no hay que configurar nada más, así que voy al proyecto del SoftLogix B (consumidor) y creo otra variable del mismo tipo que la anterior (también en al ámbito del controlador) y la llamo CONSUMIDA.
A este tag consumidor hay que especificarle de dónde tiene que obtener su valor, para ello en el árbol de proyecto, bajo la tarjeta ethernet virtual del SoftLogix B (consumidor), debemos introducir la configuración del SoftLogix A (productor), que quedará así:
Tenemos que tener la precaución de especificar la dirección IP del controlador productor.
Para evitar un error de duplicidad de control en la tarjeta de entradas/salidas digitales del SoftLogix A la he deshabilitado.
Ahora vamos a las propiedades del tag CONSUMIDA, selecionamos el tipo Consumed, y pulsamos sobre el botón Connection...
Como producor (producer) seleccionamos en el menú desplegable el controlador productor (en mi caso SL_Productor). En la casilla Remote Data hay que especificar el nombre de la variable producida en el controlador productor, en mi caso PRODUCIDA.
El RPI (Requested Packet Interval) es el tiempo de actualización de la variable consumida. Deberemos ser cuidadosos con este tiempo ya que un RPI bajo implica mayor consumo en los recursos de nuestra red de comunicaciones. Ademas este valor debe ser mayor que el tiempo de actualización de la red.
Y listo, ya solo nos queda comprobar que nuestra configuración funciona. Me pongo on-line con los dos SoftLogix y, monitorizando los tags, compruebo que un valor introducido en el tag PRODUCIDA del controlador productor se refleja en el tag CONSUMIDA del controlador consumidor.
Cuando configuramos tags productores o consumidores podemos seleccionar conexiones Unicast, que, según tengo entendido, exigen menos recursos de la red. Son conexiones punto a punto (point to point) entre un controlador productor y un controlador consumidor (no se permiten conexiones múltiples). Según leo en la edición en inglés del manual (en la versión en español no figura) el controlador productor debe permitir conexiones Unicast, pero es el controlador consumidor quien decide si la conexión es unicast o multicast. Sin embargo, en mis pruebas, si configuro el consumidor para permitir las conexiones Unicast, el productor también tengo que configurarlo como Unicast, si no, no funciona.
Como siempre, agradeceré cualquier comentario.

























Como los previos post, muy bien detallado y explicado.
ResponderSuprimirGracias
Saludos
JM
Excelente informaciòn, muy clara y entendible, para los que vamos empezando en esto, y reafirmar conocimientos de los que ya tienen tiempo en esto.
ResponderSuprimirSaludos