Wiren BoardDocumentación
Documentación · Español

Problemas conocidos de WB-MR6C v.3

revisión 83447

ERRMODBUS001: El dispositivo responde a la dirección 0xFD

Dispositivos afectados

WB-MR* con firmware anterior a 1.21.1.

Descripción

Los dispositivos Fast Modbus pueden interferir con dispositivos de terceros del mismo bus si estos utilizan comandos especiales que comienzan por 0xFD.

Causa y detalles

Fast Modbus reserva 0xFD para comandos especiales de difusión. Si una solicitud de terceros comienza con 0xFD pero utiliza un comando ajeno a Fast Modbus, los dispositivos Wiren Board afectados responden con MODBUS_ERR_ILLEGAL_FUNCTION y alteran el otro intercambio. El controlador de software del bus interpreta incorrectamente el paquete como tráfico Modbus ordinario.

Solución provisional

Evite compartir un bus entre dispositivos Wiren Board afectados y dispositivos de terceros.

Resolución

Corregido en el firmware 1.21.1.


ERRMODBUS002: Respuesta incorrecta a la orden de descubrimiento 0x46

Dispositivos afectados

WB-MR* con firmware anterior a 1.20.4.

Descripción

Fast Modbus utilizaba originalmente la función 0x60, que posteriormente se cambió a 0x46 porque 0x60 estaba en un rango reservado. La compatibilidad con versiones anteriores conservó ambos códigos de solicitud, pero el dispositivo siempre respondía con 0x60. La corrección responde con la misma función utilizada en la solicitud: 0x46 o 0x60.

Solución

Actualice al firmware 1.20.4.

Resolución

Corregido en el firmware 1.20.4.


ERRMODBUS003: Comportamiento inesperado cuando se escriben valores no válidos en algunos registros

Dispositivos afectados

WB-MR* con firmware anterior a 1.21.6.

Descripción

Cuando los valores del rango [256 ... 65535] se escriben en algunos registros, se descartan los 8 bits superiores y el firmware recibe el valor módulo 256. Por ejemplo, escribir 257 tiene el mismo efecto que escribir 1.

El registro de dirección del dispositivo (128) es uno de los registros afectados.

Todos los registros funcionan como se espera dentro de sus rangos documentados. El problema se produce cuando se escriben valores no válidos superiores a 255.

Solución

Actualice al firmware 1.21.6.

Resolución

Corregido en el firmware 1.21.6.


ERRMODBUS004: respuestas incorrectas de campos de bits

Dispositivos afectados

WB-MR* con firmware anterior a 1.20.4.

Descripción

Las respuestas que contienen campos de bits, incluidas las lecturas de bobinas/entradas discretas y la gestión de eventos, podían contener bits altos incorrectos.

Solución

Actualice al firmware 1.20.4.

Resolución

Corregido en el firmware 1.20.4.


ERRMODBUS006: respuestas a solicitudes con paridad incorrecta

Dispositivos afectados

WB-MR* con firmware anterior a 1.21.4.

Descripción

El dispositivo respondía a solicitudes con paridad incorrecta en lugar de ignorarlas.

Solución

Actualice al firmware 1.21.4.

Resolución

Corregido en el firmware 1.21.4.


ERRMODBUS007: Pérdida de eventos cuando dos dispositivos transmiten simultáneamente en un mismo bus

Dispositivos afectados

WB-MR* con firmware anterior a 1.26.4.

Descripción

Cuando dos dispositivos de un mismo bus tienen eventos pendientes simultáneamente, uno puede transmitir un paquete de eventos incompleto.

Causa y detalles

En Fast Modbus, el maestro solicita eventos. Todos los dispositivos con eventos pendientes participan en el arbitraje; el ganador responde y los demás esperan a la siguiente solicitud.

Un evento generado espera a ser transmitido. Una vez que el dispositivo coloca su trama en el bus, el evento se marca como enviado. El siguiente acuse de recibo del maestro para ese dispositivo elimina los eventos enviados de su cola. Este es el mecanismo normal de confirmación.

El defecto marcaba los eventos como enviados demasiado pronto, al recibir la solicitud de eventos, antes de terminar el arbitraje. Si el dispositivo ganaba el arbitraje, el funcionamiento era normal. Si perdía, no se transmitía ningún paquete, pero sus eventos ya estaban marcados como enviados. Una confirmación posterior para ese dispositivo también confirmaba esos eventos no enviados y los eliminaba de la cola antes de que llegaran al maestro.

