Configuration
Modbus est un protocole de communication ouvert. Il est généralement utilisé pour l'intégration avec des appareils HVAC.
Core est livré avec trois terminaux de bus. Outre le bus interne TapHome, ils prennent également en charge Modbus RTU. Le port LAN sur Core prend en charge Modbus TCP. Cela signifie que vous n'avez pas besoin d'acheter d'appareil supplémentaire auprès de TapHome pour vous connecter à des appareils Modbus.
Installer
Dans Paramètres → Matériel → Modbus, définissez une nouvelle interface:
- Modbus RTU (Définir le terminal: BUS1, BUS2 ou BUS3)
- Modbus TCP (Définir l'adresse IP pour chaque appareil)
Si vous utilisez Modbus RTU (via un câble RS485), assurez-vous que le terminal auquel votre appareil Modbus est connecté n'est pas utilisé pour TapHome Bus. Gardez à l'esprit que vous pouvez utiliser plusieurs appareils Modbus sur le même BUS, mais qu'ils doivent utiliser les mêmes paramètres Modbus généraux (débit en bauds, parité, bits de données, bits d'arrêt) et un ID esclave spécifique pour chaque appareil connecté.
Il n'est pas possible de combiner des appareils Modbus RTU avec des appareils TapHome Bus sur un terminal. Les deux interfaces sont électriquement compatibles, mais utilisent un protocole de communication complètement différent.
Paramètres généraux de communication Modbus (fournis par le fabricant dans le manuel)
Implémentation au sein de Taphome:
Table de communication Modbus fournie par le fabricant
Implémentation au sein de Taphome
Si la communication ne fonctionne pas dans le test suivant, essayez de modifier les adresses des registres par -1 ou +1 par rapport aux valeurs du tableau. Cela aide généralement.
Dans l'interface Modbus RTU ou Modbus TCP, vous pouvez soit ajouter un ensemble d'appareils à partir du modèle: https://taphome.com/support/15695874, soit définir le vôtre:
Types d'appareils Modbus pris en charge
Utilisez des types d'appareils génériques pour définir l'intégration Modbus personnalisée:
Type d'appareil | Visualisation | Variable pour les expressions d'écriture |
---|---|---|
Capteur de température | -- lecture seulement -- | |
Thermostat | Se | |
Commutateur | St | |
Commutateur à valeurs multiples | Mu | |
Gradateur / sortie analogique | Le | |
Compteur électrique | -- lecture seulement -- | |
Enveloppeur Modbus | -- lecture seulement -- | |
Contact Reed | -- lecture seulement -- | |
Variable | Va |
Lire et écrire des valeurs
Types de registres Modbus
C – Coil (1-bit, read/write)
SC – Single Coil (1-bit, read/write)
D – Discrete input (1-bit, read only)
H – Holding register (16-bit, read/write)
SH – Single holding register (16-bit, read/write)
A – Analog input (16-bit, read only)
Les types de registres «S» sont uniquement destinés aux fonctions d'écriture et doivent être utilisés pour les périphériques qui ne prennent pas en charge l'écriture sur plusieurs registres à la fois.
Types de données
Int16 (-32,768 to 32,767)
Uint16 (0 to 65,535)
Int32 (-2,147,483,648 to 2,147,483,647)
Uint32 (0 to 4,294,967,295)
Float (IEEE 754 Single precision floating point)
Bool – (-inf, 0> = false, (0, inf) = true
BigEndianInt16
LittleEndianInt16
BigEndianUint16
LittleEndianUint16
BigEndianInt32
LittleEndianInt32
BigEndianUint32
LittleEndianUint32
BigEndianFloat
LittleEndianFloat
BigEndian est le paramètre par défaut pour chaque type de données, par exemple Int32 est le même que BigEndianInt32.
MODBUSR (MODBUS READ)
MODBUSR(register_type, register_address, data_type) Example: MODBUSR(H, 20, Int16)/100
Renvoie la valeur du registre de maintien à l'adresse 20 au format int16 et le divise par 100.
MODBUSW (MODBUS WRITE)
MODBUSW(register_type, register_address, data_type, value_to_write) Example: MODBUSW(H, 20, Int16, Te/100)
Écrit la température du capteur divisée par 100 au format int16 dans le registre de maintien 20.
MODBUSWNE (MODBUS WRITE NOT EQUAL)
Écrit dans le registre uniquement si la valeur actuelle est différente. Lit la valeur, vérifie si elle est égale et écrit dans le cas contraire. Utile pour économiser la mémoire EEPROM.
MODBUSWNE(register_type, register_address, data_type, value_to_write) Example: MODBUSWNE(H, 20, Int16, Te/100)
Lit d'abord la valeur du registre de maintien à l'adresse 20 au format int16, la compare à la température du capteur de température divisée par 100 et uniquement si les valeurs sont différentes écrit la température du capteur divisée par 100 au format int16 au registre de maintien 20.
Les adresses de registre peuvent également être écrites au format hexadécimal, par exemple 20 est identique à 0x14.
Expressions
Suivez ce lien pour trouver plus d'informations sur les expressions: https://taphome.com/support/41123985