Modbus registri su mjesto gdje svaki uređaj drži svoje podatke. Temperatura, zadana vrijednost, stanje releja, broj sati rada. Tko razumije njihova pravila, za nekoliko minuta čita bilo koji uređaj. Tko ih ne razumije, satima traži zašto je vrijednost pomaknuta za jedan ili zašto je 2,36e-41 umjesto 21,5.
U ovom članku objašnjavamo četiri vrste Modbus registara, funkcijske kodove, adresiranje s 40001 i 0, tipove podataka te kako registre u praksi očitate besplatnim alatom u pregledniku.

Četiri tablice podataka
Modbus sve podatke uređaja raspoređuje u četiri tablice. Opisuje ih specifikacija Modbus Application Protocol.
| Tablica | Veličina | Pristup | Čitanje | Upis | Referenca |
|---|---|---|---|---|---|
| Zavojnice (coils) | 1 bit | čitanje i upis | FC 01 | FC 05, 0F | 0xxxx |
| Diskretni ulazi | 1 bit | samo čitanje | FC 02 | – | 1xxxx |
| Ulazni registri | 16 bitova | samo čitanje | FC 04 | – | 3xxxx |
| Holding registri | 16 bitova | čitanje i upis | FC 03 | FC 06, 10 | 4xxxx |
Primjeri iz zgrada:
- Zavojnica: uključivanje releja.
- Diskretni ulaz: stanje kontakta prozora.
- Ulazni registar: izmjerena temperatura.
- Holding registar: zadana temperatura ili adresa uređaja.
Pozor: svaki proizvođač sam odlučuje što stavlja u koju tablicu. Neki sve vrijednosti drže u holding registrima. Uvijek pročitajte tablicu registara (mapu registara) u tehničkom listu.
Funkcijski kodovi za registre
| Kod | Značenje | Ograničenje po zahtjevu |
|---|---|---|
| 01 | čitanje zavojnica | do 2000 bitova |
| 02 | čitanje diskretnih ulaza | do 2000 bitova |
| 03 | čitanje holding registara | do 125 registara |
| 04 | čitanje ulaznih registara | do 125 registara |
| 05 | upis jedne zavojnice | – |
| 06 | upis jednog registra | – |
| 0F (15) | upis više zavojnica | – |
| 10 (16) | upis više registara | do 123 registra |
Ograničenja su važna u praksi. Ako tablica ima 200 holding registara, trebate najmanje dva zahtjeva FC 03.
Adrese registara: 40001, 1 ili 0?
Ovo je najčešći izvor pogrešaka. Isti registar može biti zapisan na tri načina:
- Adresa u okviru (od 0). Broj koji stvarno putuje linijom. Prvi holding registar ima adresu 0.
- Broj registra (od 1). Prvi holding registar je registar 1.
- Referentni broj. Prvi holding registar je 40001. Prva znamenka označava tablicu.
Specifikacija kaže: u podatkovnom modelu elementi su numerirani od 1, a u okviru adresirani od 0. Referentni brojevi poput 40001 raširena su konvencija iz starih Modicon priručnika. Nisu dio okvira – tablicu određuje funkcijski kod.
Formule
Za holding registre:
- adresa u okviru = referentni broj − 40001
- broj registra = referentni broj − 40000
Za ulazne registre umjesto 40001 koristite 30001, za diskretne ulaze 10001, za zavojnice 00001.
Tablica pretvorbe
| Tablica | Referentni broj | Broj registra | Adresa u okviru | FC |
|---|---|---|---|---|
| Holding | 40001 | 1 | 0 | 03 |
| Holding | 40010 | 10 | 9 | 03 |
| Holding | 40100 | 100 | 99 | 03 |
| Ulazni | 30001 | 1 | 0 | 04 |
| Ulazni | 30005 | 5 | 4 | 04 |
Šesteroznamenkasti brojevi
U okviru su za adresu dva bajta, dakle adrese od 0 do 65535. Peteroznamenkastim brojevima od 40001 do 49999 može se imenovati samo prvih 9999 registara. Za veće tablice koriste se šesteroznamenkasti brojevi: 400001 do 465536. 410000 je tada adresa 9999.
Heksadecimalne adrese
Mnoge tablice navode adrese heksadecimalno, primjerice 0x0064. To je dekadski 100. Heksadecimalne adrese gotovo su uvijek već adrese u okviru, dakle od 0. 0x0013 je adresa 19, odnosno referentni broj 40020.
Kako čitati tablicu registara iz tehničkog lista
Dobar tehnički list za svaki registar navodi:
- adresu i tablicu (holding, ulazni, zavojnica, diskretni ulaz),
- tip podataka (Int16, UInt32, Float32 …),
- redoslijed bajtova ili riječi za vrijednosti veće od 16 bitova,
- jedinicu i skaliranje,
- pristup: samo čitanje ili čitanje i upis,
- dopušteni raspon za upis.
Na početku ili kraju tablice obično je napomena o brojanju adresa. Pročitajte je prije svega ostalog. Ako napomene nema, pretpostavku provjerite na registru s poznatom vrijednošću, primjerice na inačici firmvera ili zadanoj temperaturi koju vidite na zaslonu uređaja.
Ako nešto nedostaje, većinu podataka možete sami otkriti postupkom opisanim u nastavku.
Tipovi podataka: više od 16 bitova
Jedan registar ima 16 bitova. Za veće vrijednosti uređaji koriste više registara:
| Tip | Registara | Primjer |
|---|---|---|
| Int16 / UInt16 | 1 | temperatura u desetinkama |
| Int32 / UInt32 | 2 | brojilo energije |
| Float32 | 2 | izmjereni napon |
| Int64 / Float64 | 4 | precizna brojila |
Unutar registra bajtovi su uvijek poredani od višeg prema nižem (big-endian). Redoslijed registara kod 32-bitnih vrijednosti određuje proizvođač. Zato postoje četiri mogućnosti: ABCD, CDAB, BADC i DCBA. Pogrešan izbor daje besmislene brojke.
Skaliranje
Mnogi uređaji šalju cijele brojeve s faktorom. 215 može značiti 21,5 °C uz faktor 0,1. Neki dodaju i pomak. Tehnički list navodi formulu. U ModbusMate postavite skaliranje po formuli a × sirova vrijednost + b.
Kako izgleda čitanje registra u okviru
Zahtjev za čitanje jednog holding registra na uređaju 1:
01 03 00 00 00 01 84 0A
01– adresa uređaja03– funkcijski kod00 00– početna adresa (registar 40001)00 01– broj registara84 0A– CRC
Odgovor bi mogao biti 01 03 02 00 D7 i CRC. 02 je broj bajtova, 00 D7 vrijednost 215.
Ako uređaj odgovori s 01 83 02, to je iznimka 02: nevažeća adresa podataka. Registar ne postoji ili je adresa pomaknuta za jedan.
Očitavanje registara u praksi, korak po korak
ModbusMate je naš besplatni Modbus tester u pregledniku Chrome, Edge ili Opera.
1. Pripremite tablicu registara
Iz tehničkog lista izdvojite registre koje trebate: adresu, tablicu, tip, skaliranje i jedinicu. Zapišite i koristi li dokument brojanje od 0 ili od 1.
2. Povežite se
Priključite USB–RS485 adapter, otvorite ModbusMate, odaberite port i postavite brzinu, paritet i stop bitove. Ne znate adresu uređaja? Pomaže članak Modbus adresa uređaja.
3. Otvorite prozor za očitavanje
Unesite adresu uređaja, funkcijski kod (03 ili 04), početnu adresu, broj registara i brzinu osvježavanja. Pritisnite F5.

