¿Cuándo utilizo el bloque Read_Var en un PLC y realizo una prueba de pérdida de comunicación al desconectar y luego volver a conectar el cable Ethernet, el bloque queda bloqueado. ¿Por qué ocurre esto y cómo puedo solucionarlo?
Ambiente :
Equipos de control industrial.
Línea de producto :
IDPAC; Hardware
Resolución:
Lo más probable es que le haya faltado configurar el timeout de comunicación apropiado para el request explícito implementado por el READ_VAR.
A continuación, ejemplo donde se muestra la programación correcta del bloque READ_VAR
Video Youtube: Ejemplo Read_Var Ethernet M340. Schneider Electric
En particular, preste atención a lo siguiente:
- Debe ingresar algún valor mayor a 0 para el timeout, ya que por defecto es 0. Esto quiere decir que, en caso que una respuesta de un server Modbus TCP no llegue por alguna razón, el cliente Modbus TCP (el M340) se queda indefinidamente esperando por una respuesta, lo cual interrumpe la comunicación.
- Debe limitar el disparo de los bloques READ_VAR y WRITE_VAR con el parámetro Activity Bit en cada EN para no disparar un pedido sin que haya terminado el anterior.
- Debe localizar todas las variables GEST en una posición de memoria determinada.
En caso de que el problema persista, debe analizar la segunda palabra del array GEST. El byte más significativo es el "operation report" y el menos significativo es el "communication report" (ver documentos adjuntos). Estos dos parámetros indican valores numéricos que detallan todos los posibles errores de comunicación que pueden surgir a nivel aplicación y deben ser leídos para poder diagnosticar adecuadamente una comunicación de este tipo.