FAQs Técnicas

Realizar una pregunta

Diagnóstico de esclavos en M241/M251 haciendo IOSCANNING por Modbus RTU

Síntoma
¿Con un M241 haciendo IOscanning en Modbus RTU es posible diagnosticar la comunicación con los esclavos? Otra cuestion es si los leds del M241 de ERROR, IO tienen reflejo en alguna dirección del PLC.

Solución
Por cada equipo declarado con un nombre bajo el apartado Modbus_IOScanner aparece una variable asociada al mismo. El error se detecta con la variable "nombre.xError". En el caso del ejemplo que aparece en la nota anexa al caso es Generic_Modbus_Slave.xError. Se aconseja el uso de la rutina de reseteo de dicho bit que controla el estado, que puede encontrarse tanto en el proyecto adjunto (M251_IOSCANNER_BITVIDA) como en la nota técnica.Respecto a la pregunta sobre una dirección directa del PLC para ver los LEDs de ERR e I/O la respuesta es que hay acceso a algunas palabras de sistema a partir de %MW60000 que contienen información sobre el procesador (PLC_R, diagnóstico de estado de la CPU) pero el encendido de los LEDs es interno e independiente inicialmente del programa cargado porque se gestiona desde el propio sistema.Sí es posible bajo determinadas condiciones impedir que se encienda algún LED o incluso saber por la información conseguida si debe estar encendido. Se ilustra mediante otro ejemplo el apagado del LED I/O por fallo del IOSCANNING en un M251 (inhibición del fallo en el puerto 2). Para ello se realiza un enmascaramiento de bits y se fuerza a 1 el responsable del fallo Ethernet en el puerto 2:PROGRAM CONTROL_LEDVAR hideETHerror: BOOL; pLw: POINTER TO LWORD;END_VARIF hideETHerror THEN pLw := ADR(PLC_R.i_lwSystemFault_1); pLw^ := PLC_R.i_lwSystemFault_1 OR 16#8; // bit 4 (corresponde a ETH2) se fuerza a TRUEEND_IFBasta con escribir este código en un POU para que en caso de fallo y ante la activación de la variable hideETHerror se provoque el apagado del LED.Por tratarse de accesos a componentes de sistema recomendamos que se nos consulte con detalle lo que se pretende realizar, para asegurar que no existan contraindicaciones y se tengan en cuenta todas las variables necesarias. Se usan variables de tipo puntero por lo que se aprovecha para anexar en el caso un breve resumen de su uso.
 
¿Ha sido útil?
¿Qué podemos hacer para mejorar la información?