[RESOLU] Problème Modbus
#1
Bonjour

J'ai une interface modbus rs485 (Grid Connect) pour piloter ma VMC Nilan Compact P. Pour l'instant je ne fais que remonter des valeurs (températures nottament).

Lors du setting initial, n'étant pas familler avec le modbus, j'ai mis un peu de temps: puis au final, j'ai réussi à avoir toutes les valeurs de températures, sauf 2. Ces 2 valeurs affichées dans LD étaient complètement incohérentes. Pourtant, elles sont toutes dans les mêmes registres, et avec un même type de data (flotant 16 bits).

Je laisse passer du temps, puis je me remet dessus ce soir: une seule valeur est désormais incohérente....sans avoir fait de modif bien sur...

Je décide pour tester de redémarrer ma LD puis mon interface modbus, et là, j'ai 2 nouveaux mes 2 valeurs de températures qui sont NOK

J'ai passé pas mal de temps, en testant différentes types de data, sans résultat. Ce qui me fait dire que le souci provient de LD, c'est que Modbus doctor me remonte les valeurs correctes...sans erreur...

Voici les détails:
[ATTACH=CONFIG]708[/ATTACH]

Valeurs incohérentes: Air repris et Eau inférieure. (températures)
[ATTACH=CONFIG]709[/ATTACH]
Registre 210 = Air repris
Registre 212 = Eau inférieure

[ATTACH=CONFIG]710[/ATTACH]


Comment pouvons nous avancer sur un tel problème?

Merci de votre aide

PS: le temps d'écrire ce message, la valeur de l'eau inférieure continue de monter (11°...) car la VMC produit de l'eau chaude. C'est comme si la donnée représentait bien l'augmentation, mais en étant amputée de plus de 30°...(valeur réelle via Modbus Doctor: 43°). Par contre, l'air repris ne varie que très très peu, et c'est normal: cela serait la même conclusion, c'est comme s'il manquait des degrés...

PS2: bien sur je ne joue pas avec les masques, inversion, coefficients...

PS3: il faudrait éditer le titre du message, pour rajouter "Potentiel" !


Pièces jointes Image(s)
           
Répondre
#2
Bonjour,

Généralement quand il y a un problème de configuration de la lecture d'un float, la donnée devient complètement fausse (valeurs très grande avec une puissance).

Si la différence entre la valeur lue par Lifedomus et la valeur réelle est systématiquement de 30°, vous pouvez utiliser le champ "offset" de la variable Modbus dans le Config Studio. Indiquez "30" dans "offset" pour ajouter 30 à la valeur lue par Lifedomus.

Ce qui est étrange c'est que l'autre soft Modbus vous indique les bonnes valeurs. Vous pouvez aussi essayer de comparer les valeurs en hexadécimal des registres pour comprendre le problème.
Quentin
Equipe Lifedomus
Répondre
#3
Bonjour

Merci de votre réponse.

Alors il semblerait que le coup des 30° de différence est une fausse piste.

Par contre, les valeurs en hexa semblent une bonne piste

1) Valeur eau chaude TOP: la valeurs en decimal du soft Mobdus et la valeur en floating de LD indique près de 6° d'écart
-> Quand je passe en héxa des 2 cotés, les valeurs sont strictement identique

2) Même constat pour l'eau chaude BOTTOM: quand je passe en héxa, les valeurs sont srictement identique.

3) Niveau air repris par contre, quand je passe en hexa coté LD, le capteur est affiché avec un Point d'interogation dans l'appli Iphone, donc impossible de confirmer le précédent postulat...


Mais il semblerait bien qu'il y ait un souci sur la conversion des valeurs en floating sur certains registres.

Pouvez vous regarder et confirmer?


Si jamais et si nécessaire, je peux vous donner accès à mon infra pour tester.

Merci a vous
Répondre
#4
3) la valeur air repris est désormais enfin affichée, avec 80000000 ....
Répondre
#5
Bonjour la team

Auriez vous un peu d'aide sur le sujet svp?

j'ai toujours de graves incohérences, et seul je ne peut pas avancer.

Merci a vous
Répondre
#6
Bonjour,

Vous pouvez essayer de jouer avec les options "Inversions des mots" et "Inversion des octets" dans la configuration de la variable Modbus (activer l'une, l'autre ou les deux).

J'aimerai bien un exemple des valeurs : la valeur en hexa, la valeur décimale dans Lifedomus et la valeur décimale dans l'autre logiciel.
Quentin
Equipe Lifedomus
Répondre
#7
Bonjour

