PLCBytes
Nástroje pro Modbus

Převod Modbus adres

Zadejte adresu z manuálu nebo softwaru a uvidíte stejný registr ve všech zápisech: číslo registru, adresu od nuly, hex i bajty v rámci.

Adresa

Příklad

Například 40001, 400001, 4x0001, 30010, 0x006B nebo prostá adresa jako 107.

Číst jako

Stejný registr ve všech zápisech

Typ
Adresa v požadavku (od 0)
Totéž v hex
Bajty adresy v rámci
Číslo registru, 5 číslic
Číslo registru, 6 číslic
Pořadí počítané od 1

Čtecí požadavek pro tuto adresu

Bajty, které master pošle pro čtení odsud. Porovnejte je se záznamem sériové linky nebo z Wiresharku.

Modbus RTU (CRC nižší bajt první)
Modbus TCP (transakce 1)

Běží celé ve vašem prohlížeči. Nic z toho, co zadáte, se neodesílá na server.

Typy registrů v kostce

TypČísla registrůČteníZápisVelikost
Coily (0x)00001–09999 · 000001–0655360105, 151 bit
Diskrétní vstupy (1x)10001–19999 · 100001–16553602jen čtení1 bit
Input registry (3x)30001–39999 · 300001–36553604jen čtení16 bitů
Holding registry (4x)40001–49999 · 400001–4655360306, 1616 bitů

Číslo registru, nebo adresa?

Manuály obvykle uvádějí registry podle čísla registru: 40001, 30001, 10001 nebo 00001. První číslice určuje tabulku a počítá se od 1. V požadavku na lince je ale něco jiného: adresa od nuly v rozsahu 0 až 65535, bez číslice tabulky. Tabulku místo toho určuje funkční kód, 03 pro holding registry a 04 pro input registry. Proto se z 40001 stane adresa 0 a z 30010 adresa 9 s funkcí 04.

Šestimístná čísla jako 400001 fungují stejně. Existují proto, že pět číslic stačí jen na 9999 registrů v tabulce, kdežto protokol jich dovoluje 65536. Zápisy jako 4x0001 nebo 4x00001 jsou jen jiný způsob, jak napsat 40001.

Časté chyby

Otázky z praxe

Je 40001 adresa 0, nebo 1?

Adresa 0. 40001 je první holding registr v klasickém číslování Modicon, které počítá od 1. Požadavek nese adresu od nuly, takže 40001 se pošle jako 00 00 a 40002 jako 00 01.

Jaký je rozdíl mezi 40001 a 400001?

Žádný, je to stejný registr. Pětimístná čísla dosáhnou jen na 49999, tedy adresu 9998. Šestimístná čísla (400001 až 465536) pokryjí celý rozsah 65536 adres, proto je některé manuály používají pro všechny registry.

Manuál uvádí 0x006B. Co mám zadat do softwaru?

0x006B je hex adresa, desítkově 107. Pokud software chce adresu od nuly, zadejte 107. Pokud chce číslo registru, zadejte 40108 pro holding registr nebo 30108 pro input registr.

Jakým funkčním kódem se čtou registry 3xxxx a 4xxxx?

Input registry (3xxxx) se čtou funkcí 04. Holding registry (4xxxx) se čtou funkcí 03 a zapisují funkcí 06 pro jeden registr nebo 16 pro více. Coily (0xxxx) používají 01, 05 a 15, diskrétní vstupy (1xxxx) funkci 02.

Proč dostávám výjimku 02, neplatná adresa dat?

Zařízení na požadované adrese nemá registr. Typické příčiny jsou adresa posunutá o jedna, hex adresa zadaná jako desítková, čtení input registru funkcí 03 nebo naopak, případně čtení více registrů, než má blok.

Související nástroje