LumiBMS Modbus dekooderi ja parseri on ilmainen käyttää verkossa. Työkalulla voit purkaa Modbus RTU ja Modbus TCP heksaviestit helposti luettaviksi kentiksi ilman asennusta tai rekisteröitymistä.
Liitä Modbus pyyntö tai vastaus yllä olevaan kenttään ja tarkastele laiteosoitetta, funktiokoodia, rekisteriosoitetta, rekisterien määrää, palautettua dataa, CRC tarkistusta ja poikkeusvastauksia.
Työkalu toimii suoraan selaimessa ja sopii Modbus väylän käyttöönottoon, vianhakuun, laitetestaukseen ja dokumentaation tarkistamiseen.
Modbus dekooderin käyttö
- Valitse Modbus RTU tai Modbus TCP.
- Liitä heksamuotoinen pyyntö tai vastaus oikeaan kenttään.
- Valitse Pura pyyntö tai Pura vastaus.
- Vertaa purettuja tietoja laitteen rekisterikarttaan ja tiedonsiirtoasetuksiin.
Heksaviestissä voi käyttää välilyöntejä, pilkkuja ja 0x etuliitettä.
Esimerkki Modbus RTU pyynnöstä
Tyypillinen Modbus RTU pyyntö voi näyttää tältä:
01 03 00 10 00 02 C5 CD
Viestissä on:
| Kenttä | Arvo |
|---|---|
| Laiteosoite | 01 |
| Funktiokoodi | 03 |
| Aloitusrekisteri | 0010 |
| Rekisterien määrä | 0002 |
| CRC | C5 CD |
Funktiokoodi 03 tarkoittaa Holding Register rekisterien lukemista.
Pyyntö pyytää Modbus laitetta osoitteessa 1 lukemaan kaksi holding register rekisteriä osoitteesta 0x0010 alkaen.
Mitä Modbus parseri purkaa?
Modbus parseri auttaa tunnistamaan:
- Modbus laiteosoitteen
- Funktiokoodin
- Rekisteriosoitteen
- Rekisterien määrän
- Palautetun rekisteridatan
- Modbus poikkeusvastaukset
- Modbus RTU viestin CRC tiedot
- Modbus TCP transaction tiedot
- Pyynnön ja vastauksen rakenteen
Purettuja tietoja on helppo verrata laitteen dokumentaatioon ja Modbus rekisterikarttaan.
Modbus RTU ja Modbus TCP
Modbus RTU toimii tavallisesti sarjaväylässä, kuten RS-485 väylässä. RTU viesti sisältää laiteosoitteen, funktiokoodin, sovellusdatan ja CRC tarkistuksen.
Modbus TCP toimii Ethernet verkossa. Viesti sisältää MBAP otsakkeen, jossa ovat esimerkiksi transaction identifier, protocol identifier, viestin pituus ja unit identifier.
Varsinainen Modbus funktiokoodi ja sovellusdata ovat RTU ja TCP versioissa hyvin samankaltaisia.
Yleisimmät Modbus funktiokoodit
Tavallisia Modbus funktiokoodeja ovat:
| Funktiokoodi | Toiminto |
|---|---|
01 | Read Coils |
02 | Read Discrete Inputs |
03 | Read Holding Registers |
04 | Read Input Registers |
05 | Write Single Coil |
06 | Write Single Register |
0F | Write Multiple Coils |
10 | Write Multiple Registers |
Jos laite palauttaa Modbus poikkeusvastauksen, dekooderi auttaa tunnistamaan poikkeuskoodin ja alkuperäisen funktion.
Modbus väylän vianhaku
Jos Modbus viesti näyttää oikealta mutta laite ei vastaa, tarkista:
- Laiteosoite
- Baud rate
- Pariteetti
- Stop bitit
- RS-485 A ja B johtimet
- Funktiokoodi
- Rekisteriosoite
- Rekisterin offset
- CRC
- Laitteen rekisterikartta
Modbus timeout ei aina tarkoita, että itse Modbus viesti olisi väärä. Ongelma voi olla myös kaapeloinnissa, sarjaliikenneasetuksissa tai väärässä laiteosoitteessa.
Miksi Modbus laite ei vastaa?
Yleisiä syitä ovat:
- Väärä Modbus laiteosoite
- Eri baud rate asetukset
- Väärä pariteetti
- Väärät stop bitit
- RS-485 A ja B johtimet väärin päin
- Väärä rekisteriosoite
- Väärä rekisterin offset
- Funktiokoodi, jota laite ei tue
- Virheellinen CRC
- Laitteen jännite tai kaapelointi
Aloita tarkistamalla fyysinen yhteys ja tiedonsiirtoasetukset. Sen jälkeen pura todellinen Modbus pyyntö ja vertaa sitä laitteen rekisterikarttaan.
Mitä Modbus exception code 02 tarkoittaa?
Modbus poikkeuskoodi 02 tarkoittaa Illegal Data Address virhettä.
Pyydetty rekisteri tai rekisterialue ei ole käytettävissä kyseisellä funktiokoodilla.
Syynä voi olla esimerkiksi väärä rekisteriosoite, väärä offset tai pyyntö, joka ylittää laitteen käytettävissä olevan rekisterialueen.
Miksi Modbus arvo on väärä vaikka laite vastaa?
Toimiva tiedonsiirto ei vielä tarkoita, että palautetut rekisterit tulkitaan oikein.
Tarkista:
- Datatyyppi
- Etumerkillinen tai etumerkitön arvo
- INT16 tai UINT16
- INT32 tai UINT32
- FLOAT32
- Tavujärjestys
- Sanajärjestys
- Skaalaus
- Yksikkö
- Rekisterin offset
Esimerkiksi 32 bittinen liukuluku käyttää tavallisesti kahta peräkkäistä 16 bittistä Modbus rekisteriä. Jos rekisterien sanajärjestys tulkitaan väärin, tuloksena voi olla täysin väärä arvo vaikka tiedonsiirto toimii oikein.
Modbus rekisteriosoitteet ja offsetit
Modbus dokumentaatiossa sama rekisteri voidaan esittää eri tavoilla.
Esimerkiksi:
Holding register 40001
voi tarkoittaa protokollatasolla osoitetta:
0
Yksi ohjelma voi odottaa osoitetta 40001, toinen 1 ja kolmas todellista protokollan offset osoitetta 0.
Tämä ero on yksi tavallisimmista Modbus integraatio ongelmista.
Tarkista aina käyttääkö dokumentaatio tai ohjelmisto:
- 0 pohjaista osoitteistusta
- 1 pohjaista osoitteistusta
- 40001 tyyppisiä viitenumeroita
- Protokollan todellisia offset osoitteita
Onko Modbus dekooderi ilmainen?
Kyllä. LumiBMS Modbus dekooderi ja parseri on ilmainen käyttää verkossa.
Työkalu ei vaadi käyttäjätiliä, asennusta tai rekisteröitymistä. Se toimii suoraan selaimessa.
Voinko purkaa Modbus RTU viestin verkossa?
Kyllä. Valitse Modbus RTU, liitä heksamuotoinen pyyntö tai vastaus työkaluun ja pura viesti.
Dekooderi näyttää esimerkiksi laiteosoitteen, funktiokoodin, rekisteritiedot, datan ja CRC tiedot.
Voinko purkaa Modbus TCP viestin verkossa?
Kyllä. Valitse Modbus TCP ja liitä heksamuotoinen Modbus TCP pyyntö tai vastaus parseriin.
Dekooderi auttaa tarkastelemaan MBAP otsaketta sekä Modbus funktiota ja sovellusdataa.