Gedetailleerde uitleg van het verschil tussen Modbus RTU- en Modbus TCP-protocollen

Het Modbus communicatieprotocol werd in 1979 uitgevonden door Modicon en is 's werelds eerste busprotocol dat in industriële omgevingen wordt gebruikt. Omdat het gratis openbaar is gemaakt, hoeven fabrikanten die het protocol gebruiken geen kosten te betalen, waardoor het Modbus-protocol wereldwijd op grote schaal wordt gebruikt.

Het Modbus communicatieprotocol kent meerdere varianten, waarvan de Modbus RTU en Modbus TCP protocollen de meest voorkomende zijn.

De twee protocollen lijken erg op elkaar. Laten we het lezen van meerdere holdingregisters als voorbeeld nemen om het verschil te illustreren:

Het verzendformaat van de Modbus RTU-communicatie is: slave-adres 01 (geeft het slave-adres aan) functiecode 03 (lezen van enkele/meervoudige holdingregisters) datastartadres 00 00 (geeft aan dat het begint bij 40001) datanummer 00 02 (geeft aan dat twee woorden worden gelezen) CRC-controlecode xx xx (de CRC-controlecode is hier C4 0B), die samen 01 03 00 00 00 02 C4 0B is. Na het verzenden stuurt het slave-station data terug. Het dataformaat is: 01 03 04 01 02 03 04 5B 3C, waarbij 01 adres slave station, 03 functiecode lezen, 04 aantal databytes, 01 02 03 04 data-inhoud, 5B 3C de CRC-controlecode is.

Het Modbus TCP protocol voegt een MBAP header toe aan het Modbus RTU protocol. Aangezien TCP een service is die gebaseerd is op betrouwbare verbindingen, is de CRC-controlecode in het RTU-protocol niet langer nodig, dus is er geen CRC-controle in het Modbus TCP-protocol. Uit verificatie blijkt dat de MBAP-header zeven bytes lang is. Behalve de vijfde en zesde byte is de rest in principe ongewijzigd. Als je bijvoorbeeld Modbus TCP gebruikt om de bovenstaande bewerking uit te voeren, stuur je 00 01 00 00 00 06 ff 03 00 00 02. De vijfde en zesde byte zijn 00 06 ff 03 00 00 02. De vijfde en zesde byte zijn 00 06, wat betekent dat er 6 bytes volgen op 00 06. Zie de figuur hieronder voor specifieke bewerkingen

De retourwaarde is 00 01 00 00 07 ff 03 04 01 02 03 04. De eerste 7 bytes zijn de MBAP-berichtkop, 03 functiecode lezen, 04 gegevensbytes, 01 02 03 04 vertegenwoordigt de gegevensinhoud.

Dus het Modbus TCP protocol is eigenlijk het Modbus RTU protocol met de CRC check code verwijderd, de vorige slave adrescode verwijderd en een 7-byte MBAP header aan de voorkant toegevoegd.

Modbus TCP is geëvolueerd op basis van ethernet en de fysieke interface bepaalt de communicatiesnelheid en verificatiemethode.

Het bovenstaande is het basisverschil tussen de Modbus RTU en Modbus TCP protocollen. Het is duidelijker beschreven en ik hoop dat het ieders twijfels kan wegnemen.

X

Schakel JavaScript in je browser in om dit formulier in te vullen.
Voer productgegevens in zoals interfaceconfiguratie, omgeving enz. en andere specifieke vereisten om een nauwkeurige offerte te ontvangen.

nl_NLDutch
Schakel JavaScript in je browser in om dit formulier in te vullen.
Voer productgegevens in zoals interfaceconfiguratie, omgeving enz. en andere specifieke vereisten om een nauwkeurige offerte te ontvangen.