Wiren BoardDocumentazione
Documentazione · Italiano

Problemi noti di WB-MRM2-mini

revisione 97180

ERRMODBUS001: il dispositivo risponde all’indirizzo 0xFD

Dispositivi interessati

WB-MR* 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-MR* 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-MR* 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-MR* 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.


ERRMODBUS006: risposte a richieste con parità errata

Dispositivi interessati

WB-MR* 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-MR* con firmware precedente a 1.26.4.

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.26.4.


ERRMODBUS008: comportamento imprevisto con frame di richiesta lunghi

Dispositivi interessati

WB-MR* con firmware precedente a 1.26.5.

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.26.5.


ERRMODBUS009: comportamento imprevisto durante la lettura vicino all’indirizzo 0xFFFF in modalità di lettura continua

Dispositivi interessati

WB-MR* con firmware precedente a 1.26.5.

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.26.5.


ERRMODBUS010: convalida errata delle richieste e gestione errata delle richieste non valide

Dispositivi interessati

WB-MR* con firmware precedente a 1.26.5.

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.26.5.


ERRMODBUS011: gestione errata delle richieste non valide di configurazione degli eventi Fast Modbus

Dispositivi interessati

WB-MR* con firmware precedente a 1.26.5.

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.26.5.


ERRMODBUS012: il dispositivo smette di trasmettere eventi Fast Modbus

Dispositivi interessati

WB-MR* con firmware precedente a 1.27.0.

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.27.0.


ERRMR01: i registri degli ingressi digitali contengono 0 dopo l’avvio anziché lo stato effettivo

Dispositivi interessati

WB-MR (tranne WB-MRPS6) e WB-MWAC con firmware 1.9.x o 1.10.x

Descrizione

All’avvio, gli ingressi non vengono letti e i registri degli ingressi digitali contengono 0 anche per un ingresso attivo. Diventano corretti dopo la prima transizione dell’ingresso.

Risoluzione

Corretto nella versione 1.11.1.

Con la correzione, gli stati degli ingressi all’avvio vengono scritti nei registri. Le uscite non reagiscono: rimangono spente oppure ripristinano lo stato salvato se il registro 6 abilita il ripristino. La matrice di associazione non viene elaborata all’avvio, tranne nella modalità di ingresso 5 (sensori di perdita con ripetizione di 20 minuti). Le altre azioni avvengono alle successive variazioni degli ingressi.

ERRMR02: Safety Mode spegne i relè indipendentemente dalla comunicazione Modbus

Dispositivi interessati

Tutti i WB-MR con firmware 1.15.0 o 1.15.1

Descrizione

La scrittura di un valore diverso da zero nel registro 8 avvia un temporizzatore che spegne tutti i relè alla scadenza. I pacchetti Modbus in arrivo non riavviano il temporizzatore.

Risoluzione

Corretto nella versione 1.15.2.

Il temporizzatore ora riparte dopo ogni pacchetto Modbus ricevuto.

ERRMR03: il dispositivo si blocca dopo circa sei settimane di funzionamento continuo

Dispositivi interessati

Tutti i WB-MR con firmware 1.15.0, 1.15.1 o 1.15.2

Descrizione

Dopo circa sei settimane, il dispositivo smette di eseguire i comandi e di aggiornare i valori dei registri, ma continua a rispondere tramite Modbus.

Risoluzione

Corretto in 1.15.3

ERRMR04: letture errate della temperatura della MCU e della tensione di alimentazione

Dispositivi interessati

Hardware WB-MR basato su GD32 con firmware 1.16.0

Risoluzione

Corretto in 1.16.1

ERRMR05: monitoraggio errato della tensione di alimentazione

Dispositivi interessati

Tutti i WB-MR con firmware 1.16.0

Descrizione

L’ADC campiona la tensione di alimentazione ogni 100 ms. Se lo stato di un relè cambia immediatamente prima della perdita di alimentazione, i condensatori possono scaricarsi prima che il campione successivo rilevi l’interruzione, quindi il nuovo stato non viene salvato.

Risoluzione

La tensione di alimentazione viene ora misurata continuamente.

Corretto in 1.16.1

ERRMR06: le letture della frequenza scendono intermittentemente a zero

Dispositivi interessati

Tutti i WB-MR con firmware da 1.15.0 a 1.16.2 inclusi

Descrizione

In modalità di misura della frequenza, le letture scendono occasionalmente a zero quando l’ingresso è intorno a 1 kHz.

Risoluzione

Corretto in 1.16.3

ERRMR07: interrogazione Modbus instabile

Dispositivi interessati

Tutti i WB-MR con firmware fino a 1.16.2 inclusa

Descrizione

Il dispositivo smette intermittentemente di rispondere ai comandi Modbus. È stato osservato a 115200 baud.

Risoluzione

Corretto in 1.16.3

ERRMR08: i relè eccitati si spengono inaspettatamente quando la tensione di alimentazione del modulo diminuisce

Dispositivi interessati

Tutti i WB-MR e WB-MWAC con firmware fino a 1.17.1 inclusa

Descrizione

Anomalie osservate:

  1. Quando la tensione di alimentazione diminuisce, ad esempio passando da un’alimentazione principale a 24 V a una di riserva a 12 V, i relè eccitati possono spegnersi inaspettatamente.
  2. Quando è alimentato da Vout del controllore con ripristino dello stato abilitato (registro 6 = 1), il modulo può riavviarsi a causa del calo di tensione.

Soluzione temporanea

  1. Utilizzare alimentazioni principale e di riserva con la stessa tensione.
  2. Utilizzare un alimentatore separato con potenza adeguata.

Risoluzione

Corretto in 1.17.2.

ERRMR09: picchi nelle letture della frequenza degli ingressi

Dispositivi interessati

Tutti i WB-MR e WB-MRWM2 con firmware fino a 1.17.4 inclusa

Descrizione

Se una frequenza di ingresso elevata scende sotto 1 Hz, le letture possono brevemente tornare a un valore elevato. Il problema non si verifica quando gli impulsi si arrestano completamente. Poiché WB-MRWM2 utilizza un convertitore tensione-frequenza per la misura della potenza, la disconnessione di un carico può analogamente causare picchi transitori della lettura di potenza al valore precedente.

Risoluzione

Corretto in 1.17.5.

ERRMR10: WB-MRWM2 non conteggia l’energia

Dispositivi interessati

Riguarda solo WB-MRWM2 con firmware da 1.19.0 a 1.20.1 inclusi; dettagli: ERRMRWM0001

ERRMR11: risposte a tutte le richieste estese all’indirizzo 0xFD

Dispositivi interessati

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 e WB-MRM2-mini con firmware precedente a 1.21.1.

Descrizione

L’indirizzo 0xFD trasporta comandi Fast Modbus che richiedono una risposta dati e altre richieste broadcast. I dispositivi interessati rispondevano a ogni pacchetto indirizzato a 0xFD, compresi quelli senza comandi Fast Modbus.

Rimedio

Aggiornare al firmware 1.21.1.

Risoluzione

Corretto nel firmware 1.21.1.


ERRMR12: il dispositivo si blocca con tutti gli indicatori spenti

Descrizione

La commutazione di alcuni contattori può bloccare il modulo e spegnere tutti gli indicatori. Spegnere e riaccendere ripristina il funzionamento.

Dispositivi interessati

  • WB-MR3LV/S lotto v4.3A
  • WB-MR3LV/I lotti v4.0I–v4.2A
  • WB-MR6LV/S lotti v4.3B–v4.5C
  • WB-MR6LV/I lotti v4.0M–v4.2C
  • WB-MR6C v.2 lotti v3.6M–v3.7C
  • WB-MR6C v.3 lotti v4.3H–v4.4C, escluso v4.3H/1
  • WB-MR6CU v.2 lotti v1.4A–v1.6A
  • WB-MRPS6/S lotti v1.3B–v1.4A
  • WB-MRWL3 lotti v1.4F–v1.5B

Causa e dettagli

Il latch-up della EEPROM riduce la tensione di alimentazione del microcontrollore. Spegnere e riaccendere la scheda elimina il problema. La probabilità è bassa e dipende da diversi fattori.

Soluzione temporanea

I dispositivi interessati che presentano questo difetto vengono sostituiti in garanzia.

Correzione

I lotti successivi non utilizzano né montano più la EEPROM.

ERRMR13: guasto della resistenza fusibile nell’alimentatore ad alta tensione di WB-MR6C v.3

Descrizione

Molto raramente, la resistenza fusibile si guasta quando si utilizza l’alimentazione integrata a 220 V.

Dispositivi interessati

Tutti i WB-MR6C v.3 precedenti al lotto v4.4H.

Causa e dettagli

L’avvio dell’alimentatore vicino al picco della sinusoide di rete può, in rari casi, sovraccaricare la resistenza fusibile durante la carica della capacità interna. Le variazioni della tolleranza alla potenza di picco causano l’apertura della resistenza e la disconnessione dell’alimentazione interna. Il funzionamento con alimentazione esterna da 9–28 V non è influenzato.

Soluzione temporanea

Il modulo relè viene sostituito in garanzia.

Risoluzione

Corretto dal lotto v4.4H.

ERRMR14: lettura della tensione di alimentazione WB-MR6C v.3 inferiore di circa 0.3 V

Descrizione La tensione di alimentazione indicata è inferiore di circa 0.3 V al valore effettivo.

Dispositivi interessati

WB-MR6C v.3 lotto v4.4J/2.

Elenco dei numeri di serie

Causa e dettagli

Su alcune unità, durante l’assemblaggio non è stato bypassato un diodo di protezione inutilizzato nel circuito di alimentazione.

Soluzione temporanea

Il modulo relè viene sostituito in garanzia.

Risoluzione

Corretto nel corso del lotto v4.4J/2.

ERRMRM2_NC001: WB-MRM2-mini/NC non rispetta la tensione di isolamento specificata per i contatti

Descrizione Su WB-MRM2-mini/NC, il contatto NO inutilizzato del relè è molto vicino alla pista NC ed è isolato da una maschera di saldatura con tensione di perforazione di 500 V, inferiore ai 1000 VAC dichiarati.

Dispositivi interessati

Tutti i dispositivi delle versioni 2.3–2.4K.

Causa e dettagli

Aspetto trascurato durante la progettazione del dispositivo.

Soluzione temporanea

Il modulo relè viene sostituito in garanzia.

Risoluzione

Corretto nei lotti successivi al 2.4K.