Le pressostat TEDM et le thermostat ETTNM possèdent un port série RS485 et utilisent le protocole de communication Modbus RTU.
Le protocole Modbus est un protocole de dialogue basé sur une structure hiérar- chisée entre un maître et plusieurs esclaves (stations). Il permet de lire la valeur de pression (TEDM) ou de température (ETTNM) ainsi que de l'état de chaque seuil (ouvert ou fermé).
Echange maître vers 1 esclave : le maître envoie une demande et attend une réponse.
Echange Maître vers toutes les stations esclaves : le maître diffuse un message à tous les esclaves présents sur le réseau, ceux-ci exécutent l’ordre du message sans émettre une réponse.
Deux stations esclaves ne peuvent dialoguer ensemble.
Adressage
Les stations du bus sont identifiées par des adresses attribuées par l’utilisateur.
L’adresse de chaque abonné est indépendante de son emplacement physique.
Maître
Communication Modbus - Généralités
Echanges Modbus - Principe
Echange maître vers un esclave
Le maître interroge un esclave sur le réseau et attend de la part de cet esclave une réponse.
Maître
Station esclave A Station esclave B Station esclave C Réponse Question
Echange maître vers tous les esclaves
Le maître diffuse un message vers tous les esclaves présents sur le réseau, ceux-ci exécutent l’ordre du message sans émettre une réponse.
Maître
Station esclave A Station esclave B Station esclave C Commande
Ex: station esclave = TEDM / ETTNM ...
Station esclave A Station esclave B Station esclave C
Ces adresses vont de 1 à 247 et ne doivent pas obligatoirement être attribuées de manière séquentielle.
Deux stations esclaves ne peuvent pas avoir la même adresse.
Adresse sortie usine TEDM / ETTNM : 246.
La question
Elle contient un code fonction indiquant à l’esclave adressé le type d’action demandé.
Les données contiennent des informations complémentaires dont l’esclave a besoin pour exécuter cette fonction.
Le mot de contrôle permet à l’esclave de s’assurer de l’intégralité du contenu de la question.
La réponse
Si une erreur apparaît, le code fonction est modifié pour indiquer que la réponse est une réponse d’exception (MSB*=0 : pas d’erreur ; MSB=1 : erreur).
Les données contiennent alors un code (code d’exception) permettant de connaître le type d’erreur.
Code d’exception :
01 Fonction illégale (erreur sur le code fonction) 02 Erreur sur l’adresse du registre ou du coil
08 Erreur de transmission (suite au contrôle du CRC ou du Timing)
*MSB : Most Significant Bit
Trame d’échange question/réponse
N° station
esclave Code fonction
+ bit d’erreur Information spécifique
concernant la demande Mot de contrôle
1 octet 1 octet n octets 2 octets
N° station esclave
Code fonction
+ bit d’erreur Données transmises Mot de contrôle
1 octet 1 octet n octets 2 octets
Réponse lors d’une erreur : N° station
esclave
Code fonction
+ bit d’erreur Code d’exception Mot de contrôle
1 octet 1 octet 1 octet 2 octets
Réponse : Question :
Baumer Bourdon-Haenni S.A.S. · 125, rue de la Marre · B.P. 70214 · 41103 Vendôme Cedex · France Tél. +33 (0)2 54 73 74 75 · Fax France +33 (0)2 54 73 74 74 · Fax Export +33 (0)2 54 73 74 73
sales.fr@baumerprocess.com · www.baumer.com 320124 ind a 11/2010
NOTICE D’INSTALLATION
MODBUS TEDM - ETTNM
FR
Le maître s’adresse à l’esclave. Le code fonction indique à l’esclave le type d’action à réaliser. Exemple : lecture de registre, code de fonction 03 hex.
Le champ de données est codé sur n mots en hexadécimal de 00 à FF, soit sur n octets.
Selon le code fonction, le champ de données contient diverses informations complé- mentaires permettant à l’esclave de décoder le message.
Dans le cas du mode RTU, le champ contrôle d’erreur CRC (Cyclical Redundancy Check) sert à s’assurer de l’intégrité des données reçues. Le CRC contient une valeur codée sur 16 bits.
Type RTU
L’esclave renvoie sa réponse ; il place sa propre adresse dans le champ adresse afin que le maître puisse l’identifier.
Pour une réponse normale, l’esclave reprend le même code fonction que celui du message envoyé par le maître.
Le champ contrôle d’erreur contient une valeur codée sur 16 bits. Cette valeur est le résultat d’un CRC calculé à partir du message.
Chaque octet composant un message est transmis en mode RTU de la manière suivante :
Support de transmission
Message du maître Message de l’esclave Délai mini de 3,5 fois le temps
de transmission d’un octet
Délai mini de 3,5 fois le temps de transmission d’un octet Avant et après chaque message(trame), il doit y avoir un silence minimum de 3,5 fois
le temps de transmission d’un octet.
L’ensemble du message doit être transmis de manière continue. Le temps maximum entre 2 octets doit être inférieur à 1,5 fois le temps de transmission d’un octet.
Dans le cas contraire, il y a une erreur de transmission.
Le protocole MODBUS ne définit que la structure des messages et leur mode d’échange.
Les TEDM et ETTNM utilise 4 codes fonctions.
Ces codes fonctions permettent de récupérer :
- la valeur de mesurée de pression (TEDM) ou de température (ETTNM) - l’état de chaque seuil (ouvert ou fermé)
et d’écrire:
- l’état et le réglage des seuils - le code d’accès
- l’adresse de l’esclave
Codes fonction - TEDM/ETTNM
La taille maximale des données est de 256 octets. L’ensemble des informations contenues dans le message est exprimé en hexadécimal.
Sans contrôle de parité START Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 STOP STOP
Avec contrôle de parité START Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Parité STOP
Dans le menu de configuration des TEDM et ETTNM, il est possible de valider
ou non le contrôle de parité. Dans le cas d’un contrôle de parité, il vous est demandé de confirmer l’état du contrôle : paire ou impaire (‘even’ ou ‘odd’).
On peut utiliser n’importe quel support de transmission RS 232, RS 422 ou RS 485, mais la liaison RS 485 est la plus répandue car elle autorise le « multipoints ».
TEDM-ETTNM:
Vitesse de transmission des données : 9600 bauds. Liaison : RS485.
Code Fonction Action
01 Read Coils Status Lecture de l’état des seuils 1 et 2 : ouvert ou fermé Lecture de la configuration des seuils : Normale- ment Ouvert (NO) ou Normalement Fermé (NC) Lecture de la position du point décimal (afficheur) 03 Read Holding Register Lecture de la valeur mesurée. Pression (TEDM)
ou Température (ETTNM) Lecture du code d’accès
Lecture de la valeur des points de commutation haut et bas de chaque seuil
Lecture des valeurs de temporisation de chaque seuil 05 Write Single Coil Ecriture de la configuration des seuils : NO ou NC 06 Write Single Register Ecriture du code d’accès
Ecriture de la valeur des points de commutation haut et bas de chaque seuil
Ecriture des valeurs de temporisation de chaque seuil Ecriture de l’adresse de l’esclave (TEDM ou ETTNM)
Deux types de codage peuvent être utilisés pour communiquer sur un réseau Modbus : Type ASCII - chaque octet composant une trame est codé avec 2 caractères ASCII Type RTU (Unité terminale distante) - chaque octet composant une trame est codé sur 2 caractères hexadécimaux (2 fois 4 bits).
Le mode ASCII permet d’avoir des intervalles de plus d’une seconde entre les diffé- rents caractères sans que cela ne génère d’erreurs, alors que le mode RTU permet un débit plus élevé pour une même vitesse de transmission.
Le TEDM et le ETTNM utilise le codage type RTU pour communiquer sur le réseau Modbus.
Format général d’une trame
START Adresse Fonction Données CRC 16 END
1 octet 1 octet 1 octet n octets 2 octets Silence
Trame Type RTU :
START Adresse Fonction Données LRC END
1 caractère 2 caractères 2 caractères n caractères 2 caractères 2 caractères Trame Type ASCII :
320124 ind a 11/2010
Read Coil Status - code fonction 01
Le maître interroge le TEDM/ETTNM sur l’état des seuils.
L’adresse de départ de lecture des coils est imposée et le nombre de coils est systématiquement 16. Les coils sont adressés à partir de zéro : les coils 1-16 sont adressés de 0 à 15.
Exemples de transmission
Exemple de réponse à la requête :
Réponse
Nom du champ Exemple
Slave Address 3B hex
Function 01 hex
Byte Count 02 hex
Data (Coils 08-01) 21 hex Data (Coils 16-09) 00 hex
Error Check (CRC) —
L’état des coils (08-01) donne pour valeur d’octet 21 hex, ou 0010 0001 binaire, le seuil 1 est actif.
Seuil 1 configuré en NO et Seuil 2 configuré en NC.
Bit = 0 : configuration NC. Bit = 1 : configuration NO.
Read Holding Register - code fonction 03
Le maître interroge le TEDM/ETTNM sur la valeur de la mesure, du code, du réglage des points de commutation haut ou bas des temporisations des seuils.
La question spécifie l’adresse du registre à lire. Les registres sont adressés à partir de zéro : les registres 1-11 sont adressés de 0 à 10.
Exemple de réponse à la requête :
Réponse
Nom du champ Exemple
Slave Address 3B hex
Function 03 hex
Byte Count 02 hex
Data Hi (Register 1) 0A hex Data Lo (Register 1) 2B hex
Error Check (CRC) —
Pour le registre 1 : Le contenu donne pour valeur des deux octets 0A 2B hex ou 2603 décimal.
Exemple de requête pour lire les coils 16-01 de l’esclave 59 :
Question
Nom du champ Exemple
Slave Address 3B hex
Function 01 hex
Starting Address Hi 00 hex Starting Address Lo 00 hex No. of Points Hi 00 hex No. of Points Lo 10 hex
Error Check (CRC) —
Exemple de requête pour lire le registre 1 (valeur mesure) de l’esclave 59 :
Question
Nom du champ Exemple
Slave Address 3B hex
Function 03 hex
Starting Address Hi 00 hex Starting Address Lo 00 hex No. of Points Hi 00 hex No. of Points Lo 01 hex
Error Check (CRC) —
Pour plus de renseignements sur le protocole Modbus : http://www.modbus.org/
Adr.
Coil Action 00 Etat Seuil 1 01 Etat Seuil 2 02
0304 NO-NC 1
05 NO-NC 2
0607
08 Position
09 du
10 point
11 décimal 12
13 14 15
Adr.
Reg Action 00 Valeur mesure
01 Code
02 Valeur HSP1 03 Valeur LSP1 04 Valeur HSP2 05 Valeur LSP2 0607 Valeur TS1 08 Valeur TH1 09 Valeur TS2 10 Valeur TH2 Write Single Coil - code fonction 05
Ce code fonction est utilisé pour configurer à distance les seuils en NO ou en NC. Les coils concernés sont le 05 (NO) et le 06 (NC) avec en adresse respective adr 04 et adr 05.
L’esclave confime l’écriture en renvoyant le même message.
Exemple de réponse à la requête :
Réponse
Nom du champ Exemple
Slave Address 3B hex
Function 05 hex
Starting Address Hi 00 hex Starting Address Lo 04 hex No. of Points Hi FF hex No. of Points Lo 00 hex
Error Check (CRC) —
Le seuil 1 est configuré en NO.
Pour configurer le seuil en NO, la donnée FF 00 hex est envoyée à l’esclave.
Pour configurer le seuil en NC, la donnée 00 00 hex est envoyée à l’esclave.
Exemple de requête pour forcer à 1 le coil 05 de l’esclave 59. le maître transmet la donnée FF 00 :
Demande
Nom du champ Exemple
Slave Address 3B hex
Function 05 hex
Starting Address Hi 00 hex Starting Address Lo 04 hex No. of Points Hi FF hex No. of Points Lo 00 hex
Error Check (CRC) —
Write Single Register - code fonction 06
Ce code fonction est utilisé pour configurer à distance le code d’accès*, les points de commutation haut et bas des seuils, la temporisation des seuils, l’adresse du TEDM ou ETTNM.
La demande spécifie l’adresse du registre concerné. Les registres sont adressés à partir de 1: les registres 2-11 sont adressés de 1-10.
Attention: les valeurs de commutation, de code d’accès ou d’adresse esclave sont envoyées dans les registres respectifs en héxadécimal.
Exemple de requête pour écrire le pt de consigne du seuil1 de l’esclave 59 :
Demande
Nom du champ Exemple
Slave Address 3B hex
Function 06 hex
Starting Address Hi 00 hex Starting Address Lo 02 hex No. of Points Hi 00 hex No. of Points Lo 6E hex
Error Check (CRC) —
* code d’accès pour la configuration par la face avant du TEDM ou ETTNM.
Exemple de réponse à la requête :
Réponse
Nom du champ Exemple
Slave Address 3B hex
Function 05 hex
Starting Address Hi 00 hex Starting Address Lo 02 hex No. of Points Hi 00 hex No. of Points Lo 6E hex
Error Check (CRC) —
Le point de consigne du seuil 1 est réglé à 00 6E hex ou 110 décimal.
Adr.
Reg Action 00
01 Code
02 Valeur HSP1 03 Valeur LSP1 04 Valeur HSP2 05 Valeur LSP2 06 Adr. esclave 07 Valeur TS1 08 Valeur TH1 09 Valeur TS2 10 Valeur TH2 Adr.
Coil Action 00
0102
0304 NO-NC 1
05 NO-NC 2
06 0708 0910 11 12 13 14 15
320124 ind a 11/2010
320124 ind a 11/2010
Baumer Bourdon-Haenni S.A.S. · 125, rue de la Marre · B.P. 70214 · 41103 Vendôme Cedex · France Tél. +33 (0)2 54 73 74 75 · Fax France +33 (0)2 54 73 74 74 · Fax Export +33 (0)2 54 73 74 73 sales.fr@baumerprocess.com · www.baumer.com