TSXSCG1131/1161 Coupleurs Modbus | Schneider Electric Modbus Mode d'emploi
Ajouter à Mes manuels80 Des pages
▼
Scroll to page 2
of
80
________________________________________________________ Sommaire général ___________________________________________________________________________ Chapitre 1 2 Modbus 3 1.1 1.2 1.3 4 5 6 4 5 6 Définition d'un protocole Présentation du protocole Modbus Principe des échanges Modbus Gestion de protocole 2.1 2.2 2.3 2.4 2.5 2.6 2.7 3 Page Images des objets Modbus Echanges maître esclave Echanges processeur-coupleur esclave Echanges processeur-coupleur maître Fonctions gérées par le coupleur Détail des fonctions principales Détail des fonctions complémentaires 7 8 9 11 13 15 16 17 Mise en oeuvre matérielle 21 3.1 3.2 3.3 22 22 23 Présentation physique Installation du coupleur Raccordements Programmation du coupleur en esclave 25 4.1 4.2 4.3 4.4 26 28 32 34 Configuration du coupleur Echanges coupleur-automate Requêtes disponibles Modes de marches Programmation du coupleur en maître 37 5.1 5.2 5.3 5.4 5.5 39 41 45 50 52 Configuration du coupleur Echanges par coupleur-automate : fonctions principales Echanges par coupleur-automate : fonctions complémentaires Requêtes disponibles Modes de marche Bits tout ou rien registres 53 6.1 6.2 54 56 Interface tout ou rien Interface registre ___________________________________________________________________________ 1 ________________________________________________________ ___________________________________________________________________________ Chapitre 7 8 9 Page Compléments de programmation 59 7.1 60 Signalisation des bits défauts Exemples de programmation 61 8.1 62 Programmation de l'esclave sur TSX 17-20 Annexes 69 9.1 9.2 9.3 9.4 70 71 73 74 Performances de l'esclave Performances du maître Fonction Jbus Trames Modbus (RTU) ___________________________________________________________________________ 2 ________________________________________________________ Modbus Chapitre 1 ___________________________________________________________________________ Sous-chapitre 1.1 1.2 1.3 Page Définition d'un protocole 4 1.1-1 Généralités 1.1-2 Trame Modbus / Jbus 4 4 Présentation du protocole Modbus 5 1.2-1 Principe 5 Principe des échanges Modbus 6 1.3-1 Principe 6 ___________________________________________________________________________ 3 1.1 Définition d’un protocole 1.1-1 Généralités L’échange de données entre systèmes informatiques, automates programmables et autres systèmes intelligents doit s’effectuer dans un langage commun. Ce langage doit être le plus simple possible et compris par chaque interlocuteur; néanmoins, chaque échange doit pouvoir être contrôlé afin d’assurer l’intégrité des transferts. Les variables échangées sont alors insérées dans une trame constituée généralement de la façon suivante : En tête “:” Adresse Requête Données Contrôle Fin Chaque protocole définit la présence, le format, le contenu des différents groupes de variables entourant la zone données. Cette structuration permet de définir le début des messages, la taille de ceux-ci, éventuellement le système auquel sont adressées les données, le type de fonction demandée, les variables elles-mêmes, un paramètre de contrôle et un code de fin, validant l’ensemble du message. Cette trame est différente par son contenu et sa forme pour chaque type de protocole. 1.1-2 Trame Modbus / Jbus En mode RTU, la trame définie pour le protocole Modbus ne comporte ni octet d’en tête de message, ni octet de fin de message. Sa définition est la suivante : Adresse Requête Données CRC 16 CRC 16 : Paramètre de contrôle polynomial (Cyclic Redundancy Check). En mode ASCII, la trame est complète et se définit de la façon suivante : En tête “:” Adresse Requête Données LRC Fin “CRLF” LRC : Paramètre de contrôle (Longitudinal Redundancy Check), CR : Retour chariot (Cariage Return), LF : Nouvelle Ligne (Line Feed). Protocole Jbus Le protocole Jbus utilise des fonctions identiques à celles de Modbus, ce qui permet avec ces fonctions communes de faire communiquer des équipements Modbus avec des équipements Jbus (pour plus de détails, se reporter en annexe 9.3). 4 Modbus 1 1.2 Présentation du protocole Modbus 1.2-1 Principe Le protocole Modbus est un protocole de dialogue créant une structure hiérarchisée (UN maître et plusieurs esclaves). Le protocole Modbus permet d’interroger depuis le maître, un ou plusieurs esclaves intelligents. Une liaison multipoints relie entre eux, maître et esclaves. Deux types de dialogue sont possibles entre maître et esclaves : • le maître parle à un esclave et attend sa réponse, • le maître parle à l’ensemble des esclaves sans attente de réponse (principe de la diffusion générale). Le maître gère les échanges et seul, en a l’initiative. Ce maître réitère la question lors d’un échange erroné et décrète l’esclave interrogé absent après une non réponse dans un temps enveloppe donné. Il ne peut y avoir sur la ligne qu’un seul équipement en train d’émettre. Aucun esclave ne peut de lui-même envoyer de message sans y avoir été invité. Maître Esclave i Esclave j Esclave k Le principe du dialogue maître esclave peut-être schématisé sous une forme successive de liaisons point à point. Le maître gère la position d’un commutateur fictif, assimilé au numéro du destinataire qui est sélectionné. Maître Esclave i Esclave k Esclave l Toute communication latérale (esclave à esclave) ne peut exister que si le logiciel application du maître a été conçu pour recevoir des données et les renvoyer d’un esclave à l’autre. 5 1.3 Principe des échanges Modbus 1.3-1 Principe Le protocole Modbus permet d’échanger des données (bits et mots) entre un maître et des esclaves et assure le contrôle des échanges. Par conséquent, dans chaque entité esclave, sont définies des zones de bits et de mots qui seront lues ou écrites par le maître. Le protocole Modbus étant défini, il faut associer à chaque objet (bit ou mot) une adresse Modbus pour y accéder. Un objet d’entrée peut être lu uniquement. Un objet de sortie peut être lu ou écrit. Esclave i Maître Table émission P r o g r a m m e U t i l i s a t e u r adressage Modbus Esclave j Bits d'entrée Bits de sortie Mots d'entrée Table réception Mots de sortie Esclave k 6 ________________________________________________________ Gestion de protocole Chapitre 2 ___________________________________________________________________________ Sous-chapître Page 2.1 Images des objets Modbus 8 2.2 Echanges maître esclave 9 2.2-1 Principe et contrôle des échanges 2.2-2 Surveillance de l'échange 2.2-3 Surveillance du maître 9 9 10 Echanges processeur coupleur esclave 11 2.3-1 Descriptions des échanges 2.3-2 Traitements coupleur et processeur 12 13 Echanges processeur coupleur maître 13 2.4-1 Description des échanges 2.4-2 Traitements coupleur et processeur 14 14 2.5 Fonctions gérées par le coupleur 15 2.6 Détail des fonctions principales 16 2.6-1 Lecture 2.6-2 Ecriture 16 16 Détail des fonctions complémentaires 17 2.3 2.4 2.7 ___________________________________________________________________________ 7 2.1 Images des objets Modbus Le protocole définit quatre types d’objets accessibles : • • • • bits d’entrée, bits de sortie, mots d’entrée, mots de sortie. Tout esclave raccordé sur une ligne Modbus définit un nombre d’objets de chaque type. A l’intérieur d’une même entité, tous les objets sont repérés par des adresses consécutives. Le coupleur TSX SCG 11. esclave convertit une adresse Modbus en une adresse mémoire dans le processeur de l’automate esclave. La table de correspondance est établie lors de la configuration du coupleur esclave. Tous les objets accessibles via Modbus sont localisés dans la zone Wi (mots internes) de l’automate. Objets bits Pour les objets bits, le coupleur esclave connaît l’adresse i du mot interne Wi contenant le premier bit défini en position 0 (le bit concerné a donc pour image Wi,0) et son adresse Modbus correspondante. L’adresse Modbus du premier bit configuré doit impérativement correspondre au bit de rang 0 d’un mot interne. Les autres bits sont consécutifs au premier. Exemple : bits d’entrée Adresse Modbus Adresse processeur Objet processeur Objet physique 0100 0101 … 0115 0116 50 50 … 50 51 W50,0 W50,1 … W50,F W51,0 TXT1,D T2,R … M3,S I10,4 Objets mots Pour les objets mots, le coupleur esclave connaît l’adresse j du premier mot interne Wj et son adresse Modbus correspondante. Tous les objets sont situés dans la zone mots internes de l’automate. Exemple : mots d’entrée Adresse Modbus Adresse processeur Objet processeur Objet physique 8000 8001 8002 … 200 201 202 … W200 W201 W202 … IW2,1 TXT,V W202 … 8 Gestion du protocole 2 2.2 Echanges maître esclave 2.2-1 Principe et contrôle des échanges Le maître, ou organe de supervision, a l’initiative des échanges. Ce maître va s’adresser à un esclave en lui fournissant quatre types d’informations : • • • • adresse de l’esclave, fonction demandée à l’esclave, zone donnée (variable en fonction de la requête), contrôle d’échange. Le maître de la liaison attend la réponse de l’esclave avant d’émettre le message suivant, évitant ainsi tout conflit sur la ligne. Ceci autorise donc un fonctionnement en half-duplex. Toute gestion d’échanges entre deux entités dialoguant par liaison série asynchrone, inclut évidemment des réponses d’exception lorsque sont apparus des défauts d’échange. Différents messages incohérents peuvent arriver au coupleur esclave. Dans ce cas, ce dernier répond sa non compréhension au maître qui prend ou non la décision de réitérer l’échange. Cette gestion des messages erronés est transparente pour le programme utilisateur de l’esclave, qui n’est pas informé des erreurs détectées et traitées par le coupleur. 2.2-2 Surveillance de l’esclave Maître Esclave D'autre part, le maître a accès à un certain nombre d'informations détenues et gérées par le coupleur de l’esclave. Le maître accède à ces données par des codes fonctions particuliers (mode diagnostic, lecture du compteur d’événements…) qui se limitent à des échanges maître, coupleur TSX SCG 11. esclave. 9 Le coupleur de l’esclave gère par compteurs ses échanges avec le maître. Sont mémorisés les nombres de messages : • • • • • reçus sur la ligne, reçus par le coupleur esclave avec erreur de checksum, émis avec code d’exception, reçus par le coupleur esclave, émis par le coupleur à son processeur sans réponse de ce dernier. Toutes ces variables sont accessibles par le maître de façon transparente pour l’utilisateur de l’esclave. Néanmoins, le programme utilisateur de l’automate esclave a également la possibilité de lire ces compteurs. 2.2-3 Surveillance du maître Maître Esclave Le coupleur maître gère par compteurs : • les échanges entre processeur et coupleur maître, • les échanges entre le maître et ses esclaves. Ces compteurs peuvent être lus par le programme utilisateur de l’automate maître par l’utilisation du mode message (bloc fonction texte). Les compteurs enregistrent les nombres suivants : • demandes processeur prises en compte, • demandes processeur refusées : Le coupleur maître examine la demande du processeur et émet un refus dans les cas suivants : - adresse esclave incorrecte, - numéro de fonction inconnu, - fonction interdite en diffusion générale, - nombre d’objets à accéder trop élevé, - longueur implicite de la demande processeur incorrecte. • réponses esclave reçues correctes, • réponses esclave reçues avec un code d’exception, 10 Gestion du protocole 2 • messages sans réponse de l’esclave (délai écoulé), • réponses esclave reçues avec erreur de checksum, • réponses esclave reçues incohérentes : Le coupleur maître examine le message reçu de l’esclave et le déclare incohérent lorsque : - le message reçu présente un problème de cohérence vis à vis de la demande émise à cet esclave (adresse esclave, numéro de fonction ou nombre d’objets différent), - la longueur implicite du message reçu est incorrecte. • messages réitérés : Le coupleur maître réitère un message à un esclave dans les cas suivants : - le message n’a pas eu de réponse (dans le délai configuré), - le message a été reçu avec une erreur de checksum, - le message reçu est incohérent, - le message comporte un défaut en réception. • abandons de réitérations, • délais d’attente de réponse arrivés à terme pendant la réception, • réponses esclave reçues avec défaut en réception. 2.3 Echanges processeur-coupleur esclave Maître Esclave Liaison asynchrone Le processeur esclave positionne le coupleur de liaison asynchrone TSX SCG 11. en attente de réception d’un message sur la ligne. Lorsqu’il reçoit un message, le coupleur l’analyse et transmet la demande du maître au processeur sous forme de requête. Le programme utilisateur effectue alors l’opération demandée (écriture de tables, transfert de tables…). Le traitement terminé, le programme demande l’envoi au coupleur des données à échanger et la mise en réception du coupleur après traitement de la requête. 11 De façon asynchrone, le coupleur répond au maître en lui envoyant les quatre types d’informations suivantes : • • • • numéro de l’esclave, type de fonction, zone données, contrôle d’échanges. Le coupleur se retrouve alors en attente de réception d’un nouveau message afin de recommencer le même cycle d’échange. 2.3-1 Description des échanges Les échanges entre le programme utilisateur et le coupleur TSX SCG 11. s’effectue par l’intermédiaire du mode message (table de mots de 16 bits). La programmation des échanges est réalisée à l’aide du bloc fonction texte. Elle nécessite quatre codes d’accès (ou requêtes). Le coupleur TSX SCG 11. n’utilise pas l’interface registre. Coupleur gestion de protocole TSX SCG Processeur automate objets physiques 12 programme utilisateur objets accessibles programme utilisateur interface standard Ligne Modbus traitement accès Modbus Gestion du protocole 2 2.3-2 Traitements coupleur et processeur Coupleur Le coupleur effectue les opérations suivantes : • réception et analyse des messages provenant du maître. • mise en forme des messages pour la compréhension du processeur : le traitement de l’accès aux données Modbus par le coupleur TSX SCG 11. consiste notamment à transcrire les adresses Modbus des objets à accéder en adresses internes à l’automate. • mise en forme de la réponse du processeur, et rajout du code de contrôle. • envoi du message au maître. Processeur Le programme utilisateur gère : • la prise en compte des demandes d’accès du module via l’interface message. • la réalisation de l’accès demandé dans la table d’objets accessibles. • éventuellement, les transferts entre la table d’objets accessibles et les objets physiques associés (valeurs de compteurs, temporisateurs, modules E/S…). 2.4 Echanges processeur-coupleur maître Maître Esclave Le processeur de l’automate a l’initiative des échanges. Il émet une requête à la voie 0 du coupleur de liaison asynchrone TSX SCG qui la prend en compte. Le coupleur émet un message à l’esclave concerné, comportant les quatre types d’informations suivantes : • • • • numéro de l’esclave, type de fonction, zone donnée, contrôle d’échange. 13 Le coupleur attend la réponse de l’esclave et transmet alors au processeur : • un compte-rendu d’exécution, • les données de l’esclave mises en forme. Le cycle d’échange entre processeur et coupleur est terminé. Le coupleur est à nouveau prêt à traiter une requête du processeur. 2.4-1 Description des échanges Le dialogue entre le processeur et le coupleur s’effectue par l’interface message. Le code requête est identique au code de la fonction Modbus. Les données échangées entre le processeur et le coupleur transitent par les tables d’émission et de réception associées au bloc texte. 2.4-2 Traitements coupleur et processeur Coupleur Le coupleur effectue les opérations suivantes : • contrôle de la validité de la requête processeur, • mise en forme du message à émettre à l’esclave, • envoi du message à l’esclave, et éventuellement réitération de ce message, • mise en forme de la réponse à fournir au processeur. Processeur Le programme utilisateur gère : • les informations nécessaires à l’échange, - le numéro de l’esclave, - le code fonction Modbus, - l’adresse Modbus des objets accédés, - les valeurs des objets à transférer, • la transmission des demandes d’accès au module par l’envoi d’un bloc texte. • le traitement de la réponse à la requête. 14 Gestion du protocole 2 2.5 Fonctions gérées par le coupleur Le coupleur TSX SCG 11. gère les fonctions Modbus dont la liste figure ci-dessous. Toutes les fonctions citées sont détaillées dans ce même document et sont les seules à être acceptées par le module. Toute autre requête sera rejetée, et la cause du rejet sera : “code fonction incorrect”. Dans le cas du coupleur maître, la requête “Modbus transparent” permet néanmoins de générer un numéro de fonction quelconque, compris entre 1 et 255. Dans ce cas, le programme utilisateur transmet au coupleur l’intégralité du message à transmettre, hormis le paramètre de contrôle rajouté par le coupleur. Parmi les fonctions Modbus, on distingue : • les fonctions principales qui permettent d’échanger un objet Modbus, • les fonctions complémentaires utilisées par le maître pour obtenir des informations sur ses esclaves et contrôler les échanges. Le module TSX SCG ne peut être utilisé qu’avec un automate TSX 17-20. Aussi une limitation apparait, due aux échanges par bloc texte (avec un maximum de 30 octets pour un automate TSX 17-20). Les échanges de bits ou de mots ont des valeurs maximales qui sont indiquées dans le tableau ci-dessous. La définition des fonctions (lecture, écriture…) s’entend vu du maître. Les fonctions notées “D” peuvent être utilisées en diffusion générale. Code 01 02 03 04 05 06 07 08 11 12 15 16 17 Nature des fonctions Lecture de N bits de sortie Lecture de N bits d'entrée Lecture de N mots de sortie Lecture de N mots d'entrée Ecriture d'un bit de sortie Ecriture d'un mot de sortie Lecture du status d'exception Diagnostic Lecture du compteur d'évènements Lecture évènements connexion Ecriture de N bits de sortie Ecriture de N mots de sortie Identification esclave D maxTSX 17/20 208 208 14 14 D D D D 144 10 15 2.6 Détail des fonctions principales 2.6-1 Lecture Lecture de N bits de sortie Code : 01 Cette fonction permet d’accéder à des bits de sortie (bits pouvant être lus ou écrits) définis dans la mémoire d’un esclave. Lecture de N bits d’entrée Code : 02 Cette fonction, identique à la précédente et possédant les mêmes limites, s’adresse aux bits d’entrée (bits que le maître ne peut que lire). Lecture de N mots de sortie Code : 03 Cette fonction permet la lecture de mots de sortie (mots pouvant être lus ou écrits) définis dans la mémoire d’un esclave. Lecture de N mots d’entrée Code : 04 Cette fonction, identique à la précédente possède les mêmes limites et s’adresse aux mots d’entrée (mots que le maître ne peut que lire). 2.6-2 Ecriture Ecriture d’un bit de sortie Code : 05 Cette fonction permet le positionnement à 0 ou 1 d’un bit de sortie (seuls accessibles en écriture) défini dans la mémoire d’un esclave. Ecriture d’un mot de sortie Code : 06 Cette fonction effectue l’écriture d’un mot de 16 bits de sortie (seuls accessibles en écriture) défini dans la mémoire d’un esclave. Ecriture de N bits de sortie Code : 15 Cette fonction permet au maître d’écrire des bits de sortie (bits pouvant être lus ou écrits) dans la mémoire d’un esclave. Ecriture de N mots de sortie Code : 16 Cette fonction permet au maître d’écrire des mots de sortie (mots pouvant être lus ou écrits) dans la mémoire d’un esclave. 16 Gestion du protocole 2 2.7 Détail des fonctions complémentaires Lecture du status d’exception Code : 07 Cette fonction donne accès à huit bits de status enregistrant certains événements chez un esclave. Dans le cas d’un automate TSX esclave, le status d’exception contient les poids forts du registre de sortie OWx,3. dont la définition des bits est laissée libre à l’utilisateur. Echo Code : 08/00 Cette fonction diagnostic demande à l’esclave interrogé de retourner intégralement le message envoyé par le maître. Reprise communication Code : 08/01 Cette fonction réalise la réinitialisation de la voie (suppression des messages en cours). La configuration de la voie est conservée. Lecture du registre diagnostic Code : 08/02 Cette fonction permet l’accès à un mot de 16 bits contenant des informations sur l’état de l’esclave. Dans le cas d’un automate TSX esclave, la structure du mot diagnostic est la suivante • bit 0 = repli PWF • bit 1 = non significatif • bit 2 = état LOM (esclave en mode écoute seule) • les autres bits sont non significatifs. Changement délimiteur ASCII Code : 08/03 En mode ASCII, un octet est échangé par deux caractères ASCII, représentant son codage en hexadécimal. Les messages successifs sont séparés par un caractère délimiteur, initialisé à H’0A’ (Line Feed). Ce caractère peut être changé par la fonction 08/03. Cette fonction n’est pas supportée par le coupleur maître. Passage en mode écoute Code : 08/04 Cette fonction force un esclave à passer en mode écoute seule (LOM). Dans ce mode, l’esclave enregistre les messages qui lui sont adressés mais n’émet jamais de réponse. Dans le cas d’un coupleur TSX esclave, le passage en mode écoute seule est signalé à son processeur par le bit 2 du registre IWx,1. Remise à zéro des compteurs Code : 08/0A Cette fonction effectue la remise à zéro de tous les compteurs d’un esclave, surveillant les échanges, ainsi que du registre diagnostic. Dans le cas d’un esclave TSX, le mot diagnostic n’est pas remis à zéro. 17 Nombre de messages vus sur la ligne Code : 08/0B Cette fonction permet l’accès à un compteur 16 bits (incrémentation de 0 à FFFF) totalisant le nombre de tous les messages vus sur la ligne et traités par l’esclave. Nombre d’erreurs de checksum Code : 08/0C Cette fonction permet l’accès à un compteur 16 bits, totalisant le nombre de messages reçus par l’esclave avec une erreur de checksum. Nombre de réponses d’exception Code : 08/0D Cette fonction permet l’accès à un compteur 16 bits, totalisant le nombre de réponses d’exception émises par le coupleur esclave vers le maître (après réception d’un message dont le contenu est incorrect). Nombre de messages adressés à l’esclave Code : 08/0E Cette fonction permet l’accès à un compteur 16 bits, totalisant le nombre de messages adressés à l’esclave, quelle que soit leur nature. Nombre de non réponses du processeur esclave Code : 08/0F Cette fonction permet l’accès à un compteur 16 bits, totalisant le nombre de messages émis par le coupleur esclave à son processeur et restés sans réponse de celui-ci. Lecture du compteur d’événements Code : 11 Cette fonction permet de lire 2 mots de 16 bits : • un status, • un compteur d’événements. Dans le cas d’un automate TSX esclave, le status est toujours nul. Le compteur d’événements est incrémenté à chaque réception de message correct (forme et contenu) sauf pour les réponses d’exception et les accès aux compteurs. Lecture événements connexion Code : 12 Cette fonction permet d’accéder aux informations suivantes d’un esclave : • mot status et compteur d’événements (identiques à la fonction 11). • nombre de messages vus sur la ligne et traités par l’esclave (identique à la fonction 08 0B). • contenu du buffer de trace (30 octets au maximum). Cas de l’automate TSX esclave : Le buffer de trace contient au maximum 30 octets (ou bien le nombre d’octets mis à jour). L’octet le plus récemment reçu est le premier transmis, le plus ancien est le dernier transmis (LIFO). 18 Gestion du protocole 2 Les octets sont de quatre types : • Réception esclave (mis à jour dès réception d’un message et avant traitement de celui ci). 7 6 5 4 3 2 1 0 1 X X 0 0 0 X 0 1 si erreur de communication 1 si état écoute seule (LOM) 1 si message en cours en diffusion générale • Emission esclave (mis à jour à la fin de l’émission d’un message ou du traitement d’un message dans le cas d’une écoute seule ou d’une diffusion générale). 7 6 5 4 3 2 1 0 0 1 X 0 0 0 X X 1 si code exception 1,2 ou 3 1 si code exception 4 1 si état LOM • Entrée mode écoute (valeur hexadécimale H’20'). • Reprise communication (valeur hexadécimale H’xx’). Identification de l’esclave Code : 17 Cette fonction permet au maître d’obtenir d’un esclave les informations : • identificateur esclave, • état de fonctionnement, • liste d’informations relatives au status et à la configuration de l’esclave. Dans le cas d’un automate TSX esclave, la réponse comprend : • le type d’automate connecté : - valeur H’17' pour un TSX 17-20. • l’état de fonctionnement : - valeur H’00' pour PWF. - valeur H’FF’ sinon. • la liste des objets Modbus configurés (8 mots) : - nombre de bits de sortie, - adresse Modbus du premier bit de sortie, - nombre de bits d’entrée, - adresse Modbus du premier bit d’entrée, - nombre de mots de sortie, - adresse Modbus du premier mot de sortie, - nombre de mots d’entrée, - adresse Modbus du premier mot d’entrée. 19 20 ________________________________________________________ Mise en œuvre matérielle Chapitre 3 ___________________________________________________________________________ Sous-chapître Page 3.1 Présentation physique 22 3.2 Installation du coupleur 22 3.3 Raccordements 23 ___________________________________________________________________________ 21 3.1 Présentation physique Le coupleur TSX SCG 1131 ou TSX SCG 1161 se présente sous la forme d’un boîtier, comprenant : 1 2 Une borne de mise à la terre, 1 Un connecteur 15 points pour raccordement à la liaison Modbus 3 2 Deux voyants de signalisation : • un voyant vert RUN (module sous tension, en état de fonctionnement), • un voyant rouge I/O (défaut du bus d’E/S). Les voyants NET et ADR ne sont pas utilisés en protocole Modbus, 4 3 Un connecteur 9 points et son câble pour raccordement au module précédent (bus TSX 17), 5 5 Un connecteur 9 points pour raccordement au module suivant (bus TSX 17). 4 Code de configuration du module : 63. 3.2 Installation du coupleur Le coupleur TSX SCG 11 ne peut être utilisé qu’avec un automate TSX 17-20, équipé d’une cartouche micro-logicielle TSX P 17 20 FC (sans horodateur) ou FD (avec horodateur). Le raccordement du coupleur à l’automate de base ou au bloc d’extension précédent (raccordement sur le bus) s’effectue par le câble intégré au coupleur. De ce fait le coupleur est toujours positionné à droite de ces éléments. Il peut être installé indifféremment en première, deuxième ou troisième extension. Au maximum deux coupleurs (TSX SCG 1131 ou TSX SCG 1161) peuvent être raccordés à un même automate TSX 17-20. 0 1 2 3 Le dernier bloc ou module d’extension d’une configuration doit être équipé sur son connecteur pour raccordement au module suivant, d’un adaptateur de ligne. Cet adaptateur est fourni séparément sous la référence TSX 17 ACC10. 22 Mise en œuvre matérielle 3 3.3 Raccordements Raccordement TSX SCG 1131 Ce coupleur permet de réaliser une liaison conforme à la norme RS 232C, étendue au fonctionnement avec modem (9 signaux). Le raccordement s’effectue par le connecteur femelle 15 points, situé sur la partie supérieure du coupleur. Le câblage de ce connecteur est le suivant : RXD TXD RTS CTS RI DTR DSR RLSD DSRS : : : : : : : : : réception de données (3) émission de données (2) demande pour émettre (4) prêt à émettre (5) indication d’appel (10) connecter le poste de données (9) poste de données prêt (6) détection de la porteuse (8) sélection de début binaire (11) TXD RXD RTS CTS DSR GND RLSD 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 DTR RI DSRS Pour plus de détails, se reporter au manuel TSX SCG 113 liaison asynchrone chapitre 5.2. Raccordement TSX SCG 1161 Le coupleur permet de réaliser une liaison multipoint RS 485. Il comporte un circuit d’émission et un circuit de réception de signaux différentiels. Le câblage du connecteur femelle 15 points, situé sur la partie supérieure du coupleur est le suivant : GND D(A) 0V 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 D(B) 0V 23 24 ________________________________________________________ Programmation du coupleur en esclave Chapitre 4 ___________________________________________________________________________ Sous-chapître 4.1 4.2 Page Configuration du coupleur 26 4.1-1 Définition de la table 4.1-2 Définition des paramètres 26 27 Echanges coupleur-automate 28 4.2-1 4.2-2 4.2-3 4.2-4 4.2-5 4.2-6 28 28 29 30 30 31 Description des échanges Lecture de N mots Ecriture de N mots Lecture de N bits Ecriture de N bits Exemples 4.3 Requêtes disponibles 32 4.4 Modes de marches 34 4.4-1 Graphe général de fonctionnement du coupleur 4.4-2 Comportement du coupleur aux coupures et reprises secteur 34 35 ___________________________________________________________________________ 25 4.1 Configuration du coupleur Toutes les informations de configuration du coupleur sont transmises du processeur au coupleur par l’intermédiaire de bloc fonction texte. Le coupleur n’ayant pas de mémoire sauvegardée, sa configuration est perdue sur chaque disparition de la tension secteur. Il est donc nécessaire d’effectuer l’envoi de la requête écriture configuration à chaque reprise secteur (SY0, SY1, IWx,1,F). 4.1-1 Définition de la table La structure de la table à transmettre au coupleur est la suivante. Elle est constituée de 15 mots (30 octets) pouvant être définis dans l’automate en zone mémoire W ou en zone CW. Les trois premiers mots sont codés en BCD (Binary Coded Decimal). Tous les autres sont des valeurs binaires dont les 16 bits sont significatifs. F C Type fonction : 2 B 8 Nombre bits 7 4 3 Parité 0 Bits de stop Vitesse de transmission - Bauds Réservé Numéro de la station Adresse physique du premier mot de la zone bits de sortie Nombre de bits de sortie Adresse Modbus correspondante du premier bit Adresse physique du premier mot de la zone bits d'entrée Nombre de bits d'entrée Adresse Modbus correspondante du premier bit Adresse physique du premier mot de sortie Nombre de mots de sortie Adresse Modbus correspondante du premier mot Adresse physique du premier mot d'entrée Nombre de mots d'entrée Adresse Modbus correspondante du premier mot 26 Programmation du coupleur en esclave 4 4.1-2 Définition des paramètres Type de fonction paramètre spécifiant le mode de fonctionnement de la voie. Seul le traitement du protocole Modbus (esclave et maître) est défini dans le présent document. 1 = chaîne de caractères Full duplex 2 = protocole Modbus esclave Nombre de bits définit le format des caractères échangés sur la ligne. 7 = transmission ASCII 8 = transmission RTU Parité indique l’adjonction ou non d’un bit contrôlant une parité paire ou impaire. 0 = pas de parité 1 = parité impaire 2 = parité paire Nombre de stops définit le nombre de bits de stops utilisés pour délimiter un caractère. 1 = un bit de stop 2 = deux bits de stop Important Les trois paramètres précédents définissent le format de la transmission qui est lié aux possibilités de l’UART du coupleur TSX SCG. Les huit possibilités décrites cidessous sont offertes à l’exclusion de toute autre. La longueur des données (7 ou 8 bits) définit implicitement le mode ASCII ou RTU. Mode ASCII • 7 bits + parité paire + 1 stop • 7 bits + parité paire + 2 stops • 7 bits + parité impaire + 1 stop • 7 bits + parité impaire + 2 stops Vitesse de la transmission Le codage de la vitesse de transmission sur la ligne s’effectue sur 4 chiffres en BCD (exception faite pour la vitesse 19200 bauds qui sera codée H’1920'). Les possibilités ci-contre sont offertes. Mode RTU 8 bits + parité paire + 1 stop 8 bits + parité impaire + 1 stop 8 bits + 1 stop 8 bits + 2 stops 19200 - 9600 - 4800 - 2400 1200 - 600 - 300 - 150. 27 Numéro de la station Modbus permet au module de reconnaître qu’un message lui est adressé. Cette adresse, codée sur 3 chiffres en BCD prend une valeur comprise entre 1 et 247. B’001' à B’247' Pour diffuser un message à tous les esclaves, l’adresse 0 est utilisée (diffusion générale). Tables de correspondance Adresses automate - Adresses Modbus Quatre tables de correspondance sont définies pour les quatre types d’objets accessibles suivants : • bits de sortie, • bits d’entrée, • mots de sortie, • mots d’entrée. Chaque table est constituée de 3 paramètres (chaque paramètre est codé sur un mot) définissant : • l’adresse physique du premier objet dans la mémoire automate. La zone concernée est obligatoirement située dans les mots internes. Exemple : l’adresse W125 est représentée par la valeur binaire 125, • le nombre total d’objets utilisés, • l’adresse Modbus correspondante du premier objet. Cette adresse doit correspondre à l’adresse émise sur la ligne par le maître pour accéder au premier objet dans la mémoire automate (adresse physique). 4.2 Echanges coupleur-automate 4.2-1 Description des échanges Les transferts d’informations entre le coupleur et la mémoire de l’automate sont effectués sous forme de messages émis et reçus par bloc texte. A l’initialisation des échanges, le programme utilisateur émet une requête vers le coupleur en utilisant un bloc texte en “exchange”. Ceci positionne le coupleur en réception des messages Modbus émis par le maître sur la ligne. Un cycle d’échange entre processeur et coupleur de l’esclave, nécessite les étapes suivantes : 28 Programmation du coupleur en esclave 4 Etape 1 Dès réception d’un message Modbus, analysé et reconnu correct, le coupleur interprète la fonction demandée par le maître. Il transmet alors au programme utilisateur dans la table de réception du bloc texte, le code d’accès ainsi que les informations à traiter par le processeur. Quatre codes d’accès sont possibles : • lecture de N mots code d’accès 01 (fonctions Modbus 03 et 04) • écriture de N mots code d’accès 02 (fonctions Modbus 06 et 16) • lecture de N bits code d’accès 03 (fonctions Modbus 01 et 02) • écriture de N bits code d’accès 04 (fonctions Modbus 05 et 15). La définition des codes lecture et écriture s’entend vu du maître. Etape 2 Le programme utilisateur prend en compte et réalise l’accès aux données demandé par le coupleur. Etape 3 Le programme utilisateur lance un bloc texte en émission/réception avec les paramètres suivants : • pour une lecture : les valeurs demandées par le maître sous le code requête lecture Modbus (TXTi,C = H’80'). • pour une écriture : le code requête fin d’écriture Modbus (TXTi,C = H’81') sans aucune donnée. Etape 4 Le coupleur traite la requête émise par le programme utilisateur à l’étape précédente. Il met en forme et envoie la réponse au maître. Le bloc texte se retrouve en attente de réception par le coupleur d’un nouveau message Modbus. 4.2-2 Lecture de N mots Table de réception Code d'accès = 1 Adresse premier mot à lire Nombre de mots à lire Table d'émission Valeur premier mot adressé Valeur second mot adressé Etc … Variables Code requête envoyé au coupleur : TXTi,C = H’80' Longueur de la table d’émission : TXTi,L = 2 x (nombre de mots à lire) 29 4.2-3 Ecriture de N mots Table de réception Code d'accés = 2 Adresse du premier mot à écrire Nombre de mots à écrire Valeur du premier mot Valeur du second mot Valeur du troisième mot Table d'émission vide Variables Code requête envoyé au coupleur : TXTi,C = H’81' (fin d’écriture) Longueur de la table d’émission : TXTi,L = 0 4.2-4 Lecture de N bits Table de réception Code d'accès = 3 Adresse premier mots à lire Nombre de mots à lire Table d'émission Valeur premier mot adressé Valeur second mot adressé Etc … Variables Code requête envoyé au coupleur : TXTi,C = H’80' Longueur de la table d’émission : TXTi,L = 2 x (nbre de mots à lire). 4.2-5 Ecriture de N bits Table de réception Code d'accés = 4 Adresse du premier mot à écrire Nombre de mots à écrire Masque du premier mot = MSQ1 Masque du dernier mot = MSQ2 Valeur du premier mot Valeur du second mot Etc … Variables Code requête envoyé au coupleur : TXTi,C = H’81' Longueur de la table d’émission : TXTi,L = 0 30 Table d'émission vide Programmation du coupleur en esclave 4 La chaîne de bits que le maître désire écrire se situe dans une suite de mots, dont le premier mot (qui contient les premiers bits) est défini par son adresse. Avant d’être écrite, la chaîne de bits doit d’abord être remise à zéro, et ensuite un OU logique doit être effectué entre anciens et nouveaux tableaux. Deux masques MSQ1 et MSQ2 sont définis en début et fin de tableau de mots afin de cerner la zone de bits accédée. Wj Wj-1 Wi+1 Wi Chaîne de bits à écrire MSQ1 et MSQ2 sont utilisés avec un ET logique pour remettre à zéro la chaîne de bits MSQ1 = L' 0 0 0 0 … 0 111' bits accédés dans le premier mot (Wi) MSQ2 = L' 1 1 1 … 1 0 …00' bits accédés dans le dernier mot (Wj) 4.2-6 Exemples Lecture des mots W 28 à W 30 Table de réception Table d’émission Wi =1 Wi + 1 = 28 Wi + 2 = 3 Wj = W 28 Wj + 1 = W 29 Wj + 2 = W 30 Ecriture des mots W 00 à la valeur 125 et W 01 à la valeur - 79 Table de réception Wi =2 Wi + 1 = 00 Wi + 2 = 2 Wi + 3 = 125 Wi + 4 = -79 Lecture des bits W 10,A à W 11,2 Table de réception Table d’émission Wi =3 Wi + 1 = 10 Wi + 2 = 2 Wj = W 10 Wj + 1 = W 11 31 Ecriture des bits W 50,B à W 51,4 à L’11010 00101' Table de réception Wi = 4 Wi + 1 = 50 Wi + 2 = 2 Wi + 3 = H’07FF’ = Wi + 4 = H’FFE0' = Wi + 5 = H’2800' = Wi + 6 = H’001A’ = L’0000 0111 1111 1111' L’1111 1111 1110 0000' L’0010 1000 0000 0000' L’0000 0000 0001 1010' Traitement du programme utilisateur Wi + 3 ➝ W 50 (mise à zéro des bits accédés) Wi + 4 ➝ W 51 (mise à zéro des bits accédés) Wi + 5 ➝ W 50 (chargement des nouvelles valeurs) Wi + 6 ➝ W 51 (chargement des nouvelles valeurs). W 50 W 51 W 50 W 51 AND AND OR OR 4.3 Requêtes disponibles Ecriture configuration Code requête TXTi,C = H’40' Compte-rendu positif TXTi,R = H’FE’ Compte-rendu négatif TXTi,R = H’FD’ Cette requête permet l’envoi de la configuration. Lecture configuration Code requête Compte-rendu positif Compte-rendu négatif TXTi,C = H’41' TXTi,R = H’71' TXTi,R = H’FD’ Cette requête permet de relire la configuration envoyée à la voie. Le bloc texte utilisé doit posséder une table de réception de taille égale à 30 octets pour contenir les variables de configuration. 32 Programmation du coupleur en esclave 4 Lecture compteurs Code requête Compte-rendu positif Compte-rendu négatif TXTi,C = H’70' TXTi,R = H’A0' TXTi,R = H’FD’ Cette requête permet au processeur de lire les compteurs de surveillance des échanges. Le buffer de réception contient les 7 mots suivants : • Wi = nombre de messages reçus sur la ligne • Wi + 1 = nombre de messages reçus par le coupleur avec erreur de checksum, • Wi + 2 = nombre de messages émis avec code d’exception, • Wi + 3 = nombre de messages reçus par le coupleur, • Wi + 4 = nombre d’accès au processeur restés sans réponse, • Wi + 5 = nombre d’événements, • Wi + 6 = registre diagnostic. Lecture Modbus Code requête Compte-rendu positif Compte-rendu négatif TXTi,C = H’80' TXTi,R = H’B0' TXTi,R = H’FD» Cette requête a deux utilisations précises : • voie à l’état STOP : la requête permet de passer la voie à l’état RUN et de mettre le coupleur en attente d’un message sur la ligne, si l’ordre RUN voie est présent (OWx1,1 = 1). Le compte-rendu négatif apparait lorsque cette requête est envoyée alors que l’ordre RUN voie est absent. • voie à l’état RUN : la requête constitue la réponse à une demande du maître de lecture de N bits ou de N mots. Fin d’écriture Modbus Code requête Compte-rendu positif TXTi,C = H’81' TXTi,V = H’B0 C’est la réponse à une demande du maître d’écriture de N bits ou N mots. 33 4.4 Modes de marche 4.4-1 Graphe général de fonctionnement du coupleur Le graphe d’état représenté ci-dessous décrit le fonctionnement du coupleur TSX SCG 11. dont la configuration est le protocole Modbus esclave. Important La gestion des messages Modbus n’est prise en compte qu’après la demande de mise en RUN de la voie (bit OWx,1,1), puis de l’envoi de la requête “lecture Modbus”. Alors le bit RUN associé à la voie passe à l’état un (bit IWx,1,1). Init voie OK Voie non configurée configuration OK Voie configurée ordre RUN et requête lecture Modbus Voie en RUN attente requète Réception message Modbus Ordre Stop Analyse message Message OK transfert UC Attente réponse UC Réponse UC Ordre Stop Mise en forme réponse émission réponse 34 Message OK Programmation du coupleur en esclave 4 4.4-2 Comportement du coupleur aux coupures et reprises secteur Le coupleur TSX SCG 11. n’a pas de mémoire sauvegardée, il perd sa configuration lorsqu’il n’est plus alimenté par l’automate. Il est donc nécessaire de reconfigurer le coupleur : • sur reprise à froid (SY0 = 1). • sur reprise à chaud (SY1 = 1) lorsque la réserve d’énergie de l’alimentation a été épuisée. Reprise secteur A chaque mise sous tension le bit IWx,0,8 (Défaut bloquant) est forcé à 1 par l’automate. Après environ 300 ms, les interfaces TOR, registre et message devenant actifs dans le coupleur, celui-ci lance ses auto-tests (IWx,0,8 = 0 et IW x,0,9 = 1). En fin d’auto-tests, dont la durée est environ 1s, les bits Module disponible (IWx,0,3) et Repli PWF (IWx,1,F) sont mis à 1 pour indiquer que le coupleur est accessible en mode message. L’acquittement du bit PWF est possible, mais non obligatoire. IWx,0,3 IWx,0,8 IWx,0,9 IWx,0,F Mise sous tension (Initialisation) Auto-tests Coupleur disponible Conseil Les alimentations 12V module et 5V automate peuvent avoir des comportements différents aux coupures secteur, provoquant une perte de la configuration alors que les bits SY0 et SY1 n’ont pas changé d’état. Pour cette raison il est préférable de tester en plus des bits SY0 et SY1, le bit IWx,1,F (Repli PWF). 35 36 ________________________________________________________ Programmation du coupleur en maître Chapitre 5 ___________________________________________________________________________ Sous-chapitre Page ______________________________________________________________________________________ 5.1 5.2 5.3 Configuration du coupleur 39 5.1-1 Définition de la table 5.1-2 Définition des paramètres 39 39 Echanges par coupleur-automate : fonctions principales 41 5.2-1 5.2-2 5.2-3 5.2-4 5.2-5 5.2-6 5.2-7 5.2-8 41 41 42 42 42 43 44 44 Description des échanges Lecture de N bits réception de sortie - Lecture de N bits d’entrée Lecture de N mots de sortie - Lecture de N mots d'entrée Ecriture d'un bit de sortie Ecriture d'un mot de sortie Ecriture de N bits de sortie Ecriture de N mots de sortie Exemples Echanges par coupleur-automate : fonctions complémentaires 45 5.3-1 5.3-2 5.3-3 5.3-4 5.3-5 5.3-6 5.3-7 5.3-8 5.3-9 5.3-10 5.3-11 5.3-12 5.3.13 5.3-14 45 45 46 46 46 47 47 47 48 48 48 49 49 49 Lecture du status d'exception Echo Reprise communication Lecture du registre diagnostic Passage en mode écoute Remise à zéro des compteurs Lecture de nombre de messages reçus sur la ligne Lecture du nombre d'erreurs de type checksum Lecture du nombre de réponses d'exception Lecture du nombre de messages adresses à l'esclave Lecture du nombre de non réponse du processeur esclave Lecture du compteur d'évènements Lecture des évènements de connexion Identification de l'esclave ___________________________________________________________________________ 37 ___________________________________________________________________________ ___________________________________________________________________________ Sous-chapitre Page 5.4 Requêtes disponibles 50 5.5 Modes de marche 52 5.5-1 Graphe général de fonctionnement du compteur 5.5-2 Comportement du compteur sur coupures et reprises secteur 52 52 ___________________________________________________________________________ 38 Programmation du coupleur en maître 5 5.1 Configuration du coupleur Toutes les informations de configuration du coupleur sont transmises du processeur au coupleur par l’intermédiaire de bloc fonction texte. La table de configuration est constituée de 4 mots (8 octets) pouvant être définis dans l’automate en zone mémoire W ou en zone CW. 5.1-1 Définition de la table F Wi C Type fonction B 8 Nombre bits 7 4 Parité Wi + 1 Vitesse de transmission - Bauds Wi + 2 Délai d'attente de réponse Wi + 3 0 0 0 3 0 Bits de stop Réitération Les trois premiers mots définis dans la table de configuration sont codés en BCD (Binary Coded Decimal). 5.1-2 Définition des paramètres Type de fonction paramètre spécifiant le mode de fonctionnement de la voie. Seul le traitement du protocole Modbus (esclave et maître) est défini dans le présent document. 4 = protocole Modbus maître Nombre de bits définit le format des caractères échangés sur la ligne 7 = transmission ASCII 8 = transmission RTU Parité indique l’adjonction ou non d’un bit contrôlant une parité paire ou impaire. 0 = pas de parité 1 = parité impaire 2 = parité paire Nombre de stops définit le nombre de bits de stops utilisés pour délimiter un caractère 1 = un bit de stop 2 = deux bits de stop 39 Important Les trois paramètres précédents définissent le format de la transmission qui est liée aux possibilités de l’UART du coupleur TSX SCG. Les huit possibilités décrites ci-dessous sont offertes à l’exclusion de toute autre. La longueur des données (7 ou 8 bits) définit implicitement le mode ASCII ou RTU). Mode ASCII Mode RTU • • • • • 8 bits + parité paire + 1 stop • 8 bits + parité impaire + 1 stop • 8 bits + 1 stop • 8 bits + 2 stops 7 bits + parité paire + 1 stop 7 bits + parité paire + 2 stops 7 bits + parité impaire + 1 stop 7 bits + parité impaire + 2 stops Vitesse de transmission Le codage de la vitesse de transmission sur la ligne s’effectue sur 4 chiffres en BCD (exception faite pour la vitesse 19200 bauds qui sera codée H’1920'). Les possibilités ci-contre sont offertes. 19200 - 9600 - 4800 - 2400 1200 - 600 - 300 - 150 Délai d’attente de réponse Temps au bout duquel le coupleur TSX SCG 11. maître estime que l’esclave n’a pas reçu la demande émise. La valeur de ce temps doit toujours être supérieure au maximum des temps de réponse des différents esclaves connectés. La valeur est codée en BCD sur un mot. Elle fixe l’intervalle de temps de 20 ms à 99,99s (1 minute et 40 secondes). (les valeurs B’0000' , B’0001' et B’0002' fixent le temps à 20 ms). B'0000' à B'9999' incréments de base de temps (10 ms). Nombre de réitérations Précise au coupleur maître le nombre maximum de tentatives supplémentaires d’envoi d’une demande restée sans réponse, ou ayant occasionné une réponse incorrectement reçue. Lorsque ce nombre est nul, le coupleur n’effectue qu’un seul essai d’envoi. Chaque nouvelle demande se fait après écoulement du délai d’attente précédemment cité. 40 B'0' à B'9' Programmation du coupleur en maître 5 5.2 Echanges coupleur-automate : fonctions principales 5.2-1 Description des échanges Les transferts d’information entre la mémoire de l’automate et le coupleur sont effectués sous forme de messages véhiculés par bloc texte. Les requêtes adressées au coupleur sont codées dans la variable TXTi,C du bloc fonction texte, et ont le même numéro que la fonction Modbus considérée. Le programme utilisateur positionne les paramètres associés à chaque requête dans la table d’émission du bloc fonction texte : • le numéro de l’esclave destinataire, • l’adresse mémoire Modbus des objets à traiter, • le nombre d’objets, • etc… Après traitement de la réponse de l’esclave, le coupleur complète la table de réception du bloc texte avec les informations nécessaires pour l’interprétation de la requête par le programme utilisateur. Seules les fonctions Modbus principales, qui permettent d’échanger un objet Modbus, sont décrites ci-dessous. 5.2-2 Lecture de N bits réception de sortie - Lecture de N bits d’entrée Table d'émission Numéro de l'esclave Adresse Modbus du 1er bit à lire Nombre de bits à lire Table de réception Nombre de mots lus Masque du dernier mot = MSQ Valeur du premier mot Valeur du second mot Etc … Variables Code requête envoyé au coupleur : TXTi,C = Longueur de la table d’émission : TXTi,L = H’01' (bits de sortie) H’02' (bits d’entrée) 6 Le premier bit de la chaîne de bits à lire par le maître correspond toujours au bit de poids le plus faible du premier mot. Le masque du dernier mot permet d’identifier les derniers bits significatifs de la chaîne de bits. MSQ = L' 1 1 1 1 … 1 0 …00' bits accédés dans le dernier mot 41 5.2-3 Lecture de N mots de sortie - Lecture de N mots d’entrée Table d'émission Numéro de l'esclave Adresse Modbus du 1er mot à lire Nombre de mots à lire Table de réception Nombre de mots lus Valeur du premier mot Valeur du second mot Etc … Variables Code requête envoyé au coupleur : Longueur de la table d’émission : TXTi,C = H’03' (mots de sortie) H’04' (mots d’entrée) TXTi,L = 6 5.2-4 Ecriture d’un bit de sortie Table d'émission Numéro de l'esclave Adresse Modbus du bit de sortie Valeur à écrire Table de réception vide La valeur à écrire est égale à : • H’0000', pour écrire le bit à zéro, • H’00FF’, pour écrire le bit à un. Variables Code requête envoyé au coupleur : Longueur de la table d’émission : TXTi,C = H’05' TXTi,L = 6 5.2-5 Ecriture d’un mot de sortie Table d'émission Numéro de l'esclave Adresse Modbus du mot de sortie Valeur à écrire Table de réception vide Variables Code requête envoyé au coupleur : Longueur de la table d’émission : 42 TXTi,C = H’06' TXTi,L = 6 Programmation du coupleur en maître 5 5.2-6 Ecriture de N bits de sortie Table d'émission Numéro de l'esclave Adresse Modbus du 1er bit à écrire Nombre de mots Masque du premier mot = MSQ1 Masque du dernier mot = MSQ2 Valeur du premier mot Valeur du second mot Etc … Table de réception vide Variables La chaîne de bits que le maître désire écrire se situe dans une suite de mots, dont le premier mot (qui contient les premiers bits) est défini par son adresse. Avant d’être écrite, la chaîne de bits doit d’abord être remise à zéro, et ensuite un OU logique doit être effectué entre anciens et nouveaux tableaux. Wj Wj-1 Wi+1 Wi Chaîne de bits à écrire MSQ1 = L' 0 0 0 0 … 0 111' bits accédés dans le premier mot (Wi) MSQ2 = L' 1 1 1 … 1 0 …00' bits accédés dans le dernier mot (Wj) MSQ1 et MSQ2 sont utilisés par le coupleur pour définir le nombre de bits à écrire et recaler la chaîne de bits à écrire sur le premier bit, défini par son adresse Modbus. Variables Code requête envoyé au coupleur : Longueur de la table d'émission : TXTi,C = H'0F' TXTi,L = 10 + 2 x (nombre de mots à écrire) 43 5.2-7 Ecriture de N mots de sortie Table d'émission Numéro de l'esclave Adresse Modbus du premier mot à écrire Nombre de mots à écrire Valeur du premier mot Valeur du second mot Etc … Table de réception vide Variables Code requête envoyé au coupleur : Longueur de la table d'émission : TXTi,C = H'10' TXTi,L = 6 + 2 x (nombre de mots à écrire) 5.2-8 Exemples • Lecture des mots d’entrée d’adresse Modbus 8100 et 8101 de l’esclave 32. Table d’émission Wi = 32 Wi + 1 = 8100 Wi + 2 = 2 Table de réception Wj =2 Wj + 1 = objet esclave d’adresse Modbus 8100 Wj + 2 = objet esclave d’adresse Modbus 8101 • Ecriture des mots de sortie d’adresse Modbus 4105, 4106 et 4107 de l’esclave 45 avec les valeurs 38, -342 et 2154. Table d’émission Wi = 45 Wi + 1 = 4105 Wi + 2 = 3 Wi + 3 = 38 Wi + 4 = -342 Wi + 5 = 2154 • Lecture de 18 bits de sortie, dont le premier a pour adresse Modbus 202, de l’esclave 228. Table d’émission Table de réception Wi = 228 Wi + 1 = 202 Wi + 2 = 18 Wj =2 Wj + 1 = H’FFFC’ Wj + 2 = bits esclave d’adresse Modbus 202 à 217 Wj + 3 = bits esclave d’adresse Modbus 218 à 233 44 Programmation du coupleur en maître 5 • Ecriture de 12 bits de sortie, dont le premier a pour adresse Modbus 118, de l’esclave 191. On supposera que les 12 bits à écrire sont les bits W50,E à W51,9 du processeur maître. Table d’émission Wi = 191 Wi + 1 = 118 Wi + 2 = 2 Wi + 3 = H’3FFF’ = L’0011111111111111' Wi + 4 = H’FC00' = L’1111110000000000' Wi + 5 = W50 Wi + 6 = W51 5.3 Echanges coupleur-automate : fonctions complémentaires 5.3-1 Lecture du status d’exception Table d'émission Numéro de l'esclave Table de réception Status d'exception de l'esclave Variables Code requête envoyé au coupleur : Longueur de la table d’émission : TXTi,C = H’07' TXTi,L = 2 5.3-2 Echo Table d'émission Numéro de l'esclave Code diagnostic = 0 Donnée quelconque Table de réception vide Variables Code requête envoyé au coupleur : Longueur de la table d’émission : TXTi,C = H’08' TXTi,L = 6 45 5.3-3 Reprise communication Table d'émission Numéro de l'esclave Code diagnostic = 1 Donnée Table de réception vide La donnée peut prendre une des deux valeurs suivantes : • H’00FF’ : poursuite sur erreur Dans ce cas, le buffer de trace enregistrant les événements de connexion sera effacé. • H’0000' : arrêt sur erreur Variables Code requête envoyé au coupleur : Longueur de la table d’émission : TXTi,C = H’08' TXTi,L = 6 5.3-4 Lecture du registre diagnostic Table d'émission Numéro de l'esclave Code diagnostic = 2 Table de réception Registre diagnostic de l'esclave Variables Code requête envoyé au coupleur : Longueur de la tache d'émission : TXTi,C = H'08' TXTi,L = 4 5.3-5 Passage en mode écoute Table d'émission Numéro de l'esclave Code diagnostic = 4 Table de réception vide Variables Code requête envoyé au coupleur : Longueur de la table d'émission : 46 TXTi,C = H'08' TXTi,L = 4 Programmation du coupleur en maître 5 5.3-6 Remise à zéro des compteurs Table d'émission Numéro de l'esclave Code diagnostic = 10 Table de réception vide Variables Code requête envoyé au coupleur : Longueur de la table d'émission : TXTi,C = H'08' TXTi,L = 4 5.3-7 Lecture du nombre de message reçus sur la ligne Table d'émission Numéro de l'esclave Code diagnostic = 11 Table de réception Nombre de messages vus sur la ligne Variables Code requête envoyé au coupleur : Longueur de la table d'émission : TXTi,C = H'08' TXTi,L = 4 5.3-8 Lecture du nombre d'erreurs de type cheksum Table d'émission Numéro de l'esclave Code diagnostic = 12 Table de réception Nombre d'erreurs de type checksum Variables Code requête envoyé au coupleur : Longueur de la table d'émission : TXTi,C = H'08' TXTi,L = 4 47 5.3-9 Lecture du nombre de réponse d'exception Table d'émission Numéro de l'esclave Code diagnostic = 13 Table de réception Nombre de réponses d'exception Variables Code requête envoyé au coupleur : Longueur de la table d'émission : TXTi,C = H'08' TXTi,L = 4 5.3-10 Lecture du nombre de messages adressés à l'esclave Table d'émission Numéro de l'esclave Code diagnostic = 14 Table de réception Nbre de messages adressés à l'esclave Variables Code requête envoyé au coupleur : Longueur de la table d'émission : TXTi,C = H'08' TXTi,L = 4 5.3-11 Lecture du nombre de non réponse du processeur esclave Table d'émission Numéro de l'esclave Code diagnostic = 15 Table de réception Nbre de non réponses du proces. esclave Variables Code requête envoyé au coupleur : Longueur de la table d'émission : 48 TXTi,C = H'08' TXTi,L = 4 Programmation du coupleur en maître 5 5.3-12 Lecture du compteur d'événements Table d'émission Numéro de l'esclave Table de réception Status Compteur d'évènements Variables Code requête envoyé au coupleur : Longueur de la table d'émission : TXTi,C = H'0B' TXTi,L = 2 5.3-13 Lecture des événements de connexion Table d'émission Numéro de l'esclave Table de réception Status Compteur d'évènements Nombre de message vus sur la ligne Nombre d'octets du buffer de trace 1er - 2ème - octets de trace 3ème - 4ème octets de trace Etc … Variables Code requête envoyé au coupleur : Longueur de la table d'émission : TXTi,C = H'0C' TXTi,L = 2 5.3-14 Identification de l'esclave Table d'émission Numéro de l'esclave Table de réception Identificateur de l'esclave Etat de fonctionnement de l'esclave Nombre d'octets suivants 1er - 2ème octets 3ème - 4ème octets Etc … Variables Code requête envoyé au coupleur : Longueur de la table d'émission : TXTi,C = H'11' TXTi,L = 2 49 5.4 Requêtes disponibles Ecriture configuration Code requête Compte-rendu positif Compte-rendu négatif TXTi,C = H’40' TXTi,R = H’FE’ TXTi,R = H’FD’ Cette requête permet d’envoyer la configuration au coupleur. Le compte-rendu est négatif lorsque : • la voie n’est pas dans l’état STOP ou • les paramètres de la requête sont incorrects. Lecture configuration Code requête TXTi,C = H’41' Compte-rendu positif TXTi,R = H’71' Compte-rendu négatif TXTi,R = H’FD’ Cette requête permet de relire la configuration envoyée à la voie. Le compte-rendu est négatif si la voie n’est pas configurée. Lecture compteurs Code requête Compte-rendu positif Compte-rendu négatif TXTi,C = H’70' TXTi,R = H’A0' TXTi,R = H’FD’ Cette requête permet au processeur de lire les compteurs de surveillance des échanges. Le buffer de réception contient les 12 mots suivants : • Wi = nombre de demandes processeur prises en compte par le coupleur, • Wi + 1 = nombre de demandes processeur refusées par le coupleur, • Wi + 2 = nombre de réponses esclave reçues correctes, • Wi + 3 = nombre de réponses esclave reçues avec un code d’exception, • Wi + 4 = nombre de messages maître émis sans réponse (délai d’attente écoulé), • Wi + 5 = nombre de réponses esclave reçues avec erreur de checksum, • Wi + 6 = nombre de réponses esclave reçues incohérentes, • Wi + 7 = nombre de messages maître réitérés, • Wi + 8 = nombre d’abandons de réitérations, • Wi + 9 = nombre de délais d’attente de réponse arrivés à terme pendant la réception, • Wi + 10 = nombre de réponses esclave reçues avec défaut en réception, • Wi + 11 = registre diagnostic. Modbus transparent Code requête Compte-rendu positif Compte-rendu négatif TXTi,C = H’81' TXTi,R = H’FE’ TXTi,R = H’17' Cette requête permet au processeur de générer une fonction différente des fonctions Modbus gérées par le coupleur. 50 Programmation du coupleur en maître 5 Le programme utilisateur prépare le message à émettre sur la ligne dans la table d’émission du bloc texte, avec le numéro de l’esclave destinataire mémorisé dans le premier octet. Le coupleur vérifie le numéro de l’esclave et renvoie un compte-rendu négatif si ce numéro est invalide. Dans le cas contraire, le coupleur calcule le code de redondance et émet le message complet. Si le numéro de l’esclave est nul (diffusion générale), le coupleur émet le message sur la ligne, puis renvoie le compte-rendu positif au processeur sans attendre de réponse sur la ligne. Fonctions Modbus Codes requêtes Comptes-rendus positifs TXTi,C = numéro de la fonction Modbus TXTi,R = H’FE’ TXTi,R = H’19' (demande adressée à un esclave en mode écoute) Comptes-rendus négatifs Un compte-rendu négatif peut provenir de deux origines : • le coupleur maître, lorsque celui-ci a détecté une erreur dans la demande du processeur ou lorsqu’il n’a pas reçu de réponse de l’esclave. • le coupleur esclave, lorsque celui-ci a détecté une erreur dans la demande reçue du maître ou lorsque l’esclave a une impossibilité à traiter la demande du maître. Dans ce cas, l’esclave renvoie au maître une réponse d’exception comprenant : - l’adresse de l’esclave, - le code fonction reçu par l’esclave, auquel l’esclave a rajouté la valeur H’80', - le code d’exception indiquant la nature de l’erreur, - le contrôle d’échange. Le coupleur maître transmet alors au processeur le code d’exception reçu de l’esclave comme compte-rendu de la requête. Compte-rendu (TXTi,R) Signification H'01' (réponse d'exception) H'02' (réponse d'exception) H'03' (réponse d'exception) H'04' (réponse d'exception) H'05' (réponse d'exception) H'06' (réponse d'exception) H'07' (réponse d'exception) Numéro de fonction non défini chez l'esclave Adresse Modbus inconnue de l'esclave Valeur illégale pour l'adresse Modbus indiquée Erreur fatale du processeur esclave Aquittement : le processeur esclave a accepté et est en train de traiter la demande maître Processeur esclave occupé Acquittement négatif H'15' H'17' H'18' H'FD' Aucune réponse correcte de l'esclave après réitérations Paramètres requêtes incorrects Voie dans l'état STOP Fonction Modbus inconnue 51 5.5 Modes de marche 5.5-1 Graphe général de fonctionnement du coupleur Le graphe d'état représenté ci-dessous ne décrit que le fonctionnement de la voie 0 du coupleur TSX SCG 11. dont le configuration est le protocole Modbus maître. Init voie OK Voie non configurée configuration OK Voie configurée ordre RUN et requête lecture Modbus® Voie en RUN éch. exclave ordre STOP fin échange Modbus® voie en RUN att. requête ordre STOP requête Modbus® La voie passe à l'état RUN sur réception de la première requête Modbus, accompagnée de la demande de mise en RUN de la voie (bit OWx,1,1). Le bit RUN associé à la voie passe alors à l'état RUN (bit IWx,1,1). Le passage de la voie à l'état STOP (sur mise à zéro du bit OWx,1,1) est pris en compte à tout moment. 5.5-2 Comportement du coupleur sur coupures et reprises secteur Voir chapitre 4.4-2 52 ________________________________________________________ Bits tout ou rien et registres Chapitre 6 ___________________________________________________________________________ Sous-chapitre 6.1 6.2 Page Interface tout ou rien 54 6.1-1 Description 6.1-2 Coupleur TSX SCG 113 6.1-3 Coupleur TSX SCG 116 54 54 55 Interface registre 56 6.2-1 Registres d'entrée 6.2-2 Registres de sortie 56 57 ___________________________________________________________________________ 53 6.1 Interface tout ou rien 6.1-1 Description L’interface tout ou rien du coupleur TSX SCG permet au programme utilisateur de gérer la transmission mise en œuvre sur la voie. Cette interface est constituée par : • 4 bits d’entrée : Ix,0 à Ix,3 Ceux-ci reflètent l’état des signaux d’entrée des adaptateurs de ligne. • 4 bits de sortie : Ox,0 à Ox,3 Ceux-là permettent de positionner à l’état vrai ou faux certains signaux de sortie des adaptateurs de ligne. Chaque bit tout ou rien a une définition spécifique au coupleur. Certains de ces bits ne sont pas uniquement recopiés par le coupleur, mais agissent de façon directe sur le fonctionnement de la voie. Ci-après sont citées pour chaque coupleur, les affectations des bits tout ou rien, et leur incidence sur le fonctionnement de la voie. L’état 0 (zéro) logique indique un signal actif. L’état 1 (un) logique indique un signal non actif. 6.1-2 Coupleur TSX SCG 113 3 Bits de sortie Ox,i • DTR 2 1 DSRS DTR 0 = connecter le poste de données Ce signal à utiliser pour piloter le modem n’a pas d’incidence sur le fonctionnement de la voie. La demande pour émettre est gérée par le protocole, donc transparente pour l’utilisateur. • DSRS = sélection de débit binaire 0 = la voie fonctionne à la vitesse configurée 1 = la voie fonctionne à la vitesse configurée divisée par 2. Lorsque le modem utilisé offre cette possibilité, ce signal permet de fonctionner à vitesse réduite lorsque des erreurs de transmissions répétées sont détectées. 54 6 Bits tout ou rien registres Bits d'entrée Ix,i • CTS • DSR = prêt à émettre : = poste de données prêt : • CD • RI = détection porteuse : = indicateur d’appel : 3 2 1 0 RI CD DSR CTS l’état logique 1 bloque le circuit d’émission, pas d’incidence sur le fonctionnement de la voie, l’état logique 1 bloque le circuit de réception, pas d’incidence sur le fonctionnement de la voie. Attention : Lorsque ces signaux ne sont pas utilisés, ils sont tous rappelés dans l’adaptateur à l’état 1 : les circuits d’émission et de réception sont en conséquence bloqués. 6.1-3 Coupleur TSX SCG 116 Cet adaptateur ne possède pas de signaux de contrôle de la transmission. La validation émetteur utilisée en RS 485 est gérée par le protocole afin de passer l’émetteur en haute impédance, de façon transparente pour l’utilisateur. 55 6.2 Interface registre 6.2-1 Registres d’entrée Registres d’entrée IWx,0 à IWx,7 Ces registres, accessibles uniquement en lecture, fournissent des informations sur le fonctionnement du coupleur. Registre d’entrée IWx,0 Bit 0 1 2 3 Fonction 4 Défaut général 5 6 7 non affecté non affecté Défaut application 8 Défaut bloquant 9 Module en auto-test A B C D E F non affecté Module non configuré Module en RUN réservé 56 Explications non affectés RAZ en cours Module disponible non affectés Remise à zéro du système de message en cours. Indique la fin des autos-tests communs et spécifiques donc la disponibilité du module Ce bit passe à l'état 1 sur présence d'un défaut quelle que soit son origine, il réalise la fonction OU des bits 7 et 8 de ce même registre Défaut lors de l'exécution d'une requête (erreur de parité en réception). Absence de 12V ou asynchronisme entre les alimentation 12V du module et 5V de l'automate. Vérifier que ces alimentations apparaissent en même temps, puis remettre ce bit à 0 par SY0 ou SY1. Défaut RAM, REPROM ou logique interne du coupleur. Ce défaut provoque un blocage permanent du coupleur et nécessite son remplacement. Le voyant RUN est éteint et le voyant I/0 est allumé. Lors de chaque mise sous-tension de l'automate, le coupleur déroule une séquence d'auto-tests signalée par ce bit. Durant cette phase le coupleur non-disponible ne peut pas être configuré ou exploité. Ce bit est à l'état 1 lorsque le module n'est pas configuré Une requête est en cours d'exécution 6 Bits tout ou rien registres Registre d'entrée IWx,1 Ce mot contient des informations sur l'état de la voie du coupleur Bit 0 1 Fonction non affecté RUN/STOP 2 LOM 3 Coupleur configuré 4 5 6 7à E F Code adaptateur Explications 0 si la voie est en STOP. 1 si la voie est en RUN 0 si la voie Modbus Esclave est en réception/émission 1 si la voie Modbus Esclave est en écoute seule 0 si le coupleur n'est pas configuré 1 si le coupleur est configuré 101 = adaptateur RS 232 - Modem 100 = adaptateur RS 485 non affectés Repli PWF A l'état 1, il indique une reprise secteur Sa remise à zéro (par OWx,1,F) est nécessaire pour la prise en compte d'une nouvelle reprise secteur Registres d'entrée IWx,2 à IWx,7 inutilisés 6.2-2 Registres de sorties Registre de sortie OWx,0 Le bit OWx,0,2 permet d’effectuer la remise à zéro du système de messagerie du module. Registre de sortie OWx,1 Ce mot contient les informations de commande RUN/STOP Bit 0 1 Fonction non affecté RUN/STOP 2à E F non affectés Acquittement PWF Explications 0 si la voie est en STOP. 1 si la voie est en RUN La mise à 1 de ce bit permet d'acquitter (non obligatoire) le repli après une coupure secteur sur l'automate (repositionne IWx,1,F à l'état 0). Attention La remise à 0 des bits d’acquittement ou de RAZ est à la charge du programme utilisateur. 57 Registre de sortie OWx,2 inutilisé Registre de sortie OWx,3 (esclave uniquement) Les poids forts correspondent à un registre d’état (voir chapitre 2.7 Lecture du status d’exception). Registres de sortie OWx,4 à OWx,7 inutilisés. 58 ________________________________________________________ Compléments de programmation Chapitre 7 ___________________________________________________________________________ Sous-chapître 7.1 Signalisation des bits défauts Page 60 ___________________________________________________________________________ 59 7.1 Signalisation des bits défauts La signalisation des défauts correspond à une série de bits accessibles en lecture en mode message, par la requête standard à tous les coupleurs intelligents “Lecture des bits défauts”. Ces bits défauts au nombre de 48 (3 mots de 16 bits), seront reçus dans la table de réception du bloc texte concerné. • • • • • code requête variable table émission table réception adresse coupleur et numéro de voie Etat des variables en fin d’échange • nombre d’octets reçus • compte-rendu TXTi,C = H’47' TXTi,L = 0 non utilisée, au moins 6 octets TXTi,M = 0x63 avec x = 1,2 ou 3 TXTi,S = 6 TXTi,R = H’77' Organisation de la table • Bits défauts BDEF 60 Bit défaut Défaut 0 1 2 3 à 36 37 38 à 47 Défaut de cheksum EPROM défaut RAM (interne, externe) défaut de 12V non utilisés défaut de parité en réception non utilisés ________________________________________________________ Exemples de programmation Chapitre 8 ___________________________________________________________________________ Sous-chapître 8.1 Page Programmation de l'esclave sur TSX 17-20 62 8.1-1 8.1-2 8.1-3 8.1-4 62 63 64 65 Description Organisation Définition des objets et des constantes Programme, listing ___________________________________________________________________________ 61 8.1 Programmation de l’esclave sur TSX 17-20 8.1-1 Description Prenons l’exemple d’un automate TSX 17-20 raccordé à un maître sous le protocole Modbus. L’esclave concerné a pour numéro de station 1. Le programme décrit dans cet exemple assure la configuration du module après une mise sous tension de l’automate, puis la gestion du protocole Modbus esclave. Nous allons définir dans cet esclave, pour une application donnée, 4 zones de bits et mots (objets accessibles). L’utilisateur aura à sa charge l’éventuelle définition d’objets physiques (entrées, sorties tout ou rien…) ainsi que le programme application liant ces objets physiques aux objets accessibles. Soit une zone de 60 mots localisés à partir de W60, que nous allons définir de la façon suivante : W75 à W89 W105 à W119 W60 à W74 W90 à W104 table de 240 bits d’entrée table de 15 mots d’entrée table de 240 bits de sortie table de 15 mots de sortie A chaque zone correspond une adresse Modbus maître (valeurs définies pour un maître donné). bits d’entrée mots d’entrée bits de sortie mots de sortie 62 W75 W105 W60 W90 a pour adresse Modbus correspondante 0 a pour adresse Modbus correspondante 0 a pour adresse Modbus correspondante 0 a pour adresse Modbus correspondante 0 Exemples de programmation 8 8.1-2 Organisation Le programme principal gère l’envoi de la configuration sur la voie 0 du coupleur et autorise ensuite la gestion du protocole Modbus sur cette voie. Début Initialisation du coupleur Demande de la configuration NON Autorisation gestion Modbus Envoi de la configuration OUI Initialisation du coupleur Fin 63 8.1-3 Définition des objets et des constants TXT0 TXT1 B0 : configuration de la voie 0 : transfert des messages Modbus sur la voie 0 : autorisation de gestion du protocole Modbus CW0 CW1 CW2 = H’2802' = H’9600' =1 : Modbus, mode RTU, pas de parité, 2 bits de stop : vitesse 9600 bauds : station esclave numéro 1 CW3 CW4 CW5 = 60 = 240 =0 : : : zone bits de sortie 240 bits de W60 à W74 adresse Modbus du premier bit de sortie : 0 CW6 CW7 CW8 = 75 = 240 =0 : : : zone bits d’entrée 240 bits de W75 à W89 adresse Modbus du premier bit d’entrée : 0 CW9 CW10 CW11 = 90 = 15 =0 : : : zone mots de sortie 15 mots de W90 à W104 adresse Modbus du premier mot de sortie : 0 CW12 CW13 CW14 = 105 = 15 =0 : : : zone mots d’entrée 15 mots de W105 à W119 adresse Modbus du premier mot d’entrée : 0 64 Exemples de programmation 8 ) 8.1-4 (p Programme, listing ** LABEL SY1 SY1 1 R IW2, 1, 3 TXT0 S CPL T ,M:H0200 LOCAL T , C:H0040 O T, R:H CWO CONFIG D E IW2, 1, 3 OW2, 1, 1 OW2, 1, 1 H'0080' OPERATE TXT1, C 0 OPERATE W50 T ,L: 30 I T ,S: ** LABEL OW2, 1, 1 OW2, 1, 1 2 R BO TXT1 S CPL T ,M:H0200 LOCAL T , C:H0080 O T, R:H W10 (30) MODBUS TR/REC D COMPAR = 1 W10 COMPAR = 3 W10 COMPAR = 2 L6 J W10 COMPAR = 4 L8 J E T ,L: 2 I T ,S: ** LABEL 3 L4 J W10 END L13 J ** LABEL 4 COMPAR W12 > 0 application MODBUS / .............................................. Télémécanique-/-TSX SRO READ WORDS W0 (W11) OPERATE W25 (W50) W11 + OPERATE 1 W11 W12 - OPERATE 1 W12 W50 + OPERATE 1 W50 rev PROG.: MAST date 11-15-90 page 7- 1 7 65 ** LABEL 5 COMPAR W12 = 0 W50 * H'0080' OPERATE 2 TXT1,L OPERATE TXT1,C L13 J L4 J ** ** LABEL 6 COMPAR W12 > 0 SR1 WRITE WORDS OPERATE W13 (W50) W0 (W11) LABEL 7 COMPAR W12 = 0 W11 + OPERATE 1 W11 W50 + OPERATE 1 W50 W12 - OPERATE 1 W12 H'0081' OPERATE TXT1,C L13 J L6 J application MODBUS / .............................................. Télémécanique-/-TSX 66 rev PROG.: MAST date 11-15-90 page 7- 2 8 Exemples de programmation 8 (p ** ) LABEL 8 COMPAR W12 < > 0 SR2 WRITE BITS W0 (W11) OPERATE W53 OPERATE W53 AND W13 W53 OPERATE W53 OR W15 W0 (. 0:W53 OR W15 ** ** ** W0 (W11) LABEL 9 COMPAR W12 < > 0 LABEL 10 COMPAR W12 > 1 MASK 1 W11 [2] OPERATE W51 [2] W11 + OPERATE 1 W11 W12 - OPERATE 1 W12 INTER. WORDS W16 (W0) OPERATE W0 (W11) W12 - OPERATE 1 W12 W50 + OPERATE 1 W50 W11 + OPERATE 1 W11 LABEL 101 COMPAR W12 > 1 application MODBUS / .............................................. Télémécanique-/-TSX L10 J rev PROG.: MAST date 11-15-90 page 7- 3 9 67 ** LABEL 11 COMPAR W12 > 0 MASK 2 W0 (W11) OPERATE W53 OPERATE W53 AND W14 W53 OPERATE W16 (W50) W54 OPERATE:0 W53 OR W54 W0 (. 0:W53 OR W54 ** ** W0 (W11) LABEL 12 COMPAR W12 > 0 LABEL TXT1,D 13 COMPAR W12 = 0 0 OPERATE W12 H'0081' OPERATE TXT1,C 0 OPERATE W10 0 OPERATE W50 BR END B0 END OF PROGRAM application MODBUS / .............................................. Télémécanique-/-TSX 68 rev PROG.: MAST date 11-15-90 page 7- 4 10 ________________________________________________________ Annexes Chapitre 9 ___________________________________________________________________________ Sous-chapitre Page 9.1 Performances de l'esclave 70 9.2 Performances du maître 71 9.3 Fonctions Jbus 73 9.4 Trames Modbus (RTU) 74 9.4-1 Détails des trames 9.4-2 Réponses d'exception 9.4-3 Calcul du CRC 16 74 78 79 ___________________________________________________________________________ 69 9.1 Performances de l’esclave Approche des temps de réponse Le calcul des temps de réponse est nécessaire pour évaluer les performances globales des échanges, et pour configurer le maître (définition du temps enveloppe pour interroger l’esclave suivant dans le cas d’une absence de réponse). Tous les temps donnés sont valables dans les cas les plus défavorables. Le temps de transfert se décompose comme suit : • • • • • temps de transmission d’un message à l’esclave Trec, le temps de traitement du coupleur Tdem, temps de prise en compte et réponse du processeur Tpro, temps de traitement de la réponse automate Trep, temps de transmission du message au maître Témi. Temps de transmission d’un message à l’esclave (N caractères) Trec = 1000 x N x (nombre de bits par caractère) / (vitesse en bauds). Temps de traitement du coupleur Tdem est le temps nécessaire au coupleur pour reconnaître la fin du message (délai minimal de 3,5 caractères entre deux messages), pour l’analyser et émettre une requête vers le processeur. Ce temps est fonction de la demande du maître. Temps de prise en compte et réponse du processeur Tpro = 6 x (temps de cycle automate) lors d’échanges par bloc texte. Temps de traitement de la réponse automate Trep est le temps utilisé par le coupleur pour prendre compte la réponse du processeur et préparer le message à renvoyer au maître. Ce temps est fonction de la demande du maître. Temps de transmission du message au maître (M caractères) Témi = 1000 x M x (nombre de bits par caractère) / (vitesse en bauds). Exemple Soit une liaison à 9600 bauds, dont les caractères sont au format de un bit de start, huit bits de données, un bit de parité paire, un bit de stop, soit onze bits par caractère. Le maître effectue une demande de lecture de 32 bits. Les échanges se font par l’interface message. Le temps de cycle automate est de 80 millisecondes. Trec = 1000 x 8 x 11 / 9600 = 9,2 ms Tdem = (1000 x 3,5 x 11 / 9600 + 4,5 = 8,5 ms Tpro = 6 x 80 = 480 ms Trep = 1 ms Témi = 1000 x 8 x 11 / 9600 = 9,2 ms Temps total = 508 ms Le temps enveloppe du maître pourrait alors être fixé à 520 millisecondes. 70 Annexes 9 9.2 Performances du maître Approche des temps de réponse L’analyse qui suit permet d’évaluer le temps de réponse d’une transaction de Modbus. Tous les temps donnés sont valables dans les cas les plus défavorables. Le temps de transfert se décompose comme suit : • temps de prise en compte du processeur Tpro1, • temps de traitement du coupleur Tdem, • temps de transmission d’un message à un esclave Témi, • temps de traitement de l’esclave Tesc, • temps de transmission de la réponse au maître Trec, • temps de traitement de la réponse de l’esclave Trep, • temps de réponse du processeur Tpro2. Temps de prise en compte du processeur Tpro 1 = 2 x (temps de cycle automate) Temps de traitement du coupleur Tdem est le temps nécessaire au coupleur pour prendre en compte la demande du processeur et préparer le message à émettre à l’esclave. Ce temps dépend de la demande (fonction Modbus, nombre d’objets à traiter, etc…). Temps de transmission d’un message à un esclave (N caractères) Témi = 1000 x N x (nombre de bits par caractère) / (vitesse en bauds). Temps de traitement de l’esclave Tesc constitue le temps de réponse de l’esclave interrogé, hors temps de transmission. Temps de transmission de la réponse au maître (M caractères) Trec = 1000 x M x (nombre de bits par caractère) / (vitesse en bauds). Temps de traitement de la réponse de l’esclave Trep est le temps utilisé par le coupleur pour analyser la réponse Modbus reçue de l’esclave et mettre en forme la réponse à transmettre au processeur. Ce temps dépend de la demande (fonction Modbus, nombre d’objets à traiter, etc…). Temps de réponse du processeur Tpro2 = 2 x (temps de cycle automate). 71 Exemples Soit une liaison à 9600 bauds, dont les caractères sont au format de un bit de start, huit bits de données, un bit de parité paire, un bit de stop, soit onze bits par caractère. Le temps de cycle automate est de 60 millisecondes. • Ecriture de 16 mots Tpro1 Tdem Témi Tesc : = 1000 x 41 x 11 / 9600 temps fonction de l’esclave considéré Trec = 1000 x 8 x 11 / 9600 Trep Tpro2 = 120 ms = 8,3 ms = 47 ms = 9,2 ms = 2,1 ms = 120 ms Temps total : 307 ms + (temps de traitement de l’esclave) • Lecture de 256 bits Tpro1 Tdem Témi = 1000 x 8 x 11 / 9600 Tesc : temps fonction de l’esclave considéré Trec = 1000 x 37 x 11 / 9600 Trep Tpro2 = 120 ms = 1,8 ms = 9,2 ms = 42,4 ms = 8,6 ms = 120 ms Temps total : 302 ms + (temps de traitement de l’esclave) 72 Annexes 9 9.3 Fonctions Jbus Certaines fonctions utilisées par Jbus sont communes à celles utilisées par Modbus, d'autres présentent des différences. Ces fonctions sont listées ci-dessous (leur détail est donné au chapitre 2 "Gestion du protocole") : Fonctions identiques avec les produits Modbus (maître / esclave) : • 01 : lecture de n bits de sortie, • 02 : lecture de n bits d'entrée, • 03 : lecture de n mots de sortie, • 04 : lecture de n mots d'entrée, • 05 : écriture de 1 bit de sortie, • 06 : écriture de 1 mot de sortie, • 08/00 : fonction diagnostic, • 08/01 : réinitialisation de voie, • 15 : écriture de n bits, • 16 : écriture de n mots. Fonctions communes mais les résultats obtenus sont différents : • 07 : pour Modbus, lecture de OWxy,6 d'un coupleur TSX SCM esclave, lecture de OWxy,3 d'un coupleur TSX SCG esclave, : pour Jbus, lecture d'une adresse spécifique à l'équipement. Note : Pour les fonctions suivantes, il est impératif que l'utilisateur dispose des spécifications des matériels utilisés (les compteurs de diagnostic sont spécifiques aux matériels). • 08/02 • 08/03 • 08/0B • 08/0C • 08/0D • 08/0E • 08/0F • 11 • 12 Fonctions Jbus non implémentées sur Modbus • 08/11 : lecture du compteur 6, • 08/12 : lecture du compteur 8. 73 9.4 Trames Modbus (RTU) 9.4-1 Détails des trames Lecture de N bits : fonction 1 ou 2 Question N° esclave 1 ou 2 N° du 1er bit PF Pf Nombre de bits PF Pf CRC 16 1 octet 1 octet 2 octets 2 octets 2 octets Réponse N° esclave 1 ou 2 1 octet 1 octet Nombre d'octets lus Valeur ••••••• Valeur CRC 16 1 octet 2 octets Exemple : lecture du bit B3 de l'esclave 2 Question 02 01 0003 0001 CRC 16 Réponse 02 01 01 xx CRC 16 00 si B3 = 0 01 si B3 = 1 Lecture de N mots : fonction 3 ou 4 Question N° esclave 3 ou 4 1 octet 1 octet N° du 1er mot Nombre de mots PF Pf PF Pf 2 octets 2 octets CRC 16 2 octets Réponse N° esclave 3 ou 4 1 octet 1 octet Nombre d'octets lus Valeur du 1er mot Valeur dernier mot CRC 16 ••••••• PF Pf PF Pf 1 octet 2 octets 2 octets Exemple : lecture des mots W20 à W24 de l'esclave 6 Question 06 04 14 Réponse 02 01 0A 05 xxxx ••••••••••••• xxxx Valeur de W20 74 CRC 16 Valeur de W24 CRC 16 2 octets Annexes 9 Ecriture d'un bit de sortie : fonction 5 Question N° esclave 5 N° du bit PF Pf Valeur du bit CRC 16 1 octet 1 octet 2 octets 2 octets 2 octets Le champ "Valeur du bit" a deux valeurs possibles à l'exclusion de toute autre : • bit à 0 = 0000, • bit à 1 = FF00. Réponse N° esclave 5 N° du bit PF Pf Valeur du bit CRC 16 1 octet 1 octet 2 octets 2 octets 2 octets Exemple : écriture de la valeur 1 dans le bit B3 de l'esclave 2 Question 02 05 03 FF00 CRC 16 Réponse 02 05 03 FF00 CRC 16 Ecriture d'un mot de sortie : fonction 6 Question N° esclave 6 N° du mot PF Pf Valeur du mot PF Pf CRC 16 1 octet 1 octet 2 octets 2 octets 2 octets N° esclave 6 N° du mot PF Pf Valeur du mot PF Pf CRC 16 1 octet 1 octet 2 octets 2 octets 2 octets Réponse Exemple : écriture de la valeur 3A15 dans le mot W12 de l'esclave 5 Question 05 06 0C 3A15 CRC 16 Réponse 05 06 0C 3A15 CRC 16 75 Lecture du status d'exception : fonction 7 Question N° esclave 7 CRC 16 1 octet 1 octet 2 octets N° esclave 7 Status exception CRC 16 1 octet 1 octet 1 octet 2 octets Réponse Diagnostic : fonction 8 Question et réponse N° esclave 8 Sous-code Données 1 octet 1 octet 2 octets 2 octets CRC 16 2 octets Lecture du compteur d'événements : fonction 11 (H'0B') Question N° esclave 0B CRC 16 1 octet 1 octet 2 octets Réponse N° esclave 0B 1 octet 1 octet 76 00 00 2 octets Valeur compteur PF Pf 2 octets CRC 16 2 octets Annexes 9 Lecture des événements de connexion : fonction 12 (H'0C') Question N° esclave 0C CRC 16 1 octet 1 octet 2 octets N° esclave 0C Status Compteur d'événements 1 octet 1 octet 2 octets 2 octets Réponse Nb messages Nombre d'octets vus sur la ligne buffer de trace 2 octets Trace 2 et 1 Trace 4 et 3 Trace n et n-1 CRC 16 2 octets 2 octets 2 octets 2 octets 2 octets Ecriture de N bits de sortie : fonction 15 (H'0F') Question N° esclave 0F 1 octet 1 octet Adresse 1er Nombre de bit à forcer bits à forcer 2 octets 2 octets Nombre d'octets Valeur des bits à forcer CRC 16 1 octet n octets 2 octets Réponse N° esclave 0F Adresse 1er bit à forcer Nombre de bits à forcer CRC 16 1 octet 1 octet 2 octets 2 octets 2 octets 77 Ecriture de N mots de sortie : fonction 16 (H'10') Question N° esclave 10 Numéro du 1er mot Nombre de mots Nombre d'octets 1 octet 1 octet 2 octets 2 octets 1 octet N° esclave 10 Numéro du 1er mot Nombre de mots CRC 16 1 octet 1 octet 2 octets 2 octets 2 octets Valeur du •••••• 1er mot 2 octets CRC 16 2 octets Réponse Exemple : écriture des valeurs 1 et 2 dans les mots W16 et W17 de l'esclave 11 Question 0B 10 0010 0002 Réponse 0B 10 0010 0002 04 0001 0002 CRC 16 CRC 16 9.4-2 Réponses d'exception Une réponse d'exception est retournée par un esclave lorsque celui-ci ne peut exécuter la demande qui lui est adressée. Format d'une réponse d'exception : N° esclave Code réponse Code erreur CRC 16 1 octet 1 octet 1 octet 1 octet Code réponse : C'est le code fonction de la demande + H'80' (le bit de rang le plus élevé est mis à 1), Code erreur : Pour plus de détails concernant les codes d'erreur des coupleurs TSX SCG 1131 / 1161, se reporter au chapitre 5.4 de ce document. Pour plus de détails concernant les codes d'erreur des coupleurs TSX SCM 22, se reporter au chapitre 4.4 du document TSX D24 002F. 78 Annexes 9 9.4-3 Calcul du CRC 16 Le CRC 16 se calcule sur tous les octets du message en appliquant la méthode suivante : • initialiser le CRC (registre de 16 bits ) à H'FFFF', • faire du premier octet du message au dernier : CRC XOR <octet> --> CRC Faire 8 fois Décaler le CRC d'un bit à droite Si le bit sorti = 1, faire CRC XOR H'A001' --> CRC Fin faire • Fin faire Le CRC obtenu sera émis poids faible d'abord, poids fort ensuite. XOR = OU exclusif 79 80