Gedetailleerde uitleg van het Modbus RTU-protocol

Gedetailleerde uitleg van het Modbus RTU-protocol

MODBUS_RTU communication protocol (this agreement adopts the master-slave question-and-answer method)

PDM-serie meters/zenders: PDM-serie meters / zenders nemen een gloednieuw ontwerp, dat een revolutie in het concept van de traditionele elektriciteitsmeters; het heeft multifunctionele, hoge precisie, digitale, programmeerbare, compacte structuur en multi-screen display. Kenmerken, kan het voldoen aan de toekomstige vraag naar elektriciteitsmeters in de energie-industrie.

MODBUS communicatieprotocol: Dankzij het ModBus-communicatieprotocol kunnen PDM-serie instrumenten/zenders communiceren met programmeerbare sequentiecontrollers (PLC), RTU, SCADA-systemen, DCS of derden van vele internationaal bekende merken zoals Schneider, Siemens, AB, GE, enz. Informatie-uitwisseling en gegevensoverdracht tussen ModBus-compatibele monitoringsystemen.

What Are The Functions And Differences Between Mqtt Protocol Gateway And Modbus Protocol?/Modbus RTU protocol

De instrumenten/zenders uit de PDM-serie kunnen een vermogensbewakingssysteem vormen door eenvoudigweg een set op een computer (of industriële computer) gebaseerde bewakingssoftware toe te voegen (zoals Kingview, in ouch, FIX, synall, etc.).

Uitgebreide systeemintegratie: PDM-serie instrumenten/zenders bieden standaard RS-485/422 communicatie-interface en ModBus communicatieprotocol. Dit communicatieprotocol wordt veel gebruikt als systeemintegratiestandaard in de energie-industrie en industriële besturingsindustrie in binnen- en buitenland.

Type en formaat van communicatiegegevens: De informatieoverdracht is asynchroon en in bytes.bestaan

De communicatie-informatie die wordt verzonden tussen het masterstation en het slavestation is in 11-bits woordformaat:

Word-indeling (seriële gegevens) 11-bits binair

Start bit 1

Gegevensbits 8 bits

Pariteitsbit 1 bit: Met pariteitsbit/None: Geen pariteitsbit

Stopbit 1 bit: met pariteitsbit/2 bits: zonder pariteitsbit

Formaat communicatiegegevens (informatieframe)

Gegevensformaat: Adrescode Functiecode Gegevensgebied Foutcontrole

Gegevenslengte: 1 byte 1 byte N bytes 16-bits CRC-code (redundante cyclus

code)

Opmerking

1. 1 byte bestaat uit 8-bits binaire getallen (dat wil zeggen, 8 bits).

2. ModBus is een geregistreerd handelsmerk van Modicon Company.

3. "Slave-machine" in dit document verwijst naar PDM.

1. Communicatie informatieoverdracht proces:

Wanneer de communicatieopdracht van het verzendende apparaat (host) naar het ontvangende apparaat (slave) wordt verzonden, ontvangt de slave die aan de bijbehorende adrescode voldoet de communicatieopdracht en leest de informatie volgens de functiecode en gerelateerde vereisten. Als de CRC-controle correct is, wordt de bijbehorende opdracht uitgevoerd en worden de uitvoeringsresultaten (gegevens) teruggestuurd naar de host. De teruggezonden informatie bevat adrescode, functiecode, gegevens na uitvoering en CRC-controlecode. Als de CRC-controle mislukt, wordt er geen informatie teruggestuurd.

1.1 Address code

De adrescode is de eerste byte (8 bits) van elk communicatie-informatieframe, van 0 tot 255. Deze byte geeft aan dat de slave met een door de gebruiker ingesteld adres de door de master verzonden informatie ontvangt. Deze byte geeft aan dat de slave met een door de gebruiker ingesteld adres de door de master verzonden informatie zal ontvangen. Elke slave moet een unieke adrescode hebben en alleen de slave die overeenkomt met de adrescode kan reageren op het feedbackbericht. Wanneer de slave informatie terugstuurt, beginnen de teruggestuurde gegevens met hun respectievelijke adrescodes. De door de master verzonden adrescode geeft het slave-adres aan waarnaar verzonden moet worden en de door de slave teruggezonden adrescode geeft het teruggezonden slave-adres aan. De corresponderende adrescode geeft aan waar de informatie vandaan kwam.

