En utilisant la calculatrice Windows (ou une autre) en mode programmeur, pour comprendre il faut saisir 1 en binaire, contrôler la valeur hexadécimale et rajouter des 0 à la valeur binaire.
Un bit correspond à un relais.
Par contre les valeurs A, C et F ne sont pas logiques :
- 0x1 = 0000 0001
- 0x2 = 0000 0010
- 0x4 = 0000 0100
- 0x8 = 0000 1000
- 0xF0 = 1111 0000
- 0xA0 = 1010 0000
- 0xC0 = 1100 0000
- 0x80 = 1000 0000
Jusqu’ à 0x8, le 1 est décallé du bit de poids faible vers le bi de poids fort, du relais 1 vers le relais 4, un bit correspond à un relais. Après ça se gâte…Le relais 8 est de nouveau OK.
Vous êtes certain que les relais 8 n’était pas enclanché pour tester les relais 6 et 7 ? Idem lors du test du relais 5, les relais 6, 7 et 8 n’étaient pas enclanchés ?
Plus loin dans le log, il y a une ligne qui montre comment les bits sont interprétés :
[2025-05-12 10:45:05][DEBUG] : decoded PDU function_code(1 sub -1) -> ReadCoilsResponse(dev_id=0, transaction_id=0, address=0, count=0, bits=[False, False, False, False, False, False, False, False], registers=[], status=1)
Cette ligne est utile pour être sûr que ce soit bien interprété. Ici il n’y a que des False
, ce ne sont donc que des 0, par contre l’ordre est inversé (normalement, mais j’ai vu passé un changelog qui parlait de corriger ce point erroné) 0001 0000 correspond à bits=[False, False, False, False, True, False, False, False],
. C’est une histoire d’interprétation, mais c’est juste.