Modbus on Modiconin vuonna 1979 ohjelmoitaviin logiikkoihinsa suunnittelema ja julkaisema sarjaliikenneprotokolla. Protokollasta on muodostunut ns. de facto -standardi teollisuudessa.
Modbusin yleistymistä on edesauttanut, että se on avoin ja lisenssimaksuton, Verraten helposti käyttöönotettava, ja että se siirtää tietoa bitti- ja sanatasolla ottamatta kantaa niiden sisältöön.
Tyypillinen Modbus-protokollan sovelluskohde on etälaitteen (Remote Terminal Unit, RTU) yhdistäminen automaatiojärjestelmään tai ohjelmoitavaan logiikkaan. Alla olevassa erittäin hienossa kuvassa on esimerkki automaatiojärjestelmän ja laitteen X välisestä Modbus-kytkennästä.
Kuva 1. MetsoDNA:n
liittäminen ulkoiseen laitteeseen Modbus-väylällä
Modbus-protokollasta on olemassa sarjaportti- ja TCP-versiot.
Modbusista on sarjamuotoiselle liikenteelle ("RS-väylät") kaksi muunnelmaa: Modbus RTU ja Modbus ASCII. Edellinen on kompakti binaarinen dataprotokolla, kun taas Modbus ASCII on tekstipohjainen. RTU-formaatissa käytetään tiedon eheyden tarkistukseen CRC-tarkistussummaa, kun taas ASCII-formaatti käyttää longitudinal redundancy check -tarkistussummaa.
TCP/IP-yhteyksille (esimerkiksi Ethernetin yli) on olemassa uudempia muunnelmia, kuten Modbus/TCP ja Modbus RTU/IP.
Tietomalli ja toimintokutsut ovat samanlaisia kaikille kolmelle yhteysprotokollalle; vain kapselointi (kuinka siirrettävä data on "paketoitu") on erilainen.
Modbus perustuu isäntä-orja (master-slave) -malliin, jossa isäntä aloittaa kommunikoinnin, mutta Ethernet-versiossa myös orja voi lähettää Modbus-komennon.
Jokaiselle Modbus-väylään liitettävälle laitteelle annetaan yksilöllinen osoite. Modbus-komento sisältää kohdelaitteen Modbus-osoitteen. Vain tämä laite suorittaa komennon, vaikka kaikki laitteet voivat vastaanottaa komennon. Kaikki Modbus-komennot sisältävät tarkisteen, jolla varmistetaan komennon kulkeminen virheettömänä.
Modbus-yhteys voi olla langallinen tai langaton esimerkiksi matkapuhelinverkon tai radiomodeemin välityksellä.
Modbus suunniteltiin 1970-luvun ohjelmoitavien logiikoiden tarpeisiin, eikä esimerkiksi tiedostojen siirto ei ole mahdollista. Modbus ei myöskään tue tiedon skaalausta, joten lähettävän ja vastaanottavan pään pitää etukäteen tietää siirrettävien mittausten skaalat. Isäntä-orja -luonteesta johtuu, että kenttälaitteen ei itse ole mahdollista raportoida poikkeustilanteesta, vaan isäntälaitteen täytyy säännöllisesti kysellä jokaiselta kenttälaitteelta päivityksiä.
Suomenkielisen Wikipedian artikkeli Modbusista on huono käännös englanninkielisestä artikkelista ja sisältää virheitä, joten sitä ei kannata käyttää opiskeluaineistona!