J'ai essayé de jouer avec ces options, mais elles ne sont pas faites pour cela, cela n'a rien changé.

Cependant, avec tous les tests que j'ai fait, j'ai produit les captures , qui vous permettront sans doute d'y voir plus clair.
Captures: http://dl.free.fr/hWTwsNde4

1) J'ai rajouté tous les capteurs en les mettant sous format HEXA. J'ai contrôlé les valeurs, quand c'est OK j'ai mis une pastille verte, si NOK, c'est rouge.

2) Il semblerait qu'il y ait une forme d'instabilité confirmée: de temps en temps, le capteur en HEXA s'affiche en rouge, puis revient, puis s'affiche encore...le cycle ne semble pas stable.

3) Sur mes 5 capteurs, au final 1 seul est constant et OK
- Air extérieur OK
- Eau inférieure et eau supérieure: OK MAIS grosses différences dans les degrés, cf captures
- Air soufflé et repris: NOK, valeurs LD complètements fausses, valeurs modbus doctor OK...


Merci a vous pour votre support

Cdlt
Répondre
#8
Bonjour,

Pourquoi indiquez vous deux registres ? (ex, pour "VMC Air Extérieur" : "C9" et "55F"). Si c'est bien du Float 16, il ne devrait y avoir qu'un seul registre de 16 bits.

D'après les valeurs en hexa que vous me donnez de Modbus Doctor, le Float 16 est correctement converti dans Lifedomus en suivant la norme IEEE 754 : https://en.wikipedia.org/wiki/Half-preci...int_format

Je pense que les registres ne sont tout simplement pas en Float16, mais en Int16 avec un décalage de la virgule (champ "offset" dans le Config Studio).
Quentin
Equipe Lifedomus
Répondre
#9
Quentin a écrit :Je pense que les registres ne sont tout simplement pas en Float16, mais en Int16

Méa Culpa..effectivement, j'ai relu la doc de la VMC, et les datas sont bien en integer...Cela semble être OK pour tous les registres désormais...
Il faudrait éditer le sujet et supprimer "bug", car c'est une mauvaise compréhension de ma part!
Quentin a écrit :avec un décalage de la virgule (champ "offset" dans le Config Studio).
Par contre, ça, cela ne marche pas, le champ offset marche comme une sorte de coefficient, mais en ajoutant une valeur, pas en la multipliant. Actuellement, j'ai toutes mes valeurs sous format avec 4 digits sans virgule.
[ATTACH=CONFIG]720[/ATTACH]


Comment arriver avec des valeurs avec une ou 2 décimales? Faut-il passer par un automate convertisseur par exemple?


Merci pour le support


Pièces jointes Image(s)
   
Répondre
#10
Bonjour,

Essayez en mettant 0,01 dans offset.
Quentin
Equipe Lifedomus
Répondre


Sujets apparemment similaires...
Sujet Auteur Réponses Affichages Dernier message
  Valeur Modbus si pas de retour syndrom 2 2,550 10-25-2020, 09:44 AM
Dernier message: syndrom
  Demande d'aide Problème depuis MAJ Datablocs Benjamin04 0 2,274 09-05-2018, 06:06 PM
Dernier message: Benjamin04
  Modbus ou SSH pour centrale d'alarme pocket998 0 2,643 03-15-2018, 07:51 PM
Dernier message: pocket998
  Inversion contact modbus ngm47 2 4,785 03-18-2017, 11:23 AM
Dernier message: ngm47
  Modbus: grapher des retours d'état impossible? AucuneID 1 3,739 12-23-2016, 10:45 AM
Dernier message: AucuneID
  Configuration Modbus Hsd 0 2,950 07-20-2016, 08:15 PM
Dernier message: Hsd
  Modbus: Commandes d’un équipement suivant la documentation AucuneID 5 7,874 06-06-2016, 04:50 PM
Dernier message: AucuneID
  Modbus: besoin d'un petit peu d'aide pour commander une VMC AucuneID 4 7,224 04-29-2016, 10:07 AM
Dernier message: Quentin
  Modbus: config ne marche pas, une idée? AucuneID 6 13,747 02-23-2016, 07:14 PM
Dernier message: Domoconnect
  Problème de com Domoconnect 20 26,921 11-30-2015, 10:46 PM
Dernier message: Domoconnect



Utilisateur(s) parcourant ce sujet : 1 visiteur(s)