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