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