4. Postavite bazu adresiranja
U ModbusMate postavite adresiranje kao 0- ili 1-bazno i odaberite stil adresa, tako da se brojevi na zaslonu podudaraju s tehničkim listom. Provjerite jedan registar s poznatom vrijednošću.
5. Odaberite format
Za svaki registar odaberite format: Int/UInt 16/32/64, Float32/64 u sva četiri redoslijeda, heksadecimalno, binarno, logički ili ASCII. Dodajte skaliranje.
6. Imenujte i spremite
Registre imenujte sa Shift+F2, primjerice »Temperatura prostora«. Spremite radni prostor s Ctrl+S ili ga izvezite u JSON.

7. Snimite i izvezite
Uključite graf uživo i pratite trend. Mjerenja snimite i izvezite u CSV ili XLSX za zapisnik.
Grupiranje zahtjeva
Linija RS-485 nije beskonačno brza. Svaki zahtjev i odgovor traju određeno vrijeme, a kod niže brzine prijenosa dulje. Zato je pametno registre čitati u blokovima.
- Čitajte uzastopne registre jednim zahtjevom. Umjesto deset zahtjeva za po jedan registar pošaljite jedan zahtjev za deset uzastopnih.
- Poštujte ograničenja. FC 03 i 04 čitaju do 125 registara po zahtjevu.
- Ne preskačite praznine bez provjere. Neki uređaji vraćaju iznimku ako blok sadrži adresu koja ne postoji. Tada blok podijelite.
- Prilagodite osvježavanje. Temperatura u prostoriji ne treba osvježavanje svake desetinke sekunde.
U ModbusMate statusna traka pokazuje vrijeme odziva. Ako raste, linija je preopterećena ili je uređaj spor.
Identifikacija uređaja
Osim registara, mnogi uređaji podržavaju funkcijske kodove za identifikaciju. FC 11 (Report Server ID) vraća identifikaciju koju određuje proizvođač. FC 2B / MEI 0x0E (Read Device Identification) može vratiti proizvođača, model i inačicu. Oba su u test centru ModbusMate kao pripremljeni zahtjevi. Ne podržavaju ih svi uređaji, ali kad rade, brzo potvrđuju s kojim uređajem razgovarate.
Upis u registre
Holding registre i zavojnice možete i upisivati. U ModbusMate u tablici pritisnete Enter ili F2, unesete vrijednost i Ctrl+Enter je upisuje. Funkcijski kodovi su 05, 06, 0F i 10.
Na sustavu u radu budite oprezni:
- Upisujte samo kad točno znate značenje registra.
- Neki registri mijenjaju adresu ili komunikacijske postavke uređaja.
- Za samo praćenje isključite »Writes allowed«.
Zavojnice i diskretni ulazi u praksi
Bitovi se čitaju slično kao registri, samo je svaka vrijednost 0 ili 1. FC 01 čita zavojnice, FC 02 diskretne ulaze, do 2000 bitova po zahtjevu. U odgovoru je osam bitova spakirano u jedan bajt. ModbusMate ih prikazuje pojedinačno, kao logičke vrijednosti.
Zavojnicom 05 uključujete ili isključujete jedan izlaz, primjerice relej. Na sustavu u radu to znači stvarno uključivanje opreme. Zato prije upisa provjerite značenje zavojnice u tehničkom listu.
Česte pogreške s registrima
| Simptom | Vjerojatni uzrok |
|---|---|
| Vrijednost pripada susjednom registru | pomak za jedan (0- ili 1-bazno) |
| Iznimka 02 | registar ne postoji, pogrešna tablica ili pomak |
| Iznimka 01 | uređaj ne podržava funkcijski kod |
| Besmislena 32-bitna vrijednost | pogrešan redoslijed bajtova ili riječi |
| Vrijednost deset puta prevelika | nedostaje skaliranje |
| Polovične vrijednosti | 32-bitna vrijednost pročitana od krive adrese |
Primjer iz prakse: brojilo energije
Integrator spaja brojilo energije s nadzornim sustavom. Tablica navodi napon kao Float32 na 30001–30002 i energiju kao UInt32 na 30011–30012.
U ModbusMate otvori prozor s FC 04, početnom adresom 0 i brojem 12. Napon u prikazu ABCD je ogroman broj. Prebaci na CDAB i vidi realnu vrijednost napona. Energija u CDAB odgovara stanju na zaslonu brojila. Redoslijed je potvrđen za oba tipa.
Registre imenuje, postavi jedinice i izveze radni prostor u JSON. Integrator nadzornog sustava dobiva točnu mapu bez nagađanja.

