Přeskočit na hlavní obsah

Modbus

Zde je kompletní přehled Modbus registrů pro vaše zařízení GEOSNAKE:

📋 Modbus Registry pro STATOTEST GEOSNAKE

🔧 Základní konfigurace zařízení

RegistrTypPopisJednotkaPoznámka
0x0000RStatus registr-Vždy 1
0x0001RFirmware verze-0x0005
0x0002RHardware verze-0x0003
0x0080R/WBaudratebps9600, 19200, 38400, 57600, 115200 (kvůli zpětné kompatibilitě s FW < 5 )
0x0082R/WModbus adresa1-255Uloženo v flash (kvůli zpětné kompatibilitě s FW < 5 )
0x0083R/WBaudratebps1 = 9600,2 = 19200,3 = 38400,4 = 57600,5 = 115200
0x0084R/WWiFi stav0/10=OFF, 1=ON (pro verzi E-C6)
0x0085R/WBluetooth stav0/10=OFF, 1=ON (pro verzi E-C6)
0x0086WRestart zařízení-Nenulová hodnota = restart (pro verzi E-C6)
0x0087R/WHTTP Enable0/1HTTP odesílání dat (pro verzi E-C6 pouze při aktivní wifi)

🔍 IDENTIFIKACE ZAŘÍZENÍ 0x0700-0x070F

Chip ID a MAC Address

RegistrNázevTypPopis
0x0700Chip ID [63:48]RChip ID bits 63-48
0x0701Chip ID [47:32]RChip ID bits 47-32
0x0702Chip ID [31:16]RChip ID bits 31-16
0x0703Chip ID [15:0]RChip ID bits 15-0
0x0704MAC [47:32]RMAC adresa bits 47-32
0x0705MAC [31:16]RMAC adresa bits 31-16
0x0706MAC [15:0]RMAC adresa bits 15-0

System Information

RegistrNázevTypPopisJednotka
0x0707CPU CoresRPočet CPU jader-
0x0708CPU FrequencyRFrekvence CPUMHz
0x0709Flash SizeRVelikost Flash pamětiKB
0x070AFree HeapRVolná RAM paměťKB
0x070BUptime HighRUptime horních 16 bitůsekundy
0x070CUptime LowRUptime spodních 16 bitůsekundy
0x070FChip RevisionRRevize čipu-

WiFi Klientská IP adresa (0x0710-0x0713)

AdresaRegistrPopisTypR/WJednotka
0x0710WiFi IP [31:24]IP adresa klienta (nejvyšší byte)uint16R-
0x0711WiFi IP [23:16]IP adresa klientauint16R-
0x0712WiFi IP [15:8]IP adresa klientauint16R-
0x0713WiFi IP [7:0]IP adresa klienta (nejnižší byte)uint16R-

Poznámka: Pokud není zařízení připojeno k WiFi jako klient (STA nebo APSTA), registry vrací 0.

⚙️ Konfigurace ADXL355

RegistrTypPopisJednotkaPoznámka
0x0601R/WPočet vzorkůks24-1024
0x0602R/WRozsah měření-1=±2g, 2=±4g, 3=±8g
0x0603R/WVýstupní frekvence-0=4000Hz, 1=2000Hz, 2=1000Hz, 3=500Hz, 4=250Hz, 5=125Hz, 6=62.5Hz, 7=31.25Hz, 8=15.625, 9=7.813, 10=3.906

📊 Výsledky měření ADXL355 (původní formát)

RegistrTypPopisJednotkaPoznámka
0x0609RTeplota (raw)-Raw hodnota
0x060A-0x060BRPrůměr X (32-bit)rawHigh+Low word
0x060C-0x060DRPrůměr Y (32-bit)rawHigh+Low word
0x060E-0x060FRPrůměr Z (32-bit)rawHigh+Low word
0x0610-0x0611RMinimum X (32-bit)rawHigh+Low word
0x0612-0x0613RMinimum Y (32-bit)rawHigh+Low word
0x0614-0x0615RMinimum Z (32-bit)rawHigh+Low word
0x0616-0x0617RMaximum X (32-bit)rawHigh+Low word
0x0618-0x0619RMaximum Y (32-bit)rawHigh+Low word
0x061A-0x061BRMaximum Z (32-bit)rawHigh+Low word

