En los últimos artículos, analizamos cómo establecer una conexión entre dos PLC mediante los bloques TCON y TDISCON y cómo mover datos entre ellos mediante los bloques TSEND y TRCV.
Transferencia de datos entre sistemas PLC
En este artículo, aprenderemos una nueva instrucción que se puede utilizar para comunicarse y transferir datos entre sistemas PLC mediante los bloques TSEND_C y TRCV_C.
TSEND_C
La instrucción TSEND_C es una instrucción de TIA Portal que se utiliza para configurar y establecer una conexión entre dos PLC. Una vez que se ha configurado y establecido la conexión, el PLC la mantendrá y supervisará automáticamente.
La instrucción TSEND_C se ejecuta de forma asincrónica y tiene las siguientes funciones:
- Configurar y establecer una conexión de comunicación similar al bloque TCON.
- Enviar datos a través de una conexión de comunicación existente similar al bloque TSEND.
- Terminar o restablecer la conexión de comunicación similar al bloque TDISCON.
Por lo tanto, el nombre compact se le da a la instrucción TSEND_C, ya que actúa como más de 3 bloques al mismo tiempo.
TRCV_C
La instrucción TRCV_C también es una instrucción TIA Portal que se utiliza para configurar y establecer una conexión entre dos PLC. Una vez que se ha configurado y establecido la conexión, el PLC la mantendrá y supervisará automáticamente.
La instrucción “TRCV_C” se ejecuta de forma asincrónica e implementa las siguientes funciones en secuencia:
- Configurar y establecer una conexión de comunicación similar a TCON.
- Recibir datos a través de una conexión de comunicación existente similar a TRCV.
- Terminar o restablecer la conexión de comunicación similar a TDISCON.
Por lo tanto, el nombre compact se le da a la instrucción TRCV_C, ya que actúa como más de 3 bloques al mismo tiempo.
Uso de TSEND_C y TRCV_C en nuestro proyecto de PLC
En el último artículo, cuando necesitábamos establecer y pasar a enviar datos desde PLC_1 a PLC_2, tuvimos que usar tres bloques diferentes en cada PLC. Vea la imagen 1.
imagen 1. Lógica dentro de PLC_1
Como puede ver, usamos los bloques TCON y TDISCON para establecer y restablecer la conexión y usamos TSEND para enviar los datos desde PLC_1. Y lo mismo se hizo para PLC_2. Vea la imagen 2.
imagen 2. Lógica de PLC_2
Nuevamente, usamos los bloques TCON y TDISCON para establecer y restablecer la conexión y usamos TRCV para recibir los datos desde PLC_1.
Ahora, queremos reemplazar todos estos bloques e intentar usar TSEND_C y TRCV_C en su lugar para lograr la misma funcionalidad.
Primero, en PLC_1 donde necesitamos enviar datos, usaremos el bloque TSEND_C, solo arrastre y suelte el bloque dentro del OB1 principal. Consulte la imagen 3.
imagen 3. Agregue el bloque TSEND_C.
Como TSEND_C es esencialmente un bloque de función, se le solicitará que cree una instancia de datos. Consulte la imagen 4.
imagen 4. Cree una instancia para TSEND_C
TSEND_C se parece al bloque TSEND en el sentido de que necesita realizar algunas configuraciones y agregar algunas señales. Consulte la imagen 5.
imagen 5. Bloque TSEND_C
Ahora, necesitamos una señal para que REQ y Data envíen y también para configurar la conexión. Para la señal REQ, creamos una etiqueta SendData.
Además, podemos simplemente arrastrar y soltar el bloque de datos que creamos en el último artículo que necesitamos enviar a PLC_2, podemos simplemente arrastrarlo y soltarlo en la entrada DATA del bloque. Consulte la imagen 6.
imagen 6. Configuración del bloque TSEND_C.
Para configurar el parámetro de conexión para el bloque, podemos presionar el pequeño ícono de configuración en la parte superior del bloque para abrir la vista de configuración.
La vista de configuración se verá muy similar a la del bloque TCON. Consulte la imagen 7.
imagen 7. Parámetros de conexión de TSEND_C
Ya mostramos cómo configurar el parámetro de conexión en artículos anteriores, por lo que podemos hacer lo mismo que hicimos con el bloque TCON, consulte la imagen 8.
imagen 8. Configuración del parámetro de conexión
Con esta configuración de conexión, terminamos todas las configuraciones de TSEND_C. Observe cuánto más rápido fue en comparación con la configuración de los bloques TCON, TDISCON y TSEND.
Ahora, necesitamos agregar el TRCV_C al PLC_2 para que pueda recibir los datos enviados desde el PLC_1. En el OB1 principal del PLC_1, simplemente arrastre y suelte el TRCV_C en su lógica. Vea la imagen 9. Recuerde crear una instancia de datos para el bloque TRCV_C.
imagen 9. Agregue el TRCV_C
Una vez que se agrega el TRCV_C a su lógica, debemos configurarlo. Como hicimos con el TSEND_C, necesitamos agregar una señal para habilitar la recepción de datos y también necesitamos agregar el bloque de datos en el que guardaremos los datos. Vea la imagen 10.
imagen 10. TRCV_C
Definimos una etiqueta RecieveData como la señal EN_R. Ver imagen 11.
imagen 11. Definir etiqueta EN_R
Recuerde desmarcar la opción “acceso optimizado al bloque” del bloque de datos o el bloque no funcionará como mostramos en los artículos anteriores.
A continuación, debemos configurar los parámetros de conexión del bloque TRCV_C, como hicimos con TSEND_C, solo tenga en cuenta que el PLC asociado no especificado ahora es el PLC_1, consulte la imagen 12.
imagen 12. Parámetros de conexión de TRCV_C
Simulación del proyecto de PLC
Ahora que hemos configurado el bloque TSEND_C y TRCV_C, queremos simular nuestro proyecto y ver cómo funcionarán, pero primero, crearemos una lógica simple para actualizar automáticamente los datos de PLC_1 que se enviarán a PLC_2. Consulte la imagen 13.
imagen 13. Lógica simple para actualizar datos automáticamente.
Ahora, compilemos e iniciemos una simulación para nuestro proyecto. Lo primero que notará es que PLC_1 y PLC_2 intentarán establecer una conexión de inmediato porque configuramos TSEND_C y TRCV_C, ellos intentan establecer una conexión automáticamente. Por eso habrá una conexión entre los dos PLC. Ver imagen 14.
Imagen 14. La conexión se establece directamente.
Como puede ver, la conexión entre los PLC se establece directamente, porque el parámetro CONT en TSEND_C y TRCV_C está configurado en TRUE, lo que significa que el bloque intentará establecer automáticamente una conexión con el PLC asociado. Podemos colocar cualquier señal de control aquí para controlar el establecimiento de la conexión.
La otra cosa que puede ver es que el REQ de TSEND_C y el EN_R de TRCV_C están configurados en FALSE, y es por eso que no habrá transferencia de datos entre los PLC. Ver imagen 15.
imagen 15. No hay transferencia de datos entre los PLC.
Si la señal REQ de TSEND_C se establece en verdadero, el PLC_1 intentará enviar los datos, pero esperará a que el otro PLC habilite la recepción de los datos, consulte la imagen 16.
imagen 16. REQ es verdadero.
Como puede ver, SendData es VERDADERO, pero no se enviaron datos porque RecieveData sigue siendo falso.
El PLC_2 solo recibirá datos del PLC_1 cuando ReceiveData esté establecido en verdadero. Consulte la imagen 17.
imagen 17. Los datos se envían al PLC_2
Como puede ver, cuando RecieveData es verdadero, los datos se enviarán del PLC_1 al PLC_2. Sin embargo, puede ver que los datos dentro de los dos PLC son diferentes porque los datos del PLC_1 cambian automáticamente según la lógica simple que hicimos antes. Esto significa que la señal EN_R permite la transferencia de datos una vez, cuando necesito transferir datos nuevamente, esta señal debe volverse falsa y luego verdadera nuevamente.
Consulte el proyecto TIA Portal adjunto y observe la transferencia de datos entre PLC.