Problemi noti di WB-MWACv2
Questa pagina descrive i problemi noti di WB-MWAC v.2. I problemi del precedente WB-MWAC sono elencati in WB-MWAC: Errata.
ERRMODBUS001: il dispositivo risponde all’indirizzo 0xFD
Dispositivi interessati
WB-MWAC v.2 con firmware precedente a 1.21.1.
Descrizione
I dispositivi Fast Modbus possono interferire con dispositivi di terzi sullo stesso bus se questi utilizzano comandi speciali che iniziano con 0xFD.
Causa e dettagli
Fast Modbus riserva 0xFD ai comandi broadcast speciali. Se una richiesta di terzi inizia con 0xFD ma utilizza un comando estraneo a Fast Modbus, i dispositivi Wiren Board interessati rispondono con MODBUS_ERR_ILLEGAL_FUNCTION, disturbando l’altro scambio. Il driver del bus tratta erroneamente il pacchetto come normale traffico Modbus.
Soluzione temporanea
Evitare di condividere il bus tra i dispositivi Wiren Board interessati e i dispositivi di terzi.
Risoluzione
Corretto nel firmware 1.21.1.
ERRMODBUS002: risposta errata al comando di rilevamento 0x46
Dispositivi interessati
WB-MWAC v.2 con firmware precedente a 1.20.4.
Descrizione
Fast Modbus utilizzava inizialmente la funzione 0x60, poi modificata in 0x46 perché 0x60 si trovava in un intervallo riservato. La compatibilità con le versioni precedenti manteneva entrambi i codici di richiesta, ma il dispositivo rispondeva sempre con 0x60. La correzione fa rispondere con la stessa funzione utilizzata nella richiesta: 0x46 oppure 0x60.
Rimedio
Aggiornare al firmware 1.20.4.
Risoluzione
Corretto nel firmware 1.20.4.
ERRMODBUS003: comportamento imprevisto quando vengono scritti valori non validi in alcuni registri
Dispositivi interessati
WB-MWAC v.2 con firmware precedente a 1.21.6.
Descrizione
Quando valori nell’intervallo [256 ... 65535] vengono scritti in alcuni registri, gli 8 bit superiori vengono scartati e il firmware riceve il valore modulo 256. Ad esempio, scrivere 257 ha lo stesso effetto di scrivere 1.
Il registro dell’indirizzo del dispositivo (128) è uno di quelli interessati.
Tutti i registri funzionano come previsto entro i campi documentati. Il problema si verifica quando vengono scritti valori non validi superiori a 255.
Rimedio
Aggiornare al firmware 1.21.6.
Risoluzione
Corretto nel firmware 1.21.6.
ERRMODBUS004: risposte errate con campi di bit
Dispositivi interessati
WB-MWAC v.2 con firmware precedente a 1.20.4.
Descrizione
Le risposte contenenti campi di bit, comprese le letture di coil/ingressi discreti e la gestione degli eventi, potevano contenere bit alti errati.
Rimedio
Aggiornare al firmware 1.20.4.
Risoluzione
Corretto nel firmware 1.20.4.
ERRMODBUS005: lettura errata di registri coil diversi in una sola richiesta
Dispositivi interessati
WB-MWAC v.2 con firmware precedente a 1.20.4.
Descrizione
La lettura di più registri coil diversi a indirizzi consecutivi in una sola richiesta restituiva valori errati; tra gli esempi vi sono 2 e 3 in WB-MSW/WB-MWAC oppure 3 e 4 in WB-LED.
Rimedio
Aggiornare al firmware 1.20.4.
Risoluzione
Corretto nel firmware 1.20.4.
ERRMODBUS006: risposte a richieste con parità errata
Dispositivi interessati
WB-MWAC v.2 con firmware precedente a 1.21.4.
Descrizione
Il dispositivo rispondeva alle richieste con parità errata anziché ignorarle.
Rimedio
Aggiornare al firmware 1.21.4.
Risoluzione
Corretto nel firmware 1.21.4.
ERRMODBUS007: perdita di eventi quando due dispositivi trasmettono contemporaneamente sullo stesso bus
Dispositivi interessati
WB-MWAC v.2 con firmware precedente a 1.24.1.
Descrizione
Quando due dispositivi sullo stesso bus hanno contemporaneamente eventi in attesa, uno dei due può trasmettere un pacchetto di eventi incompleto.
Causa e dettagli
In Fast Modbus, il master richiede gli eventi. Tutti i dispositivi con eventi in attesa partecipano all’arbitraggio; il vincitore risponde, mentre gli altri attendono la richiesta successiva.
Un evento generato attende la trasmissione. Dopo che il dispositivo ha immesso il proprio frame sul bus, l’evento viene contrassegnato come inviato. La successiva conferma del master per quel dispositivo rimuove dalla coda gli eventi inviati. Questo è il normale meccanismo di conferma.
Il difetto contrassegnava gli eventi come inviati troppo presto, alla ricezione della richiesta di eventi, prima del termine dell’arbitraggio. Se il dispositivo vinceva l’arbitraggio, il funzionamento era normale. Se perdeva, non veniva trasmesso alcun pacchetto, ma gli eventi erano già contrassegnati come inviati. Una conferma successiva per quel dispositivo confermava anche questi eventi non inviati, rimuovendoli dalla coda prima che raggiungessero il master.
Il valore nell’interfaccia web non si aggiorna e non viene pubblicato alcun messaggio MQTT, anche se i registri del dispositivo rimangono corretti. La notifica di variazione va persa.
Ad esempio, se gli ingressi di due moduli relè sullo stesso bus si chiudono contemporaneamente, un modulo può aggiornarsi correttamente nell’interfaccia web mentre l’altro perde alcuni eventi e continua ad apparire nello stato precedente nonostante la commutazione fisica.
Soluzione temporanea
Disabilitare temporaneamente il funzionamento basato sugli eventi per i registri interessati, impostando sporadic su false nel template del dispositivo. I registri verranno quindi interrogati all’intervallo configurato.
Risoluzione
Corretto nel firmware 1.24.1.
ERRMODBUS008: comportamento imprevisto con frame di richiesta lunghi
Dispositivi interessati
WB-MWAC v.2 con firmware precedente a 1.25.1.
Descrizione
La ricezione di un frame più lungo di 265 byte, lunghezza massima di un frame Fast Modbus, può bloccare e riavviare il dispositivo; in alcuni casi possono andare perse anche le impostazioni.
Causa e dettagli
L’algoritmo di ricezione non gestiva le richieste non valide di dimensioni eccessive, causando un overflow del buffer e la corruzione della memoria adiacente. Il dispositivo si blocca e il watchdog lo riavvia. Frame molto grandi, superiori a circa 500 byte, possono anche corrompere le impostazioni, causando un riavvio con i parametri di comunicazione predefiniti: 9600 8N2, indirizzo 1.
Soluzione temporanea
- Non inviare richieste che superano i limiti di Modbus RTU o Fast Modbus (265 byte per Fast Modbus).
- Non collegare il dispositivo a un bus che trasporta traffico non Modbus o messaggi più lunghi di 265 byte.
Risoluzione
Corretto nel firmware 1.25.1.
ERRMODBUS009: comportamento imprevisto durante la lettura vicino all’indirizzo 0xFFFF in modalità di lettura continua
Dispositivi interessati
WB-MWAC v.2 con firmware precedente a 1.25.1.
Descrizione
Con la modalità di lettura continua abilitata, un intervallo di lettura che raggiunge o supera l’indirizzo 0xFFFF può bloccare e riavviare il dispositivo.
Causa e dettagli
L’algoritmo di lettura continua non gestiva l’overflow del contatore a 16 bit degli indirizzi dei registri. La lettura di 0xFFFF faceva tornare a zero il contatore e causava un ciclo infinito, seguito da un reset del watchdog.
Soluzione temporanea
Con la modalità di lettura continua abilitata, non leggere un intervallo che include 0xFFFF. I dispositivi Wiren Board non implementano alcun registro a tale indirizzo.
Risoluzione
Corretto nel firmware 1.25.1.
ERRMODBUS010: convalida errata delle richieste e gestione errata delle richieste non valide
Dispositivi interessati
WB-MWAC v.2 con firmware precedente a 1.25.1.
Descrizione
Il dispositivo può accettare o gestire in modo errato richieste sintatticamente non valide, restituire un codice di eccezione errato oppure imporre un limite errato al numero di registri.
Causa e dettagli
L’algoritmo di convalida gestisce in modo errato questi casi:
1) Le richieste di lettura di zero registri riescono con una risposta senza dati contenente solo intestazione e CRC. Modbus richiede l’eccezione 0x03 (ILLEGAL_DATA_VALUE).
2) Un limite unico di 125 registri viene applicato a tutte le funzioni di lettura/scrittura; il superamento restituisce 0x02 (ILLEGAL_DATA_ADDRESS). Modbus specifica invece limiti di 2000 bit per le letture di bit, 125 registri per le letture di registri di ingresso/holding, 1968 coil per le scritture multiple di coil e 123 registri holding per le scritture multiple di registri. Il superamento del limite pertinente dovrebbe restituire 0x03 (ILLEGAL_DATA_VALUE).
3) Byte Count non viene convalidato per le scritture multiple (0x0F e 0x10). Una mancata corrispondenza tra Byte Count e numero di registri dovrebbe restituire 0x03 (ILLEGAL_DATA_VALUE).
4) Le scritture di una singola coil non convalidano il valore e utilizzano il bit più significativo del valore della richiesta. Modbus ammette solo 0x0000 e 0xFF00; tutti gli altri valori dovrebbero restituire 0x03 (ILLEGAL_DATA_VALUE).
5) Le richieste strutturalmente non valide con CRC valido, ad esempio richieste troppo lunghe, vengono elaborate normalmente. Tali richieste malformate dovrebbero invece essere ignorate.
6) Vengono elaborati frame strutturalmente validi ma sovradimensionati, da 257–265 byte. I frame Modbus standard più lunghi di 256 byte non sono validi e dovrebbero essere ignorati.
Soluzione temporanea
Inviare solo richieste strutturalmente corrette e conformi alle specifiche Modbus.
Risoluzione
Corretto nel firmware 1.25.1.
ERRMODBUS011: gestione errata delle richieste non valide di configurazione degli eventi Fast Modbus
Dispositivi interessati
WB-MWAC v.2 con firmware precedente a 1.25.1.
Descrizione
Un comando di configurazione degli eventi (EVENT_CTRL, cmd=0x46, sub_cmd=0x18) con campi di lunghezza non validi può configurare in modo errato le notifiche degli eventi e produrre una risposta di lunghezza imprevedibile.
Causa e dettagli
Il gestore di configurazione degli eventi Fast Modbus non convalidava i campi della dimensione e della lunghezza dei blocchi dati interni. Lunghezze non valide possono portarlo a elaborare dati oltre il frame ricevuto, causando:
1) Impostazioni errate delle notifiche degli eventi, comprese variazioni spontanee delle priorità o delle maschere degli eventi.
2) Una risposta di configurazione degli eventi di lunghezza imprevedibile.
Soluzione temporanea
Inviare solo comandi Fast Modbus validi e conformi alle relative specifiche.
Risoluzione
Corretto nel firmware 1.25.1.
ERRMODBUS012: il dispositivo smette di trasmettere eventi Fast Modbus
Dispositivi interessati
WB-MWAC v.2 con firmware precedente a 1.26.1.
Descrizione
Il dispositivo smette di inviare eventi Fast Modbus e segnala continuamente l’assenza di eventi (sub_cmd=0x12) in risposta alle richieste di eventi (cmd=0x46, sub_cmd=0x10). I comandi dell’interfaccia web rimangono fermi mentre i registri del dispositivo continuano a cambiare.
Quanto più frequentemente cambia un valore con eventi abilitati, tanto prima si verifica il problema. Durante le prove con antirimbalzo di 1 ms, la trasmissione degli eventi si è arrestata dopo 23 minuti a 200 impulsi di ingresso al secondo e dopo diverse ore a 100 impulsi al secondo. Il problema può verificarsi anche con variazioni poco frequenti, ma è molto meno probabile. Il driver non registra errori perché il dispositivo segnala validamente che non vi sono eventi in attesa.
Per la diagnosi, leggere direttamente il registro senza utilizzare gli eventi, ad esempio il contatore degli impulsi dell’ingresso:
modbus_client_rpc -mrtu -pnone -s2 /dev/ttyRS485-1 -b115200 -a1 -r32 -t0x03
Se il registro aumenta ma il comando nell’interfaccia web rimane invariato, questo problema è presente.
Causa e dettagli
Il contatore degli eventi non inviati è condiviso da un gestore di interrupt e dal ciclo principale senza una sincronizzazione corretta. Un interrupt durante un’operazione di lettura-modifica-scrittura nel ciclo principale può causare la perdita di un incremento del contatore. L’incremento non può essere recuperato perché avviene solo quando un evento entra per la prima volta nella coda. Il dispositivo ritiene quindi di non avere nulla da inviare nonostante gli eventi in coda.
La condizione persiste fino al riavvio del dispositivo. Un altro evento può temporaneamente svuotare la coda accumulata e aggiornare il comando una volta, ma la discrepanza ricompare immediatamente. Un’installazione senza altre variazioni appare quindi bloccata.
La probabilità aumenta con la frequenza degli eventi e il carico del bus, perché gli accessi concorrenti diventano più probabili.
Soluzione temporanea
Il riavvio del dispositivo ripristina gli eventi finché il problema non si ripresenta. Riavviare il controllore o riavviare wb-mqtt-serial non aiuta: lo stato è mantenuto nel dispositivo e la riconfigurazione degli eventi non lo azzera.
Ridurre la probabilità aumentando il tempo di antirimbalzo degli ingressi o disabilitando gli eventi per i registri che cambiano frequentemente. Finché il firmware non viene aggiornato, leggere i valori direttamente dai registri.
Risoluzione
Corretto nel firmware 1.26.1.
ERRMWAC2001: configurazione predefinita errata dell’ingresso S6
Dispositivi interessati
Tutte le unità WB-MWAC v.2 del lotto 2.2A spedite tra il 15 e il 19 marzo 2024.
Descrizione
Al termine dei test automatici di produzione, è stato scritto un valore errato nel registro della modalità dell’ingresso S6.
Causa e dettagli
Il registro 14 dovrebbe avere il valore predefinito 6 (modalità pulsante). In questo lotto è stato memorizzato erroneamente 4 (funzionamento su entrambi i fronti), causando due attivazioni.
Soluzione temporanea

Impostare l’ingresso 6 sulla modalità Digital input or pushbutton tramite l’interfaccia web del controllore Wiren Board.
Senza un controllore, scrivere la modalità richiesta nel registro mediante modbus-client; comando di esempio:
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a{address} -t0x06 -r14 6
Risoluzione
Corretto nei lotti successivi, a partire da 2.2A/1.
ERRMWAC2002: problemi e comportamento del firmware 1.21.0
Dispositivi interessati
Tutti i WB-MWAC v.2 con firmware 1.21.0.
Descrizione
Dopo il rilascio di WB-MWAC v.2 con firmware 1.21.0, sono stati rilevati diversi problemi che ne influenzano il funzionamento.
Causa e dettagli
- Le pressioni dei pulsanti K1 e K2 venivano elaborate con un ritardo di 300 ms.
- Causa: il rilevamento della doppia pressione era abilitato, sebbene K1 e K2 non lo utilizzino.
- Correzione: disabilitato il rilevamento della doppia pressione su K1 e K2; le pressioni vengono elaborate senza ritardo.
- Segnalazione visiva poco chiara della modalità di pulizia con acqua.
- Causa: i LED si accendevano per soli 50 ms nella modalità di pulizia con acqua.
- Correzione: durata dell’accensione dei LED aumentata a 250 ms.
- Modbus poteva attivare la modalità Leak mentre era attiva la modalità Wet cleaning.
- Causa: errore del firmware. I sensori di perdite vengono ignorati nella modalità Wet cleaning, quindi l’attivazione della modalità Leak è inappropriata.
- Correzione: controllo dell’attivazione della modalità Wet cleaning prima di attivare la modalità Leak.
- Le impostazioni dei contatori andavano perse al riavvio: Pulse weight P1/P2 e Initial counter value P1/P2.
- Causa: il firmware caricava le impostazioni predefinite dei contatori all’avvio.
- Correzione: modifiche al firmware.
- Wet cleaning timer e Restore valve state after leak is resolved non venivano conservati dopo il riavvio.
- Causa: il firmware non salvava questi parametri nella memoria non volatile.
- Correzione: corretto l’errore del firmware.
- I registri Pulse weight P1 e P2 accettavano valori non validi superiori a 10000.
- Causa: il firmware non verificava il limite superiore del valore.
- Correzione: modifiche al firmware.
- Wet cleaning timer accettava 0, causando la disattivazione della modalità subito dopo l’attivazione.
- Causa: il firmware non verificava il limite inferiore del valore.
- Correzione: modifiche al firmware.
Soluzione temporanea
Aggiornare il firmware alla versione 1.21.1 o successiva.
Risoluzione
Tutti i problemi elencati sono stati corretti nel firmware 1.21.1 e nei lotti di produzione successivi. Aggiornare il firmware del dispositivo.
Attenzione: se è installato il bootloader 1.4.0, aggiornarlo prima di aggiornare il firmware del dispositivo. Ulteriori dettagli: ERRBOOT003
Per verificare e aggiornare la versione del bootloader, vedere Bootloader dei dispositivi periferici Wiren Board .
Per le istruzioni di aggiornamento del firmware, vedere Aggiornamento del firmware dei dispositivi Modbus Wiren Board
I clienti che hanno acquistato i dispositivi interessati verranno informati via e-mail.
ERRMWAC2003: le impostazioni di parità RS-485 diverse da N non funzionano
Dispositivi interessati
Tutti i WB-MWAC v.2 con firmware precedente a 1.21.2
Descrizione
La selezione di una parità RS-485 diversa da quella predefinita può causare errori di comunicazione.
Causa e dettagli
Un errore software introdotto durante la migrazione al nuovo microcontrollore scriveva un valore errato nel registro di configurazione del ricetrasmettitore.
Soluzione temporanea
Non utilizzare la parità O o E.
Risoluzione
Corretto nel firmware 1.21.3.
ERRMWAC2004: letture errate della temperatura e della tensione di alimentazione della MCU
Dispositivi interessati
Tutti i WB-MWAC v.2 con firmware precedente a 1.21.2
Descrizione
I registri Modbus 123 e 124 contengono valori errati, che vengono visualizzati in modo errato anche nell’interfaccia web del controllore Wiren Board.
Causa e dettagli
Un errore software introdotto durante la migrazione al nuovo microcontrollore leggeva canali ADC errati.
Soluzione temporanea
Nessuno.
Risoluzione
Corretto nel firmware 1.21.3.
ERRMWAC2005: è possibile selezionare modalità di ingresso inesistenti
Dispositivi interessati
Tutti i WB-MWAC v.2 con firmware precedente a 1.21.2
Descrizione
È possibile scrivere i valori 0–2 nei registri Modbus 9–14 della modalità di ingresso.
Causa e dettagli
Un’omissione software consente queste modalità non valide, che si comportano come la modalità 3, Interaction disabled.
Soluzione temporanea
Non scrivere le modalità 0–2 nei registri 9–14.
Risoluzione
Corretto nel firmware 1.21.3.
ERRMWAC2006: il dispositivo non si avvia più dopo un riavvio
Dispositivi interessati
Tutti i WB-MWAC v.2 con firmware precedente a 1.21.5.
Riguarda anche i bootloader da 1.5.0 a 1.5.4 inclusi: ERRBOOT007.
Descrizione
Il dispositivo non si avvia più dopo un riavvio avvenuto durante il salvataggio dei parametri nella memoria del microcontrollore.
Causa e dettagli
Un’omissione software consente un errore ECC doppio se si verifica un riavvio o un’interruzione dell’alimentazione durante la programmazione della Flash interna, arrestando l’esecuzione del firmware.
Il problema riguarda sia il bootloader (ERRBOOT004, ERRBOOT007) sia il firmware. Aggiornare il firmware mantenendo un vecchio bootloader riduce notevolmente il rischio, ma gli aggiornamenti del firmware interrotti possono comunque rendere inutilizzabile il dispositivo. Aggiornare solo il bootloader può lasciare il problema riproducibile, ma consente l’aggiornamento del firmware e il ripristino.
Sintomo: il LED di stato verde non si accende né lampeggia quando viene applicata l’alimentazione.
Soluzione temporanea
Sostituzione in garanzia.
Risoluzione
Corretto nel firmware 1.21.5. Attenzione: aggiornare prima il bootloader alla versione 1.5.5 o successiva per mantenere la possibilità di ripristino. Il firmware viene installato automaticamente durante l’aggiornamento del bootloader.
ERRMWAC2007: stato errato dei relè alla prima accensione
Dispositivi interessati
Tutti i WB-MWAC v.2 con firmware precedente a 1.21.6
Descrizione
Alla prima accensione viene caricato uno stato errato dei relè.
Causa e dettagli
Il circuito del pulsante sul pannello frontale ha un filtro RC. Dopo l’inizializzazione del driver del pulsante, il pull-up interno ne carica il condensatore; il pin legge brevemente un livello basso (attivo), causando una commutazione involontaria del relè.
Soluzione temporanea
Utilizzare il dispositivo con la batteria installata; dopo il primo riavvio il problema non si ripresenta.
Risoluzione
Corretto nel firmware 1.21.6.
ERRMWAC2008: comportamento errato quando la modalità Leak viene attivata tramite il coil 2
Dispositivi interessati
Tutti i WB-MWAC v.2 con firmware precedente a 1.21.7
Descrizione
La scrittura di 1 nel coil 2 accende l’indicatore Leak e attiva l’allarme, ma non salva gli stati dei relè per ripristinarli dopo la risoluzione della perdita. Inoltre non commuta i relè.
Causa e dettagli
Causa: era consentita la scrittura di 1 nel coil 2.
Soluzione temporanea
Non attivare la modalità Leak tramite il relativo registro Modbus o l’interfaccia web del controllore Wiren Board.
Risoluzione
Corretto nel firmware 1.21.7 impedendo l’attivazione tramite il coil 2. Con un controllore Wiren Board, aggiornare anche il modello del dispositivo: il controllo esistente diventa di sola lettura e viene aggiunto un pulsante Reset Leak mode.
ERRMWAC2009: corruzione della configurazione durante l’aggiornamento al firmware 1.22.0
Dispositivi interessati
Tutti i WB-MWAC v.2 durante l’aggiornamento a 1.22.0.
Descrizione
L’aggiornamento a 1.22.0 scrive impostazioni errate per il tipo di sensore di perdite e la matrice di mappatura dell’uscita del cicalino.
Causa e dettagli
Le impostazioni esistenti dovrebbero essere migrate, mentre le nuove impostazioni, come il tipo di sensore di perdite e il comportamento del cicalino comandato dagli ingressi, dovrebbero ricevere i valori predefiniti. Un errore software ha assegnato valori errati alle nuove impostazioni.
Soluzione temporanea
Ripristinare le impostazioni di fabbrica scrivendo 1 nel registro 65402.
Risoluzione
Corretto nel firmware 1.22.1.