📊 Výsledky měření ADXL355 (scaled × 10,000,000)

RegistrTypPopisJednotkaPoznámka
0x0650-0x0651RMinimum X (32-bit)g × 10⁷Signed int
0x0652-0x0653RMinimum Y (32-bit)g × 10⁷Signed int
0x0654-0x0655RMinimum Z (32-bit)g × 10⁷Signed int
0x0656-0x0657RMaximum X (32-bit)g × 10⁷Signed int
0x0658-0x0659RMaximum Y (32-bit)g × 10⁷Signed int
0x065A-0x065BRMaximum Z (32-bit)g × 10⁷Signed int
0x065C-0x065DRPrůměr X (32-bit)g × 10⁷Signed int
0x065E-0x065FRPrůměr Y (32-bit)g × 10⁷Signed int
0x0660-0x0661RPrůměr Z (32-bit)g × 10⁷Signed int

📐 Vypočítané úhly ADXL355

RegistrTypPopisJednotkaPoznámka
0x0662-0x0663RÚhel X (32-bit)° × 10⁴angleX v setinách stupně
0x0664-0x0665RÚhel Y (32-bit)° × 10⁴angleY v setinách stupně
0x0666-0x0667RÚhel Z (32-bit)° × 10⁴angleZ v setinách stupně
0x0668-0x0669RPitch (32-bit)° × 10⁴Náklon dopředu/dozadu
0x066A-0x066BRRoll (32-bit)° × 10⁴Náklon doleva/doprava
0x066C-0x066DRCelkový náklon (32-bit)° × 10⁴Od horizontály

⚙️ Konfigurace MLX90393

RegistrTypPopisJednotkaPoznámka
0x0605R/WPočet vzorkůks1-1024
0x0630R/WMLX90393 Gain0-7 (viz tabulka)
0x0631R/WMLX90393 Oversampling0-3 (OSR_0 až OSR_3)
0x0632R/WMLX90393 Filter0-7 (FILTER_0 až FILTER_7)

MLX90393 Gain hodnoty

IndexZesíleníPopis
01.0xVýchozí
11.33xNízké zesílení
21.67xStřední-nízké
32.0xStřední
42.5xStřední-vysoké
53.0xVysoké
64.0xVelmi vysoké
75.0xMaximální

🧲 Výsledky měření MLX90393

RegistrTypPopisJednotkaPoznámka
0x061C-0x061DRPrůměr X (32-bit)mT × 1000High+Low word
0x061E-0x061FRPrůměr Y (32-bit)mT × 1000High+Low word
0x0620-0x0621RPrůměr Z (32-bit)mT × 1000High+Low word

🎛️ Ovládací registry

RegistrTypPopisHodnotaAkce
0x0600R/WSpustit měření ADXL3550=Připraven 1=Start 2=DokončenoFC06/FC03 Spustí task měření, obsahuje stav měření
0x0604R/WSpuštění měření MLX903930=Připraven 1=Start 2=DokončenoFC06/FC03 Spustí task měření, obsahuje stav měření
0x000DCoilSpustit měření ADXL3550xFF00FC05 - Write Coil

🎛️ Řízení měření pomocí registru 0x0600

Stavy měření:

HodnotaStavPopisAkce
0IdleŽádné měření neběžíPřipraveno ke spuštění
1RunningMěření právě probíháČekejte na dokončení
2CompletedMěření dokončenoData připravena ke čtení

Automatické chování:

  • Spuštění měření: Zápis hodnoty 1 do registru 0x0600
  • Dokončení měření: Registr se automaticky nastaví na 2
  • Automatický reset: Po přečtení hodnoty 2 se registr resetuje na 0

💡 Příklady použití

Spuštění a sledování měření:

