Caracteristici protocolul modbus tcp - un blog programator acasă

Conexiune ModbusRTUcherez TCP

Cel mai simplu mod de mesagerie Modbus prin intermediul rețelei - pur și simplu trec pachetele prin mufa Modbus RTU TCP (conexiune). În acest caz, formatul de pachet este aceeași ca și pentru protocolul Modbus RTU. În principiu, acest lucru este posibil și să se încheie pe tipul de protocol.

Modbsu pentru schimbul de mesaje prin rețea a decis să utilizeze un protocol modificat. Am luat un standard Modbus RTU și-a schimbat un pic. În primul rând scos din ea ultimele 2 octeți CRC16. Deoarece fiecare pachet TCP / IP conține geanta sa de supraveghere, decidem ce să facem, nu trebuie să verifice din nou. De asemenea, a scos primul octet ID Slave. În principiu, după cum se va vedea mai târziu, El nu a fost eliminat, ci pur și simplu redenumit. Acești octeți fără Slave ID-ul și CRC16 numit PDU - Protocol unitate de date.

De exemplu, să ia interogare Modbus RTU. care citește mai multe registre HOLDING dispozitiv # 17 (Slave ID = 17)

Acum îndepărtați primele și ultimele 2 octeți. Ne-am PDU!

Cu acest tip de clare. Acum, pentru a obține un pachet complet Modbus TCP avem nevoie pentru a adăuga în fața MBAP Antet - Modbus Antet aplicație. Ie avem nevoie pentru a adăuga un titlu. Această poziție include ID-ul tranzacției. Protocol ID. Lungimea și ID-ul unității de învățare.

ID-ul de tranzacție - 2 octeți, care sunt stabilite de către client, care să identifice în mod unic fiecare cerere. Ie este doar un număr 0-65535 unic pentru fiecare cerere.

Protocol ID - 2 octeți care specifică versiunea de protocol. În implementarea curentă ar trebui să fie întotdeauna egală cu 0x00 0x00

Lungime - 2 octeți care specifică lungimea pachetului (cu excepția octet protocol ID ID-ul tranzacției și lungime.)

Dar, de fapt, destul de o situație comună, atunci când există un server care pur și simplu rute solicitările către alte dispozitive Modbus RTU care sunt conectate la acesta prin diverse canale (Ethernet, serial, interfață CAN). Prin urmare, clientul poate folosi serverul Modbus TCP ca o poartă de acces (gateway) pentru a comunica cu dispozitivele din spatele ei.

Caracteristici protocolul modbus tcp - un blog programator acasă

Server EXEMPLU Modbus TCP, care este folosit ca o poarta de acces pentru a redirecționa solicitările către dispozitive Modbus RTU

Acum diagrama ilustrativ, diferența dintre cererea Modbus RTU Modbus TCP de la solicitare.

Caracteristici protocolul modbus tcp - un blog programator acasă

Diferențele Modbus RTU și Modbus TCP cereri

Să vedem un exemplu de octeți la două solicitări: