Chercher
MENU
  • Expressions / Langage de script
  • Utilisateurs et autorisations
  • Sauvegarde, restauration de sauvegarde, réinitialisation aux paramètres d'usine
  • Notes de version du logiciel
  • Modbus

    Introduction à Modbus

    Modbus est un protocole de communication simple, souvent utilisé pour intégrer des équipements HVAC. Il utilise la communication maître-esclave, lorsque plusieurs appareils peuvent être connectés au bus commun, chacun doit avoir un ID esclave unique, et l'appareil maître interroge toujours les appareils esclaves individuels qui lui répondent.

    Topologie maître - esclave

    Dans la plupart des cas, TapHome est utilisé dans le mode où l'unité de contrôle Core est maître Modbus et les appareils connectés sont esclave Modbus. Ceci est défini dans la section Matériel → Modbus RTU ou Modbus TCP. Cependant, il est également possible d'utiliser la direction opposée, lorsque TapHome Core fournit à un autre système supérieur des informations sur ses appareils. Il est défini dans la section Appareils exposés → Modbus RTU ou Modbus TCP.

    Couches physiques

    Modbus peut communiquer à travers différentes couches physiques :

    • via une ligne série, typiquement RS485. Ceci est appelé Modbus RTU
    • sur le réseau LAN via le protocole TCP/IP
    • sur le réseau LAN via le protocole UDP - actuellement non pris en charge par le système TapHome

    Registres Modbus

    Modbus définit 4 types de registres :

    S'inscrire

    Bref

    Accéder

    Taille

    Function codes
    Holding RegistersHRead-write16-bitsRead: 03, Write multiple: 16 (0x10)
      - Write Single HoldingSHRead-write16-bitsWrite single: 06
    Coil (Discrete Output Coils)CRead-write1-bitRead: 01, Write multiple: 15 (0xF)
      - Write Single CoilSCRead-write1-bitWrite single: 05
    Discrete Input ContactsDRead-only1-bitRead: 02
    Analog Input RegistersARead-only16-bitsRead: 04

    Le numéro de registre est de 16 bits, c'est-à-dire qu'il peut avoir une valeur de 0 à 65535. Des opérations peuvent être effectuées sur les registres :

    • lecture de plusieurs registres
    • enregistrement d'un registre
    • enregistrement de plusieurs registres

    Certaines implémentations Modbus ajoutent des commandes supplémentaires : signaler l'identifiant de l'esclave, masquer les bits, écrire et lire simultanément, etc., mais celles-ci ne sont pas prises en charge par TapHome.

    Les informations sur ce qui est stocké dans quel registre et sous quel format font partie de la documentation de l'équipement fournie par le fournisseur ou le fabricant de l'équipement. Un exemple de documentation Modbus d'un fournisseur d'appareils Modbus :

    Registre de type C (Coil), index 58, puisqu'il n'a que 2 valeurs (ouvert/fermé) et permet en plus de la lecture et de l'écriture, le type d'appareil TapHome approprié est Sortie numérique.

    Instructions accélérées pour l'intégration d'un appareil Modbus dans TapHome

    1. Connectez l'appareil au bus approprié (pour Modbus RTU et ASCII) ou au LAN (pour Modbus TCP). Pour un appareil TCP, assurez-vous qu'il se trouve sur le même réseau que le contrôleur TapHome Core, par exemple en utilisant Fing (iOS, Android) ou IP Scanner (Windows).
    2. Dans TapHome → Matériel, ajoutez une nouvelle interface Modbus RTU ou Modbus TCP et définissez les paramètres de communication conformément à la documentation. Pour Modbus RTU, il s'agit du débit en bauds, des bits d'arrêt, de la parité, des bits de données, pour Modbus TCP, il s'agit de l'adresse IP.
    3. Recherchez dans la documentation Modbus de l'appareil l'ID esclave qu'il utilise. Dans le cas de Modbus TCP, cela est parfois appelé ID d'unité. Si vous souhaitez utiliser plusieurs appareils sur un bus avec Modbus RTU, vous devez modifier l'ID esclave de chacun afin qu'il soit unique pour la ligne de bus donnée.
    4. Test de communication - à l'aide de l'outil d'opérations manuelles, essayez de lire certaines informations conformément à la documentation (tableau Modbus) pour l'appareil donné. Si tout fonctionne, vous devriez voir une lecture.
    5. Si le test de communication a réussi, créez un module qui représente l'appareil Modbus
    6. Choisissez les informations de la documentation Modbus que vous souhaitez présenter dans le système TapHome et créez les appareils correspondants. Commencez par lire les valeurs (Read script), et dans le cas des acteurs, continuez en écrivant (Write script).
    7. Si les fonctions de base du périphérique fonctionnent, ajoutez des définitions d'erreur, d'avertissement ou d'information aux scripts.
    8. Si nécessaire, vous pouvez également définir des attributs de service et des actions de service pour les appareils et modules TapHome
    9. Si tout est réglé et communique correctement, exportez le module vers un fichier XML afin de pouvoir l'utiliser la prochaine fois. Vous pouvez également contribuer à la communauté sur github.com/taphome-official/modbus_templates

    Implémentation dans TapHome

    Cette documentation est destinée au scénario où l'unité de contrôle TapHome Core est un maître Modbus et les appareils physiques qui sont ajoutés à la section Matériel → Modbus RTU / TCP sont des esclaves Modbus.

    Hiérarchie

    Interface

    Matériel → Modbus RTU : les appareils sont connectés sur certains BUS, les paramètres de base de la transmission RS485 sont définis, tels que débit en bauds, parité, bits d'arrêt ou si les données sont ASCII ou binaires. Seuls les appareils avec les mêmes paramètres de communication peuvent être connectés sur ce bus. De plus, une communication correcte ne peut fonctionner que si les câbles A et B sont correctement connectés. Matériel → Modbus TCP : les appareils sont connectés sur le même LAN que l'unité de contrôle Core. Un port TCP est défini, commun à tous les appareils connectés à cette interface.

    Module

    Une interface peut contenir un ou plusieurs modules, qui dans la plupart des cas couvrent la communication avec l'ensemble du dispositif physique. Du point de vue de la configuration, le module définit l'ID esclave unique de l'appareil connecté pour Modbus RTU, ainsi que l'adresse IP pour Modbus TCP.

    Dispositif

    Représente un élément de contrôle ou un capteur spécifique dans le système TapHome. Il doit toujours faire partie d'un module parent.

    Exemple

    5 unités de climatisation connectées sur un bus, utilisent une interface Modbus RTU commune, qui définit le port de bus, le débit en bauds et d'autres paramètres de communication. L'interface contient 5 modules, chacun représentant une unité de conditionnement d'air avec un ID esclave unique. Chaque module a des dispositifs définis sous lui, tels qu'un thermostat, un mode de refroidissement/chauffage, la puissance du ventilateur ou l'inclinaison des lamelles. Les appareils individuels ont des commandes définies pour lire et/ou écrire des valeurs Modbus.

    Périphériques compatibles:

    • Sortie numérique
    • Sortie analogique -Thermostat
    • Commutateur multi-valeurs
    • Capteur de température
    • Compteur électrique
    • Contact d'état
    • Bouton
    • Une variable

    Scripts pour lire et écrire des valeurs Modbus

    Les appareils TapHome communiquent avec des appareils Modbus physiques à l'aide de scripts.

    Viac informácii o skriptovacom jazyku, predovšetkým sekcia 

    Opérations sur les bits

    Pour la communication avec les équipements Modbus, des sections de script sont définies sur ceux-ci :

    • Script d'initialisation : est exécuté au démarrage de l'appareil (par exemple, après le redémarrage de l'unité de contrôle)
    • Lire le script : définition des valeurs des variables globales ou lecture des états d'erreur
    • Script de lecture de valeur : script pour lire une valeur spécifique (quantité) à partir d'un appareil Modbus (par exemple, température définie sur le thermostat ou température mesurée sur le thermostat)
    • Script d'écriture de valeur : écrit la valeur sur l'appareil Modbus

    Fonctions de communication avec les appareils Modbus

    MODBUSR (lecture Modbus) Fonction de lecture de registre depuis Modbus. Selon le type de données, il peut s'agir de 1 registre (pour les types de données 16 bits), de 2 registres (pour les types de données 32 bits) ou de plusieurs registres (pour les types de données String)

    MODBUSR(register_type, register_address, data_type, [OPTIONAL: number_of_characters if data_type=String])
    Example: MODBUSR(H, 20, Int16)/100

    Lisez le numéro de registre H (ou adresse) 20 et interprétez-le comme un entier 16 bits (un nombre entier avec un signe +-). Enfin, divisez cette valeur par le nombre 100 (décalez la virgule de 2 positions vers la gauche).

    L'adresse de registre peut également être saisie au format hexadécimal, par ex. la valeur 20 peut être écrite sous la forme 0x14.

    MODBUSW (écriture Modbus)

    MODBUSW(register_type, register_address, data_type, value_to_write)
    Example: MODBUSW(H, 20, Int16, Te * 100)

    Dans le registre H d'adresse 20, écrivez la valeur de la variable Te multipliée par le nombre 100 (en décalant la virgule de 2 vers la droite).

    MODBUSWNE (Ecriture Modbus si différent)

    Identique à MODBUSW à la différence qu'il lit la valeur du registre avant de l'écrire et ne l'écrit que si la valeur écrite est différente de celle lue. L'ensemble de l'opération prend plus de temps et son utilisation typique est lors de la définition des propriétés d'un appareil Modbus, où la configuration est écrite dans la mémoire EEPROM avec un nombre limité d'écritures.

     

    Les fonctions MODBUSR, MODBUSW et MODBUSWNE ne peuvent être utilisées que dans des scripts Modbus. S'ils sont utilisés dans d'autres scripts, ils sont considérés comme une erreur.

    Types de données Modbus

    Le contenu des registres est défini dans la table modbus. Étant donné que la taille d'un registre Modbus est de 16 bits, les valeurs Int16 ou UInt16 16 bits sont le plus souvent utilisées et les décimales sont décomptées par divisions de 10 ou 100. Mais certains appareils Modbus utilisent également des registres 16 bits avec flottement. -nombres de points (Float), ou ils ont un ordre de bit modifié (big endian, little endian), ils écrivent un nombre dans deux registres (variations 32 bits). Parfois, le moyen le plus simple de trouver le type de données correct consiste à utiliser l'utilitaire directement dans l'application TapHome (opérations manuelles), où vous pouvez charger 1 ou plusieurs registres et changer dynamiquement le type de données.

    • Int16 (-32.768 à 32.767)
    • Uint16 (0 à 65 535)
    • Int32 (-2 147 483 648 à 2 147 483 647)
    • Uint32 (0 à 4 294 967 295)
    • Flottant (virgule flottante simple précision IEEE 754)
    • Bool 0 = faux, 1 = vrai
    • BigEndianInt16 = Int16
    • LittleEndianInt16
    • BigEndianUint16 = Uint16
    • LittleEndianUint16
    • BigEndianInt32 / BigEndianInt32ByteSwap
    • LittleEndianInt32 / LittleEndianInt32ByteSwap
    • BigEndianUint32 / BigEndianUint32ByteSwap
    • LittleEndianUint32 / LittleEndianUint32ByteSwap
    • BigEndianFloat / BigEndianFloatByteSwap
    • LittleEndianFloat / LittleEndianFloatByteSwap
    • Chaîne de caractères

      Le format BCD peut également être utilisé, grâce aux fonctions TOBCD() et FROMBCD()

    Intervalle de mise à jour et d'interrogation

    Chaque appareil de l'interface Modbus a un attribut Intervalle d'interrogation défini qui détermine la fréquence à laquelle l'unité de contrôle TapHome doit interroger les nouvelles valeurs d'appareil Modbus. La communication Modbus est de type Maître-Esclave, et donc les informations provenant de l'appareil Modbus ne peuvent atteindre TapHome que lorsque TapHome le demande. Plus l'intervalle d'interrogation est long, plus la valeur dans TapHome est actualisée tard. Un intervalle d'interrogation trop court peut signifier que TapHome sera inutilement accablé par l'obtention de valeurs inutiles, et peut ne pas avoir le temps de servir tous les appareils dans l'intervalle de temps donné. Par exemple, avec Modbus RTU et des vitesses de débit en bauds inférieures, par ex. 9600, une requête/réponse peut prendre des dizaines de ms. Pour les thermomètres, dans la plupart des cas, un intervalle de 15000ms (15s) est suffisant, pour les boutons, au contraire, le moins possible, par ex. 50 ms. Certains appareils Modbus s'attendent à ce que le maître écrive périodiquement la valeur actuelle dans le registre. C'est à cela que sert l'attribut Periodic Write.

    Définition des états d'erreur à partir des scripts

    Dans certains scripts, il est possible de définir une erreur / un avertissement / une information sur l'appareil, en fonction des informations lues dans les registres Modbus de l'appareil. Ces messages s'affichent dans TapHome de la même manière que les messages d'erreur internes de TapHome. En option, un code d'erreur numérique peut être ajouté au message d'erreur si cela s'avère pratique pour l'entretien de l'appareil Modbus.

    Un seul message d'erreur sans code ou un seul message d'erreur par code d'erreur peut être défini sur l'appareil.

    ADDERROR(), ADDWARING(), ADDINFO()

    ADDERROR([Optional: custom_code], text)

     

    Exemple : dans la section Lire le script du périphérique de sortie analogique, il y a un code :

    ADDERROR("Error without code");
    ADDWARNING("Warning without code");
    ADDINFO("Info without code");
    
    ADDERROR(1, "Error with code");
    ADDWARNING(1, "Warning with code");
    ADDINFO(1,"Info with code");

    ...qui se reflète sur l'appareil par des messages :

    Attributs et actions du service

    En plus d'une valeur (ou de plusieurs valeurs, comme un thermostat) d'un appareil Modbus connecté, les modules et appareils TapHome peuvent également lire les attributs de service ou effectuer des actions de service. Ceux-ci ne sont alors pas accessibles sur le bureau pour les autres utilisateurs du système, mais servent uniquement à des informations plus détaillées sur l'appareil Modbus, sans surcharger inutilement le système avec un grand nombre de variables et d'actions.

    Les attributs de service sont affichés dans les paramètres de service du module ou de l'appareil TapHome. Généralement, ils sont utilisés pour afficher des informations sur l'appareil, telles que le modèle, le numéro de série, la version du micrologiciel, la version du matériel, l'heure depuis le dernier redémarrage, etc. Il s'agit d'informations utiles du point de vue de la maintenance d'un appareil Modbus, mais cela n'a pas de sens de créer des appareils TapHome séparés pour eux.

    Les actions de service sont affichées dans les paramètres de service du module ou de l'appareil TapHome, tout en bas sous forme de boutons. Lorsqu'ils sont pressés, ils exécutent une action Modbus prédéfinie qui écrit les informations requises dans le registre. Exemple d'utilisation : réglage ou modification de l'ID esclave, remplacement du filtre, réglage du compteur à la valeur requise, réinitialisation de l'appareil, etc.

    Scripts et variables auxiliaires sur le module

    Variables globales du module

    Les variables définies sur un module sont utilisables dans tous les scripts du module et sont partagées avec tous les appareils affectés à ce module.

    Script d'initialisation

    Optionnel. S'exécute au démarrage du module. S'il est rempli et n'a pas encore été exécuté, aucun autre script ne sera autorisé.

    💬 Valeur de retour : ignoré
    ⚙️ Accès aux variables : variables globales du module
    ⚠️ Prise en charge du statut d'erreur : non

    Lire le script

    S'exécute chaque fois qu'un module est interrogé.

    💬 Valeur de retour : ignoré
    ⚙️ Accès aux variables : variables globales du module
    ⚠️ Prise en charge du statut d'erreur : oui

    Écrire un script

    Fonctionnement:

    • lors de la modification de la variable d'appareil
    • si l'attribut "Periodic Write" est activé, il démarre automatiquement

      💬 Valeur de retour : ignoré
      ⚙️ Accès aux variables : variables globales du module, valeurs des appareils appartenant au module donné (attention, ce ne sont pas des variables globales d'appareils - le script du module n'y a pas accès). Ceci est utilisé dans le cas où les valeurs de plusieurs appareils du module donné doivent être écrites dans un registre.
      ⚠️ Prise en charge du statut d'erreur : non

    Attributs de service

    Chaque module peut avoir un nombre illimité d'attributs de service définis. Les scripts sont exécutés chaque fois qu'un utilisateur (avec des privilèges de service) ouvre l'écran des paramètres de service du module dans l'application. Ils sont écrits en haut, immédiatement après la lecture de l'appareil Modbus.

    💬 Return value : est affiché comme la valeur de l'attribut donné
    ⚙️ Accès aux variables : variables globales du module
    ⚠️ Prise en charge du statut d'erreur : non

    Actions de service

    Chaque module peut avoir un nombre illimité d'actions de service définies. Les scripts sont lancés lorsque l'utilisateur (avec des privilèges de service) ouvre l'application sur l'écran des paramètres de service du module et appuie sur l'un des boutons définis avec le nom de l'action de service. Chaque action de service est définie par son nom, ses paramètres et son script d'exécution.

    💬 Valeur de retour : ignoré
    ⚙️ Accès aux variables : variables globales du module, paramètres définis par l'utilisateur
    ⚠️ Prise en charge du statut d'erreur : non

    Scripts et variables d'assistance sur l'appareil

     Variables d'appareil globales

    Les variables définies sur un périphérique sont utilisables dans tous les scripts définis sur ce périphérique et ne sont utilisables nulle part en dehors du périphérique. L'appareil peut y stocker son état, le partager entre ses scripts, etc.

    Script d'initialisation

    Optionnel. Il démarre au démarrage de l'appareil. S'il est rempli et n'a pas encore été exécuté, aucun autre script ne sera autorisé.
    💬 Valeur de retour : ignoré
    ⚙️ Accès aux variables : variables globales module, variables globales appareil
    ⚠️ Prise en charge du statut d'erreur : non

    Lire le script

    S'exécute chaque fois que l'appareil est interrogé, avant "Read Value Scripts".
    💬 Valeur de retour : ignoré
    ⚙️ Accès aux variables : variables globales module, variables globales appareil
    ⚠️ Prise en charge du statut d'erreur : oui. Les erreurs concernent l'ensemble de l'appareil (par exemple l'ensemble du thermostat, pas seulement sa valeur de consigne ou sa valeur de température actuelle).

    Écrire un script de valeur

    Fonctionnement:

    • à chaque changement de valeur
    • si l'attribut "Periodic Write" est activé, également à chaque interrogation

    💬 Valeur de retour : ignoré
    ⚙️ Accès aux variables : variables globales du module, variables globales de l'appareil, la valeur spécifique de la grandeur à écrire via Modbus vers l'appareil.
    ⚠️ Prise en charge du statut d'erreur : non

    Lire le script de valeur

    S'exécute chaque fois qu'un périphérique est interrogé.
    💬 Valeur de retour : est automatiquement attribuée comme valeur de l'appareil donné
    ⚙️ Accès aux variables : variables globales du module, variables globales de l'appareil, la dernière valeur chargée de la variable, le bark à lire (utile, par exemple, si l'appareil indique qu'il n'a pas encore été chargé, etc. .)
    ⚠️ Prise en charge du statut d'erreur : oui. Les messages d'erreur doivent se référer à la quantité indiquée sur l'appareil. Par exemple si la commande ADDERROR(1, "Capteur non connecté") se trouve dans le script de lecture de la température dans l'appareil du thermostat, l'utilisateur verra un message d'erreur dans l'application sur le thermostat avec trois informations : Température, code 1, texte " Capteur non connecté".

     Attributs de service

    Chaque appareil peut avoir un nombre illimité d'attributs de service définis. Les scripts sont exécutés chaque fois qu'un utilisateur (avec des privilèges de service) ouvre l'écran des paramètres de service de l'appareil dans l'application. Ils sont écrits en haut, immédiatement après la lecture de l'appareil Modbus.
    💬 Return value : est affiché comme la valeur de l'attribut donné
    ⚙️ Accès aux variables : variables globales module, variables globales appareil
    ⚠️ Prise en charge du statut d'erreur : non

    Actions de maintenance

    Chaque appareil peut avoir un nombre illimité d'actions de service définies. Les scripts sont exécutés lorsque l'utilisateur (avec des privilèges de service) ouvre l'application sur l'écran des paramètres de service de l'appareil et appuie sur l'un des boutons définis avec le nom de l'action de service. Chaque action de service est définie par son nom, ses paramètres et son script d'exécution.
    💬 Valeur de retour : ignoré
    ⚙️ Accès aux variables : variables globales du module, variables globales de l'appareil, paramètres spécifiés par l'utilisateur
    ⚠️ Prise en charge du statut d'erreur : non


    Utilitaires utiles

    Ajouter à partir du modèle

    Il vous permet de configurer la communication Modbus avec l'appareil sans aucune connaissance du protocole Modbus ou comment le configurer dans TapHome. Des modèles prédéfinis peuvent être trouvés :

    • directement dans l'application : Ajouter à partir d'un modèle → sélectionner un appareil spécifique → renseigner les informations de base et valider. Tous ces modèles sont maintenus dans un projet communautaire git sur https://github.com/taphome/modbus_templates et n'importe qui peut y suggérer de nouveaux mods. Ce qui entre dans les applications doit être approuvé directement par l'équipe TapHome
    • dans votre propre fichier XML : Ajouter à partir du modèle → Ajouter à partir du fichier. Vous pouvez créer votre propre fichier XML qui définit l'ensemble du modèle directement sur le module Modbus, dans le menu contextuel (3 points en haut à droite), action Enregistrer comme modèle. Nous serons heureux si vous nous aidez à augmenter le nombre d'appareils pris en charge et à contribuer votre fichier XML au projet git commun de la communauté.

    Plus d'informations sur la configuration de la communication Modbus à l'aide de modèles

    Opérations manuelles

    Un outil pratique pour une vérification initiale rapide de la table Modbus. Permet:

    • charger les registres X suivants dans la table à partir d'un registre spécifique, puis basculer dynamiquement les valeurs lues dans différents types de données
    • écrire la valeur dans le registre donné

    Analyser les identifiants des esclaves

    Une pratique courante lors de la configuration de la communication avec un appareil Modbus est que l'ID d'esclave par défaut est différent de 1, et il n'est pas facile de trouver le bon numéro. C'est à cela que sert cet utilitaire. Il peut scanner la plage d'ID d'esclave spécifiée en essayant de lire à partir du registre sélectionné toujours avec l'ID d'esclave testé.

    Informations sur les registres

    Il est situé dans la partie inférieure du module Modbus. Pour chaque registre utilisé, il liste des informations sur :

    • Le nom TapHome de l'appareil qui lit ou écrit dessus
    • Date et heure de la dernière lecture réussie du registre
    • La dernière valeur lue dans le registre
    • Date et heure de la dernière inscription réussie au registre
    • La dernière valeur écrite dans le registre

    Réglages avancés

    Prélecture

    TapHome crée une liste de registres à lire et à écrire sur les appareils Modbus, en fonction de l'intervalle d'interrogation défini. Prefetch est un processus grâce auquel l'unité de contrôle précharge dans le tampon les valeurs dont elle aura besoin lors de la mise à jour. L'objectif est de minimiser le nombre de demandes et d'allers-retours. La prélecture est affectée par 2 paramètres:

    • Max prefetch register group size (situé dans les paramètres de service du module) : détermine le nombre maximum de registres pouvant être lus ou écrits via la communication Modbus avec une seule requête.
    • Mode Prefetch (réglable pour chaque appareil):
    • Pas de prélecture. Le préchargement ne sera pas effectué pour cet appareil. Cela signifie que les valeurs seront lues individuellement et exactement au moment de l'exécution du script. Exemple d'utilisation: lors d'une communication avec un convertisseur DALI, la valeur d'une lumière spécifique ne peut pas être lue directement, mais il faut la demander le plus tôt possible, le convertisseur la préparera, et seulement ensuite la restituera. Tout préchargement est inutile dans ce cas.
    • Prélecture isolée. Il précharge plusieurs registres à la fois, mais uniquement ceux qui sont définis dans cet appareil. Par exemple lorsque j'ai besoin des registres 3 et 4 dans l'appareil thermostat, les registres 1, 2, 5, 6 sont utilisés dans les autres appareils, donc la demande des registres 3 et 4 se fera séparément uniquement pour ces 2 registres. Certains appareils Modbus l'exigent.
    • Prélecture normale. Tous les registres demandés par les appareils à restaurer sont essayés pour être lus avec le nombre minimum de demandes. Dans le cas d'une séquence non continue de registres, il lit également les registres non utilisés, s'ils ont été lus avec succès dans le passé. Exemple: les registres 99 et 101 sont demandés. Si le registre 100 a été lu avec succès dans le passé et que la taille maximale du groupe de registres de prélecture est de 3 ou plus, il lira 3 registres avec une demande du registre 99. Si le registre 100 n'est utilisé nulle part et n'a jamais été lu avec succès, il existe un risque que la lecture via un tel registre puisse renvoyer une exception Modbus, par ex. "Adresse de données illégale" en réponse à l'ensemble de la demande.

    La prélecture peut également être influencée directement à partir du script : si nous utilisons le registre SC ou SH (au lieu de C ou H) lors de la lecture, la valeur est lue un registre à la fois pendant l'exécution du script, et elle n'est pas extraite de la mémoire cache. De même, lors de l'écriture, si on utilise le registre SC ou SH (au lieu de C ou H), la valeur est écrite un registre à la fois et par une autre fonction modbus. Le protocole Modbus prend en charge 4 fonctions d'écriture : écrire plusieurs H, plusieurs C, écrire un registre H ou un registre C à la fois. Attention: tous les appareils ne prennent pas en charge toutes ces fonctions. De cette façon, si nécessaire, la lecture et l'écriture peuvent être combinées ensemble et "une à la fois".

    Port TCP (Modbus TCP)

    Dans la plupart des cas, la valeur par défaut est 502, mais il est possible que certains appareils écoutent sur un port différent.

    Délai de lecture/écriture

    Le temps après lequel TapHome renonce à attendre une réponse et signale une erreur "Timeout", ce qui signifie que l'appareil n'a pas répondu à la demande dans l'intervalle de temps donné. Les appareils Modbus lents peuvent ne pas être en mesure de répondre rapidement, et il est nécessaire d'étendre cet intervalle à l'ordre de 1 ou plusieurs secondes. Mais méfiez-vous des valeurs inutilement élevées, car si, pour une raison quelconque, la communication avec un appareil Modbus échoue, cela retarde inutilement les autres appareils Modbus en attente d'une réponse.

    Délai entre les demandes

    Le délai que TapHome insère entre les demandes individuelles à un appareil Modbus. Pour Modbus TCP, il est de 0 ms par défaut, pour Modbus RTU, ce délai selon la spécification est basé sur la vitesse de communication (débit en bauds) d'au moins 3,5 caractères. Cependant, certains appareils Modbus TCP nécessitent jusqu'à 5000 ms entre les requêtes, ou vice versa, certains appareils Modbus RTU peuvent gérer des délais encore plus courts et sont donc capables de communiquer plus rapidement.

    Utiliser la communication ASCII

    Modbus ASCII est une norme moins utilisée où la communication n'est pas binaire, mais utilise des caractères ASCII. La plupart de ces appareils utilisent également le paramètre "7 bits de données".