1. Kontrola stavu:    03 01 06 00 00 01  → 00 (idle)
2. Spuštění měření: 06 01 06 00 00 01 → Spustí task
3. Kontrola průběhu: 03 01 06 00 00 01 → 01 (running)
4. Kontrola dokončení: 03 01 06 00 00 01 → 02 (completed) + auto reset
5. Další kontrola: 03 01 06 00 00 01 → 00 (idle)

Konfigurace před měřením:

Nastavit 500 vzorků:    06 01 06 01 01 F4
Nastavit rozsah ±4g: 06 01 06 02 00 01
Spustit měření: 06 01 06 00 00 01

Čtení scaled hodnot (g × 10,000,000):

Průměr X:      03 01 06 5C 00 02  → 2 registry (High+Low)
Minimum Y: 03 01 06 52 00 02 → 2 registry (High+Low)
Maximum Z: 03 01 06 5A 00 02 → 2 registry (High+Low)

Čtení úhlů (° × 10,000):

Úhel X:        03 01 06 62 00 02  → 2 registry (High+Low)
Pitch: 03 01 06 68 00 02 → 2 registry (High+Low)
Roll: 03 01 06 6A 00 02 → 2 registry (High+Low)

Alternative spuštění přes coil:

Spuštění přes FC05:    05 00 0D FF 00    → Spustí měření

Čtení stavů:

Čtení WiFi stavu:      03 01 06 25 00 01  → 00 (OFF) nebo 01 (ON)
Čtení BT stavu: 03 01 06 26 00 01 → 00 (OFF) nebo 01 (ON)

Nastavení stavů:

Vypnout WiFi:          06 01 06 25 00 00  → WiFi se vypne okamžitě
Zapnout WiFi: 06 01 06 25 00 01 → WiFi se zapne po restartu
Vypnout Bluetooth: 06 01 06 26 00 00 → BT se vypne po restartu
Zapnout Bluetooth: 06 01 06 26 00 01 → BT se zapne po restartu
Restart zařízení: 06 01 06 27 00 01 → Okamžitý restart

Typický workflow pro změnu nastavení:

1. Vypnout WiFi:       06 01 06 25 00 00
2. Zapnout Bluetooth: 06 01 06 26 00 01
3. Restart: 06 01 06 27 00 01
4. Kontrola po restartu: 03 01 06 25 00 02 → Čtení WiFi a BT stavu

⚠️ Důležité poznámky

  1. Registr 0x0600 je klíčový pro řízení a sledování měření
  2. 32-bit hodnoty jsou vždy rozděleny na 2×16-bit registry (High + Low word)
  3. Scaled hodnoty (0x0650-0x0661) poskytují vysokou přesnost s faktorem 10,000,000
  4. Úhly jsou v desetitisícinách stupně (× 10,000) pro přesnost
  5. Automatický reset stavu po přečtení dokončeného měření
  6. Podporované adresy: 1-255 + broadcast adresa 255
  7. Měření trvá podle počtu vzorků (obvykle několik sekund)
  8. Pouze jedno měření může běžet současně

⚠️ Důležité poznámky (WiFi/Bluetooth):

  1. WiFi vypnutí - účinkuje okamžitě
  2. WiFi zapnutí - vyžaduje restart zařízení
  3. Bluetooth změny - vyžadují restart zařízení
  4. Restart registr - jakákoliv nenulová hodnota spustí restart
  5. Nastavení se ukládají do flash paměti a přežijí restart
  6. Po restartu se aplikují nová nastavení WiFi/Bluetooth

📊 Formáty dat

  • Raw hodnoty: Přímo z senzoru ADXL355
  • Scaled hodnoty: g × 10,000,000 (signed int32)
  • Úhly: stupně × 10,000 (signed int32)
  • Magnetometr: mT × 1,000 (signed int32)
  • Teplota: Raw hodnota z ADXL355

🔄 Typický workflow

  1. Konfigurace - Nastavit počet vzorků, rozsah, frekvenci
  2. Spuštění - Zapsat 1 do registru 0x0600 nebo použít coil 0x000D
  3. Sledování - Periodicky číst registr 0x0600 (1=běží, 2=hotovo)
  4. Čtení výsledků - Po dokončení číst agregované hodnoty a úhly
  5. Opakování - Registr se automaticky resetuje na 0