Wiren BoardDocumentazione
Documentazione · Italiano

Problemi noti di WB-UPS v.3

revisione 99519

ERRMODBUS007: perdita di eventi quando due dispositivi trasmettono contemporaneamente sullo stesso bus

Dispositivi interessati

WB-UPS v.3 con firmware precedente a 1.3.2.

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


ERRMODBUS008: comportamento imprevisto con frame di richiesta lunghi

Dispositivi interessati

WB-UPS v.3 con firmware precedente a 1.4.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.4.1.


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

Dispositivi interessati

WB-UPS v.3 con firmware precedente a 1.4.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.4.1.


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

Dispositivi interessati

WB-UPS v.3 con firmware precedente a 1.4.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.4.1.


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

Dispositivi interessati

WB-UPS v.3 con firmware precedente a 1.4.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.4.1.


ERRWBUPS30001: modalità errata di controllo della tensione di uscita

Illustrazione dei problemi noti di WB-UPS v.3
Impostazione della modalità di controllo di WB-UPS v.3 tramite l’interfaccia web del controllore

Dispositivi interessati

Tutti i WB-UPS v.3 precedenti al lotto v3.3D/1.

Descrizione

Un errore nei test di produzione ha lasciato attivo il controllo manuale della tensione di uscita invece di ripristinare l’impostazione automatica predefinita. Le unità interessate forniscono quindi 11.5 V in uscita indipendentemente dalla tensione su Vin.

Soluzione temporanea

  • Impostare la modalità appropriata utilizzando il modello del dispositivo nell’interfaccia web del controllore;
  • Oppure scrivere manualmente 0 nel registro 16 (0x0010, modalità di controllo della tensione di uscita).

Risoluzione

Corretto nel lotto v3.3D/1.


ERRWBUPS30002: il setpoint della tensione di uscita si blocca dopo un calo e il ripristino della tensione di ingresso

Dispositivi interessati

WB-UPS v.3 con firmware precedente a 1.4.1 nella modalità automatica della tensione di uscita.

Descrizione

In modalità automatica, se la tensione di ingresso scende al di sotto di circa 9.8 V e poi risale a circa 12.0–12.4 V, i setpoint richiesto ed effettivo della tensione di uscita (registri 11 e 13) rimangono bloccati ai valori precedenti al calo anziché seguire l’ingresso.

Il setpoint bloccato può essere troppo basso o troppo alto:

  • Se inferiore alla tensione del bus condiviso, il modulo non fornisce corrente al carico e non contribuisce alla potenza nel funzionamento in parallelo. È il sintomo più evidente;
  • Se troppo alto, la tensione di uscita rimane superiore al livello richiesto per l’attuale ingresso.

Questo stato persiste indefinitamente.

Il guasto si verifica solo quando la tensione di ingresso scende al di sotto di circa 9.8 V e poi risale a circa 12.0–12.4 V. Un’alimentazione di ingresso stabile, presente o assente, non lo provoca. È indipendente dalla modalità parallela e dalla presenza del carico.

Causa e dettagli

La modalità automatica calcola la tensione di ingresso meno 0.7 V con un’isteresi di ±0.2 V. Al di sotto di 9.8 V, il riferimento dell’isteresi si ripristinava al valore predefinito di 11.5 V e perdeva la sincronizzazione con il setpoint applicato. Se l’ingresso ripristinato rimaneva entro circa 12.0–12.4 V, Vin meno 0.7 V restava all’interno di tale finestra di isteresi, quindi non avveniva alcun ricalcolo e il setpoint rimaneva bloccato.

Soluzione temporanea

  • Portare la tensione di ingresso al di fuori di questo intervallo: sopra circa 12.4 V o sotto circa 12.0 V, tenendo conto delle cadute sui cavi e sui connettori. Il setpoint verrà quindi ricalcolato.
  • In alternativa, selezionare la modalità manuale della tensione di uscita e impostare il valore richiesto.

Risoluzione

Corretto nella versione 1.4.1.

Un calo della tensione di ingresso non modifica più il setpoint né ripristina il riferimento al valore predefinito. Il primo ricalcolo dopo il ripristino dell’ingresso viene applicato incondizionatamente e reinizializza il riferimento in base alla tensione di ingresso effettiva.