Notice - Baumer

Transcription

Notice - Baumer
FR
NOTICE D’INSTALLATION
MODBUS TEDM - ETTNM
Communication Modbus - Généralités
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érarchisé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
Station esclave A
Station esclave B
Station esclave C
Ex: station esclave = TEDM / ETTNM ...
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.
Echanges Modbus - Principe
Echange maître vers tous les esclaves
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
Question
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
Commande
Réponse
Station esclave A
Station esclave B
Station esclave C
Station esclave A
Station esclave B
Station esclave C
Trame d’échange question/réponse
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)
Question :
N° station
esclave
1 octet
Code fonction
+ bit d’erreur
1 octet
Information spécifique
concernant la demande
n octets
Mot de contrôle
2 octets
Réponse :
N° station
esclave
1 octet
Code fonction
+ bit d’erreur
1 octet
Données transmises
Mot de contrôle
n octets
2 octets
Code d’exception
Mot de contrôle
1 octet
2 octets
Réponse lors d’une erreur :
N° station
esclave
1 octet
Code fonction
+ bit d’erreur
1 octet
*MSB : Most Significant Bit
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
[email protected] · www.baumer.com
320124 ind a 11/2010
La question
Format général d’une trame
Deux types de codage peuvent être utilisés pour communiquer sur un réseau Modbus :
Trame Type ASCII :
Type ASCII - chaque octet composant une trame est codé avec 2 caractères ASCII
START
1 caractère
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.
Adresse
2 caractères
Fonction
2 caractères
Données
n caractères
LRC
2 caractères
END
2 caractères
Fonction
1 octet
Données
n octets
CRC 16
2 octets
END
Silence
Trame Type RTU :
START
1 octet
Le TEDM et le ETTNM utilise le codage type RTU pour communiquer sur le
réseau Modbus.
Adresse
1 octet
Type RTU
La taille maximale des données est de 256 octets. L’ensemble des informations contenues dans le message est exprimé en hexadécimal.
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.
L’esclave renvoie sa réponse ; il place sa propre adresse dans le champ adresse afin
que le maître puisse l’identifier.
Le champ de données est codé sur n mots en hexadécimal de 00 à FF, soit sur n octets.
Pour une réponse normale, l’esclave reprend le même code fonction que celui du
message envoyé par le maître.
Selon le code fonction, le champ de données contient diverses informations complémentaires permettant à l’esclave de décoder le message.
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.
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.
Support de transmission
Chaque octet composant un message est transmis en mode RTU de la manière suivante :
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’).
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.
Message du maître
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.
Délai mini de 3,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.
Message de l’esclave
Délai mini de 3,5 fois le temps
de transmission d’un octet
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.
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
Code
01
Fonction
Read Coils Status
03
Read Holding Register
05
06
Write Single Coil
Write Single Register
Action
Lecture de l’état des seuils 1 et 2 : ouvert ou fermé
Lecture de la configuration des seuils : Normalement Ouvert (NO) ou Normalement Fermé (NC)
Lecture de la position du point décimal (afficheur)
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
Ecriture de la configuration des seuils : NO ou NC
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)
320124 ind a 11/2010
Codes fonction - TEDM/ETTNM
Exemples de transmission
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.
Nom du champ
Slave Address
Function
Starting Address Hi
Starting Address Lo
No. of Points Hi
No. of Points Lo
Error Check (CRC)
Exemple
3B hex
01 hex
00 hex
00 hex
00 hex
10 hex
—
Exemple de réponse à la requête :
Réponse
Question
Exemple de requête pour lire les coils 16-01 de l’esclave 59 :
Nom du champ
Slave Address
Function
Byte Count
Data (Coils 08-01)
Data (Coils 16-09)
Error Check (CRC)
Exemple
3B hex
01 hex
02 hex
21 hex
00 hex
—
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.
Adr.
Coil
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
Action
Etat Seuil 1
Etat Seuil 2
NO-NC 1
NO-NC 2
Position
du
point
décimal
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.
Nom du champ
Slave Address
Function
Starting Address Hi
Starting Address Lo
No. of Points Hi
No. of Points Lo
Error Check (CRC)
Exemple
3B hex
03 hex
00 hex
00 hex
00 hex
01 hex
—
Exemple de réponse à la requête :
Réponse
Question
Exemple de requête pour lire le registre 1 (valeur mesure) de l’esclave 59 :
Nom du champ
Slave Address
Function
Byte Count
Data Hi (Register 1)
Data Lo (Register 1)
Error Check (CRC)
Exemple
3B hex
03 hex
02 hex
0A hex
2B hex
—
Pour le registre 1 : Le contenu donne pour valeur des
deux octets 0A 2B hex ou 2603 décimal.
Write Single Coil - code fonction 05
Adr.
Reg
00
01
02
03
04
05
06
07
08
09
10
Action
Valeur mesure
Code
Valeur HSP1
Valeur LSP1
Valeur HSP2
Valeur LSP2
Valeur TS1
Valeur TH1
Valeur TS2
Valeur TH2
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.
Exemple de requête pour forcer à 1 le coil 05 de l’esclave 59. le maître transmet
la donnée FF 00 :
Exemple de réponse à la requête :
Exemple
3B hex
05 hex
00 hex
04 hex
FF hex
00 hex
—
Nom du champ
Slave Address
Function
Starting Address Hi
Starting Address Lo
No. of Points Hi
No. of Points Lo
Error Check (CRC)
Exemple
3B hex
05 hex
00 hex
04 hex
FF hex
00 hex
—
Le seuil 1 est configuré en NO.
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.
Nom du champ
Slave Address
Function
Starting Address Hi
Starting Address Lo
No. of Points Hi
No. of Points Lo
Error Check (CRC)
Exemple
3B hex
06 hex
00 hex
02 hex
00 hex
6E hex
—
* code d’accès pour la configuration par la face avant du TEDM ou ETTNM.
Pour plus de renseignements sur le protocole Modbus : http://www.modbus.org/
Action
NO-NC 1
NO-NC 2
Exemple de réponse à la requête :
Réponse
Demande
Exemple de requête pour écrire le pt de consigne du seuil1 de l’esclave 59 :
Adr.
Coil
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
Nom du champ
Slave Address
Function
Starting Address Hi
Starting Address Lo
No. of Points Hi
No. of Points Lo
Error Check (CRC)
Exemple
3B hex
05 hex
00 hex
02 hex
00 hex
6E hex
—
Le point de consigne du seuil 1 est réglé à 00 6E hex ou 110
décimal.
Adr.
Reg
00
01
02
03
04
05
06
07
08
09
10
Action
Code
Valeur HSP1
Valeur LSP1
Valeur HSP2
Valeur LSP2
Adr. esclave
Valeur TS1
Valeur TH1
Valeur TS2
Valeur TH2
320124 ind a 11/2010
Nom du champ
Slave Address
Function
Starting Address Hi
Starting Address Lo
No. of Points Hi
No. of Points Lo
Error Check (CRC)
Réponse
L’esclave confime l’écriture en renvoyant le
même message.
Demande
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.
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
[email protected] · www.baumer.com