Najčešće zablude o registrima
»40001 je adresa koju upisujem u alat.« Ne nužno. U okviru je to adresa 0. Ovisi o tome kako alat broji.
»Svi podaci su u holding registrima.« Često, ali ne uvijek. Izmjerene vrijednosti mogu biti u ulaznim registrima, koje čitate s FC 04.
»Registar je uvijek jedan broj.« Ne. Float32 i Int32 zauzimaju dva registra, a 64-bitne vrijednosti četiri.
»Isti proizvođač, isti redoslijed.« Ne nužno. Različite serije istog proizvođača mogu imati različit redoslijed. Provjerite na poznatoj vrijednosti.
Kontrolni popis za mapu registara
- ☐ Za svaki registar poznati su tablica, adresa i funkcijski kod.
- ☐ Poznato je broji li dokument od 0 ili od 1.
- ☐ Za 32- i 64-bitne vrijednosti provjeren je redoslijed.
- ☐ Skaliranje i jedinice su upisani.
- ☐ Najmanje jedan registar provjeren je s poznatom vrijednošću.
- ☐ Registri su imenovani, radni prostor spremljen i izvezen.
Alledio uređaji i registri
Svaki Alledio uređaj ima dokumentiranu tablicu registara s napomenom o brojanju i tipovima. Primjer je Alledio OEM termostat s Modbusom. Serijske postavke objašnjava članak Ključne Modbus postavke za konfiguraciju senzora, a važnost dobre konfiguracije za daljinski nadzor članak Zašto je konfiguracija Modbus senzora ključna za daljinsko praćenje?.
Česta pitanja
Koja je razlika između holding i ulaznih registara?
Holding registre možete čitati (FC 03) i upisivati (FC 06, 10). Ulazne registre samo čitate (FC 04). Oba imaju 16 bitova.
Što znači registar 40001?
To je referentni broj prvog holding registra. U okviru je to adresa 0, a čita se funkcijskim kodom 03.
Koliko registara mogu pročitati jednim zahtjevom?
Funkcijskim kodom 03 ili 04 do 125 registara. Funkcijskim kodom 01 ili 02 do 2000 bitova.
Zašto je moja vrijednost pomaknuta za jedan registar?
Alat i tehnički list koriste različito brojanje. Pomaknite adresu za jedan ili u alatu postavite pravu bazu adresiranja.
Kako pročitati Float32 iz Modbus registara?
Pročitajte dva uzastopna registra i odaberite pravi redoslijed bajtova. ModbusMate prikazuje Float32 u sva četiri redoslijeda.
Očitajte registre sada
Otvorite ModbusMate, unesite početnu adresu i broj registara te pritisnite F5. Za nekoliko minuta imate imenovanu, provjerenu mapu registara.
Sve funkcije su na stranici proizvoda ModbusMate.






