En el artículo anterior, hablamos sobre cómo configurar una conexión entre dos PLC mediante comunicación de usuario abierta y usamos el protocolo TCP para conectar entre dos PLC. Mostramos en el artículo cómo usar instrucciones como TCON y TDISCON para establecer esta conexión.
Mover datos entre PLC
En este artículo, mostraremos cómo podemos comenzar a mover DATOS entre los PLC que conectamos en el artículo anterior. Usaremos los bloques TSEND y TRCV para este propósito.
Enviar datos a PLC_2
Nos basaremos en el proyecto que creamos en el artículo anterior, lo que significa que ya hay los bloques TCON y TDISCON instalados en nuestro proyecto. Continuaremos nuestro proyecto agregando los bloques TSEND y TRCV para comenzar a mover datos entre los dos PLC.
Para enviar datos desde PLC_1 a PLC_2, comencemos por crear un bloque de datos que contendrá toda la información que necesitamos enviar a PLC_2. Vea la imagen 1.
imagen 1. Cree un nuevo bloque de datos.
Como ya hemos comentado, es mejor darle un nombre adecuado a los bloques, de esa manera será fácil e intuitivo averiguar para qué sirve cada bloque.
En segundo lugar, agreguemos algunos datos dentro del bloque de datos que queremos enviar a PLC_2.
Suponemos que necesitamos enviar tres etiquetas de datos diferentes. Vea la imagen 2.
imagen 2. Defina algunos datos para enviar a PLC_2.
Hay una cosa más que debemos hacer para poder enviar el bloque de datos que acabamos de crear a PLC_2 y es asegurarnos de que el acceso optimizado al bloque de datos no esté seleccionado.
Para ello, debemos ir a las propiedades del bloque de datos y desmarcar esa opción. Vea las imágenes 3 y 4.
imagen 3. Vaya a las propiedades del bloque de datos.
imagen 4. Desmarque la opción Acceso optimizado al bloque.
Asegúrese de desmarcar esta opción antes de usar el bloque TSEND, o no funcionará.
Ahora que preparamos los datos que queremos enviar al PLC_2, intentemos enviarlos. Lo haremos usando el bloque TSEND. Simplemente arrastre y suelte la instrucción en su OB1 principal para agregarla a su lógica. Vea la imagen 5.
imagen 5. Agregue el bloque TSEND.
Al agregar el bloque TSEND, se le solicitará que cree un bloque de datos de instancia porque es esencialmente un bloque de función, nuevamente asígnele un nombre adecuado. Vea la imagen 6.
Imagen 6. Cree una instancia de datos para TSEND.
Cuando agregue el bloque TSEND a su lógica, encontrará que hay algunas configuraciones importantes que debemos realizar. Ver imagen 7.
imagen 7. El bloque TSEND.
Como puedes ver, necesitamos hacer algunas configuraciones:
- La señal REQ para permitir el envío de los datos.
En cuanto a la señal REQ, definiremos una etiqueta SendData que se usará para habilitar el envío de los datos.
- ID de la conexión que usaré para enviar los datos, porque puedo tener más de una conexión, por lo que necesito asignar qué conexión se usará.
En el último artículo, definimos el ID 1 para la conexión entre PLC_1 y PLC_2, por lo que estableceremos el ID en 1.
- DATOS que necesito enviar. Ya creamos un bloque de datos con toda la información que necesito enviar, simplemente podemos arrastrar y soltar el bloque de datos en el bloque TSEND. Ver imagen 8.
imagen 8. Configurar el bloque TSEND.
Recibir datos de PLC_1
Después de configurar el TSEND para enviar los datos a PLC_2, necesitamos recibir estos datos dentro de PLC_2. Para ello, utilizaremos el bloque TRCV. Ver imagen 9.
imagen 9. Agregar el bloque TRCV.
Como puede ver, simplemente arrastre y suelte el bloque TRCV para agregarlo a su lógica. Y ya sabe que, a continuación, necesitaremos crear una instancia de datos para ese bloque. Ver imagen 10.
imagen 10. Agregar una instancia de datos al bloque TRCV.
Después de que se invoque el bloque TRCV en su lógica, necesitaremos configurar algunos parámetros como lo hicimos con el TSEND. Ver imagen 11.
imagen 11. El bloque TRCV.
Como puede ver, EN-R es una señal de habilitación que debe ser verdadera para permitir que el bloque TRCV comience a recibir los datos. El ID es la conexión que se utilizará y DATA es donde se almacenarán los datos recibidos.
Por lo tanto, debemos crear un bloque de datos para recibir los datos dentro de él. Recuerde darle un nombre adecuado. Vea la imagen 12.
imagen 12. Cree un bloque de datos para recibir datos.
A continuación, defina las etiquetas de información que se recibirán de PLC_1; es una buena práctica asegurarse de que el bloque de datos tenga la misma estructura de datos que los datos que se recibirán. Vea la imagen 13.
imagen 13. Defina las etiquetas de datos.
Para EN-R, definiremos una etiqueta RecieveData para habilitar la recepción de datos. Y para el ID de conexión es 1, como lo configuramos antes. Vea la imagen 14.
imagen 14. Señal EN-R.
A continuación, arrastre y suelte el bloque de datos que creamos en nuestro bloque TRCV para finalizar todas las configuraciones. Vea la imagen 15.
imagen 15. Agregue su bloque de datos al bloque TRCV.
Cuando arrastre y suelte la base de datos que creamos, notará que TIA Portal está dando una advertencia y que no está aceptando el bloque de datos que acabamos de agregar.
Y eso se debe a que no desmarcamos la opción “Acceso optimizado al bloque” del bloque de datos como lo hicimos con TSEND. Vea la imagen 16.
imagen 16. Acceso optimizado al bloque.
Como dijimos antes, tenemos que desmarcar esta opción, de lo contrario TSEND y TRCV no funcionarán. Vea la imagen 17.
imagen 17. Desmarque la opción de acceso optimizado al bloque.
Puede ver que una vez que desmarcamos la opción “acceso optimizado al bloque”, el bloque de datos ahora se acepta con la instrucción TRCV.
Ahora que la llamada y configuración de los bloques TSEND y TRCV está lista, simulemos nuestro proyecto y veamos cómo se enviarán y recibirán los datos.
Primero crearemos una lógica simple que garantice que haya valores de datos para las etiquetas definidas.
Lógica simple para crear automáticamente valores de datos
Crearemos una lógica simple para crear y actualizar automáticamente los valores de datos, de modo que sea más fácil ver la transferencia de datos entre los dos PLC. Vea la imagen 18.
imagen 18. Lógica simple.
Esta lógica simple usará el bit de reloj %M50.5 para cambiar automáticamente los valores de los datos almacenados dentro del bloque de datos SendToPLC_2.
Simulación del proyecto PLC
Compilemos nuestro proyecto y comencemos una simulación. Lo primero que tendremos que hacer es establecer la conexión entre los dos PLC usando el bloque TCON que configuramos en el artículo anterior.
Recuerde que necesitaremos habilitar la capacidad de conexión desde PLC_2 y establecer la conexión con PLC_1. Vea las imágenes 19, 20 y 21.
imagen 19. No hay conexión entre los PLC
imagen 20. Habilite la conexión.
imagen 21. Establezca la conexión.
Ahora que hemos establecido la conexión entre los dos PLC, pasemos los datos de PLC_1 a PLC_2 tal como lo configuramos.
Primero, haga que la etiqueta SendData sea VERDADERA. Vea la imagen 22.
Imagen 22. La señal REQ es verdadera.
Puede ver que, aunque SendData es VERDADERA, no se enviaron datos de PLC_1 a PLC_2. Y eso se debe a que el bloque TRCV aún no está habilitado para recibir ningún dato. Vea la imagen 23.
imagen23. La señal EN-R es falsa.
Como puede ver, debido a que RecieveData aún no es VERDADERO, el bloque TRCV no está habilitado para recibir ningún dato. Una vez que EN-R sea verdadero, los datos se enviarán desde el bloque de datos en PLC_1 al bloque de datos de PLC_2. Vea la imagen 24.
imagen 24. La señal EN-R es Verdadera.
Una vez que EN-R sea verdadero, puede ver que los datos se mueven desde PLC_1 a PLC_2.
Si abre el proyecto y lo simula usted mismo, encontrará que los datos se actualizan continuamente en PLC_1 y se transfieren a PLC_2.
Y así es como podemos establecer una comunicación entre dos PLC y usar bloques TSEND, TRCV.