1.2 Function code

Het is de tweede byte die wordt verzonden in elk communicatie-informatieframe. Het ModBus-communicatieprotocol kan functiecodes van 1 tot 127 definiëren. PDM-serie instrumenten/zenders gebruiken slechts een deel van de functiecodes. De functiecode, verzonden als hostaanvraag, wordt gebruikt om de slave te vertellen welke actie deze moet uitvoeren. Als slave-antwoord is de functiecode die door de slave wordt teruggestuurd dezelfde als de functiecode die door de host is verzonden en geeft aan dat de slave heeft gereageerd op de host en de relevante bewerkingen heeft uitgevoerd.

Tabel 8.1 Enkele functiecodes van MODBUS

Functiecode definitie bewerking (binair)

02 Ingang schakelaar lezen Ingangsgegevens van een of meer schakelaars lezen

01 Schakeluitgang lezen Een of meer statusgegevens van de schakeluitgang lezen

03 Registergegevens lezen Gegevens uit een of meer registers lezen

05 Schakelaaruitgang schrijven om de "dicht/open"-uitgang van een relais te besturen

06 Eén register schrijven Een set binaire gegevens in één register schrijven

10 Meerdere registers schrijven Meerdere sets binaire gegevens naar meerdere registers schrijven

1.3 Data area

In het datagebied staat welke informatie moet worden teruggestuurd van de slave of welke actie moet worden uitgevoerd. Deze informatie kan data zijn (zoals: schakel in-/uitgang, analoge in-/uitgang, register, etc.), referentieadres, etc. Als de host bijvoorbeeld aan de slave vertelt om de waarde van het register (inclusief het startadres van het te lezen register en de lengte van het gelezen register) terug te sturen via functiecode 03, dan bevatten de teruggestuurde gegevens de datalengte en datainhoud van het register. Voor verschillende slave-machines zijn de adres- en data-informatie verschillend (er moet een tabel met communicatie-informatie worden opgegeven).

De PDM-serie instrumenten/zenders maakt gebruik van het Modbus communicatieprotocol. De host (PLC, RTU, PC, DCS, etc.) kan het dataregister naar believen lezen met behulp van het communicatiecommando (functiecode 03) (zie de bijlage voor de tabel met data-informatie). Het dataregister van de PDM-serie instrumenten/zenders slaat honderden elektrische grootheden op (zoals stroom, spanning, vermogen, 0~31e harmonische componenten, enz.) en het zijn allemaal 16-bits (2 bytes) binaire gegevens. ) en het zijn allemaal 16-bits (2 bytes) binaire gegevens. Het maximale aantal registers dat in één keer kan worden uitgelezen (dat wil zeggen het aantal verschillende soorten vermogens) is 50.

De opdrachtindeling van het PDM-antwoord is slave-adres, functiecode, gegevensgebied en CRC-code. De gegevens in het gegevensgebied zijn allemaal twee bytes, met het hoogste bit eerst (behalve voor elektrische energie).

Note: 1. PDM-820AC/ACM/ACR, PDM-800AC/ACM tools

Er zijn "03", "06" en "10" functiecodes;

2. Als de PDM het MODBUS ASCII-communicatieprotocol gebruikt, is de indeling van de communicatiegegevens als volgt: 7

Gegevensbits, 1 stopbit, even pariteit.

2. Inleiding tot MODBUS-functiecodes

2.1 Functiecode "02": Een of meer schakeltoestandingangen lezen

Bijvoorbeeld: de host wil de ingangsstatus van schakelaar DI1-DI4 met adres 01 lezen.

Het adres en de gegevens van het gegevensregister van de slaaf (PDM) zijn:

Beginnend bitadres DI registergegevens (hexadecimaal) Opmerkingen 0000 0B

De status van DI1/DI2/DI4 is "1" en de status van DI3 is "0".

Het berichtformaat dat door de host wordt verzonden:

Aantal door de host verzonden bytes Verzonden informatie Opmerkingen

Slave-adres 1 01 wordt verzonden naar de slave met adres 01

Functiecode 1 02 leest de ingangsstatus van de schakelaar

Start BIT bit 2 0000 Het startadres van de BIT bit is 0000.

Datalengte lezen 2 0004 Statusbits 4-weg schakelaaringang lezen

