Gedetailleerde uitleg van het Modbus RTU-protocol
MODBUS_RTU communication protocol (this agreement adopts the master-slave question-and-answer method)
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.
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.
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.