Problèmes connus du WB-MDM3
ERRMODBUS001 : l’appareil répond à l’adresse 0xFD
Appareils concernés
WB-MDM3 avec un micrologiciel antérieur à 2.8.0.
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 2.8.0.
ERRMODBUS002 : réponse incorrecte à la commande de détection 0x46
Appareils concernés
WB-MDM3 avec un micrologiciel antérieur à 2.7.1.
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 le micrologiciel vers 2.7.1.
Résolution
Corrigé dans le micrologiciel 2.7.1.
ERRMODBUS003 : comportement inattendu lors de l’écriture de valeurs invalides dans certains registres
Appareils concernés
WB-MDM3 avec un micrologiciel antérieur à 2.9.2.
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 le micrologiciel vers 2.9.2.
Résolution
Corrigé dans le micrologiciel 2.9.2.
ERRMODBUS004 : réponses incorrectes à champs de bits
Appareils concernés
WB-MDM3 avec un micrologiciel antérieur à 2.7.1.
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 le micrologiciel vers 2.7.1.
Résolution
Corrigé dans le micrologiciel 2.7.1.
ERRMODBUS006 : réponses aux requêtes avec parité incorrecte
Appareils concernés
WB-MDM3 avec un micrologiciel antérieur à 2.9.1.
Description
L’appareil répondait aux requêtes avec parité incorrecte au lieu de les ignorer.
Mesure corrective
Mettez à jour le micrologiciel vers 2.9.1.
Résolution
Corrigé dans le micrologiciel 2.9.1.
ERRMODBUS007 : perte d’événements lorsque deux appareils émettent simultanément sur un même bus
Appareils concernés
WB-MDM3 avec un micrologiciel antérieur à 2.12.0.
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 2.12.0.
ERRMODBUS008 : comportement inattendu avec de longues trames de requête
Appareils concernés
WB-MDM3 avec un micrologiciel antérieur à 2.12.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 2.12.1.
ERRMODBUS009 : comportement inattendu lors de lectures près de l’adresse 0xFFFF en mode de lecture continue
Appareils concernés
WB-MDM3 avec un micrologiciel antérieur à 2.12.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 2.12.1.
ERRMODBUS010 : validation incorrecte des requêtes et traitement incorrect des requêtes invalides
Appareils concernés
WB-MDM3 avec un micrologiciel antérieur à 2.12.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 2.12.1.
ERRMODBUS011 : traitement incorrect des requêtes invalides de configuration d’événements Fast Modbus
Appareils concernés
WB-MDM3 avec un micrologiciel antérieur à 2.12.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 2.12.1.
ERRMODBUS012 : l’appareil cesse de transmettre des événements Fast Modbus
Appareils concernés
WB-MDM3 avec un micrologiciel antérieur à 2.12.3.
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 2.12.3.
ERRMDM01 : défaillance du variateur avec des alimentations de lampes LED
Appareils concernés
Tous les modèles MDM3.
Description
Avec certaines alimentations de lampes LED à intensité variable (pilotes / sources de courant de luminaires), le variateur tombe en panne, souvent avec des éclairs et du bruit. Les canaux adjacents, voire les variateurs MDM3 voisins sur le rail DIN, peuvent aussi tomber en panne.
Cause et détails
Les alimentations de lampes LED possèdent une capacité et une impédance d’entrée (généralement une résistance) pour limiter le courant d’appel.
Les valeurs de capacité et de résistance ne sont pas normalisées. Les bons pilotes ont un faible courant d’appel ; les mauvais peuvent en avoir un très élevé.
Un courant d’appel élevé apparaît dans le variateur MDM3 dans les cas suivants :
- Variation par coupure en début de phase d’une charge capacitive
- Micrologiciels v.2.1.0–v.2.2.0 : détection imprécise du passage par zéro de la tension d’entrée (corrigée dans 2.2.1)
- Micrologiciels v.2.1.0–v.2.3.2 : la variation démarre immédiatement à la limite inférieure configurée. Corrigé dans 2.3.3
- Lorsque la protection contre les surintensités se déclenche (par exemple pour les raisons ci-dessus), elle se relâche et les transistors s’activent à un instant arbitraire de la forme d’onde d’entrée, provoquant un courant d’appel encore plus élevé. Corrigé dans 2.4.0: après un déclenchement de protection, les sorties s’éteignent pendant 3 s, puis redémarrent normalement.
Un courant d’appel élevé peut alors provoquer l’un des effets suivants :
- Défaillance du circuit interne due aux perturbations, aggravée par le routage du circuit imprimé où les pistes de puissance forment une boucle. Les canaux adjacents ou les appareils voisins sur le rail DIN peuvent également tomber en panne.
- La protection bloque les transistors ; avec de longs fils, une pointe de tension endommage la diode de protection ou un transistor.
Résolution
Corrigé dans le micrologiciel 2.3.3 du 11 février 2022. Le démarrage progressif augmente la tension depuis zéro même avec une limite inférieure non nulle, ce qui réduit fortement le courant d’appel.
Recommandations
- Mettez à jour le micrologiciel de l’appareil vers 2.3.3
- Choisissez soigneusement le mode de variation ! Les alimentations à intensité variable nécessitent uniquement le mode coupure en fin de phase.
- Testez le variateur avec les luminaires prévus avant d’acheter l’éclairage pour tout le bâtiment. Le fabricant considère une défaillance du variateur dans ce cas comme couverte par la garantie.
ERRMDM02 : l’appareil se bloque après environ six semaines de fonctionnement continu
Appareils concernés
Tous les modèles MDM3 avec le micrologiciel 2.2.3
Description
Après environ six semaines, l’appareil cesse d’exécuter les commandes et de mettre à jour les registres, mais continue de répondre par Modbus.
Résolution
Corrigé dans 2.2.4
ERRMDM03 : scintillement des lampes avec une fréquence d’alimentation instable
Appareils concernés
Tous les modèles MDM3
Description
La détection de la période de tension peut être manquée. Si la fréquence d’entrée est instable, par exemple avec une alimentation par générateur, les lampes peuvent scintiller. Le détecteur de sinusoïde comprend un filtre de bruit n’acceptant que les périodes de 19.5 à 20.5 ms (48.78–51.28 Hz).
Résolution
Aucune correction prévue à court terme
ERRMDM04 : usure accrue de la mémoire non volatile interne
Appareils concernés
Tous les modèles MDM3 avec les micrologiciels 2.2.3 et 2.2.4
Description
Chaque changement de configuration ou de luminosité (même un appui long modifiant la luminosité par pas de 1) écrit l’état des canaux dans l’EEPROM interne. Son endurance documentée dépasse un million de cycles d’écriture/effacement ; la source ne considère donc pas cette fréquence comme dangereuse, mais elle entraîne une usure inutilement élevée.
Résolution
Corrigé dans 2.3.0
Écritures limitées à une par seconde.
ERRMDM05 : interpolation incorrecte de la courbe de variation près des limites de plage
Appareils concernés
Tous les modèles MDM3 avec un micrologiciel antérieur à 2.3.2
Description
À 1% de luminosité, la valeur PWM brute pouvait dépasser la valeur configurée de luminosité minimale.
Résolution
Corrigé dans 2.3.2 du 7 février 2022.
À 1% de luminosité, la valeur PWM correspond désormais exactement au paramètre.
ERRMDM06 : interrupteurs de puissance entièrement activés à de faibles valeurs Raw Duty
Appareils concernés
Tous les modèles MDM3 avec un micrologiciel antérieur à 2.3.2
Description
L’écriture manuelle de valeurs Raw Duty inférieures à 220 (fin de phase) ou 320 (début de phase) dans les registres de maintien 90–92 activait complètement les interrupteurs de puissance.
Résolution
Corrigé dans 2.3.3 du 11 février 2022.
L’écriture de faibles valeurs Raw Duty n’active plus complètement les interrupteurs de puissance
ERRMDM07 : les lampes LED luisent lorsque le canal est éteint
Appareils concernés
Tous les modèles MDM3 jusqu’au lot v2.7A inclus.
Description
Certaines lampes LED luisent faiblement lorsque le canal du variateur est complètement éteint.
Cause et détails
La capacité et la conductivité résiduelle des transistors de puissance et de la diode de protection produisent un courant de fuite d’environ 50–100 µA, provoquant une faible lueur de certaines lampes LED.
Solution de contournement
- Utilisez d’autres lampes.
- Raccordez une résistance traversante de 1–2 MΩ entre Out et le neutre N.
Résolution
Depuis le lot v2.7B, une résistance de 1 MΩ est montée entre N et Out.
Un réseau RC est prévu pour v2.8.
ERRMDM08 : erreurs de communication à 115200 bit/s et à 100% de luminosité
Appareils concernés
WB-MDM3 avec les micrologiciels 2.5.0 et 2.5.1.
Description
Des erreurs de communication surviennent lorsque toutes les conditions suivantes sont réunies :
- Débit de 115200 bit/s.
- Tension secteur appliquée à L et N.
- Mode coupure en fin de phase sélectionné.
- Un ou plusieurs canaux allumés à 100% de luminosité.
Cause et détails
Une logique incorrecte à 100% de luminosité faisait consommer toutes les ressources du microcontrôleur par une boucle interne, provoquant des erreurs Modbus à débit élevé.
Résolution
Corrigé dans le micrologiciel 2.5.2 du 23 septembre 2022.
ERRMDM09 : les compteurs de fermetures des entrées 4–6 ne fonctionnent pas
Appareils concernés
WB-MDM3 avec les micrologiciels 2.6.0–2.6.5 inclus.
Description
Une erreur du micrologiciel empêchait les compteurs de fermetures des entrées 4–6 (registres 35, 36, 37) d’augmenter ; ils restaient à zéro.
Résolution
Corrigé dans le micrologiciel 2.6.6 du 3 juillet 2023.
ERRMDM10 : les déclenchements de protection matérielle contre les surintensités ne sont pas traités par le logiciel
Appareils concernés
WB-MDM3 avec les micrologiciels 2.5.3–2.6.3 inclus.
Description
Une erreur du micrologiciel supprime le traitement logiciel des déclenchements de protection matérielle contre les surintensités. Le registre Overcurrent n’est pas activé.
Le fonctionnement normal n’est pas affecté. En cas de court-circuit ou de surintensité, la protection se déclenche et la charge est déconnectée par le matériel . Sans traitement logiciel, toutefois, la charge redémarre après environ 200 ms sans démarrage progressif, ce qui peut provoquer un courant d’appel élevé, des déclenchements répétés, une surchauffe et parfois une défaillance du variateur.
L’utilisation des micrologiciels 2.5.3–2.6.3 inclus est déconseillée.
Résolution
Corrigé dans le micrologiciel 2.6.4 du 5 décembre 2022.
ERRMDM11 : retard à l’extinction en mode commutation
Appareils concernés
WB-MDM3 avec le micrologiciel 2.7.0
Description
Une erreur du micrologiciel retarde l’extinction en mode commutation si le registre de luminosité du canal contient une valeur supérieure à 1%.
La rampe de variation continue de fonctionner en mode commutation et réduit progressivement la luminosité. Le canal ne s’éteint réellement que lorsque la luminosité atteint 0 ; jusque-là, il reste entièrement allumé.
Solutions de contournement :
- Mettez à jour le micrologiciel vers 2.7.1
- Réglez la luminosité du canal en mode commutation sur 1%. Commandez-le via le registre de bobine, ou faites alterner le registre de luminosité entre 0 et 1
- Réglez Channel brightness decrease rate sur 0
Résolution
Corrigé dans le micrologiciel 2.7.1 du 22 novembre 2023.
ERRMDM12 : l’appareil se bloque avec certaines combinaisons de configuration
Appareils concernés
WB-MDM3 avec les micrologiciels 2.7.0–2.9.1 inclus
Description
Écrire une limite inférieure de variation supérieure à la limite supérieure puis allumer le canal bloquait le variateur, qui redémarrait par le chien de garde. Il en allait de même lorsque les deux limites valaient zéro.
Solution de contournement
La limite inférieure de variation doit être inférieure à la limite supérieure. Elles ne doivent pas toutes deux être nulles. Modifiez ces paramètres lorsque le canal est éteint.
Résolution
Corrigé dans le micrologiciel 2.9.2 du 4 mars 2025.
ERRMDM13 : la luminosité initiale du variateur est nulle
Appareils concernés
WB-MDM3 avec les micrologiciels 2.8.0–2.9.1 inclus
Description
Une erreur du micrologiciel réglait la luminosité par défaut à 0 au lieu de 50.
Résolution
Corrigé dans le micrologiciel 2.9.2 du 4 mars 2025.
ERRMDM14 : impossible d’écrire un délai de sécurité supérieur à 255 s
Appareils concernés
WB-MDM3 avec les micrologiciels 2.8.0–2.9.1 inclus
Description
Une erreur du micrologiciel limite le registre 8 (délai de perte de communication pour Safety Mode) à 1–255 au lieu de 1–65534.
Résolution
Corrigé dans le micrologiciel 2.9.2 du 4 mars 2025.
ERRMDM15 : surchauffe et défaillance sous surtension prolongée
Appareils concernés
Toutes les versions WB-MDM3 antérieures à 2.11
Description
Les diodes de protection TVS raccordées aux bornes des interrupteurs MOSFET protègent contre les transitoires brefs de surtension. Leur capacité d’absorption d’énergie est limitée.
Une surtension secteur prolongée pendant plus de quelques périodes peut dépasser cette limite d’énergie. Les diodes TVS tombent alors en panne et conduisent de manière incontrôlée même à la tension secteur nominale, surchauffant les composants et faisant parfois fondre le boîtier.
Résolution
Correction prévue dans la version 2.11