CRC-code 2 79C9 De CRC-code wordt berekend door de host

Het berichtformaat dat wordt teruggestuurd door het antwoord van de slave (PDM):

Slave antwoord aantal bytes geretourneerde informatie opmerkingen

Slave-adres 1 01 komt van slave 01

Functiecode 1 02 leest de ingangsstatus van de schakelaar

Datalengte 1 01 1 byte (8 BIT bits)

DI statusdata 1 0B Inhoud DI-register

CRC-code 2 E04F De CRC-code wordt berekend door de slavemachine

2.2 Functiecode "01": Status van een of meer schakeluitgangen lezen

Bijvoorbeeld: de host wil de uitgangsstatus van schakelaar DO1 en DO2 met adres 01 lezen.

Het adres en de gegevens van het gegevensregister van de slaaf (PDM) zijn:

Beginnend bitadres DO registergegevens (hexadecimaal) Opmerkingen

0000 02 Uitgangsstatus DO2 is "1", uitgangsstatus DO1

Status is "0".

Het berichtformaat dat door de host wordt verzonden:

Aantal door de host verzonden bytes Verzonden informatie Opmerkingen

Slave-adres 1 01 wordt verzonden naar de slave met adres 01

Functiecode 1 01 leest de status van de schakeluitgang

Start BIT bit 2 0000 Het startadres van de BIT bit is 0000.

Lees datalengte 2 0002 Lees 2 relaisuitgangsstatusbits

CRC-code 2 BDCB De CRC-code wordt berekend door de host

Het berichtformaat dat wordt teruggestuurd door het antwoord van de slave (PDM):

Slave antwoord aantal bytes geretourneerde informatie opmerkingen

Slave-adres 1 01 komt van slave 01

Functiecode 1 01 leest de status van de schakeluitgang

Datalengte 1 01 1 byte (8 BIT bits)

DO-statusgegevens 1 02 Inhoud DO-register

CRC-code 2 D049 De CRC-code wordt berekend door de slave-machine.

2.3 Functiecode "03": Ingangen van meerdere registers lezen

Bijvoorbeeld: de host wil het aantal van 3 slave-registers lezen met adres 01 en startadres 0116.

volgens.

Het adres en de gegevens van het gegevensregister van de slaaf (PDM) zijn:

Registeradres Registergegevens (hexadecimaal) Overeenkomstig PDM-vermogen

0116 1784UA

0117 1780UB

0118 178A UC

Het berichtformaat dat door de host wordt verzonden:

Aantal door de host verzonden bytes Verzonden informatie Opmerkingen

Slave-adres 1 01 wordt verzonden naar de slave met adres 01

Functiecode 1 03 Register lezen

Startadres 2 0116 Startadres is 0116

Datalengte 3 0003 3 registers lezen (in totaal 6 bytes)

CRC-code 2 E5F3 De CRC-code wordt berekend door de host

Het berichtformaat dat wordt teruggestuurd door het antwoord van de slave (PDM):

Slave antwoord aantal bytes geretourneerde informatie opmerkingen

Slave-adres 1 01 komt van slave 01

Functiecode 1 03 Register lezen

Lees woord 1 06 3 registers totaal 6 bytes

Registergegevens 1 2 1784 De inhoud van het geheugen op adres 0116

Registergegevens 2 2 1780 De inhoud van het geheugen op adres 0117

Registergegevens 3 2 178A De inhoud van het geheugen op adres 0118

CRC-code 2 5847 De CRC-code wordt berekend door de slave-machine

2.4 Functiecode "05": schrijf 1 schakeluitgang ("afstandsbediening")

Voorbeeld 1: schakeluitgang DO1, de huidige status is "minuut", de host wil dit relais aansturen

Het apparaat "sluit zich aan".

De besturingscommando's zijn:

"FF00" betekent dat het stuurrelais "gesloten" is;

"0000" is de "minuut" van het stuurrelais;

Het berichtformaat dat door de host wordt verzonden:

Aantal door de host verzonden bytes Verzonden informatie Opmerkingen

Slave-adres 1 01 wordt verzonden naar de slave met adres 01

Functiecode 1 05 schrijft schakeluitgangsstatus

Uitgang BIT bit 2 0000 komt overeen met uitgangsrelais BIT bit (DO1)

