Problèmes connus du WB-MWACv2
Cette page décrit les problèmes connus de WB-MWAC v.2. Les problèmes de l’ancien WB-MWAC sont répertoriés dans WB-MWAC : Errata.
ERRMODBUS001 : l’appareil répond à l’adresse 0xFD
Appareils concernés
WB-MWAC v.2 avec un micrologiciel antérieur à 1.21.1.
Description
Les appareils Fast Modbus peuvent perturber des appareils tiers du même bus si ceux-ci utilisent des commandes spéciales commençant par 0xFD.
Cause et détails
Fast Modbus réserve 0xFD aux commandes spéciales en diffusion. Si une requête tierce commence par 0xFD mais utilise une commande extérieure à Fast Modbus, les appareils Wiren Board concernés répondent MODBUS_ERR_ILLEGAL_FUNCTION, perturbant l’autre échange. Le pilote du bus traite à tort le paquet comme du trafic Modbus ordinaire.
Solution de contournement
Évitez de partager un bus entre les appareils Wiren Board concernés et des appareils tiers.
Résolution
Corrigé dans le micrologiciel 1.21.1.
ERRMODBUS002 : réponse incorrecte à la commande de détection 0x46
Appareils concernés
WB-MWAC v.2 avec un micrologiciel antérieur à 1.20.4.
Description
Fast Modbus utilisait initialement la fonction 0x60, remplacée ensuite par 0x46 parce que 0x60 se trouvait dans une plage réservée. La rétrocompatibilité conservait les deux codes de requête, mais l’appareil répondait toujours avec 0x60. La correction fait répondre avec la même fonction que celle de la requête : 0x46 ou 0x60.
Mesure corrective
Mettez à jour vers le micrologiciel 1.20.4.
Résolution
Corrigé dans le micrologiciel 1.20.4.
ERRMODBUS003 : comportement inattendu lors de l’écriture de valeurs invalides dans certains registres
Appareils concernés
WB-MWAC v.2 avec un micrologiciel antérieur à 1.21.6.
Description
Lorsque des valeurs dans la plage [256 ... 65535] sont écrites dans certains registres, les 8 bits de poids fort sont supprimés et le micrologiciel reçoit la valeur modulo 256. Par exemple, écrire 257 a le même effet qu’écrire 1.
Le registre d’adresse de l’appareil (128) fait partie des registres concernés.
Tous les registres fonctionnent comme prévu dans leurs plages documentées. Le problème survient lors de l’écriture de valeurs invalides supérieures à 255.
Mesure corrective
Mettez à jour vers le micrologiciel 1.21.6.
Résolution
Corrigé dans le micrologiciel 1.21.6.
ERRMODBUS004 : réponses incorrectes à champs de bits
Appareils concernés
WB-MWAC v.2 avec un micrologiciel antérieur à 1.20.4.
Description
Les réponses contenant des champs de bits, notamment les lectures de bobines/entrées discrètes et la gestion des événements, pouvaient contenir des bits de poids fort incorrects.
Mesure corrective
Mettez à jour vers le micrologiciel 1.20.4.
Résolution
Corrigé dans le micrologiciel 1.20.4.
ERRMODBUS005 : lecture incorrecte de différents registres de bobines dans une même requête
Appareils concernés
WB-MWAC v.2 avec un micrologiciel antérieur à 1.20.4.
Description
La lecture de plusieurs registres de bobines différents à des adresses consécutives dans une même requête renvoyait des valeurs incorrectes ; par exemple 2 et 3 dans WB-MSW/WB-MWAC, ou 3 et 4 dans WB-LED.
Mesure corrective
Mettez à jour vers le micrologiciel 1.20.4.
Résolution
Corrigé dans le micrologiciel 1.20.4.
ERRMODBUS006 : réponses aux requêtes avec parité incorrecte
Appareils concernés
WB-MWAC v.2 avec un micrologiciel antérieur à 1.21.4.
Description
L’appareil répondait aux requêtes avec parité incorrecte au lieu de les ignorer.
Mesure corrective
Mettez à jour vers le micrologiciel 1.21.4.
Résolution
Corrigé dans le micrologiciel 1.21.4.
ERRMODBUS007 : perte d’événements lorsque deux appareils émettent simultanément sur un même bus
Appareils concernés
WB-MWAC v.2 avec un micrologiciel antérieur à 1.24.1.
Description
Lorsque deux appareils d’un même bus ont simultanément des événements en attente, l’un d’eux peut transmettre un paquet d’événements incomplet.
Cause et détails
Dans Fast Modbus, le maître demande les événements. Tous les appareils ayant des événements en attente participent à l’arbitrage ; le gagnant répond et les autres attendent la requête suivante.
Un événement généré attend sa transmission. Après que l’appareil a placé sa trame sur le bus, l’événement est marqué comme envoyé. Le prochain acquittement du maître destiné à cet appareil retire les événements envoyés de sa file. C’est le mécanisme normal d’acquittement.
Le défaut marquait les événements comme envoyés trop tôt, dès la réception de la requête d’événements, avant la fin de l’arbitrage. Si l’appareil gagnait l’arbitrage, le fonctionnement était normal. S’il le perdait, aucun paquet n’était transmis, mais ses événements étaient déjà marqués comme envoyés. Un acquittement ultérieur destiné à cet appareil acquittait aussi ces événements non envoyés, les retirant de la file avant qu’ils n’atteignent le maître.
La valeur dans l’interface web n’est pas mise à jour et aucun message MQTT n’est publié, alors que les registres de l’appareil restent corrects. La notification de changement est perdue.
Par exemple, si des entrées de deux modules à relais du même bus se ferment simultanément, un module peut se mettre à jour correctement dans l’interface web tandis que l’autre perd certains événements et apparaît encore dans son état précédent malgré la commutation physique.
Solution de contournement
Désactivez temporairement le fonctionnement par événements pour les registres concernés en réglant sporadic sur false dans le modèle d’appareil. Les registres seront alors interrogés à l’intervalle configuré.
Résolution
Corrigé dans le micrologiciel 1.24.1.
ERRMODBUS008 : comportement inattendu avec de longues trames de requête
Appareils concernés
WB-MWAC v.2 avec un micrologiciel antérieur à 1.25.1.
Description
La réception d’une trame de plus de 265 octets, longueur maximale d’une trame Fast Modbus, peut bloquer et redémarrer l’appareil ; les paramètres peuvent aussi être perdus dans certains cas.
Cause et détails
L’algorithme de réception ne gérait pas les requêtes invalides trop longues, provoquant un débordement de tampon et une corruption de la mémoire adjacente. L’appareil se bloque et le chien de garde le redémarre. Des trames très longues, au-delà d’environ 500 octets, peuvent aussi corrompre les paramètres, provoquant un redémarrage avec les paramètres de communication par défaut : 9600 8N2, adresse 1.
Solution de contournement
- N’envoyez pas de requêtes dépassant les limites de Modbus RTU ou Fast Modbus (265 octets pour Fast Modbus).
- Ne raccordez pas l’appareil à un bus transportant du trafic autre que Modbus ou des messages de plus de 265 octets.
Résolution
Corrigé dans le micrologiciel 1.25.1.
ERRMODBUS009 : comportement inattendu lors de lectures près de l’adresse 0xFFFF en mode de lecture continue
Appareils concernés
WB-MWAC v.2 avec un micrologiciel antérieur à 1.25.1.
Description
Lorsque le mode de lecture continue est activé, une plage de lecture atteignant ou franchissant l’adresse 0xFFFF peut bloquer et redémarrer l’appareil.
Cause et détails
L’algorithme de lecture continue ne gérait pas le débordement du compteur d’adresses de registres sur 16 bits. La lecture de 0xFFFF faisait reboucler le compteur et provoquait une boucle infinie, suivie d’une réinitialisation par le chien de garde.
Solution de contournement
Lorsque le mode de lecture continue est activé, ne lisez pas de plage comprenant 0xFFFF. Les appareils Wiren Board n’ont aucun registre implémenté à cette adresse.
Résolution
Corrigé dans le micrologiciel 1.25.1.
ERRMODBUS010 : validation incorrecte des requêtes et traitement incorrect des requêtes invalides
Appareils concernés
WB-MWAC v.2 avec un micrologiciel antérieur à 1.25.1.
Description
L’appareil peut accepter ou mal traiter des requêtes dont la syntaxe est invalide, renvoyer un code d’exception incorrect ou imposer une limite incorrecte de nombre de registres.
Cause et détails
L’algorithme de validation gère incorrectement les cas suivants :
1) Les requêtes de lecture de zéro registre réussissent avec une réponse vide contenant uniquement un en-tête et un CRC. Modbus exige l’exception 0x03 (ILLEGAL_DATA_VALUE).
2) Une limite unique de 125 registres est appliquée à toutes les fonctions de lecture/écriture ; son dépassement renvoie 0x02 (ILLEGAL_DATA_ADDRESS). Modbus spécifie au contraire des limites de 2000 bits pour les lectures de bits, de 125 registres pour les lectures d’entrée/de maintien, de 1968 bobines pour les écritures multiples de bobines et de 123 registres de maintien pour les écritures multiples de registres. Le dépassement de la limite applicable devrait renvoyer 0x03 (ILLEGAL_DATA_VALUE).
3) Byte Count n’est pas validé pour les écritures multiples (0x0F et 0x10). Une différence entre Byte Count et le nombre de registres devrait renvoyer 0x03 (ILLEGAL_DATA_VALUE).
4) Les écritures d’une bobine ne valident pas la valeur et utilisent le bit de poids fort de la valeur de requête. Modbus n’autorise que 0x0000 et 0xFF00 ; toutes les autres valeurs devraient renvoyer 0x03 (ILLEGAL_DATA_VALUE).
5) Les requêtes de structure invalide avec un CRC valide, comme les requêtes trop longues, sont traitées normalement. Ces requêtes mal formées devraient au contraire être ignorées.
6) Des trames de structure valide mais trop longues, de 257–265 octets, sont traitées. Les trames Modbus standard de plus de 256 octets sont invalides et devraient être ignorées.
Solution de contournement
N’envoyez que des requêtes de structure correcte conformes à la spécification Modbus.
Résolution
Corrigé dans le micrologiciel 1.25.1.
ERRMODBUS011 : traitement incorrect des requêtes invalides de configuration d’événements Fast Modbus
Appareils concernés
WB-MWAC v.2 avec un micrologiciel antérieur à 1.25.1.
Description
Une commande de configuration d’événements (EVENT_CTRL, cmd=0x46, sub_cmd=0x18) comportant des champs de longueur invalides peut configurer incorrectement les notifications d’événements et produire une réponse de longueur imprévisible.
Cause et détails
Le gestionnaire de configuration d’événements Fast Modbus ne validait pas les champs de taille et de longueur des blocs de données internes. Des longueurs invalides peuvent l’amener à traiter des données au-delà de la trame reçue, avec pour conséquences :
1) Des paramètres incorrects de notification d’événements, notamment des changements spontanés de priorités ou de masques d’événements.
2) Une réponse de configuration d’événements de longueur imprévisible.
Solution de contournement
N’envoyez que des commandes Fast Modbus valides et conformes à sa spécification.
Résolution
Corrigé dans le micrologiciel 1.25.1.
ERRMODBUS012 : l’appareil cesse de transmettre des événements Fast Modbus
Appareils concernés
WB-MWAC v.2 avec un micrologiciel antérieur à 1.26.1.
Description
L’appareil cesse d’envoyer des événements Fast Modbus et signale continuellement qu’il n’y a aucun événement (sub_cmd=0x12) en réponse aux requêtes d’événements (cmd=0x46, sub_cmd=0x10). Les commandes de l’interface web se figent alors que les registres de l’appareil continuent de changer.
Plus une valeur avec événements activés change souvent, plus le problème survient tôt. Lors d’essais avec un anti-rebond de 1 ms, la transmission d’événements s’est arrêtée après 23 minutes à 200 impulsions d’entrée par seconde et après plusieurs heures à 100 impulsions par seconde. Le problème peut aussi survenir avec des changements peu fréquents, mais c’est beaucoup moins probable. Le pilote ne journalise aucune erreur, car l’appareil indique valablement qu’aucun événement n’est en attente.
Pour le diagnostic, lisez directement le registre sans événements, par exemple le compteur d’impulsions d’entrée :
modbus_client_rpc -mrtu -pnone -s2 /dev/ttyRS485-1 -b115200 -a1 -r32 -t0x03
Si le registre augmente mais que la commande de l’interface web reste inchangée, ce problème est présent.
Cause et détails
Le compteur d’événements non envoyés est partagé entre un gestionnaire d’interruptions et la boucle principale sans synchronisation correcte. Une interruption pendant une opération de lecture-modification-écriture de la boucle principale peut faire perdre un incrément du compteur. Cet incrément ne peut pas être récupéré, car il n’a lieu qu’à la première insertion d’un événement dans la file. L’appareil croit alors n’avoir rien à envoyer malgré les événements en attente.
Cet état persiste jusqu’au redémarrage de l’appareil. Un autre événement peut temporairement vider la file accumulée et mettre à jour la commande une fois, mais l’incohérence réapparaît immédiatement. Une installation sans autres changements semble donc figée.
La probabilité augmente avec la fréquence des événements et la charge du bus, car les accès simultanés deviennent plus probables.
Solution de contournement
Redémarrer l’appareil rétablit les événements jusqu’à la réapparition du problème. Redémarrer le contrôleur ou relancer wb-mqtt-serial n’aide pas : l’état est conservé dans l’appareil, et reconfigurer les événements ne le réinitialise pas.
Réduisez la probabilité en augmentant le temps d’anti-rebond des entrées ou en désactivant les événements pour les registres qui changent souvent. Jusqu’à la mise à jour du micrologiciel, lisez les valeurs directement dans les registres.
Résolution
Corrigé dans le micrologiciel 1.26.1.
ERRMWAC2001 : configuration par défaut incorrecte de l’entrée S6
Appareils concernés
Tous les WB-MWAC v.2 du lot 2.2A expédiés entre le 15 et le 19 mars 2024.
Description
À la fin des tests automatisés de production, une valeur incorrecte a été écrite dans le registre de mode de l’entrée S6.
Cause et détails
Le registre 14 doit valoir 6 par défaut (mode bouton). Ce lot stockait incorrectement 4 (fonctionnement sur les deux fronts), provoquant deux activations.
Solution de contournement

