Protocolul de comunicare Modbus RTU

Apr 27, 2026 Lăsaţi un mesaj

Protocolul Modbus RTU este ca un „limbaj comun” între dispozitivele industriale, permițând „comunicarea” lină între dispozitive, cum ar fi contoarele de energie electrică și senzorii de la diferite mărci.

Demonstrație de aplicare a protocolului de comunicare Modbus

Acest articol vă va ghida prin aplicarea Modbus RTU în contoarele de energie în cel mai simplu și mai ușor de înțeles mod. Chiar dacă sunteți un începător complet fără pregătire tehnică, puteți înțelege cu ușurință punctele de bază ale acestui important protocol de comunicare industrială.

The Modbus RTU protocol

Ce este protocolul Modbus RTU?

Modbus RTU este un protocol de comunicații seriale dezvoltat inițial de Modicon (acum parte a Schneider Electric) în 1979 pentru PLC-urile sale (controlere logice programabile).

Astăzi, a devenit unul dintre cele mai utilizate protocoale în automatizarea industrială, susținut de peste 400 de producători din întreaga lume.

De ce se numește „RTU”? RTU este o abreviere pentru „Remote Terminal Unit”, ceea ce indică faptul că acest protocol este utilizat în principal pentru comunicarea între dispozitive la distanță. Este ca un „sistem de mesaje text” între echipamente electrice, schimbând date printr-un simplu mecanism de solicitare și răspuns.

Cum funcționează Modbus RTU?

Modbus RTU utilizează o arhitectură de comunicare master-slave, ca un profesor și studenți într-o clasă.

  • Maestrul: „Profesorul”, de obicei un computer, un PLC sau un concentrator, este responsabil pentru inițierea întrebărilor și comenzilor.
  • Sclav: „elevul”, cum ar fi un contor de electricitate sau un senzor, poate răspunde doar la întrebările profesorului și nu poate vorbi independent. (În aplicațiile contoarelor de energie electrică...)

Modbus RTU

Format mesaj Modbus RTU

„Șablon SMS” între dispozitive

Mesajele de comunicare Modbus RTU sunt ca mesajele text elaborate cu atenție, cu cerințe de format fixe.

Un mesaj complet Modbus RTU conține următoarele părți:

Cod de adresă Codul funcției Câmp de date Verifica codul
8 biți 8 biți N × 8 biți 16 biți
  • Cod de adresă (1 octet): echivalent cu un „număr de telefon al destinatarului”, identificând adresa contorului de energie țintă (1-247), cu 0 pentru o adresă de difuzare.
  • Cod de funcție (1 octet): Echivalent cu un „tip de mesaj text”, care instruiește contorul de energie asupra operațiunii de efectuat (de exemplu, citirea datelor, scrierea datelor etc.).
  • Câmp de date (N octeți): informațiile specifice care trebuie transmise, cum ar fi adresa de registru, valoarea datelor etc.
  • Sumă de control CRC (2 octeți): echivalent cu un „cod anti-contrafacere”, folosit pentru a verifica erorile în timpul transmiterii.

Un mesaj tipic pentru citirea datelor totale de energie activă pozitivă de la un contor de energie UBS este următorul:

[Adresa 00][Codul funcției 03][Adresa de pornire 00 0C][Lungimea citirii 00 02][CRC Checksum 05 D9]

Acest lucru este echivalent cu a spune: „Toți contoarele, vă rugăm să citiți datele din registrul 000C, începând cu registrul 1”.

După primirea mesajului, contorul #1 va răspunde cu:

[Adresa 01][Codul funcției 03][Lungimea datelor 04][Date 00 00 00 00][CRC Checksum FA 33]
Aceasta înseamnă: „Contorul #1 a răspuns: Valoarea totală a datelor de energie activă pozitivă citită este 00 00 00 00 (hexazecimal)” (Notă: Acest contor #1 este un contor nou, neutilizat). Imaginea de mai jos este o demonstrație de testare:

Modbus RTU Message Format

„Cartea de date” într-un contor de energie electrică: Registrul explicat

În protocolul Modbus RTU, toate datele de la un contor de energie electrică sunt stocate într-o „foaie de calcul”-în registru. Registrele sunt împărțite în principal în patru tipuri:

Tip de înregistrare Permisiune de citire/scriere Coduri de funcții Conținut stocat tipic
Registrul bobinei Citiți/Scrieți 01, 05 Stare releu, control comutator
Registrul de intrare discretă Numai citire{0} 02 Intrare digitală (de exemplu, semnale de alarmă)
Registrul de intrare Numai citire{0} 04 Date de măsurare-în timp real (tensiune, curent etc.)
Registrul de deținere Citiți/Scrieți 03, 06 Parametrii dispozitivului, energia acumulată etc.

În aplicațiile contoarelor de energie electrică, cele mai comune registre sunt:

Registrul de intrare

(Codul funcției 04H): Stochează date măsurate-în timp real, cum ar fi tensiunea, curentul și puterea.

Registrul de deținere

(Codul funcției 03H): Stochează consumul de energie electrică acumulat, parametrii dispozitivului etc.

UBS Energy Meter Modbus Register Adresă Tabel cu informații

Adresa de difuzare a protocolului Modbus este 0x00. Pentru informații detaliate despre adresa de înregistrare a protocolului Modbus pentru contoarele de energie UBS, consultați tabelul de mai jos:

Înregistrare (hexadecimal) Nume variabilă Atribut (unitate / R/W) Tip de date Conta Observații
0x0000 Tensiune DC Unitate: V, R/W: RO S16 1 Interval: -9999~9999; Se citește=Valoarea efectivă × 10^(punct zecimal)
0x0001 Punct zecimal de tensiune Unitate: Niciuna, R/W: RO U16 1 Valoare fixă: 0
0x0002 Valoarea curentului continuu Unitate: A, R/W: RO S16 1 Interval: -9999~9999
0x0003 Punct zecimal curent Unitate: Niciuna, R/W: RO U16 1 Valoare fixă: 1
0x0008 Valoarea puterii Unitate: kW, R/W: RO S16 1 Interval: -9999~9999
0x0009 Punct zecimal de putere Unitate: Niciuna, R/W: RO U16 1 Valoare fixă: 1
0x000C Energie activă directă totală Unitate: 0,001kWh, R/W: RO U32 2 Mai întâi octetul mare, ultimul octet mic; Exemplu: dacă datele sunt=5000, virgulă zecimală=2 → Valoarea reală=5000 × 10^(2-3)=500.0
0x203C Tensiune canalul 1 Unitate: 0,0001V, R/W: RO I32 2 Mai întâi octetul mare, ultimul octet mic
0x203E Tensiune canalul 2 Unitate: 0,0001V, R/W: RO I32 2 Întotdeauna 0
0x2040 Curentul canalului 1 Unitate: 0,0001A, R/W: RO I32 2 Mai întâi octetul mare, ultimul octet mic
0x2042 Curentul canalului 2 Unitate: 0,0001A, R/W: RO I32 2 Întotdeauna 0
0x2044 Puterea canalului 1 Unitate: 0,0001kW, R/W: RO I32 2 Mai întâi octetul mare, ultimul octet mic
0x2046 Canalul 2 Putere Unitate: 0,0001kW, R/W: RO I32 2 Întotdeauna 0
0x9A00 Energie totală activă înainte Unitate: kWh, R/W: RO plutire 2
0xA001/0x8900 Adresa dispozitivului Unitate: Niciunul, R/W: RW U16 1 Interval: 0~247

Demonstrație de citire a mesajelor contorului de energie UBS

Folosind software-ul computerului gazdă al contorului de energie UBS, citiți următoarele date de la contorul de energie inteligent DC DJZ1226: energie activă pozitivă totală, tensiune, curent, putere și adresa contorului.

Demonstration Of Reading UBS Energy Meter Messages

După cum se arată în diagrama de mai sus, conținutul detaliat al mesajului trimis și primit de computerul gazdă este după cum urmează:

13:25:30.229 Energie activă pozitivă totală (000C0002) ...

13:25:30.256 ▼Trimiteți:00 03 00 0C 00 02 05 D9

13:25:30.344 ▲ Primire:01 03 04 00 00 00 00 FA 33

13:25:30.359 Tensiune DC(00000002)...

13:25:30.424 ▼Trimite:00 03 00 00 00 02 C5 DA

13:25:30.428 ▲ Primește:01 03 04 00 17 00 03 0A 36

13:25:30.494 curent continuu (00020002) ...

13:25:30.522 ▼Trimite:00 03 00 02 00 02 64 1A

13:25:30.610 ▲Primire:01 03 04 00 30 00 02 7B FD

13:25:30.621 Putere(00080002)...

13:25:30.682 ▼Trimiteți:00 03 00 08 00 02 44 18

13:25:30.690 ▲ Primește:01 03 04 00 01 00 02 2A 32

13:25:30.702 Adresa de comunicare 2(A0010001)...

13:25:30.779 ▼Trimiteți:00 03 A0 01 00 01 F{6 1B

13:25:30.783 ▲ Primiți:01 03 02 00 01 79 84

13:25:30.795 Sfârșitul citirii datelor.

Probleme comune și tehnici de depanare

Chiar dacă protocolul Modbus RTU este relativ simplu, pot apărea diferite probleme în aplicațiile practice. Următoarele sunt defecțiuni comune și soluții în comunicarea contorului de energie electrică:

Niciun răspuns de comunicare

● Verificați conexiunile fizice:

▪ Cablajul RS-485 este corect (liniile A/B inversate)?

▪ Rezistoarele de terminare sunt potrivite (în general, conectați rezistențe de 120Ω la fiecare capăt al magistralei)?

▪ Distanța de comunicare a depășit limita (RS-485 teoretic poate ajunge la 1200 de metri, dar distanțele reale sunt afectate de factorii de mediu).

● Verificați setările parametrilor:

▪ Rata de transmisie, biții de date, biții de oprire și setările de paritate sunt în concordanță cu contorul de electricitate?

▪ Adresa dispozitivului este setată corect (fără adrese duplicat)?

Comunicare intermitentă

● Verificați dacă există interferențe de linie:

▪ Utilizați un cablu ecranat-pereche răsucită și asigurați-vă că ecranul este împământat la un capăt.

▪ Evitați trecerea cablului în paralel cu cablurile de-înaltă tensiune.

● Testarea dispozitivelor individuale:

▪ Conectați fiecare contor de electricitate individual pentru a depana dispozitivele defecte.

▪ Utilizați software-ul dedicat computerului gazdă al UBS Electronics (cum ar fi AMS) pentru a comunica direct cu contorul de energie electrică și a identifica problema.

Erori de date

● Verificarea verificării CRC:

▪ Verificați dacă codurile CRC trimise și primite sunt consecvente.

▪ Confirmați ordinea octeților de date (Modbus RTU este de obicei little-endian).

● Verificarea mapării registrului:

▪ Confirmați că adresele de registru utilizate sunt în concordanță cu manualul contorului de energie electrică.

▪ Notați decalajul adresei de registru.

Dacă trebuie să utilizați software-ul pentru computer gazdă UBS (protocolul Modbus RTU) menționat în acest articol, vă rugăm să contactați persoana responsabilă cu comanda dvs. de contor UBS și să obțineți mai mult asistență tehnică post-vânzare.

Trimite anchetă