rapport Modbus TCP / IP TCP / IP TCP est Transmission Control Protocol et IP es

rapport Modbus TCP / IP TCP / IP TCP est Transmission Control Protocol et IP est le protocole Internet. Ces protocoles sont utilisés conjointement et représentent le protocole de transport pour l'Internet. Lorsque les informations de modbus est envoyée en utilisant ces protocoles, les données sont transmises à TCP où l'information supplémentaire est attaché et donné à IP. IP met ensuite les données dans un paquet (ou datagrammes) et la transmet. TCP doit établir une connexion avant de transférer des données, car il est un protocole basé sur la connexion. Le Maître (ou Client Modbus TCP) établit une connexion avec l'esclave (ou serveur). Le serveur attend une connexion entrante à partir du client. Une fois la connexion établie, le serveur répond alors aux questions du client jusqu'à ce que le client ferme la connexion. Modbus RTU sur TCP Autrement dit, ceci est un message Modbus RTU transmis avec un TCP / wrapper IP et envoyé sur un réseau au lieu de lignes série. Le serveur n'a pas de SlaveID car il utilise une adresse IP à la place. Modbus TCP Un guide d'implémentation Modbus Messaging fournie par Schneider Automation décrit un protocole modifié spécifiquement pour une utilisation sur TCP / IP. La spécification officielle de Modbus peut être trouvé à . Les principales différences entre Modbus RTU et Modbus TCP sont décrites ici. ADU & PDU Mis à part les principales différences entre les connexions série et réseau indiqués ci-dessus, il y a quelques différences dans le contenu du message. En commençant par le message Modbus RTU et le retrait du SlaveID dès le début et la CRC à partir des résultats finaux de l'unité PDU, l'unité de données de protocole. Voici un exemple d'une requête Modbus RTU pour le contenu de l'analogique tenue de registres de sortie # 40108 à 40110 du dispositif esclave avec l'adresse 17. 11 03 006B 0003 7687 11 : L'adresse SlaveID (17 = 11 hex) 03 : Le code de fonction (lecture de sortie analogique registres de maintien) 006B : L'adresse de données du premier registre demandé. (40108- 40001 = 107 = 6B hex) 0003 : Le nombre total de registres demandés.(lire 3 registres 40108 à 40110) 7687 : Le CRC (contrôle de redondance cyclique) pour lecontrôle d' erreur. Retrait du SlaveID et CRC donne la PDU: 03 006B 0003 MBAP Header Un nouvel en-tête de 7 octets appelé l'en-tête MBAP (Modbus application en-tête) est ajouté au début du message. Cet en-tête comporte les données suivantes: Transaction Identifier: 2 octets fixés par le client pour identifier chaque demande. Ces octets sont repris par le serveur puisque ses réponses ne peuvent pas être reçues dans le même ordre que les demandes. Protocole Identifier: 2 octets fixés par le client, = toujours 00 00 Durée: 2 octets identifiant le nombre d'octets dans le message à suivre. Identificateur d'unité: 1 octet défini par le client et repris par le serveur pour l'identification d'un esclave distant connecté sur une ligne série ou sur d'autres bus. Résumé La demande équivalente à cet exemple Modbus RTU 11 03 006B 0003 7687 Modbus TCP est: 0001 0000 0006 11 03 006B 0003 0001 : L' identificateur de transaction 0000 : Protocole Identificateur 000 6 : Longueur du message (6 octets à suivre) 11 : L'identificateur de l' unité (17 = 11 hex) 03 : Le code de fonction (lecture de sortie analogique registres de maintien) 006B : L'adresse de données de la première inscrivez -vous demandé. (40108-40001 = 107 = 6B hex) 0003 : Le nombre total de registres demandés. (lire 3 registres 40108 à 40110) TCP / IP Wrapper Frequently Asked Questions Qu'est-ce que ASCII? ASCII reposer American Standard Code for Information Interchange. De la même manière que tous les 4 bits peuvent être combinés et représentés par un des seize caractères hexadécimaux de 0 à F , toutes les 8 bits (chaque octet) peuvent être combinés et représentés par un de 256 caractères ASCII, y compris les caractères du clavier communs. Par exemple, certaines des valeurs pour les caractères ASCII sont ... décimale (Base10) binaire (base2) Hex (base16) ASCII (base256) 0 0000 0000 00 nul 1 0000 0001 01 " 34 0010 0010 22 # 35 0010 0011 23 $ 36 0010 0100 24 % 47 0010 1111 2F / 48 0011 0000 30 0 49 0011 0001 31 1 56 0011 1000 38 8 57 0011 1001 39 9 58 0011 1010 3A : 64 0100 0000 40 @ 65 0100 0001 41 UNE 66 0100 0010 42 B 89 0101 1001 59 Y 90 0101 1010 5A Z 91 0101 1011 5B [ 95 0101 1111 5F _ 96 0110 0000 60 ` 97 0110 0001 61 une 122 0111 1010 7A z 123 0111 1011 7B { 174 1010 1110 AE ® 255 1111 1111 FF Comment les données sont stockées dans Modbus standard? Les informations sont stockées dans le dispositif de l' esclave dans quatre tables différentes. Deux tables stockent on / off des valeurs discrètes (bobines) et les valeurs numériques de deux magasins (registres). Les bobines et registres ont chacun une lecture seule table et lecture-écriture table. Chaque table a 9999 valeurs. Chaque bobine ou le contact est 1 bit et attribuer une adresse de données entre 0000 et270E . Chaque registre est 1 mot = 16 bits = 2 octets et a également l' adresse de données entre0000 et 270E . Coil/Register Numbers Data Addresses Type Table Name 1-9999 0000 to 270E Read-Write Discrete Output Coils 10001-19999 0000 to 270E Read-Only Discrete Input Contacts 30001-39999 0000 to 270E Read-Only Analog Input Registers 40001-49999 0000 to 270E Read-Write Analog Output Holding Registers Coil / enregistrer les numéros peuvent être considérés comme des noms de lieux, car ils ne figurent pas dans les messages réels. Les adresses de données sont utilisés dans les messages. Par exemple, le premier registre de maintien, le numéro 40001, a l'adresse de données0000 . La différence entre ces deux valeurs est le décalage . Chaque table a un déport différent. 1, 10001, 30001 et 40001. Quel est l'ID esclave? Chaque esclave dans un réseau se voit attribuer une adresse de l'unité unique de 1 à 247. Lorsque les données des demandes de maître, le premier octet, il envoie l'adresse de l'esclave. De cette façon, chaque esclave sait après le premier octet ou non d'ignorer le message. Quels sont les formats de commandes et de réponses Modbus? Suivez les liens dans ce tableau pour voir des exemples de demandes et de réponses. Data Addresses Read Write Single Write Multiple Discrete Output Coils 0xxxx FC01 FC05 FC15 Discrete Input Contacts 1xxxx FC02 NA NA Analog Input Registers 3xxxx FC04 NA NA Analog Output Holding Registers 4xxxx FC03 FC06 FC16 les fonction modbus Lire Coil Status (FC = 01) Demande Cette commande demande l'état ON / OFF de bobines discrètes # 20-56 du dispositif esclave avec l' adresse 17. 11 01 0013 0025 0E84 11 : L'adresse de l' esclave ( 11 hex = address17) 01 : Le code de fonction 1 (lire Coil Status) 0013 :. L'adresse de données de la première bobine à lire(0013 hex = 19, + 1 offset = bobine n ° 20) 0025 : Le nombre total de bobines demandé. ( 25 hex = 37, entrées 20-56) 0E84 : Le CRC (cyclique contrôle de redondance) pour la vérification des erreurs. Réponse 11 01 05 CD6BB20E1B 45E6 11 : L'adresse de l' esclave ( 11 hex = address17) 01 : Le code de fonction 1 (lire Coil Status) 05 : Le nombre d'octets de données à suivre (37 Bobines / 8 bits par octet = 5 octets) CD : Bobines 27-20 ( 1100 1101 ) 6B : bobines 35-28 ( 0110 1011 ) B2 : bobines 43-36 ( 1011 0010 ) 0E : bobines 51-44 ( 0000 1110 ) 1B: 3 supports spatiaux et bobines 56-52 ( 0001 1011 ) 45E6 : Le CRC (cyclique contrôle de redondance). Read Input Status (FC = 02) Demande Cette commande demande l'état ON / OFF des entrées discrètes # 10197-10218 du dispositif esclave avec l' adresse 17. 11 02 00C4 0016 BAA9 11 : L'adresse de l' esclave ( 11 hex = address17) 02 : Le code de fonction 2 (lire Input Status) 00C4 :. L'adresse de données de la première entrée à lire (00C4 hex = 196, + 10001 offset = entrée # 10197) 0016 : Le nombre total de bobines demandé. ( 16 hex = 22, entrées 197-218) BAA9 : Le CRC (cyclique contrôle de redondance) pour la vérification des erreurs. Réponse 11 02 03 ACDB35 2018 11 : L'adresse de l' esclave ( 11 hex = address17) 02 : Le code de fonction 2 (lire Input Status) 03 : Le nombre d'octets de données à suivre (22 entrées / 8 bits par octet = 3 octets) AC : Entrées TOR 10204 -10197 ( 1010 1100 ) DB : Entrées TOR 10212 à 10205 ( 1101 1011 ) 35 : 2 espace détenteurs et entrées TOR de 10218 à 10213 uploads/Litterature/ rapport-modbus-tcp-fr.pdf

  • 92
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager