Modbus-osoite-offsetin sekaannus selitettynä
Osoite-offsetin sekaannus on yksi yleisimmistä Modbus-ongelmista.
Ongelma on yksinkertainen: eri manuaalit ja työkalut näyttävät osoitteet eri tavoilla.
Kaksi yleistä tapaa
Joissakin manuaaleissa näkyy esimerkiksi:
- 40001
- 40002
- 40003
Toiset työkalut taas haluavat raa’at offsetit kuten:
- 0
- 1
- 2
Nämä voivat viitata samaan dataan, mutta niitä ei syötetä samalla tavalla.
Miksi tästä tulee ongelma
Käyttäjä näkee manuaalissa rekisterin 40001 ja syöttää 40001 asiakasohjelmaan, joka odottaa arvoa 0. Silloin ohjelma lukee väärää paikkaa tai epäonnistuu kokonaan.
Mitä numerot tarkoittavat
Numerot kuten 40001 yhdistävät usein rekisterialueen ja rekisterin numeron samaan lukuun. Moni asiakasohjelma ei kuitenkaan halua koko lukua, vaan pelkän offsetin.
Siksi sama arvo voidaan syöttää eri työkaluissa näin:
- 40001 yhdessä työkalussa
- 0 toisessa työkalussa
- 1 kolmannessa työkalussa
Miten oikea osoite selvitetään
Tarkista nämä asiat:
- Käyttääkö manuaali täysiä rekisterinumeroita kuten 40001?
- Kysyikö asiakasohjelma vain offsetin?
- Käyttääkö asiakasohjelma 0-pohjaista vai 1-pohjaista syöttöä?
Jos et ole varma, testaa tunnettua rekisteriä kahdella lähekkäisellä osoitevaihtoehdolla.
Miten valmistajan pitäisi dokumentoida tämä
Manuaalin pitäisi kertoa selvästi:
- ovatko osoitteet raa’at offsetit vai rekisterinumerot
- syötetäänkö ensimmäinen holding register arvona 0, 1 vai 40001
- yksi oikea esimerkki tunnetulla arvolla
Lopuksi
Monet Modbus-osoiteongelmat eivät ole laiteongelmia. Ne ovat syöttömuodon ongelmia manuaalin ja asiakasohjelman välillä.
Konsultointi
Minut voi palkata auttamaan Modbus-laitteiden dokumentoinnissa, testauksessa ja vianetsinnässä.