Lecture d'un mot flottant inversé

Salut @Michel_F,

Je viens d’installer sur une VM pour faire un essai. Pas de soucis de dépendance à 1ere vue du coup ça semble OK de ce coté, bravo.

Version bêta 2023-03-12 00:59:04

J’ai un peu de mal à voir ce qu’il faut utiliser pour aller lire une valeur qui demande cette configuration dans modbus doctor :

image

J’ai tenté :

[2023-03-14 13:04:41]DEBUG : jeemymodbus.php: $result *{"values":{"1054":"Ci"}}* type: array
[2023-03-14 13:04:41]DEBUG : jeemodbus.php: Mise à jour cmd Tension -> new value: Ci

Ainsi que :

[2023-03-14 13:05:08]DEBUG : jeemymodbus.php: $result *{"values":{"1054":-107617096}}* type: array
[2023-03-14 13:05:08]DEBUG : jeemodbus.php: Mise à jour cmd Tension -> new value: -107617096

Est-ce que la gestion d’un mot flottant est prise en compte ? Si oui peux-tu me dire quelle option utiliser stp car je ne vois pas ?

Entre temps j’ai ajouté une valeur un peu plus stable puisque j’ai pas d’export actuellement donc elle ne doit pas bouger :

Dans Modbus Doctor :

Les logs :

[2023-03-14 14:14:41][DEBUG] : Connecting to 10.0.1.13:502.
[2023-03-14 14:14:41][DEBUG] : Connecting.
[2023-03-14 14:14:41][DEBUG] : Client connected to modbus server
[2023-03-14 14:14:41][INFO] : Protocol made connection.
[2023-03-14 14:14:41][INFO] : Connected to 10.0.1.13:502.
[2023-03-14 14:14:41][DEBUG] : send: 0x0 0x1 0x0 0x0 0x0 0x6 0x1 0x4 0x0 0x0 0x0 0x2
[2023-03-14 14:14:41][DEBUG] : Adding transaction 1
[2023-03-14 14:14:41][DEBUG] : recv: 0x0 0x1 0x0 0x0 0x0 0x7 0x1 0x4 0x4 0x43 0x68 0xe6 0x66
[2023-03-14 14:14:41][DEBUG] : Processing: 0x0 0x1 0x0 0x0 0x0 0x7 0x1 0x4 0x4 0x43 0x68 0xe6 0x66
[2023-03-14 14:14:41][DEBUG] : Factory Response[ReadInputRegistersResponse': 4]
[2023-03-14 14:14:41][DEBUG] : Getting transaction 1
[2023-03-14 14:14:41][DEBUG] : [17256, 58982]
[2023-03-14 14:14:41][DEBUG] : handle: [b'\xe6f', b'Ch']
[2023-03-14 14:14:41][DEBUG] : PyModbusClient: read value for Tension (command id 1054): -2.7184692922568422e+23
[2023-03-14 14:14:41][DEBUG] : send: 0x0 0x2 0x0 0x0 0x0 0x6 0x1 0x4 0x0 0x4a 0x0 0x2
[2023-03-14 14:14:41][DEBUG] : Adding transaction 2
[2023-03-14 14:14:41][INFO] : Protocol lost connection.
[2023-03-14 14:14:41][DEBUG] : Client disconnected from modbus server: None
[2023-03-14 14:14:41][DEBUG] : jeemymodbus.php: $result *{"values":{"1054":-2.7184692922568422e+23,"1055":2.8391350652161955e-31}}* type: array
[2023-03-14 14:14:41][DEBUG] : jeemodbus.php: Mise à jour cmd Tension -> new value: -2.7184692922568E+23
[2023-03-14 14:14:41][DEBUG] : jeemodbus.php: Mise à jour cmd Export active energy -> new value: 2.8391350652162E-31
[2023-03-14 14:14:41][INFO] : jeemodbus.php: Mise à jour des commandes info : 'Tension' 'Export active energy'
[2023-03-14 14:14:41][DEBUG] : http://localhost:80 "POST /plugins/mymodbus/core/php/jeemymodbus.php?apikey=ZbckjC8XSBvbAqSplV8tPKeiK4AehO051uBORJ7OErqZtULBlBOCgY83wWZpfuxI HTTP/1.1" 200 0
[2023-03-14 14:14:48][DEBUG] : deamon_info = {"state":"ok","launchable":"ok"}

Salut @Bison,

Essaie sans inversion de mots, tu devrais obtenir 233.89…

edit : tu as effacé des lignes de log ?

Ah oui … en effet c’est ça, du coup pas besoin d’inversion de mots

image

Du coup je n’ai pas bien compris l’affaire :slight_smile:

ModbusDoctor par du principe que Little Endian est la norme, alors que le reste du monde part du principe que Big Endian est la norme. Voilà l’explication.

oki merci :slight_smile:

Content d’avoir aidé

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.