• Cart0
    Ialt 0,00 DKK
    Your shopping cart is empty!
    Tax:
    Discount:
    Total:
tirsdag, 26 april 2022 12:47

Modbus TCP

Skrevet af JHB
Bedøm denne artikel
(0 bedømmelser)

Standardprotokol for automatiseringsteknologi

Modbus blev oprindeligt udviklet som en seriel feltbus af Modicon (i dag Schneider Electric) som en kommunikationsvej mellem deres kontroller.

Modbus-protokollens klare og enkle struktur har ført til, at andre producenter også har integreret Modbus i deres enheder. Modbus har således udviklet sig til en standard, der stadig er etableret i dag.


Herre/slave princippet

Modbus arbejder efter master/slave princippet. Det betyder, at der er mindst én master og mindst én slave.

Modbus-slaver er f.eks. B. PLC-styringer, Web-IO'er eller andre decentrale IO-moduler til digitale og analoge signaler.

Masteren er altid den kommunikationspartner, der tager initiativet, dvs. sender en forespørgsel eller det ønskede funktionskald til en slave. Hver slave har en unik adresse. Normalt er slaven rent passiv og reagerer kun, når den er specifikt adresseret med sin adresse.



Master/Slave - Klient/Server

Med den stigende betydning af TCP/IP Ethernet som transmissionsmulighed blev Modbus-protokollen tilpasset næsten 1:1 fra seriel datatransmission til TCP.

Modbus TCP arbejder efter klient/server-princippet, hvor masteren påtager sig rollen som klient, og slaverne fungerer som servere. Modbus-masteren skal derfor oprette en eksplicit TCP-forbindelse til hver Modbus-slave. Denne forbindelse forbliver på plads, så længe kommunikationen varer. Der oprettes ikke en ny forbindelse for hver anmodning.

Den standardiserede TCP-serverport til Modbus TCP er 502.

registre og variabler

Hukommelsesadresser eller registre af Modbus-masteren, dvs. klienten.

Man kan forestille sig det, som om Modbus-slaven, altså serveren, havde et skab med et stort antal skuffer, som alle er nummererede. Funktioner er tildelt skufferne.

Hvis Modbus-masteren ønsker at kalde visse oplysninger frem, indtaster den nummeret på det tilsvarende rum i sin anmodning og får indholdet tilbage fra Modbus-slaven.

Hvis Modbus-masteren vil udløse noget på slaven, f.eks. B. betjener en koblingsudgang, lægger han den nødvendige information i rummet med det tilsvarende nummer.

Som beskrevet i starten sker dette faktisk via tilsvarende hukommelsesadresser (registeradresser). Der er maksimalt 65536 adresser tilgængelige. Hvilken funktion er defineret bag hvilken - er derfor ikke specificeret ensartet.

Som regel er hukommelsen opdelt i områder efter funktioner.

betegnelse datatype adgang beskrivelse
diskret 1 bit bare læs digital indgang eller skiftetilstand
spole 1 bit Læse skrive digital udgang eller skiftetilstand
input registre 16-bit bare læs Værdi mellem 0 og 65535 eller analog værdi eller tællerværdi
holde register 16-bit Læse skrive Værdi mellem 0 og 65535 eller analog værdi eller tællerværdi


Funktionskode

Inden for Modbus-protokollen angiver funktionskoder, hvilken datatype der skal tilgås og hvordan. Her er en liste over de mest almindelige funktionskoder:

FC (dec.) FC (hex.) beskrivelse
01 0x01

Aflæsningsspoler
Aflæsning af digitale udgange eller koblingsudgange

02 0x02

Læs diskrete indgange
Læs digitale indgange eller koblingsadgange

03 0x03

Læs holdregistre
Læsning af 16-bit (output) registre

04 0x04

Læs
inputregistre Læsning af 16-bit (input) registre

05 0x05

Skriv enkelt spole
Skriver en enkelt udgang eller skiftende udgang

06 0x06

Skriv enkelt register
Skriv et enkelt 16-bit register

15 0x0F

Skriv flere spoler
Skrivning af flere udgange eller skift af udgange

16 0x10

Skriv flere registre Skriv flere
16-bit (output) registre

07 0x07


Læs undtagelsesstatus Anmodningsfejlstatus


Modbus protokol struktur

Modbus TCP-protokolrammen har følgende struktur:


Transaktions-id
Transaktions-id'et er noget som et anmodningsnummer og øges med et af masteren for hver anmodning. Klienten svarer med det samme transaktions-id.

Protokol ID
Altid 0 med Modbus TCP.

Længde
Længde af Modbus-data i bytes plus to.

Enheds-ID
Med den serielle Modbus-protokol var dette adressen på slaven. Feltet er blevet vedtaget af hensyn til kompatibilitet. Med Modbus-TCP sker den unikke adressering dog via slavens IP-adresse.

Funktionskode
Modbus-protokollen bruger nummererede funktionskoder til at definere, hvad anmodningen sendt af masteren skal udløse på slaven.

Modbus Data
Modbus dataområdet er fyldt med forskelligt indhold afhængigt af den anvendte funktionskode og kan derfor variere i størrelse. Dataretningen spiller også en rolle i strukturen af ​​Modbus-dataområdet.

Med dataretningen master til slave indeholder de første to bytes altid den hukommelsesadresse, der skal adresseres.



Følgende eksempel viser, hvordan en Modbus-TCP-pakke ser ud, når to registre med funktionskode 3 hentes fra hukommelsesadressen 0x1020.



Svarpakken er struktureret anderledes. Antallet af overførte registerbytes er indkodet i den første byte af Modbus-data. Indholdet af de ønskede registre er i de næste 4 bytes.



På trods af den klare protokolstruktur tilbyder Modbus TCP stor fleksibilitet til industriel kommunikation.

Tip: Vær opmærksom på, om enhedsproducenten angiver værdierne i decimal eller hexadecimal, når du beskriver hukommelsesadresserne .

Læst 122 gange

Skriv en kommentar