Comment pouvons-nous aider ?

Print

Lecture de l’état de la bobine 0x (FC=01) en Modbus RTU avec IHM

 

Ce tutoriel ne concerne que la fonction maître Modbus de l’IHM FC01. Il s’agit d’une fonction spéciale pour les cas particuliers et les experts.

Code de fonction Read Coil Status 0x (FC=01) dans le Modbus de l’IHM

Par défaut, le code de fonction Read Coil Status 0x (FC=01) dans le Modbus de l’IHM lit le registre de bits en octets.
Cela signifie que pour lire le bit dans le registre 34, l’IHM enverra une requête « Read Coil Status FC01 » pour lire le registre 32 (INT(34/8)*8) avec une longueur de 8 bits (c’est-à-dire les bits 32 à 40). Il récupère ensuite le bit 34.

Ainsi, pour lire les bits 33, 34, 35 et 36 du même écran, il enverra une seule requête (registre 32 longueur 8)

Mais certains équipements ne supportent pas ce type de lecture.

Lire uniquement les bits demandés, pas par octets

Dans l’image de droite, nous pouvons voir que nous lisons le registre 34 de la bobine pour la longueur 1 seulement.

  • Copier ces 2 fichiers (modbus_rtu_master.dll et modbus_rtu_master.so) dans leurs répertoires respectifs où se trouve le logiciel HMI-Tool (C:\NProgram Files (x86)\NHMITool7.0)
  • Ajouter cette macro dans « Init Script ».
    • #include "MacroInit.h"
      void Macro_main(IN *p)
      {
      MarcoInit
      //ToDo
      //RemoveHMIError = 0;// Pour le bon "ReadCoilStatus FC=01" : Ajouter les fichiers modbus_rtu_master.dll et modbus_rtu_master.so
      LocalWord[50100]=1 ; // Mettre à 1 pour avoir un "ReadCoilStatus FC=01" qui lit par bit et non par octet
      }
  • Assurez-vous que les symboles (Bit Lamp,…) des bits que vous voulez lire sont sur un écran différent de l’écran de démarrage (il doit y avoir un changement d’écran pour que cela prenne effet)
  • Chargez le projet et testez-le !