Réglez l’entrée 6 en mode Digital input or pushbutton via l’interface web du contrôleur Wiren Board.
Sans contrôleur, écrivez le mode requis dans le registre avec modbus-client ; exemple de commande :
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a{address} -t0x06 -r14 6
Résolution
Corrigé dans les lots suivants, à partir de 2.2A/1.
ERRMWAC2002 : problèmes et comportement du micrologiciel 1.21.0
Appareils concernés
Tous les WB-MWAC v.2 avec le micrologiciel 1.21.0.
Description
Après la sortie du WB-MWAC v.2 avec le micrologiciel 1.21.0, plusieurs problèmes affectant le fonctionnement ont été découverts.
Cause et détails
- Les appuis sur K1 et K2 étaient traités avec un délai de 300 ms.
- Cause : la détection des doubles appuis était activée, alors que K1 et K2 ne l’utilisent pas.
- Correction : désactivation de la détection des doubles appuis sur K1 et K2 ; les appuis sont traités sans délai.
- Indication visuelle peu claire du mode de nettoyage humide.
- Cause : les voyants ne s’allumaient que pendant 50 ms en mode de nettoyage humide.
- Correction : durée d’allumage des voyants augmentée à 250 ms.
- Modbus pouvait activer le mode Leak alors que le mode Wet cleaning était actif.
- Cause : erreur du micrologiciel. Les capteurs de fuite sont ignorés en mode Wet cleaning ; activer le mode Leak est donc inapproprié.
- Correction : vérifier si le mode Wet cleaning est actif avant d’activer Leak.
- Les paramètres de compteurs étaient perdus au redémarrage : Pulse weight P1/P2 et Initial counter value P1/P2.
- Cause : le micrologiciel chargeait les paramètres par défaut des compteurs au démarrage.
- Correction : modifications du micrologiciel.
- Wet cleaning timer et Restore valve state after leak is resolved n’étaient pas conservés après redémarrage.
- Cause : le micrologiciel n’enregistrait pas ces paramètres en mémoire non volatile.
- Correction : erreur du micrologiciel corrigée.
- Les registres Pulse weight P1 et P2 acceptaient des valeurs invalides supérieures à 10000.
- Cause : le micrologiciel ne vérifiait pas la limite supérieure.
- Correction : modifications du micrologiciel.
- Wet cleaning timer acceptait 0, désactivant le mode immédiatement après son activation.
- Cause : le micrologiciel ne vérifiait pas la limite inférieure.
- Correction : modifications du micrologiciel.
Solution de contournement
Mettez à jour le micrologiciel vers 1.21.1 ou ultérieur.
Résolution
Tous les problèmes répertoriés ont été corrigés dans le micrologiciel 1.21.1 et les lots de production ultérieurs. Mettez à jour le micrologiciel de l’appareil.
Attention : si le chargeur de démarrage 1.4.0 est installé, mettez-le à jour avant le micrologiciel de l’appareil. Plus de détails : ERRBOOT003
Pour vérifier et mettre à jour la version du chargeur de démarrage, voir Chargeur de démarrage des périphériques Wiren Board .
Pour les instructions de mise à jour du micrologiciel, voir Mise à jour du micrologiciel des appareils Modbus Wiren Board
Les clients ayant acheté des appareils concernés seront informés par courriel.
ERRMWAC2003 : les paramètres de parité RS-485 autres que N ne fonctionnent pas
Appareils concernés
Tous les WB-MWAC v.2 avec un micrologiciel antérieur à 1.21.2
Description
Sélectionner une parité RS-485 autre que celle par défaut peut provoquer des erreurs de communication.
Cause et détails
Une erreur logicielle introduite lors de la migration vers le nouveau microcontrôleur écrivait une valeur incorrecte dans le registre de configuration de l’émetteur-récepteur.
Solution de contournement
N’utilisez pas les parités O ou E.
Résolution
Corrigé dans le micrologiciel 1.21.3.
ERRMWAC2004 : mesures incorrectes de température et de tension d’alimentation du microcontrôleur
Appareils concernés
Tous les WB-MWAC v.2 avec un micrologiciel antérieur à 1.21.2
Description
Les registres Modbus 123 et 124 contiennent des valeurs incorrectes, également affichées incorrectement dans l’interface web du contrôleur Wiren Board.
Cause et détails
Une erreur logicielle introduite lors de la migration vers le nouveau microcontrôleur lisait les mauvais canaux du CAN.
Solution de contournement
Aucun.
Résolution
Corrigé dans le micrologiciel 1.21.3.
ERRMWAC2005 : sélection possible de modes d’entrée inexistants
Appareils concernés
Tous les WB-MWAC v.2 avec un micrologiciel antérieur à 1.21.2
Description
Les valeurs 0–2 peuvent être écrites dans les registres Modbus de mode d’entrée 9–14.
Cause et détails
Une omission logicielle autorise ces modes invalides ; ils se comportent comme le mode 3, Interaction disabled.
Solution de contournement
N’écrivez pas les modes 0–2 dans les registres 9–14.
Résolution
Corrigé dans le micrologiciel 1.21.3.
ERRMWAC2006 : l’appareil ne démarre plus après un redémarrage
Appareils concernés
Tous les WB-MWAC v.2 avec un micrologiciel antérieur à 1.21.5.
Concerne aussi les chargeurs de démarrage 1.5.0–1.5.4 inclus : ERRBOOT007.
Description
L’appareil ne démarre plus après un redémarrage survenu pendant la sauvegarde des paramètres dans la mémoire du microcontrôleur.
Cause et détails
Une omission logicielle permet une double erreur ECC si un redémarrage ou une coupure survient pendant la programmation de la Flash interne, ce qui arrête l’exécution du micrologiciel.
Le problème concerne à la fois le chargeur de démarrage (ERRBOOT004, ERRBOOT007) et le micrologiciel. Mettre à jour le micrologiciel tout en conservant un ancien chargeur réduit fortement le risque, mais une interruption de mise à jour peut encore rendre l’appareil inutilisable. Mettre à jour uniquement le chargeur peut laisser le problème reproductible, mais permet la mise à jour et la récupération du micrologiciel.
Symptôme : le voyant d’état vert ne s’allume ni ne clignote à la mise sous tension.
Solution de contournement
Remplacement sous garantie.
Résolution
Corrigé dans le micrologiciel 1.21.5. Attention : mettez d’abord le chargeur de démarrage à jour vers 1.5.5 ou ultérieur pour conserver la possibilité de récupération. Le micrologiciel est installé automatiquement pendant la mise à jour du chargeur.
ERRMWAC2007 : état incorrect des relais à la première mise sous tension
Appareils concernés
Tous les WB-MWAC v.2 avec un micrologiciel antérieur à 1.21.6
Description
Un état incorrect des relais est chargé à la première mise sous tension.
Cause et détails
Le circuit des boutons de face avant possède un filtre RC. Après initialisation du pilote des boutons, le rappel interne charge son condensateur ; la broche est brièvement lue au niveau bas (actif), provoquant une commutation involontaire des relais.
Solution de contournement
Utilisez l’appareil avec sa pile installée ; après le premier redémarrage, le problème ne se reproduit plus.
Résolution
Corrigé dans le micrologiciel 1.21.6.
ERRMWAC2008 : comportement incorrect lorsque le mode Leak est activé par la bobine 2
Appareils concernés
Tous les WB-MWAC v.2 avec un micrologiciel antérieur à 1.21.7
Description
Écrire 1 dans la bobine 2 allume le voyant Leak et active l’alarme, mais ne sauvegarde pas l’état des relais pour le restaurer après résolution de la fuite. Cela ne commute pas non plus les relais.
Cause et détails
Cause : l’écriture de 1 dans la bobine 2 était autorisée.
Solution de contournement
N’activez pas le mode Leak par son registre Modbus ou par l’interface web du contrôleur Wiren Board.
Résolution
Corrigé dans le micrologiciel 1.21.7 en empêchant l’activation par la bobine 2. Avec un contrôleur Wiren Board, mettez aussi à jour le modèle d’appareil : la commande existante devient en lecture seule et un bouton Reset Leak mode est ajouté.
ERRMWAC2009 : corruption de la configuration à la mise à jour vers le micrologiciel 1.22.0
Appareils concernés
Tous les WB-MWAC v.2 lors de la mise à jour vers 1.22.0.
Description
La mise à jour vers 1.22.0 écrit des paramètres incorrects de type de capteur de fuite et de matrice d’affectation de la sortie d’avertisseur sonore.
Cause et détails
Les paramètres existants devraient migrer, tandis que les nouveaux, tels que le type de capteur de fuite et le comportement de l’avertisseur commandé par les entrées, devraient recevoir leurs valeurs par défaut. Un bogue logiciel remplissait les nouveaux paramètres avec des valeurs incorrectes.
Solution de contournement
Rétablissez les paramètres d’usine en écrivant 1 dans le registre 65402.
Résolution
Corrigé dans le micrologiciel 1.22.1.