PDU du protocole d'application Modbus
Traduction de la notice originale
Vue d'ensemble
Cette section décrit la structure et le contenu du PDU du protocole d'application Modbus.
Description
Le PDU du protocole d'application Modbus, mbap_pdu, est reçu au numéro de port TCP 502. La taille actuelle maximale du mbap_pdu pour cette classe de services est de 256 octets. La structure et le contenu de mbap_pdu sont définis ainsi :
mbap_pdu::={inv_id[2], proto_id[2], len[2],dst_idx[1], data=mb_pdu}
La longueur de l'en‐tête est de sept octets et comprend les champs répertoriés dans le tableau suivant :
Champ
Description
inv_id
[2 octets] appel servant à l'appariement des transactions
proto_id
[2 octets] sert au multiplexage local, vaut 0 par défaut pour les services Modbus
len
[2 octets] le champ len est un compte du nombre d'octets des champs restants et contient dst_id et des champs de données.
Le reste du pdu contient deux champs :
Champ
Description
dst_idx
[1 octet] index cible servant au routage local des paquets (pas encore implémenté)
data
[n octets] il s'agit de la partie service du pdu Modbus, mb_pdu, et elle est définie ci‐dessous
La partie service du protocole d'application Modbus appelée mb_pdu, contient 2 champs :
mb_pdu::={func_code[1], data[n]}
Le tableau suivant décrit les champs dans mb_pdu. :
Champ
Description
func_code{1 byte
Code fonction Modbus
data
[n octets] ce champ est dépendant du code fonction et contient généralement des informations, telles que différentes variables, différents comptes et des décalages de données
La taille et le contenu du champ de données dépendent de la valeur du code fonction.
Exemple
Voici les valeurs pour un exemple de mbap_pdu pour la lecture d'un registre :
00 01 00 00 00 06 01 03 00 00 00 01
Le tableau suivant illustre la structure et le contenu de cet exemple :
inv_id
00 01
proto_id
00 00
len
00 00
dst_idx
01
func_code
03
data
00 00 00 01