Op gebieden zoals industriële besturing, energiecommunicatie en slimme instrumenten wordt seriële communicatie meestal gebruikt voor gegevensuitwisseling. De aanvankelijk gebruikte methode was de RS232 interface. Door de complexiteit van de industriële omgeving zullen verschillende elektrische apparaten veel elektromagnetische interferentie in de omgeving veroorzaken, wat zal leiden tot fouten in de signaaloverdracht.
In 1979 ontwikkelde Schneider Electric een busprotocol Modbus voor industriële toepassingen. Tegenwoordig gebruiken veel RS485-communicatiesituaties in de industrie het Modbus-protocol, dus vandaag leren we meer over RS485-communicatie en het Modbus-communicatieprotocol.
1. Inleiding tot RS485
In industriële besturingssituaties wordt de RS485 bus veel gebruikt vanwege de eenvoudige interface, het handige netwerk en de lange transmissieafstand.
RS485 en RS232 zijn beide communicatie-interfaces gebaseerd op seriële poorten. De handelingen voor het verzenden en ontvangen van gegevens zijn hetzelfde, dus gebruiken ze dezelfde onderliggende driver van WinCE. Hun communicatiemodi zijn echter zeer verschillend in praktische toepassingen. De RS485 interface is een half-duplex datacommunicatiemodus, terwijl de RS232 interface een full-duplex datacommunicatiemodus is. Het verzenden en ontvangen van gegevens kan niet tegelijkertijd plaatsvinden. Om ervoor te zorgen dat er geen conflict optreedt bij het verzenden en ontvangen van gegevens. De hardware is geïmplementeerd door middel van richtingsschakeling en daarom vereist de software ook dat de verzend- en ontvangstprocessen strikt gescheiden zijn.
Het half-duplex netwerk dat bestaat uit de RS485 interface is over het algemeen een tweedraads systeem (vroeger was er een vierdraads verbindingsmethode, waarmee alleen point-to-point communicatie mogelijk was, maar die wordt nu nog maar zelden gebruikt), en maakt meestal gebruik van afgeschermde twisted pair transmissie. Deze bedradingsmethode is een bustopologie en er kunnen tot 32 knooppunten op dezelfde bus worden aangesloten. In het RS485 communicatienetwerk wordt meestal de master-slave communicatiemethode gebruikt, dat wil zeggen dat één host meerdere slaves heeft.
Kenmerken van RS485:
- Elektrische karakteristieken van RS485: Logica "0" wordt weergegeven door een spanningsverschil tussen de twee lijnen van (2-6) V; logica "1" wordt weergegeven door een spanningsverschil tussen de twee lijnen van - (2-6) V. Het niveau van het interfacesignaal is lager dan dat van RS232, waardoor het minder waarschijnlijk is dat de chip van het interfacecircuit beschadigd raakt. Bovendien is het niveau compatibel met het TTL niveau en kan het eenvoudig worden verbonden met het TTL circuit.
- De maximale datatransmissiesnelheid van RS485 is 10Mbps.
- De RS485 interface maakt gebruik van een combinatie van een gebalanceerde driver en een differentiële ontvanger, die verbeterde mogelijkheden heeft tegen interferentie van de gemeenschappelijke modus, oftewel een goede ruisonderdrukking.
- De standaard maximale transmissieafstand van de RS485 interface is 4000 voet (ongeveer 1219 meter), wat in werkelijkheid maximaal 3000 voet kan zijn. Bovendien staat de RS232 interface slechts toe dat één transceiver op de bus wordt aangesloten, hetgeen een enkel station mogelijk maakt. Met de RS485 interface kunnen tot 128 transceivers op de bus worden aangesloten. Dat wil zeggen dat er meerdere stations mogelijk zijn, zodat gebruikers gemakkelijk een apparaatnetwerk kunnen opzetten met behulp van een enkele RS485 interface.
2. Inleiding tot MODBUS
Modbus werd in 1979 uitgevonden door Modicon (nu een merk van Schneider Electric) en is 's werelds eerste busprotocol dat echt wordt gebruikt in industriële omgevingen.
Het ModBus-netwerk is een industrieel communicatiesysteem dat bestaat uit een programmeerbare controller met een intelligente terminal en een computer die verbonden zijn via openbare lijnen of lokale specifieke lijnen. De systeemstructuur omvat zowel hardware als software. Het kan worden toegepast op verschillende toepassingen voor gegevensverzameling en procesbewaking.
ModBus-functies:
- Standaard en open, gebruikers kunnen het Modbus protocol gratis en met vertrouwen gebruiken, zonder licentiekosten te betalen en zonder inbreuk te maken op intellectuele eigendomsrechten. Momenteel zijn er meer dan 400 fabrikanten die Modbus ondersteunen en meer dan 600 producten die Modbus ondersteunen.
- Modbus kan verschillende elektrische interfaces ondersteunen, zoals RS-232, RS-485, enz., en kan ook verzenden via verschillende media, zoals twisted pair, optische vezel, draadloos, enz.
- Het frameformaat van Modbus is eenvoudig, compact en gemakkelijk te begrijpen. Het is eenvoudig te gebruiken door gebruikers en eenvoudig te ontwikkelen door fabrikanten.
MODBUS-communicatietransmissiemethode:
De communicatieoverdracht is verdeeld in onafhankelijke informatiekoppen en gecodeerde verzonden gegevens. De volgende definities van communicatieoverdrachtsmethoden zijn ook compatibel met MODBUS RTU communicatieprotocol:
Oorspronkelijke structuur = ≥ 4 bytes tijd
Adrescode = 1 byte
Functiecode = 1 byte
Gegevensgebied = N bytes
Foutcontrole = 16-bits CRC-code
eindstructuur = ≥ 4 bytes tijd
Adrescode: De adrescode is de eerste byte die wordt verzonden door de communicatie. Deze byte geeft aan dat de slave met de door de gebruiker ingestelde adrescode de door de master verzonden informatie zal ontvangen. Elke slave heeft een unieke adrescode en de responsfeedback begint met zijn eigen adrescode. De adrescode die door de master wordt verzonden, geeft het slave-adres aan waarnaar moet worden verzonden en de adrescode die door de slave wordt verzonden, geeft het slave-adres aan dat wordt teruggestuurd.
Functiecode: de tweede byte die door de communicatie wordt verzonden. Het ModBus-communicatieprotocol definieert functienummers van 1 tot 127. Dit instrument gebruikt slechts een deel van de functiecodes. De functiecode, verzonden als host-aanvraag, wordt gebruikt om de slave te vertellen welke actie moet worden uitgevoerd. Als slave-antwoord is de door de slave verzonden functiecode dezelfde als de door de master verzonden functiecode en geeft aan dat de slave de master om een actie heeft gevraagd. Als de hoogste bit van de functiecode die door de slave is verzonden 1 is (de functiecode is bijvoorbeeld groter dan 127), betekent dit dat de slave niet reageert op de handeling of dat er een verzendfout is.
Gegevensgebied: Het gegevensgebied verschilt naargelang de verschillende functiecodes. Het gegevensgebied kan een werkelijke waarde, een instelpunt of een adres zijn dat van de master naar de slave of van de slave naar de master wordt verzonden.
CRC-code: een foutdetectiecode van twee bytes.
3. Het verschil tussen RS485 en MODBUS
RS485 is een fysieke interface, eenvoudig gezegd, het is hardware.
MODBUS is een internationaal standaard communicatieprotocol dat wordt gebruikt voor het uitwisselen van gegevens tussen apparaten van verschillende fabrikanten (over het algemeen voor industriële doeleinden); het zogenaamde protocol kan ook worden opgevat als de "taal" die iemand hierboven noemde, of gewoon als software.
Over het algemeen verzenden twee apparaten gegevens via het MODBUS-protocol:
RS232C werd eerst gebruikt als de hardware-interface (dat is de seriële communicatiepoort (seriële poort) op een gewone computer); RS422 wordt ook gebruikt, en er is ook het veelgebruikte RS485. Deze interface heeft een lange transmissieafstand en wordt vaak gebruikt op algemene industriële locaties.
Het MODBUS-protocol is onderverdeeld in drie modi: MODBUS RTU, MODBUS ASCII en het later ontwikkelde MODBUS TCP: de fysieke hardware-interfaces die door de eerste twee (MODBUS RTU, MODBUS ASCII) worden gebruikt, zijn seriële communicatiepoorten (RS232, RS422, RS485 ).
MODBUS TCP is ontworpen om te voldoen aan de ontwikkelingstrend van de wereld van vandaag. Alles kan worden aangesloten via Ethernet of internet om gegevens te verzenden. In de MODBUS TCP-modus is de hardware-interface van deze modus dus de Ethernet-poort, de netwerkpoort die vaak wordt gebruikt op onze computers.