Tavujärjestyksen ja sanajärjestyksen sudenkuopat

Julkaistu 2026-03-24 · kirjoittanut HF · Päivitetty 2026-03-24

Joskus Modbus-yhteys toimii, mutta arvo näyttää silti väärältä. Tämä johtuu usein tavujärjestyksestä tai sanajärjestyksestä.

Aloitetaan perusasioista

Yksi Modbus-rekisteri on 16 bittiä. Osa arvoista mahtuu yhteen rekisteriin, mutta suuremmat arvot tarvitsevat kaksi tai useampia rekistereitä.

Esimerkkejä:

  • pieni kokonaisluku voi mahtua yhteen rekisteriin
  • 32-bittinen kokonaisluku käyttää kahta rekisteriä
  • float käyttää yleensä kahta rekisteriä

Mitä tavujärjestys tarkoittaa

Tavujärjestys kertoo, missä järjestyksessä tavut ovat arvon sisällä.

Jos tavujärjestys ei ole se, mitä asiakasohjelma odottaa, lopullinen luku voi olla väärä.

Mitä sanajärjestys tarkoittaa

Sanajärjestys on tärkeä silloin, kun arvo käyttää useampaa kuin yhtä 16-bittistä rekisteriä.

Jos kaksi rekisteriä yhdistetään väärässä järjestyksessä, arvo voidaan silti lukea, mutta se ei käy järkeen.

Miltä tämä näyttää käytännössä

Yleisiä oireita ovat:

  • hyvin suuret numerot
  • mahdottomat negatiiviset arvot
  • arvot jotka hyppivät oudosti
  • yhteys näyttää toimivalta mutta lukemat ovat vääriä

Yksinkertainen esimerkki

Lämpötila voi olla tallennettu kahteen rekisteriin float-arvona. Jos rekisterit yhdistetään väärässä järjestyksessä, tuloksena voi olla täysin järjetön numero oikean lämpötilan sijaan.

Miten ongelma ratkaistaan

Tarkista laitteen dokumentaatio.

Varmista, että siinä kerrotaan selvästi:

  • datatyyppi
  • tavujärjestys
  • sanajärjestys

Jos manuaali on epäselvä, testaa mahdolliset vaihtoehdot ja vertaa tulosta tunnettuun oikeaan arvoon.

Mitä valmistajien pitäisi tehdä

Älä kirjoita vain “float” tai “32-bit value”. Kerro myös miten tavut ja sanat on järjestetty.

Lopuksi

Jos arvot näyttävät vääriltä vaikka yhteys toimii, älä tarkista vain rekisteriosoitetta. Tarkista myös tavujärjestys ja sanajärjestys.

Konsultointi

Minut voi palkata auttamaan Modbus-laitteiden dokumentoinnissa, testauksessa ja vianetsinnässä.