j’ai un doute sur le paramétrage des registres sur le plugin.
je suis sur la dernière version stable du plugin.
voilà, j’ai des sondes de température qui peuvent travailler de -55 à +125 °C.
par contre j’ai paramétré mes sondes en uint16 soit 0 à 65 535 et cela fonctionne correctement !
j’ai des sondes de température à l’extérieur de la maison et celle-ci passent bien en négatif (alors quelle ne devraient pas !).
J’aurai du les mettre en int16 -32 768 à + 32 768
qu’en pensez vous ?
pour info je passe par des virtuels pour rassembler mes sondes de température par pièce de la maison.c’est peut être là la subtilité ?
En effet. Si les valeurs des commandes info du virtuel sont correctes, c’est peut-être grace à une formule, soit dans la commande MyModbus, soit dans la commande du virtuel.
Sans plus d’info, je ne peux pas le savoir.
ERRATUM de votre part : -32 768 à +32 767, mais c’est un détail
Ce qui est sûr c’est qu’un uint16 ne fourni pas de valeur négative puisque le bit de poids fort est interprété comme 2^15 et pas comme le bit de signe.
En effet cette formule ne change pas le signe ni la plage. Malgré tout, je pense qu’une formule quelque part fait ce changement d’échelle.
Pour s’en assurer, il faudrait créer une nouvelle commande info, sans copier l’originale mais bien en en créant une nouvelle pour éviter de copier la formule avec une lecture du même registre mais en type int16. Et pourquoi pas une autre de test en uint16 sans formule. En utilisant une plage de registre une seule requête sera faite et le temps de cycle ne sera pas impacté.
Perso, j’ai aussi une sonde qui a les températures en int. Si je lis uint, tant que la température est positive, c’est correct. En cas de valeurs négatives, cela reste sur 0, de mémoire.
Bonsoir,
Comme dit Michel si tu est en Unit et que ta sonde de température passe en négatif.
Tu devrais avoir une valeur à + 60 000 quelque chose de cet ordre.
Car c’est le bit 15 qui passe à 1.