Page 3 sur 6
Re: IHM en modbus avec compteur d'énergies
Posté : 01 févr. 2023, 23:26
par Bruce33
Aussi, pour s'affranchir de l'erreur d'adresse, on peut essayer l'adresse 3x0 puisque c'est la tension.
Concernant la base hexadécimale (terme qui indique le nombre 16) :
celle-ci utilise les chiffres 0 à 9 puis les lettres A à F, ce qui fait au total 16 digits.
On compte ainsi :
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12 .. 1E, 1F, 20, 21, etc.
Donc A(16) en base hexadécimale = 10(10) en base décimale, F(16) = 15(10), 10(16) = 16(10), 20(16) = 32(10), 100(16) = 256(10)...
L'utilisation de la base hexadécimale vient du fait que l'électronique s'est développée avec des mémoires de 8 bits.
Or 4 bits forment un valeur allant de 0 à 15, qu'on peut écrire avec un seul digit 0 à F !
Un octet (8 bits) prend les valeurs 0 à 255, soit 00 à FF.
C'est une commodité de lecture.
Parfois on s'intéresse uniquement à la valeur des bits et non à la valeur décimale. Et c'est plus rapide d'écrire/de lire/de mémoriser une valeur hexadécimale que binaire (on peut lire et retenir facilement A8A5 mais pas 1010100010100101).
On voit, dans le tableau des données du compteur, des adresses "1A" et "2A" donc j'en déduis que ce sont des valeurs hexadécimales.
00 12 => 18 puissance active
00 1A => 26 puissance réactive
01 00 => 256 puissance active totale (ça ressemble plus à "énergie active consommée" puisque c'est des kWh)
04 00 => 1024 puissance énergie réactive totale
Re: IHM en modbus avec compteur d'énergies
Posté : 02 févr. 2023, 03:02
par itasoft
slts,
Sur la liste des registres des données
On s’autorise à penser que la donnée « Tension » format flottant occupe les registres 0000 et 0001
Soit 32 bits dommage que ça ne soit précisé nulle part, ou alors ce que les bouffeurs de riz appellent « flottant » soit en fait un entier 16 bits, va savoir
Re: IHM en modbus avec compteur d'énergies
Posté : 02 févr. 2023, 09:21
par MiGaNuTs
Je rejoint mes camarades sur un truc important, ce genre de chinoiseries ca me parait compliqué a utiliser chez mes clients, mais le petit geek qui est en moi trouve ça vraiment cool pour des bidouilles perso, genre domotique ou platine de tests pour je ne sait quoi. Voire juste pour le plaisir de la bidouille.
J'ai téléchargé le soft du coup, et essayé des trucs avec de mon coté.
Le soft a l'air pas si mal, on dirait en peu les softs de fournisseurs industriels 'alternatifs', genre KEP, KEB etc.
J'ai pas trouvé le moyen d'afficher des valeurs en hexa. C'est dommage, ça nous aurait bien aidé pour voir si ton compteur donne des valeurs avec le poids faible et forts inversés ou pas. Peut être que j'ai juste pas assez creusé.
Par contre j'ai remarqué un truc, il propose de lire des registres avec des trames type 0x3d et 0x4d, qui ont l'air d’être en fait un façon de lire des doubles word, donc des trucs en 32 bits. (les fameux DINT, ou les FLOAT du coup)
J'ai testé en simul et en modbus TCP, pour lire des nombre a virgule quand je fait ca, ca a l'air de marcher.
Bon parfois ce qui est vrai en TCP ne l'est pas forcement en RTU, mais parfois si. J'ai rien sous la main pour faire d'autres tests, mais vu que ça a déjà été dégrossi au dessus je suis plutôt confiant.
Du coup en lisant le 0x4d0 si tu arrive a avoir la valeur de tension correcte, c'est que tu n'a ni besoin de décaler les adresses de tes données de 1, ni d'inverser le poids faibles et fort. Bref, que c'est gagné.
J'ai remarqué aussi que je ne me suis pas trop attardé sur le protocole modbus en lui même, ni sur les différents formats de variables et les façons de les stocker en mémoire. Bon, certains camarades s'en sont occupés, et il y'a déjà pleins d'autres topics sur le sujet. On peut en parler ici, mais on va s’éloigner du sujet de base, ca va rendre la lecture du topic compliquée. C'est 2 gros sujets rien qu'en eux même, et ca aide déjà beaucoup de comprendre le sujet des variables avant d'attaquer le protocole.
Re: IHM en modbus avec compteur d'énergies
Posté : 02 févr. 2023, 10:32
par Dan47
Re: IHM en modbus avec compteur d'énergies
Posté : 02 févr. 2023, 10:42
par Dan47
Merci beaucoup MiGaNuTs
Comme quoi faut toujours persévérer et qu'à plusieurs c'est mieux que tout seul !
Je ne suis pas particulièrement pour ces "chinoiseries" mais il faut bien être conscients qu'entre 80 et 100 % de la technologie est produite en chine actuellement. Et qu'au niveau d'un particulier il est souvent impossible d'acheter des produits technologiques "industriels"
Bon du coup, plus qu'a voir pour les autres infos à remonter. Je vais essayer d'étudier les posts pour comprendre l'affectation des autres registres ou un dernier petit coup de main ... peut-être

Re: IHM en modbus avec compteur d'énergies
Posté : 02 févr. 2023, 10:48
par MiGaNuTs
Ah, bah voila ! En testant des trucs au bout d'un moment on fini par tomber sur le bon.
La bonne nouvelle c'est que 'endian' est le même entre le compteur et l'afficheur, et ca aussi c'est cool. Parce que s'il avait fallu écrire un script pour les inverser, ça aurait été galère.
Ensuite en 3xd08 tu va pouvoir récupérer le courant, vu que 8 en hexa et 8 en décimal c'est pareil.
Et ta puissance soit elle va être en 3xd12 si l'afficheur prends les valeurs d'adresse en hexa, soit en 3xd18 si il les prends en décimal. (12 en hexa ça fait 18 en décimal. merci la calculette windows)
Re: IHM en modbus avec compteur d'énergies
Posté : 02 févr. 2023, 10:57
par Dan47
Et un grand merci aussi à Bruce33 qui m'a pris en charge dés le début et aussi donné les valeurs des registres
Je vois aussi que j'ai fais des adeptes pour cet écran qui pour moi fait bien le Job que j'en attends
Je vous ferai une capture d'écran en vidéo pour vous montrer le résultat !!! en plus il fait une belle journée ensoleillée donc mon photovoltaïque va produire
Re: IHM en modbus avec compteur d'énergies
Posté : 02 févr. 2023, 12:46
par Dan47
Voilà et on est en pleine production PV (1,6kWc), le routeur envoie vers le cumulus.
La puissance active affichée est en fait la puissance exportée et devrait être en négatif mais bon on ne va pas chipoter pour 40W
Il me restera un dernier détail ! Afficher la puissance totale consommée (photovoltaïque + réseau) qui devra être faite en script je pense
Là aussi une autre paire de manche ! mais qui sait, peut-être que certains intéressés par le produit vont s'y pencher

Re: IHM en modbus avec compteur d'énergies
Posté : 02 févr. 2023, 23:07
par Bruce33
Super, vous avez trouvé la bonne combinaison !
Je n'avais pas fait attention au registre "3x_D"...
En fait on peut très bien lire une valeur sur 32 bits avec le registre 3x, mais la différence avec 3x_D c'est que celui-ci permute les 2 mots de 16 bits...
Donc il y a bien une différence d'ordre des mots ente l'afficheur et le compteur.
Avec le préfixe 3x_D, pas besoin de réaliser de script, tant mieux !
En revanche, pour afficher le résultat d'un calcul, j'ai l'impression que la macro est le seul moyen.
Heureusement ce n'est pas compliqué.
D'abord créer la macro qui réalise le calcul.
On doit déclarer les variables dans le tableau inférieur (comme pour un objet d'affichage), écrire les instructions, compiler (avec l'icône en forme de marteau) et enregistrer.
Puis définir une condition d'exécution de cette macro. Dans cet exemple, c'est une exécution périodique.
Dans mon exemple de calcul, j'écris le résultat dans la variable interne LW0.
A vous de choisir l'adresse qui vous convient.
Attention si vous utilisez d'autres variables internes : les variables LW sont des mots de 16 bits, donc en écrivant une valeur de type 32-Bit Float à l'adresse LW0, on utilise aussi LW1 !
J'aurais préféré exécuter la macro sur un changement de valeur des variables, mais je n'ai pas trouvé comment faire (on peut déclencher une macro sur un changement d'état d'un bit mais pas d'une valeur numérique).
MiGaNuTs a écrit : ↑02 févr. 2023, 09:21
J'ai pas trouvé le moyen d'afficher des valeurs en hexa.
Il est possible d'afficher les valeurs en hexa (ou en octal, en binaire) : pour modifier le format d'affichage il faut sélectionner une valeur non signée.
Re: IHM en modbus avec compteur d'énergies
Posté : 03 févr. 2023, 08:26
par MiGaNuTs
Je crois que je vais commander un de ces écrans. A peu près 250€ pour un 10.2 pouces, c'est carrément insolent comparé aux <standards> industriels.
Ça mérite d’être essayé, tant pis pour le "long term support".