Lecture registre MODBUS compteur énergie

Bonjour à tous,

J’aurai besoin de vos lumières, j’ai connecté en MODBUS un compteur d’énergie de la marque eastron.

J’arrive sans problème à lire les informations via mon PC en utilisant un convertisseur USB - RS485 et en utilisant le logiciel MODBUS doctor KASCADA.

J’ai connecté ce compteur à mon IPX800 V5, j’arrive à envoyé les trames et j’ai bien des valeurs qui fluctues sur les variables.

Je pense qu’il faut que j’utilise un fonction de conversion via l’IPX mais je ne comprends pas quel conversion effectuer.


Voici quelques screenshots du la documentation du compteur que j’ai fais traduire :



Correct_SDM230_Protocol.pdf (277,0 Ko)

Si quelqu’un aurait le temps de m’aider pour arriver à récupérer les informations du compteur sur mon IPX800 ce serait super sympa.
Merci d’avance à tous.

Bonjour,
avez-vous lu cet article ?
Modbus et IPX800 V5 — GCE Electronics (gce-electronics.com)
bonne journée

Bonsoir fgtoul,

Effectivement j’ai bien lu cette doc, je m’en était servi pour connecté mon ballon d’eau chaude thermodynamique en MODBUS, d’ailleurs vous m’aviez fourni de l’aide pour réalisé les réglages de fonction.

le problème avec ce compteur c’est que j’ai des valeurs de retour que je ne comprends pas.
La trame s’envoie bien correctement, mais les valeurs des variables n’ont aucun sens, du moins, je ne comprends pas leurs sens.

Merci du retour en tout cas.

je pense que le format à adopté ce trouve dans cette partie de la notice mais là j’ai sorti les pagaies et je rame.
Pour exemple en utilisant le mode 0x04 et l’adresse 0 qui correspondrais à la tension du registre 3001 j’ai une ANA 32 qui deviens :

1130761353
1130753130
1130739410
1130782863
1130764317

Mais je ne trouve pas comme faire ma conversion pour obtenir la tension en volts …

Si vous avez une idée je suis preneur :pray:

Pouvez vous nous faire quelques captures d’objets modbus read?

bonjour @fgtoul

voici :


Et voici une capture d’écran avec MODBUS doctor :

Les registres sont sur 16 bits.
Pour lire les chiffres à virgule flottante, il convient de lire 2 registres (mantisse et exposant)
Essayez de lire ceci
ID Périph : 1
Mode : 0x04
adresse : 0

avec 2 Ana16 pour récupérer le voltage par exemple. Dites nous quelle valeur vous récupérez dans la 1ère A16

Oui effectivement si j’ai bien compris, il y a une ANA16 pour les entiers et une ANA16 pour les chiffres après la virgule.

voici ce que cela donne avec les deux ANA16 :

finalement pas simple car la lecture se fait bit à bit à cause du signe, l’exposant et le début de la mantisse combinés dans les 2 premiers octets.
image

Le plus simple serait de lire bit à bit et reconstruire les nombres à partir du binaire, mais c’est un lourd travail (exemple p15 de la doc).

Pour le moment je ne vois pas d’autre solution moins fastidieuse.

Peut-être essayer avec cette combinaison:
bitOctetA32
le bit pour le signe (1 ou 0)
l’octet pour l’exposant (soustraire 127)
l’ana32 pour les 23bits de la mantisse
mais je ne suis pas sûr que l’ipx n’ira pas chercher 32 bits au lieu de 23 seulement

Ah oui effectivement ça va compliqué de traiter bit par bit…
Je viens de faire l’essai

L’ana8 : 104
L’ana32 : 15424555296

En tout cas merci pour l’aide, je vais essayer de trouver une solution si je trouve quelque chose et je vous tiendrai informé.

Sinon je changerai de matériel si rien n’est possible avec l’IPX.

Encore merci.

j’ai posé la question au BE concernant une évolution afin de faire des conversions Float IEE754 sur ipx. J’attends leur réponse.

3 « J'aime »

Super merci beaucoup :+1:

Bonjour,
Comme pour la gestion des nombre négatifs reçu par ModBus, il serait intéressant que @GCE fasse évoluer cette partie.

1 « J'aime »

Bonjour fgtoul !

Je reviens vers vous savoir si vous avez des nouvelles du BE pour la conversion en float avec l’IPX ?

J’ai vu sur le forum que certains arrivent à contourner le problème en utilisant un serveur HTTP twisted + script python sur un pc mais ça me paraît super contraignant et difficile à mettre en œuvre.

En l’attente d’un retour, merci beaucoup.

bonjour,
non pas de nouvelle. Quoi qu’il en soit je ne pense pas qu’une évolution soit prévue immédiatement.

1 « J'aime »

D’accord merci pour le retour, et encore merci pour votre aide sur le forum :+1:

Bonsoir
Avez-vous consulté ce post ?IPXV5 et MODBUS

Bonsoir,
Oui bien sûr c’est d’ailleurs la dessus que j’ai appuyé ma question précédente.
A moins que je n’ai pas saisie ou que je sois passé à côté il n’est pas possible de convertir une ana32 en float à moins d’utiliser des équipements externes à l’IPX.

Bonjour à tous,
Pour ceux qui suivent le sujet. J’ai trouvé une solution pour contourner le problème de la norme IEE754.

Vous pouvez consulter mon tuto sur cette page du forum :

Bonne journée à vous :+1:

2 « J'aime »