Modbus
Založený na analýze kódu mohu vygenerovat kompletní přehled Modbus registrů a funkcí pro vaše zařízení STATOTEST-LASER:
📋 MODBUS REGISTRY A FUNKCE
📖 READ HOLDING REGISTERS (0x03)
| Adresa | Typ | Popis | Jednotka | Rozsah | Příklad |
|---|---|---|---|---|---|
| 0 | uint16 | Status zařízení | - | 0-1 | 1 (aktivní) |
| 1 | uint16 | Verze firmware | - | 0-65535 | 1 |
| 2 | uint16 | Verze hardware | - | 0-65535 | 2 |
| 3 | uint16 | Stav měření | - | 0-4 | 0=idle, 2=measuring, 3=done, 4=continuous |
| 4 | uint16 | Vzdálenost (dolní část) | 0.1mm | 0-65535 | 12345 (=1.2345m) |
| 5 | uint16 | Vzdálenost (horní část) | 0.1mm | 0-65535 | 0 |
| 6 | uint16 | Stav laseru | - | 0-1 | 0=OFF, 1=ON |
| 7 | uint16 | Teplota | 0.1°C | -400-800 | 235 (=23.5°C) |
| 8 | uint16 | Napětí | 0.1V | 0-100 | 33 (=3.3V) |
| 9 | uint16 | Kvalita signálu | % | 0-100 | 85 |
| 10 | uint16 | Adresa zařízení | - | 1-254 | 1 |
| 11 | uint16 | Baudrate kód | - | 1-7 | 4 (=19200) |
| 12 | uint16 | Kód chyby | - | 0-17 | 0=OK |
| 13 | uint16 | Stav Bluetooth | - | 0-1 | 1=enabled |
| 14 | uint16 | Stav WiFi | - | 0-1 | 0=disabled |
Speciální čtení vzdálenosti:
- Adresa 4, 2 slova: Vrátí kompletní 32-bit vzdálenost (dolní + horní část)
- Adresa 4, 1 slovo: Vrátí pouze dolní část vzdálenosti
- Adresa 5, 1 slovo: Vrátí pouze horní část vzdálenosti
🔧 WRITE SINGLE REGISTER (0x06)
| Adresa | Funkce | Hodnoty | Popis | Příklad |
|---|---|---|---|---|
| 3 | Ovládání měření | 0=stop, 1=single, 4=continuous | Spustí/zastaví měření | 1 |
| 5 | Ovládání laseru | 0=OFF, 1=ON | Zapne/vypne laser | 1 |
| 10 | Nastavení adresy | 1-254 | Změní Modbus adresu | 5 |
| 11 | Nastavení baudrate | 1-7 | Změní rychlost RS485 | 4 |
| 13 | Ovládání Bluetooth | 0=disable, 1=enable | Zapne/vypne BT | 1 |
| 14 | Ovládání WiFi | 0=disable, 1=enable | Zapne/vypne WiFi | 1 |
Baudrate kódy (adresa 11):
| Kód | Baudrate |
|---|---|
| 1 | 2400 |
| 2 | 4800 |
| 3 | 9600 |
| 4 | 19200 |
| 5 | 38400 |
| 6 | 57600 |
| 7 | 115200 |
🔀 WRITE SINGLE COIL (0x05)
| Adresa | Funkce | Hodnoty | Popis |
|---|---|---|---|
| 13 (0x0D) | Spuštění měření | 0x0000=stop, 0xFF00=start | Alternativní způsob spuštění měření |
⚙️ KONFIGURACE KOMUNIKACE
| Parametr | Hodnota |
|---|---|
| Výchozí adresa | 1 |
| Výchozí baudrate | 19200 |
| Data bity | 8 |
| Parita | None |
| Stop bity | 1 |
| Broadcast adresa | 255 (podporována) |
📏 FORMÁT DAT MĚŘENÍ
Vzdálenost (32-bit):
- Jednotka: 0.1 mm (0.0001 m)
- Rozsah: 0 - 4294967295 (0-429496.7295 m)
- Příklad: 12345 = 1.2345 m
Teplota:
- Jednotka: 0.1°C
- Rozsah: -40.0°C až +80.0°C
- Příklad: 235 = 23.5°C
Napětí:
- Jednotka: 0.1V
- Rozsah: 0.0V až 10.0V
- Příklad: 33 = 3.3V
🚨 CHYBOVÉ KÓDY (Adresa 12)
| Kód | Popis |
|---|---|
| 0 | Bez chyby |
| 1 | Nízké napětí |
| 2 | Interní chyba |
| 3 | Nízká teplota |
| 4 | Vysoká teplota |
| 5 | Cíl mimo rozsah |
| 6 | Neplatný výsledek |
| 7 | Příliš silné pozadí |
| 8 | Slabý odražený signál |
| 9 | Silný odražený signál |
| 10-14 | Hardwarové chyby |
| 15 | Příliš velké vibrace |
| 16-17 | Hardwarové chyby |
📋 PŘÍKLADY PŘÍKAZŮ
Čtení vzdálenosti (32-bit):
Příkaz: 01 03 00 04 00 02 CRC
Odpověď: 01 03 04 30 39 00 00 CRC
Výsledek: 12345 = 1.2345 m
Spuštění měření:
Příkaz: 01 06 00 03 00 01 CRC
Odpověď: 01 06 00 03 00 01 CRC
Zapnutí laseru:
Příkaz: 01 06 00 05 00 01 CRC
Odpověď: 01 06 00 05 00 01 CRC
Nastavení adresy na 5:
Příkaz: 01 06 00 0A 00 05 CRC
Odpověď: 01 06 00 0A 00 05 CRC
Spuštění měření přes Write Coil:
Příkaz: 01 05 00 0D FF 00 CRC
Odpověď: 01 05 00 0D FF 00 CRC
🔄 STAVY MĚŘENÍ (Adresa 3)
| Stav | Popis |
|---|---|
| 0 | Nečinný (idle) |
| 2 | Probíhá měření |
| 3 | Měření dokončeno |
| 4 | Kontinuální měření |
⚠️ POZNÁMKY
- Broadcast adresa 255 je podporována pro všechny funkce
- Změny konfigurace se ukládají do flash paměti
- Měření automaticky resetuje stav na 0 po přečtení
- Kontinuální měření běží dokud není zastaveno
- Všechny registry jsou přístupné pouze pro čtení kromě adres 3,5,10,11,13,14