RS485 en Modbus-communicatieprotocol

Aug 29, 2025 Laat een bericht achter

RS485-interface Introductie

 

RS485 is een standaard voor seriële communicatie-interfaces die bekend staat om zijn hoge snelheid, lange- transmissie over lange afstanden, interferentiebestendigheid en mogelijkheden om meerdere- apparaten te delen. Het vindt uitgebreide toepassing in industriële automatisering, slimme huizen, beveiligingssystemen en andere gebieden. Dit artikel biedt een gedetailleerd overzicht van de principes van de RS485-interface, het circuitontwerp, de communicatieprotocollen en oplossingen voor veelvoorkomende problemen.


RS485-principe

 

De RS485-interface maakt gebruik van differentiële transmissie, waarbij gebruik wordt gemaakt van twee signaallijnen (A en B) om signalen op spanningsniveau te transporteren. De signaalgrootte hangt af van het spanningsverschil tussen deze twee lijnen. In de RS485-interface kunnen zowel A- als B-signaallijnen functioneren als zender of ontvanger. Dankzij deze differentiële transmissiemethode kan de RS485-interface effectief externe ruis en interferentie weerstaan, waardoor de transmissiekwaliteit wordt gegarandeerd.


RS485-toepassingsvelden


De RS485-interface wordt veel gebruikt in scenario's die lange-afstanden, hoge- snelheid en stabiele gegevensoverdracht vereisen, zoals industriële automatisering, slimme huizen en beveiligingssystemen. In termen van transmissieafstand ondersteunt RS485 maximaal 1200 meter, en in termen van transmissiesnelheid ondersteunt het maximaal 10 Mbps. Dit maakt de RS485-interface breed toepasbaar in scenario's met gegevensverzameling, regeling, monitoring en controle.

 

 

 

info-638-230

RS485-circuitontwerp


Bij het circuitontwerp voor een RS485-interface moet rekening worden gehouden met meerdere factoren, zoals transmissieafstand, communicatiesnelheid, bliksembeveiliging en isolatie. Hieronder introduceren we het circuitontwerp voor een RS485-interface vanuit elk van deze aspecten.

 

Transmissieafstand


Door de differentiële transmissie ondersteunt de RS485-interface langere transmissieafstanden. In praktische toepassingen leggen factoren zoals de impedantie van de transmissielijn, overspraak en signaalkwaliteit echter beperkingen op aan het transmissiebereik. Om signaalverlies en vervorming tot een minimum te beperken, raden we bij het ontwerpen van RS485-interfacecircuits over het algemeen aan om de transmissieafstand te beperken tot maximaal 1,2 km.


Communicatiesnelheid

 

De RS485-interface kan communicatiesnelheden tot 10 Mbps bereiken. In praktische toepassingen selecteren we doorgaans een passend communicatietarief op basis van specifieke omstandigheden. Hogere communicatiesnelheden verhogen de transmissie-efficiëntie, maar verhogen ook de complexiteit en technische eisen van de interfacecircuits.


Bliksembeveiliging


Gezien de complexe industriële omgeving worden RS485-interfaces vaak geconfronteerd met verschillende storingen, zoals blikseminslag, statische elektriciteit en spanningspieken. Om RS485-interfacecircuits te beveiligen zijn bliksembeveiligingsmaatregelen essentieel. Componenten zoals instelbare overspanningsbeveiligingen en metaaloxidevaristoren (MOV's) kunnen worden gebruikt om blikseminslagbeveiliging te realiseren.


Isolatie

 

In bepaalde scenario's is isolatie tussen de RS485-interface en andere circuits vereist. Dit kan worden bereikt met behulp van componenten zoals optocouplers of magnetische koppelaars om signalen te isoleren. Dit voorkomt effectief potentiële aardlussen en ruisinterferentie, waardoor de betrouwbaarheid en stabiliteit van de interfacecircuits wordt verbeterd.


RS485-communicatieprotocollen


In praktische toepassingen vereisen RS485-interfaces ook protocolspecificaties en dataformattering. Veel voorkomende RS485-communicatieprotocollen zijn Modbus, Profibus en CANopen. Elk protocol beschikt over verschillende kenmerken en toepasselijke scenario's, waardoor selectie op basis van specifieke vereisten mogelijk is. Hieronder introduceren we voornamelijk het Modbus RTU-protocol, het meest gebruikte transmissieprotocol in onze projecten op basis van RS485-interfaces.


Inleiding tot Modbus RTU

 

Modbus RTU is een algemeen toegepast industrieel communicatieprotocol, een van de seriële communicatieprotocollen gebaseerd op het Modbus-framework. Dit protocol wordt voornamelijk gebruikt voor seriële communicatie tussen apparaten zoals PLC-controllers, sensoren en actuatoren en vergemakkelijkt de gegevensuitwisseling. Dit artikel beschrijft de specifieke betekenissen van elk register binnen het Modbus RTU-protocol, geeft voorbeelden van gegevensoverdracht en -ontvangst voor elke functiecode en belicht de cruciale CRC-controlesom.


Modbus RTU-protocolgegevensformaat


Het Modbus RTU-protocol maakt gebruik van seriële communicatie voor gegevensoverdracht.


Specifiek:


Het veld Adres identificeert het adres van het slave-apparaat in de communicatie, wat elke waarde tussen 0 en 247 kan zijn.


De functiecode specificeert het gegevenstype en de lees-/schrijfrichting, doorgaans een geheel getal tussen 1 en 127.


Het gegevensveld bevat de feitelijke gegevensinhoud.
De Checksum (CRC) verifieert de integriteit van het datapakket.
Modbus RTU-protocolfunctiecodes
In het Modbus RTU-protocol vertegenwoordigen verschillende functiecodes verschillende gegevenstypen en lees-/schrijfrichtingen. Hieronder vindt u veelgebruikte functiecodes en hun betekenis:


01: Spoelregister uitlezen
02: Discreet ingangsregister lezen
03: Hold-register lezen
04: Ingangsregister lezen
05: Schrijf een enkelspoelregister
06: Schrijf een enkel hold-register
15: Schrijf meerdere spoelregisters
16: Schrijf meerdere hold-registers


Modbus RTU-protocoladresregisters


Apparaatadressen en registeradressen zijn kritische parameters voor communicatie in het Modbus RTU-protocol. Adresregisters kunnen worden onderverdeeld in de volgende vier typen:


Rolregister (Rolregister)

 

Spoelregisters slaan Booleaanse waarden op (0 of 1). De functiecodes 01, 05 en 15 zijn toegestaan ​​voor werking op spoelregisters. De toestand van elke spoel kan worden weergegeven door een enkele binaire bit.


Als de spoel bij bit 0x0001 bijvoorbeeld is ingesteld op 0, is de binaire waarde 00000000 00000001.. Als de spoel is ingesteld op 1, verandert de binaire waarde in 00000000 00000010.


Discreet invoerregister


Het discrete invoerregister slaat de waarden van binaire ingangsschakelaars op en is alleen-lezen-, waarbij de corresponderende functiecode 02 is. Het verschil tussen het discrete invoerregister en het spoelregister is dat het aangeeft of een schakelaar in de AAN-status staat, en niet in de huidige status.


Register bijhouden

 

Het Holding Register slaat 32-bits integer-variabelen op. Functiecodes 03, 04, 06 en 16 maken lees-/schrijfbewerkingen op het holdingregister mogelijk. Waarden binnen het holdingregister kunnen de gegevensoverdracht tussen apparaten vergemakkelijken of door gebruikers worden aangepast als relevante controleparameters.


Invoerregister

 

Invoerregisters slaan 32-bit integer-variabelen op en ondersteunen alleen-lezen-bewerkingen met functiecode 04. Net als bij holdingregisters kunnen waarden in invoerregisters tussen apparaten worden overgedragen, maar kunnen ze niet door gebruikers worden gewijzigd.


Modbus RTU-protocol CRC-controle

 

Om de betrouwbaarheid van de Modbus RTU-protocolcommunicatie te garanderen, maakt dit protocol gebruik van een Cyclic Redundancy Check (CRC)-methode om de integriteit van datapakketten te verifiëren. De CRC-controlecode wordt berekend op basis van de verzonden en ontvangen datapakketten en wordt gelijktijdig geverifieerd aan zowel de verzendende als de ontvangende kant.


Als we het lees-houdregister (functiecode: 03) als voorbeeld nemen, zijn de hexadecimale waarden van de CRC-controlesom voor de verzonden en ontvangen datapakketten respectievelijk 0x39 en 0x3E. De specifieke verzonden en ontvangen datapakketten zijn als volgt:


Zender-verzond datapakket: 01 03 00 00 00 01 C4 0B
In dit pakket vertegenwoordigen de eerste 6 bits (01 03 00 00 00 01) het Modbus RTU-protocolformaat, terwijl de laatste twee bits (C4 en 0B) de CRC-controlesom vormen.
Ontvangen pakket bij de ontvanger: 01 03 02 00 01 39 3E
In dit datapakket vertegenwoordigen de eerste 6 bits 01 03 02 00 01 39 de ontvangen holdingregisterwaarde (twee bytes), terwijl de laatste twee bits 3E en 39 de berekende CRC-controlesom zijn.


Modbus RTU-protocoltransmissievoorbeeld


Het volgende is een eenvoudig transmissievoorbeeld van het Modbus RTU-protocol voor het lezen van gegevens uit het holdingregister van een apparaat:


Zender verzendt: 01 03 00 00 00 02 C5 9A
Ontvanger ontvangt: 01 03 04 00 00 00 66 CB


In dit voorbeeld wordt het hold-register van apparaat 01 gelezen met behulp van functiecode 03, waarbij toegang wordt verkregen tot de twee bytes op registeradres 0x0000. Het ontvangen datapakket bevat dus de waarden 0x0000 en 0x0000, dat wil zeggen 0x0000 0000, weergegeven in hexadecimaal als 0x66CB.


Conclusie


Dit artikel behandelt voornamelijk de principes, toepassingen, circuitontwerp, communicatieprotocollen en oplossingen voor probleemoplossing voor RS485-interfaces. RS485-interfaces worden veelvuldig gebruikt in industriële automatisering, slimme huizen, beveiligingssystemen en andere gebieden. Er moet echter rekening worden gehouden met factoren zoals transmissieafstand, communicatiesnelheid, bliksembeveiliging en isolatie om de betrouwbaarheid en stabiliteit van de interfacecircuits te garanderen. Basiskennis van het Modbus RTU-protocol wordt geïntroduceerd, inclusief het dataformaat, functiecodes, adresregisters en CRC-checksum. In praktische toepassingen wordt het Modbus RTU-protocol veelvuldig gebruikt voor communicatie tussen apparaten binnen industriële automatiseringsbesturingssystemen. Bij het lezen van gegevens moet bijzondere aandacht worden besteed aan het selecteren van het apparaatadres, het registeradres en de functiecode.

Aanvraag sturen

whatsapp

Telefoon

E-mail

Onderzoek