Bonjour à tous. Tout d’abord un grand merci à @Bebel27 pour ce plugin bien pratique. Après quelques errements j’ai réussi à comprendre à mon modeste niveau comment exploiter ce plugin avec un onduleur solaire Sofarsolar Hyd 6000 via son port RS485 et associé à un petit boitier bien sympa le HF2221 acheté pas trop cher et qui permet de créer un serveur tcp avec 2 entrées au choix RS485 ou RS232:
Avec la doc du protocole que sofarsolar a bien voulu m’envoyer je réussi bien à récupérer tout ce qui m’intéresse mais je bute sur la gestion des nombre négatif. Quand j’utilise le logiciel Modbus doctor les données recueillies sont bien affichées en négatif alors que dans le plugin cela me donne des chiffres énormes. En cherchant un peu, modbus doctor considère un nombre comme négatif lorsque le bit 7 de l’octet 0 passe à 1 (= 8000h)
Serait il possible d’intégrer cela dans le plugin avec par exemple une case à cocher qui indiquerait que les données recueillies sur cette adresse peuvent être négatives? Comme ça si ce bit est à 1 alors => chiffre négatif
Une autre question, dans la doc de l’onduleur il y a au moins 23 de ce qu’ils appellent des « functions code » qui semblent correspondre pour 4 d’entre elles au type d’entrée sortie du plugin. Par exemple la function code x03 correspond au type « holding register », l’unique type dont je me sers actuellement
Je n’ai pas l’intention de les utiliser toutes ces fonctions mais quelques unes pourraient quand même être intéressantes. Savez vous comment y accéder avec le plugin?
Une dernière pour la route , le protocole RS485, si j’ai bien tout compris, permet de faire en une seule demande l’interrogation d’une plage d’adresse. Par exemple, je souhaiterai obtenir à partir de l’adresse 518 les 20 adresses qui suivent. Un exemple ci dessous le résultat et les trames échangées visibles grâce au logiciel Modbus master:
Cela limiterai les transactions sur le bus car par exemple sur mon onduleur voici toutes les infos que je rapatrie (certaines ne vont jamais me servir mais c’est au cas où…) :