Un outil de debug pour ModBus

Il faut bien reconnaître que travailler avec des périphériques <a href="/FR/article/petite-introduction-a-rs485-et-modbus">Modbus</a> est un peu pénible: Les données sont souvent encodées en binaire, et  toutes les transactions sont validées avec un checksum, ce qui oblige à écrire un peu de code avant de pouvoir obtenir le moindre résultat. Alors cette semaine on a un petit cadeau pour les clients qui utilisent des modules Yoctopuce pour piloter des périphériques Modbus.
<break/>
C'est une petite application écrite en C# qui va vous permettre de faire des expériences impliquant le protocole Modbus. Pour le nom ne s'est pas trop cassé la tête: elle s'appelle <i>Modbus-tool</i>.  elle est compatible  avec tous les modules Yoctopuce disposant d'une fonction YSerialPort supportant le Modbus. C'est à dire le <product>Yocto-RS485</product> mais aussi le <product>Yocto-Serial</product> et le  <product>Yocto-RS232</product>.

Cette application est un simple exécutable Windows accompagné des DLL Yapi 32 et 64 bits. Au démarrage,  si elle utilise  automatiquement le <a href="/FR/virtualhub.php">VirtualHub</a> si elle le détecte sur l'adresse locale 127.0.0.1:444, sinon elle essaye d'utiliser le mode USB natif.   

<img src="" align="center" border="no" alt="L'interface de l'application Modbus-tool"/>

L'interface de <i>Modbus-tool</i> n'a qu'une seule fenêtre divisée en trois sections.
<h2>Choisir l'interface</h2>

<img src="" align="center" border="no" alt="Selection du module host"/>
La première section sert à choisir la fonction <i>serialPort</i> que vous comptez utiliser pour communiquer avec vos périphériques. Sont proposées toute les fonctions <i>YSerialPort</i> qui auront préalablement été  configurées  avec un protocole Modbus c'est à dire <i>Modbus-RTU</i> ou <i>Modbus-ASCII</i>. L'interface permet de configurer le protocole, la vitesse et la parité des communication. Notez  que les modification de ces paramètre de communication sont appliquées en temps réel, mais elles ne sont pas sauvées dans le module.  

<h2>Enter l'adresse du périphérique Modbus</h2>
Une fois la communication configurée, vous pouvez passer à la deuxième partie de l'interface où il vous faut entrer l'adresse du périphérique auquel vous souhaitez vous adresser. Cette adresse est un entier entre 1 et 247. Si vous ne connaissez pas cette adresse, soit parce que vous avez perdu la doc de votre périphérique, soit parce que cette adresse a été changée, l'application peut scanner le bus pour voir si quelqu'un répond. Ce scan est réalisé en essayant d'interroger le <i>holding register</i> n°0  de chaque adresse.
<img src="" align="center" border="no" alt="Sélection de l'addresse"/>


<h2>Accéder aux données du périphérique</h2>
Une fois que tout est prêt, vous pouvez utiliser la troisième partie de l'interface pour lire ou écrire les <i>coils</i>, <i>input bits</i>, <i>input register</i> et <i>Holding registers</i> du périphérique. Il vous suffit d'entrer les valeurs  et de cliquer sur les boutons <i>read</i> et <i>write</i> correspondants. Toutes les valeurs peuvent être entrées en décimal ou en hexadécimal (préfixe "0x"). Pour rappel, en modbus,  les  <i>input bits</i>, <i>input register</i> sont en lecture seule. 

<img src="" align="center" border="no" alt="manipulation des coils, input bits, input register et  Holding registers"/>

Vous pouvez aussi demander à l'application des scanner toutes les positions possibles de chacun des quatres type de donnée. Le contenu des positions valides vous sera présenté sous la forme d'une grille. C'est assez pratique pour avoir une vue globale du contenu de la mémoire d'un périphérique.


<h2>Les logs</h2>
L'onglet <i>logs</i> vous affiche les logs de l'API yoctopuce et vous décrit les appels qui sont faits à chaque fois que vous cliquez sur un bouton <i>read</i> ou <i>write</i>.

<h2>Conclusion</h2>
Cette application devrait vous permettre de gagner pas mal de temps dès lors qu'il s'agit tester ou de configurer un périphérique Modbus.  Vous pouvez la <a href="/FR/downloads/YoctopuceModbusTool.zip">télécharger ici</a>, ce  fichier zip contient les sources de tout le projet VisualStudio. L'exécutable pré-compilé se trouve dans le répertoire  bin/release. Comme toujours, n'hésiter pas à nous signaler toute difficulté que vous pourriez rencontrer en l'utilisant.