Stuurcommando 2 FF00 regelt de relaisuitgang op "aan" statusbit

CRC-code 2 8C3A De CRC-code wordt berekend door de host

Het berichtformaat dat wordt teruggestuurd door het antwoord van de slave (PDM):

Het formaat en de gegevensinhoud van het bericht dat door de host wordt verzonden, zijn precies hetzelfde.

Voorbeeld 2: schakeluitgang DO2, de huidige status is "gesloten" en de host wil dit relais aansturen

Het apparaat "wijst".

Berichtformaat verzonden door de host

Aantal door de host verzonden bytes Verzonden informatie Opmerkingen

Slave-adres 1 01 wordt verzonden naar de slave met adres 01

Functiecode 1 05 schrijft schakeluitgangsstatus

Uitgang BIT bit 2 0001 komt overeen met uitgangsrelais BIT bit (DO2)

Stuurcommando 2 0000 zet de relaisuitgang op "aan" statusbit

CRC-code 2 9C0A De CRC-code wordt berekend door de host

Het berichtformaat dat wordt teruggestuurd door het antwoord van de slave (PDM):

CRC-code berekend door de host

Het berichtformaat dat wordt teruggestuurd door het antwoord van de slave (PDM):

Het formaat en de gegevensinhoud van het bericht dat door de host wordt verzonden, zijn precies hetzelfde.

DTU/Edge Gateway/IoT-platform/Gateway-module

2.6 Functiecode "10": Meerdere registers schrijven

De host gebruikt deze functiecode om meerdere gegevens op te slaan in het datageheugen van de PDM-tabel.

Het register in het Modbus-communicatieprotocol verwijst naar 16 bits (d.w.z. 2 bytes), en het hoogste bit is het eerste.

Op deze manier is het geheugen van PDM twee bytes.Aangezien het Modbus-communicatieprotocol maximaal

Sla 60 registers op. Met PDM kunnen maximaal 60 gegevensregisters tegelijk worden opgeslagen.

Bijvoorbeeld: de host wil 0064, 0010 opslaan in de slave-registers met adressen 002C, 002D

Go (slave-adrescode is 01). Nadat de communicatiegegevens zijn opgeslagen, wordt de PDM met adres 002C/002D

De informatie in de tabel is:

Oorspronkelijk opgeslagen gegevensadres (hexadecimaal)

002C 04B0

002D 1388

Het berichtformaat dat door de host wordt verzonden:

CRC-code berekend door de host

Het berichtformaat dat wordt teruggestuurd door het antwoord van de slave (PDM):

Slave-antwoord aantal bytes aantal bytes voorbeeld

Slave-adres 1 01 komt van slave 01

Functiecode 1 10 Meerdere registers schrijven

Startadres 2 002C Het startadres is 002C

Opslaan data woordlengte 2 0002 Opslaan data woordlengte 2

CRC-code 2 8001 CRC-code berekend door de slave-machine

3. Error check code (CRC check)

4. Processing of communication error information and data

Wanneer de PDM-tabel een andere fout detecteert dan de fout in de CRC-code, moet deze een bericht terugsturen naar de host

informatie is de hoogste positie van de functiecode 1, dat wil zeggen dat de functiecode die door de slave naar de host wordt teruggestuurd, door de host wordt verzonden.

Voeg 128 toe op basis van de verzonden functiecode. De volgende codes geven aan dat er een onverwachte fout is opgetreden

geboren.

Als de informatie die PDM van de host ontvangt CRC-fouten bevat, wordt deze door de PDM-tabel genegeerd.

Het formaat van de foutcode die door PDM wordt geretourneerd, is als volgt (met uitzondering van de CRC-code):

Adrescode: 1 byte

Functiecode: 1 byte (de hoogste bit is 1)

Foutcode: 1 byte

CRC-code: 2 bytes.

Het PDM-antwoord geeft de volgende foutcode:

81. Ongeldige functiecode. De ontvangen functiecode wordt niet ondersteund door de PDM-tabel.

82. Ongeldige gegevenslocatie. De opgegeven gegevenslocatie overschrijdt het bereik van de PDM-tabel.

rond.

83. Illegale gegevenswaarde.De van de host ontvangen gegevenswaarde overschrijdt de PDM-fase

Het gegevensbereik van het corresponderende adres.

 

Recente artikelen

Neem contact met ons op