El valor de la interfaz web no se actualiza y no se publica ningún mensaje MQTT, aunque los registros del dispositivo siguen siendo correctos. Se pierde la notificación del cambio.

Por ejemplo, si las entradas de dos módulos de relé del mismo bus se cierran simultáneamente, un módulo puede actualizarse correctamente en la interfaz web mientras el otro pierde algunos eventos y sigue apareciendo en su estado anterior a pesar de haber conmutado físicamente.

Solución provisional

Desactive temporalmente el funcionamiento basado en eventos para los registros afectados estableciendo sporadic en false en la plantilla del dispositivo. Los registros se consultarán entonces con el intervalo configurado.

Resolución

Corregido en el firmware 1.26.4.


ERRMODBUS008: Comportamiento inesperado con tramas de solicitud largas

Dispositivos afectados

WB-MR* con firmware anterior a 1.26.5.

Descripción

Recibir una trama de más de 265 bytes, la longitud máxima de una trama Fast Modbus, puede bloquear y reiniciar el dispositivo; en algunos casos también pueden perderse los ajustes.

Causa y detalles

El algoritmo de recepción no procesaba las solicitudes no válidas de tamaño excesivo, lo que provocaba un desbordamiento del búfer y la corrupción de la memoria adyacente. El dispositivo se bloquea y el watchdog lo reinicia. Las tramas muy grandes, de más de aproximadamente 500 bytes, también pueden dañar los ajustes y provocar un reinicio con los parámetros de comunicación predeterminados: 9600 8N2, dirección 1.

Solución provisional

  • No envíe solicitudes que superen los límites de Modbus RTU o Fast Modbus (265 bytes para Fast Modbus).
  • No conecte el dispositivo a un bus que transporte tráfico no Modbus o mensajes de más de 265 bytes.

Resolución

Corregido en el firmware 1.26.5.


ERRMODBUS009: Comportamiento inesperado al leer cerca de la dirección 0xFFFF en modo de lectura continua

Dispositivos afectados

WB-MR* con firmware anterior a 1.26.5.

Descripción

Con el modo de lectura continua habilitado, un rango de lectura que alcance o cruce la dirección 0xFFFF puede bloquear y reiniciar el dispositivo.

Causa y detalles

El algoritmo de lectura continua no gestionaba el desbordamiento del contador de direcciones de registro de 16 bits. Leer 0xFFFF hacía que el contador volviera al inicio y provocaba un bucle infinito, seguido de un reinicio por watchdog.

Solución provisional

Con el modo de lectura continua activado, no lea un rango que incluya 0xFFFF. Los dispositivos Wiren Board no tienen ningún registro implementado en esa dirección.

Resolución

Corregido en el firmware 1.26.5.


ERRMODBUS010: Validación incorrecta de solicitudes y gestión incorrecta de solicitudes no válidas

Dispositivos afectados

WB-MR* con firmware anterior a 1.26.5.

Descripción

El dispositivo puede aceptar o gestionar incorrectamente solicitudes sintácticamente no válidas, devolver un código de excepción incorrecto o imponer un límite incorrecto al número de registros.

Causa y detalles

El algoritmo de validación trata incorrectamente estos casos:

1) Las solicitudes para leer cero registros se ejecutan con éxito y devuelven una respuesta sin datos que contiene únicamente cabecera y CRC. Modbus exige la excepción 0x03 (ILLEGAL_DATA_VALUE).

2) Se aplica un único límite de 125 registros a todas las funciones de lectura/escritura; superarlo devuelve 0x02 (ILLEGAL_DATA_ADDRESS). Sin embargo, Modbus especifica límites de 2000 bits para las lecturas de bits, 125 registros para las lecturas de registros de entrada/mantenimiento, 1968 bobinas para las escrituras de múltiples bobinas y 123 registros de mantenimiento para las escrituras de múltiples registros. Superar el límite aplicable debería devolver 0x03 (ILLEGAL_DATA_VALUE).

3) Byte Count no se valida en escrituras múltiples (0x0F y 0x10). Una discrepancia entre Byte Count y el número de registros debería devolver 0x03 (ILLEGAL_DATA_VALUE).

4) Las escrituras de una única bobina no validan el valor y utilizan el bit más significativo del valor de la solicitud. Modbus solo permite 0x0000 y 0xFF00; todos los demás valores deberían devolver 0x03 (ILLEGAL_DATA_VALUE).

5) Las solicitudes con estructura no válida pero CRC válido, como las de longitud excesiva, se procesan normalmente. En cambio, estas solicitudes malformadas deberían ignorarse.

6) Se procesan tramas estructuralmente válidas, pero de tamaño excesivo, de 257–265 bytes. Las tramas Modbus estándar de más de 256 bytes no son válidas y deberían ignorarse.


Solución provisional

Envíe únicamente solicitudes estructuralmente correctas que cumplan la especificación Modbus.

Resolución

Corregido en el firmware 1.26.5.


ERRMODBUS011: Tratamiento incorrecto de solicitudes no válidas de configuración de eventos Fast Modbus

Dispositivos afectados

WB-MR* con firmware anterior a 1.26.5.

Descripción

Una orden de configuración de eventos (EVENT_CTRL, cmd=0x46, sub_cmd=0x18) con campos de longitud no válidos puede configurar incorrectamente las notificaciones de eventos y generar una respuesta de longitud impredecible.

Causa y detalles

El manejador de configuración de eventos Fast Modbus no validaba los campos de tamaño y longitud interna del bloque de datos. Las longitudes no válidas pueden hacer que procese datos fuera de la trama recibida, lo que provoca:

1) Ajustes incorrectos de notificación de eventos, incluidos cambios espontáneos en las prioridades o máscaras de eventos.

2) Una respuesta de configuración de eventos de longitud impredecible.

Solución provisional

Envíe únicamente comandos Fast Modbus válidos que cumplan su especificación.

Resolución

Corregido en el firmware 1.26.5.


ERRMODBUS012: El dispositivo deja de transmitir eventos Fast Modbus

Dispositivos afectados

WB-MR* con firmware anterior a 1.27.0.

Descripción

El dispositivo deja de enviar eventos Fast Modbus e indica continuamente que no hay eventos (sub_cmd=0x12) en respuesta a las solicitudes de eventos (cmd=0x46, sub_cmd=0x10). Los controles de la interfaz web se bloquean mientras los registros del dispositivo siguen cambiando.

Cuanto más frecuentemente cambia un valor con eventos habilitados, antes aparece el problema. En las pruebas con supresión de rebotes de 1 ms, la transmisión de eventos se detuvo después de 23 minutos con 200 impulsos de entrada por segundo y después de varias horas con 100 impulsos por segundo. También puede ocurrir con cambios poco frecuentes, pero es mucho menos probable. El controlador de software no registra ningún error porque el dispositivo informa válidamente de que no hay eventos pendientes.

Para el diagnóstico, lea directamente el registro sin eventos, por ejemplo, el contador de impulsos de entrada:

modbus_client_rpc -mrtu -pnone -s2 /dev/ttyRS485-1 -b115200 -a1 -r32 -t0x03

Si el registro aumenta pero el control de la interfaz web no cambia, este problema está presente.

Causa y detalles

El contador de eventos no enviados se comparte entre un gestor de interrupciones y el bucle principal sin una sincronización correcta. Una interrupción durante una operación de lectura-modificación-escritura en el bucle principal puede perder un incremento del contador. El incremento no puede recuperarse porque solo se produce cuando un evento entra por primera vez en la cola. El dispositivo cree entonces que no tiene nada que enviar, a pesar de haber eventos en cola.

La condición persiste hasta que el dispositivo se reinicia. Otro evento puede vaciar temporalmente la cola acumulada y actualizar el control una vez, pero la discrepancia reaparece inmediatamente. Por ello, una instalación sin otros cambios parece bloqueada.

La probabilidad aumenta con la frecuencia de eventos y la carga del bus, ya que los accesos simultáneos se vuelven más probables.

Solución provisional

Reiniciar el dispositivo restaura los eventos hasta que el problema vuelve a producirse. Reiniciar el controlador o reiniciar wb-mqtt-serial no ayuda: el estado se mantiene en el dispositivo y volver a configurar los eventos no lo restablece.

Reduzca la probabilidad aumentando el tiempo antirrebote de las entradas o deshabilitando los eventos de los registros que cambian con frecuencia. Hasta que se actualice el firmware, lea los valores directamente de los registros.

Resolución

Corregido en el firmware 1.27.0.


ERRMR01: Los registros de entradas digitales contienen 0 tras el arranque en lugar del estado real

Dispositivos afectados

WB-MR (excepto WB-MRPS6) y WB-MWAC con firmware 1.9.x o 1.10.x

Descripción

Al arrancar, no se leen las entradas y los registros de entradas digitales contienen 0 incluso para una entrada activa. Sus valores pasan a ser correctos tras la primera transición de la entrada.

Resolución

Corregido en 1.11.1.

Con la corrección, los estados de entrada al arrancar se escriben en los registros. Las salidas no reaccionan: permanecen apagadas o restauran su estado guardado si el registro 6 habilita la restauración. La matriz de asignación no se procesa al arrancar, salvo en el modo de entrada 5 (sensores de fugas con repetición de 20 minutos). Las demás acciones se realizan en cambios posteriores de las entradas.

ERRMR02: Safety Mode apaga los relés independientemente de la comunicación Modbus

Dispositivos afectados

Todos los WB-MR con firmware 1.15.0 o 1.15.1

Descripción

Al escribir un valor distinto de cero en el registro 8, se inicia un temporizador que apaga todos los relés cuando finaliza. Los paquetes Modbus entrantes no reinician el temporizador.

Resolución

Corregido en 1.15.2.

El temporizador ahora se reinicia después de cada paquete Modbus recibido.

ERRMR03: El dispositivo se bloquea tras aproximadamente seis semanas de funcionamiento continuo

Dispositivos afectados

Todos los WB-MR con firmware 1.15.0, 1.15.1 o 1.15.2

Descripción

Después de aproximadamente seis semanas, el dispositivo deja de ejecutar órdenes y actualizar los valores de los registros, pero continúa respondiendo mediante Modbus.

Resolución

Corregido en 1.15.3

ERRMR04: Lecturas incorrectas de la temperatura del MCU y de la tensión de alimentación

Dispositivos afectados

Hardware WB-MR basado en GD32 con firmware 1.16.0

Resolución

Corregido en 1.16.1

ERRMR05: Supervisión incorrecta de la tensión de alimentación

Dispositivos afectados

Todos los WB-MR con firmware 1.16.0

Descripción

El ADC muestrea la tensión de alimentación cada 100 ms. Si el estado de un relé cambia inmediatamente antes de una interrupción de la alimentación, los condensadores pueden descargarse antes de que la siguiente muestra detecte el fallo, por lo que el nuevo estado no se guarda.

Resolución

La tensión de alimentación ahora se mide continuamente.

Corregido en 1.16.1

ERRMR06: Las lecturas de frecuencia caen a cero de forma intermitente

Dispositivos afectados

Todos los WB-MR con firmware de 1.15.0 a 1.16.2, ambos inclusive

Descripción

En el modo de medición de frecuencia, las lecturas caen ocasionalmente a cero cuando la entrada está alrededor de 1 kHz.

Resolución

Corregido en 1.16.3

ERRMR07: Sondeo Modbus inestable

Dispositivos afectados

Todos los WB-MR con firmware hasta la versión 1.16.2 incluida

Descripción

El dispositivo deja de responder de forma intermitente a los comandos Modbus. Se ha observado a 115200 baudios.

Resolución

Corregido en 1.16.3

ERRMR08: Los relés energizados se desactivan inesperadamente cuando disminuye la tensión de alimentación del módulo

Dispositivos afectados

Todos los WB-MR y WB-MWAC con firmware hasta la versión 1.17.1 incluida

Descripción

Fallos observados:

  1. Cuando disminuye la tensión de alimentación, por ejemplo, al pasar de una fuente principal de 24 V a una de respaldo de 12 V, los relés energizados pueden desactivarse inesperadamente.
  2. Cuando se alimenta desde Vout del controlador con la restauración del estado habilitada (registro 6 = 1), el módulo puede reiniciarse debido a una caída de tensión.

Solución provisional

  1. Utilice fuentes de alimentación principal y de reserva con la misma tensión.
  2. Utilice una fuente de alimentación independiente con potencia suficiente.

Resolución

Corregido en 1.17.2.

ERRMR09: Picos en las lecturas de frecuencia de entrada

Dispositivos afectados

Todos los WB-MR y WB-MRWM2 con firmware hasta 1.17.4 inclusive

Descripción

Si una frecuencia de entrada elevada cae por debajo de 1 Hz, las lecturas pueden volver brevemente a un valor alto. El problema no se produce cuando los impulsos se detienen por completo. Como el WB-MRWM2 utiliza un convertidor de tensión a frecuencia para medir la potencia, la desconexión de una carga puede provocar de forma similar picos transitorios en las lecturas de potencia hasta el valor anterior.

Resolución

Corregido en 1.17.5.

ERRMR10: WB-MRWM2 no contabiliza la energía

Dispositivos afectados

Solo afecta a WB-MRWM2 con firmware de 1.19.0 a 1.20.1, ambas versiones incluidas; detalles: ERRMRWM0001

ERRMR11: Responde a todas las solicitudes extendidas en la dirección 0xFD

Dispositivos afectados

WB-MRWL3, WB-MR3LV/K(I), WB-MR6LV/K(I), WB-MR3LV/S, WB-MR6LV/S, WB-MRPS6, WB-MR6C v.2, WB-MR6C v.3, WB-MR6CU v.2 y WB-MRM2-mini con firmware anterior a 1.21.1.

Descripción

La dirección 0xFD transporta comandos Fast Modbus que requieren una respuesta de datos y otras solicitudes de difusión. Los dispositivos afectados respondían a todos los paquetes dirigidos a 0xFD, incluidos los que no contenían comandos Fast Modbus.

Solución

Actualice al firmware 1.21.1.

Resolución

Corregido en el firmware 1.21.1.


ERRMR12: El dispositivo se bloquea con todos los indicadores apagados

Descripción

La conmutación de algunos contactores puede bloquear el módulo y apagar todos los indicadores. Desconectar y volver a conectar su alimentación restablece el funcionamiento.

Dispositivos afectados

  • WB-MR3LV/S del lote v4.3A
  • Lotes v4.0I–v4.2A de WB-MR3LV/I
  • WB-MR6LV/S de los lotes v4.3B–v4.5C
  • Lotes v4.0M–v4.2C de WB-MR6LV/I
  • WB-MR6C v.2, lotes v3.6M–v3.7C
  • WB-MR6C v.3 de los lotes v4.3H–v4.4C, excepto v4.3H/1
  • Lotes v1.4A–v1.6A de WB-MR6CU v.2
  • WB-MRPS6/S, lotes v1.3B–v1.4A
  • Lotes v1.4F–v1.5B de WB-MRWL3

Causa y detalles

El enclavamiento de la EEPROM provoca una caída de la tensión de alimentación del microcontrolador. Apagar y volver a encender la placa elimina el problema. La probabilidad es baja y depende de varios factores.

Solución provisional

Los dispositivos afectados que presenten este fallo se sustituyen en garantía.

Solución

Los lotes posteriores ya no utilizan ni incorporan EEPROM.

ERRMR13: Falla la resistencia fusible del WB-MR6C v.3 en la alimentación de alta tensión

Descripción

En casos muy poco frecuentes, la resistencia fusible falla al utilizar la fuente de alimentación integrada de 220 V.

Dispositivos afectados

Todos los WB-MR6C v.3 anteriores al lote v4.4H.

Causa y detalles

Al conectar la alimentación cerca del pico de la onda sinusoidal de la red, en casos poco frecuentes puede sobrecargarse la resistencia fusible mientras se carga la capacitancia interna. La variación de la tolerancia a la potencia de pico provoca que la resistencia se abra y desconecte la alimentación interna. El funcionamiento con una alimentación externa de 9–28 V no se ve afectado.

Solución provisional

El módulo de relé se sustituye en garantía.

Resolución

Corregido a partir del lote v4.4H.

ERRMR14: La lectura de la tensión de alimentación de WB-MR6C v.3 es aproximadamente 0.3 V inferior a la real

Descripción La tensión de alimentación comunicada es aproximadamente 0.3 V inferior al valor real.

Dispositivos afectados

WB-MR6C v.3 del lote v4.4J/2.

Lista de números de serie

Causa y detalles

En algunas unidades, no se puenteó durante el montaje un diodo de protección no utilizado en el circuito de alimentación.

Solución provisional

El módulo de relé se sustituye en garantía.

Resolución

Corregido dentro del lote v4.4J/2.