Modbus - Modbus

Modbus on tietoliikenneprotokolla, jonka Modicon (nykyään Schneider Electric ) julkaisi alun perin vuonna 1979 käytettäväksi ohjelmoitavien logiikkaohjaimiensa (PLC) kanssa. Modbusista on tullut de facto standardi viestintäprotokolla ja se on nyt yleisesti saatavilla oleva keino yhdistää teolliset elektroniset laitteet.

Modbus on suosittu teollisuusympäristöissä, koska se on julkisesti julkaistu ja maksuton . Se on kehitetty teollisiin sovelluksiin, se on suhteellisen helppo ottaa käyttöön ja ylläpitää verrattuna muihin standardeihin, ja se asettaa vain muutamia rajoituksia - paitsi datagrammin (paketin) koon - lähetettävän tiedon muodolle.

Modbus -protokolla käyttää siirtokerroksena merkkijonoisia tietoliikenneyhteyksiä , Ethernetiä tai Internet -protokollapakettia .

Modbus tukee tiedonsiirtoa useisiin laitteisiin, jotka on kytketty samaan kaapeliin tai Ethernet -verkkoon. Esimerkiksi samaan kaapeliin voi olla liitetty laite, joka mittaa lämpötilaa, ja toinen laite, joka mittaa kosteutta, ja molemmat ilmoittavat mittaukset samaan tietokoneeseen .

Modbusia käytetään usein laitoksen/järjestelmän valvontatietokoneen liittämiseen etäpäätelaitteeseen (RTU) sähköteollisuuden valvonta- ja tiedonhankintajärjestelmissä ( SCADA ). Monet tietotyypeistä on nimetty tehdaslaitteiden teollisesta ohjauksesta, kuten tikkaat -logiikka, koska sitä käytetään käyttöreleissä: Yksittäistä fyysistä lähtöä kutsutaan kelaksi ja yhtä fyysistä tuloa diskreetiksi tuloksi tai koskettimeksi .

Modbus -organisaatio on hallinnoinut Modbus -protokollien kehittämistä ja päivittämistä huhtikuusta 2004 lähtien, jolloin Schneider Electric siirsi oikeudet tälle organisaatiolle. Modbus-organisaatio on Modbus-yhteensopivien laitteiden käyttäjien ja toimittajien yhdistys, joka kannattaa tekniikan jatkuvaa käyttöä. Modbus Organization, Inc. on ammattiliitto , joka edistää ja kehittää Modbus -protokollaa.

Rajoitukset

  • Koska Modbus suunniteltiin 1970 -luvun lopulla kommunikoimaan ohjelmoitaville logiikkaohjaimille, tietotyyppien määrä on rajoitettu niihin, joita PLC: t ymmärtävät tuolloin. Suuria binaariobjekteja ei tueta.
  • Solmulle ei ole olemassa tavanomaista tapaa etsiä tietoobjektin kuvausta, esimerkiksi määrittääkseen, edustaakö rekisteriarvo lämpötilaa 30 ja 175 asteen välillä.
  • Koska Modbus on asiakas/palvelin (entinen isäntä/orja) -protokolla, kenttälaite ei voi mitenkään "ilmoittaa poikkeuksesta" (paitsi Ethernet TCP/IP: n kautta, nimeltään open-mbus)-asiakassolmun on rutiininomaisesti kyselyttävä jokainen kenttälaitteeseen ja etsi muutoksia tietoihin. Tämä kuluttaa kaistanleveyttä ja verkkoaikaa sovelluksissa, joissa kaistanleveys voi olla kallista, kuten matalan bittinopeuden radiolinkin kautta.
  • Modbus on rajoitettu osoittamaan 247 laitetta yhdellä datalinkillä, mikä rajoittaa vanhemman asemaan liitettävien kenttälaitteiden määrää (jälleen kerran, Ethernet TCP/IP on poikkeus).
  • Modbus -lähetysten on oltava vierekkäisiä, mikä rajoittaa etäviestintälaitteiden tyypit niihin, jotka voivat puskuroida dataa välttääkseen aukkoja lähetyksessä.
  • Modbus -protokolla itsessään ei suojaa luvattomilta komennoilta tai tietojen sieppaamiselta.

Modbus -objektityypit

Seuraavassa on taulukko Modbus -palvelinlaitteen Modbus -asiakaslaitteelle toimittamista objektityypeistä:

Kohteen tyyppi Pääsy Koko Osoite Space
Kela Lukea kirjoittaa 1 bitti 0x0000 - 0xFFFF
Erillinen tulo Lue ainoastaan 1 bitti 0x0000 - 0xFFFF
Syöttörekisteri Lue ainoastaan 16 bittiä 0x0000 - 0xFFFF
Rekisterin pitäminen Lukea kirjoittaa 16 bittiä 0x0000 - 0xFFFF

Protokollaversiot

Modbus -protokollan versiot ovat olemassa sarjaportille ja Ethernetille ja muille Internet -protokollaa tukeville protokollille . Modbus -protokollista on monia muunnelmia:

  • Modbus RTU (Remote Terminal Unit) - Tätä käytetään sarjaliikenteessä, ja se on yleisin Modbus -käyttöönotto. Modbus RTU käyttää datan kompaktia, binääristä esitystä protokollaviestintään. RTU -muoto seuraa komentoja/dataa syklisellä redundanssin tarkistussummalla virhetarkistusmekanismina tietojen luotettavuuden varmistamiseksi. Modbus RTU -sanoma on lähetettävä jatkuvasti ilman merkkien välistä epäröintiä. Modbus -viestit on kehystetty (erotettu) käyttämättömillä (hiljaisilla) jaksoilla.
  • Modbus ASCII - Tätä käytetään sarjaliikenteessä ja siinä käytetään ASCII -merkkejä protokollaviestintään. ASCII -muoto käyttää pitkittäisen redundanssin tarkistussummaa. Modbus ASCII -viestit on kehystetty johtavalla kaksoispisteellä (":") ja peräkkäisellä rivillä (CR/LF).
  • Modbus TCP/IP tai Modbus TCP - Tämä on Modbus -versio, jota käytetään viestintään TCP/IP -verkkojen kautta ja joka muodostaa yhteyden portin 502 kautta. Se ei vaadi tarkistussumman laskemista, koska alemmat kerrokset tarjoavat jo tarkistussummasuojauksen.
  • Modbus TCP/IP: n yli tai Modbus TCP: n tai Modbus RTU/IP: n yli - Tämä on Modbus -versio, joka eroaa Modbus TCP: stä siinä, että hyötykuormaan sisältyy tarkistussumma, kuten Modbus RTU: ssa.
  • Modbus UDP: n kautta - Jotkut ovat kokeilleet Modbusin käyttöä UDP : n kautta IP -verkoissa, mikä poistaa TCP: n edellyttämät yleiskustannukset .
  • Modbus Plus (Modbus+, MB+ tai MBP) -Modbus Plus on Schneider Electricin omistama ja toisin kuin muut vaihtoehdot, se tukee vertaisviestintää useiden asiakkaiden välillä. Se vaatii erillisen rinnakkaisprosessorin, joka pystyy käsittelemään nopeaa HDLC: n kaltaista tunnuksen kiertoa. Se käyttää kierrettyä paria nopeudella 1 Mbit/s ja sisältää muuntajan eristyksen kussakin solmussa, mikä tekee siitä siirtymisen/reunan laukaisun jännitteen/tason laukaiseman sijasta. Modbus Plus -laitteen liittämiseen tietokoneeseen tarvitaan erikoislaitteisto, yleensä kortti, joka on tehty ISA- , PCI- tai PCMCIA -väylälle.
  • Pemex Modbus - Tämä on standardin Modbus -laajennus, joka tukee historiallisia ja virtaustietoja. Se on suunniteltu Pemex -öljy- ja kaasuyhtiölle käytettäväksi prosessinhallinnassa, eikä sitä koskaan otettu laajasti käyttöön.
  • Enron Modbus- Tämä on toinen Enron Corporationin kehittämän vakiomoduulin laajennus, joka tukee 32-bittisiä kokonaislukuja ja liukulukuisia muuttujia sekä historiallisia ja kulkutietoja. Tietotyypit kartoitetaan käyttämällä vakio -osoitteita. Historialliset tiedot täyttävät American Petroleum Institute (API) -standardin tietojen säilyttämisestä.

Tietomalli- ja funktiokutsut ovat identtisiä ensimmäisten neljän protokollavaihtoehdon osalta; vain kapselointi on erilainen. Vaihtoehdot eivät kuitenkaan ole yhteentoimivia, eivätkä myöskään kehysmuodot.

Viestintä ja laitteet

Jokaiselle laitteelle, joka kommunikoi (eli siirtää tietoja) Modbus -väylällä, annetaan yksilöllinen osoite.

Modbus RTU-, Modbus ASCII- ja Modbus Plus -laitteissa (jotka kaikki ovat RS-485 -monikaapeliverkkoja), vain asiakasksi määritetty solmu voi aloittaa komennon. Kaikki muut laitteet ovat palvelimia ja vastaavat pyyntöihin ja komentoihin.

Ethernetiä, kuten Modbus TCP: tä käyttävissä protokollissa, mikä tahansa laite voi lähettää Modbus -komennon, joten kaikki voivat toimia asiakkaana, vaikka normaalisti vain yksi laite toimii asiakkaana.

Modbusia tukevat monet modeemit ja yhdyskäytävät, koska se on hyvin yksinkertainen ja usein kopioitu protokolla. Jotkut niistä on suunniteltu erityisesti tätä protokollaa varten. Eri toteutukset käyttävät langallista yhteyttä, langatonta viestintää, kuten ISM -kaistalla , ja jopa lyhytsanomapalvelua (SMS) tai yleistä pakettiradiopalvelua (GPRS). Yksi yleisimmistä langattomien verkkojen rakenteista käyttää mesh -verkottumista . Tyypillisiä ongelmia, jotka suunnittelijoiden on voitettava, ovat korkea viive ja ajoitusongelmat.

Komennot

Modbus -komennot voivat ohjata Modbus -laitteen:

  • muuttaa arvoa yhdessä sen rekistereistä, joka kirjoitetaan Coil and Holding -rekistereihin.
  • lue I/O -portti: Lue tiedot erillisistä ja kelaporteista,
  • komentaa laitetta lähettämään takaisin yksi tai useampi sen kela- ja pidätysrekisteriin sisältyvä arvo.

Modbus -komento sisältää sen laitteen Modbus -osoitteen, jolle se on tarkoitettu (1 - 247). Vain osoitettu laite vastaa komentoon ja toimii sen mukaan, vaikka muut laitteet saattavat vastaanottaa sen (poikkeus on solmulle 0 lähetetyt tietyt yleislähetettävät komennot, joita käytetään, mutta joita ei kuitata).

Kaikki Modbus -komennot sisältävät tarkistussummatietoja, joiden avulla vastaanottaja voi havaita lähetysvirheet.

Kehysmuodot

Modbus -kehys koostuu sovellusdatayksiköstä (ADU), joka koteloi protokolladatayksikön (PDU):

  • ADU = Osoite + PDU + Virheentarkistus,
  • PDU = Toimintokoodi + Data.

Modbus-datakehysten arvojen tavujärjestys on merkittävin tavu monitavuisesta arvosta, joka lähetetään ennen muita. Kaikki Modbus -versiot käyttävät jotakin seuraavista kehysmuodoista.

Modbus RTU -kehysmuoto (käytetään pääasiassa asynkronisissa sarjatietolinjoissa, kuten RS-485/ EIA-485 )

Nimi Pituus (bittiä) Toiminto
alkaa 28 Vähintään 3½ merkkiä hiljaisuutta (merkitse ehto)
Osoite 8 Aseman osoite
Toiminto 8 Osoittaa toimintokoodin; esim. lukea kelat/tilarekisterit
Tiedot n × 8 Data + pituus täytetään viestityypin mukaan
CRC 16 Syklinen redundanssitarkistus
Loppu 28 Vähintään 3½ merkkiä hiljaisuutta kehysten välillä

Huomautus CRC : stä:

  • Polynomi: x 16 + x 15 + x 2 + 1 (CRC-16-ANSI, joka tunnetaan myös nimellä CRC-16-IBM, normaali heksadesimaalinen algebrallinen polynomi 8005ja käänteinen A001).
  • Alkuperäinen arvo: 65535.
  • Esimerkki kehyksestä heksadesimaalimuodossa: 01 04 02 FF FF B8 80(CRC-16-ANSI-laskenta arvosta 01to FFantaa 80B8, joka lähetetään vähiten merkitsevä tavu ensin ).

Modbus ASCII -kehysmuoto (käytetään pääasiassa 7- tai 8-bittisissä asynkronisissa sarjalinjoissa)

Nimi Pituus ( tavua ) Toiminto
alkaa 1 Alkaa kaksoispisteellä :(ASCII -heksadesimaaliarvo on 3A)
Osoite 2 Aseman osoite
Toiminto 2 Osoittaa toimintokoodit, kuten lukukelat / tulot
Tiedot n × 2 Data + pituus täytetään viestityypin mukaan
LRC 2 Tarkistussumma ( pitkittäinen redundanssitarkistus )
Loppu 2 Rivinvaihto - line feed (CR / LF) pari ( ASCII- arvoja 0D, 0A)

Osoite, funktio, data ja LRC ovat kaikki isoja heksadesimaalilukuja sisältäviä merkkipareja, jotka edustavat 8-bittisiä arvoja (0–255). Esimerkiksi 122 (7 × 16 + 10) esitetään muodossa 7A.

LRC lasketaan 8-bittisten arvojen (lukuun ottamatta alku- ja loppumerkkejä) summana, negatiivisena ( kahden komplementti ) ja koodattuna 8-bittisenä arvona. Esimerkki: jos osoite, funktio ja data koodataan muotoon 247, 3, 19, 137, 0 ja 10, niiden summa on 416. Kahden komplementti (−416), joka on leikattu 8 bittiin, on 96 (esim. 256 × 2 - 416), joka esitetään 60heksadesimaalina. Siksi seuraava runko: :F7031389000A60<CR><LF>. Se on tarkoitettu käytettäväksi vain tarkistussummana: koska se on laskettu koodatun datan eikä lähetettyjen merkkien perusteella, sen 'pituussuuntainen' ominaisuus ei ole käytettävissä pariteettibittien kanssa yhden bitin virheiden paikantamiseen.

Modbus TCP -kehysmuoto (käytetään pääasiassa Ethernet -verkoissa)

Nimi Pituus (tavua) Toiminto
Tapahtuman tunnus 2 Synkronointi palvelimen ja asiakkaan viestien välillä
Protokollatunniste 2 0 Modbus/TCP: lle
Pituuskenttä 2 Jäljellä olevien tavujen määrä tässä kehyksessä
Yksikön tunnus 1 Palvelimen osoite (255, jos sitä ei käytetä)
Toimintokoodi 1 Toimintokoodit kuten muissakin muunnelmissa
Datavavu n Tiedot vastauksena tai komentoina

Yksikkötunnusta käytetään Modbus/TCP -laitteiden kanssa, jotka ovat useiden Modbus -laitteiden yhdistelmiä, esim. Modbus/TCP - Modbus RTU -yhdyskäytävillä. Tällaisessa tapauksessa yksikötunniste kertoo yhdyskäytävän takana olevan laitteen palvelinosoitteen. Alkuperäiset Modbus/TCP-yhteensopivat laitteet ohittavat yleensä yksikkötunnisteen.

Käytettävissä olevat toiminto-/komentokoodit

Erilaiset lukeminen, kirjoittaminen ja muut toiminnot on luokiteltu seuraavasti. Alkeellisimmat lukemat ja kirjoitukset on lihavoitu. Useat lähteet käyttävät vaihtoehtoista terminologiaa, esimerkiksi Force Single Coil, jossa standardi käyttää Write Single Coil -tekniikkaa .
Modbus -palvelimen näkyvät yksiköt ovat:

  • Kelat: luettavissa ja kirjoitettavissa, 1 -bittinen (pois/päällä)
  • Erilliset tulot: luettavissa, 1 bitti (pois/päällä)
  • Syöttörekisterit: luettavissa, 16 bittiä (0-65,535), pääasiassa mittaukset ja tilat
  • Rekisterit: luettavissa ja kirjoitettavissa, 16 bittiä (0 - 65 535), olennaisesti kokoonpanoarvot
Modbus -toimintokoodit
Toiminnon tyyppi Toiminnon nimi Toimintokoodi Kommentti
Tietojen käyttö Bittikäyttö Fyysiset erilliset tulot Lue erilliset tulot 2
Sisäiset bitit tai fyysiset kelat Lue kelat 1
Kirjoita Single Coil 5
Kirjoita useita keloja 15
16-bittinen käyttö Fyysiset syöttörekisterit Lue syöttörekisterit 4
Sisäiset rekisterit tai fyysiset lähtörekisterit Lue useita säilytysrekistereitä 3
Kirjoita Single Holding Register 6
Kirjoita useita säilytysrekistereitä 16
Lue/kirjoita useita rekistereitä 23
Mask Kirjoita rekisteri 22
Lue FIFO -jono 24
Tiedostotietueen käyttö Lue Tiedostotietue 20
Kirjoita tiedostotietue 21
Diagnostiikka Lue poikkeustila 7 vain sarja
Diagnostiikka 8 vain sarja
Hanki Com -tapahtumalaskuri 11 vain sarja
Hanki Com -tapahtumaloki 12 vain sarja
Raporttipalvelimen tunnus 17 vain sarja
Lue laitteen tunniste 43
Muut Koteloitu rajapinnan kuljetus 43

Päätoimintokoodien pyyntöjen ja vastausten tietojen muoto

Pyynnöt ja vastaukset noudattavat edellä kuvattuja kehysmuotoja. Tässä osassa on tietoja useimmin käytettyjen toimintokoodien datamuodoista.

Toimintokoodi 1 (lukukelat) ja toimintokoodi 2 (erillisten tulojen lukeminen)

Pyyntö :

  • Ensimmäisen kelan/erillisen tulon osoite (16-bittinen)
  • Lukukelojen/erillisten tulojen lukumäärä (16-bittinen)

Normaali vastaus :

  • Seurattavien kelan/erillisten tuloarvojen tavujen määrä (8-bittinen)
  • Kelan/erillisen tulon arvot (8 kelaa/erilliset tulot tavua kohden)

Kunkin kelan/erillisen tulon arvo on binäärinen (0 pois päältä, 1 päälle). Ensimmäinen pyydetty kela/erillinen tulo tallennetaan vastauksen ensimmäisen tavun vähiten merkittävänä bittinä.
Jos kelojen/erillisten tulojen määrä ei ole 8: n monikerta, viimeisen tavun merkittävimmät bitit täytetään nollilla.
Jos esimerkiksi pyydetään yksitoista kelaa, tarvitaan kaksi tavua arvoja. Oletetaan, että näiden peräkkäisten käämien tilat ovat päällä, pois, päällä, pois, pois, pois, päällä, päällä, päällä, pois, päällä, päällä , niin vastaus on 02 E5 06heksadesimaaliluku.

Koska vastausviestissä palautettu tavumäärä on vain 8 bittiä leveä ja protokollan yleiskustannukset ovat 5 tavua, enintään 2008 (251 x 8) erillistä tuloa tai kelaa voidaan lukea kerralla.

Toimintokoodi 5 (pakota/kirjoittaa yksi kela)

Pyyntö :

  • Kelan osoite (16-bittinen)
  • Pakotettava/kirjoitettava arvo: 0 pois päältä ja 65280 (FF00 heksadesimaalina) päälle

Normaali vastaus : sama kuin pyyntö.

Toimintokoodi 15 (pakota/kirjoittaa useita keloja)

Pyyntö :

  • Ensimmäisen pakotettavan/kirjoitettavan kelan osoite (16-bittinen)
  • Pakotettavien/kirjoitettavien käämien määrä (16-bittinen)
  • Seurattavien kela-arvojen tavujen määrä (8-bittinen)
  • Kela -arvot (8 kela -arvoa tavua kohti)

Kunkin kelan arvo on binäärinen (0 pois päältä, 1 päällä). Ensimmäinen pyydetty kela tallennetaan pyynnön vähiten merkittävänä bittinä ensimmäisestä tavusta.
Jos kelojen määrä ei ole 8 -kertainen, viimeisen tavun merkittävimmät bitit on täytettävä nollilla. Katso esimerkki toimintokoodeista 1 ja 2.

Normaali vaste :

  • Ensimmäisen kelan osoite (16-bittinen)
  • kelojen määrä (16-bittinen)

Toimintokoodi 4 (lue syöttörekisterit) ja toimintokoodi 3 (lue hallintarekisterit)

Pyyntö :

  • Ensimmäisen luettavan rekisterin osoite (16-bittinen)
  • Luettavien rekisterien määrä (16-bittinen)

Normaali vastaus :

  • Seurattavien rekisteriarvojen tavujen määrä (8-bittinen)
  • Rekisteriarvot (16 bittiä per rekisteri)

Koska Modbus PDU: n enimmäispituus on 253 (RS485: n Modbus APU: n enimmäispituuden 256 perusteella), vain 125 rekisteriä voidaan pyytää kerralla.

Toimintokoodi 6 (esiasetettu/kirjoitettava yksittäinen tilarekisteri)

Pyyntö :

  • Pitorekisterin osoite esiasetettavaksi/kirjoitettavaksi (16-bittinen)
  • Omistusrekisterin uusi arvo (16-bittinen)

Normaali vastaus : sama kuin pyyntö.

Toimintokoodi 16 (esiasetus/kirjoitus useille hallintarekistereille)

Pyyntö :

  • Esiasetettavan/kirjoitettavan ensimmäisen hallintarekisterin osoite (16-bittinen)
  • Esiasetettavien/kirjoitettavien säilytysrekisterien lukumäärä (16-bittinen)
  • Seurattavien rekisteriarvojen tavujen määrä (8-bittinen)
  • Omistusrekisterien uudet arvot (16 bittiä per rekisteri)

Koska rekisteriarvot ovat 2 tavua leveitä ja vain 127 tavua arvoja voidaan lähettää, vain 63 hallintarekisteriä voidaan esiasettaa/kirjoittaa kerralla.

Normaali vastaus :

  • Ensimmäisen esiasetetun/kirjoitetun hallintarekisterin osoite (16-bittinen)
  • Esiasetettujen/kirjoitettujen hallintarekisterien määrä (16-bittinen)

Poikkeusvastaukset

Normaalia vastausta varten palvelin toistaa toimintokoodin. Jos palvelin haluaa ilmoittaa virheestä, se vastaa pyytämällä funktiokoodia plus 128 (hex 0x80) (3 tulee 131 = hex 0x83) ja sisältää vain yhden tavun, joka tunnetaan poikkeuskoodina .

Tärkeimmät Modbus -poikkeuskoodit

Koodi Teksti Yksityiskohdat
1 Laiton toiminto Palvelin ei tunnista tai salli kyselyssä vastaanotettua toimintokoodia
2 Laiton dataosoite Joidenkin tai kaikkien vaadittujen entiteettien dataosoite ei ole sallittu tai sitä ei ole palvelimessa
3 Laiton tietojen arvo Palvelin ei hyväksy arvoa
4 Palvelinlaitteen vika Korjaamaton virhe tapahtui, kun palvelin yritti suorittaa pyydettyä toimintoa
5 Tunnustaa Palvelin on hyväksynyt pyynnön ja käsittelee sitä, mutta se vaatii pitkän ajan. Tämä vastaus palautetaan estääkseen aikakatkaisuvirheen esiintymisen asiakkaassa. Asiakas voi seuraavaksi lähettää Poll Program Complete -viestin määrittääkseen, onko käsittely valmis
6 Palvelinlaite varattu Palvelin käsittelee pitkäkestoista komentoa. asiakkaan tulee yrittää myöhemmin uudelleen
7 Negatiivinen kuittaus Palvelin ei voi suorittaa ohjelmointitoimintoja. Asiakkaan tulee pyytää diagnostiikka- tai virhetietoja palvelimelta
8 Muistin pariteettivirhe Palvelin havaitsi pariteettivirheen muistissa. Asiakas voi yrittää pyynnön uudelleen, mutta palvelulaite saattaa vaatia palvelua
10 Yhdyskäytäväpolku ei ole käytettävissä Erikoistunut Modbus -yhdyskäytäviin. Osoittaa väärin määritetyn yhdyskäytävän
11 Yhdyskäytävän kohdelaite ei vastannut Erikoistunut Modbus -yhdyskäytäviin. Lähetetty, kun palvelin ei vastaa

Kela, erillinen tulo, syöttörekisteri, rekisterinumerot ja osoitteet

Modbus -organisaatio mainitsee Modbus Application Protocol v1.1b: ssä seuraavat asiat:

Modbus -sovellusprotokolla määrittelee tarkasti PDU -osoitesäännöt.
Modbus PDU: ssa jokainen data on osoitettu välillä 0 - 65535.
Se myös määrittelee selkeästi MODBUS -datamallin, joka koostuu neljästä lohkosta ja joka sisältää useita elementtejä, jotka on numeroitu 1: stä n: ään.
Modbus -tietomallissa jokainen datalohkon elementti on numeroitu 1: stä n: ään

Jotkin käytännöt säätelevät, miten Modbus -entiteetteihin (kelat, erilliset tulot, syöttörekisterit, hallintarekisterit) viitataan.

On tärkeää erottaa entiteetin numero ja osoite :

  • Entiteetin numerot yhdistävät entiteettityypin ja entiteetin sijainnin kuvaustaulukossaan.
  • Entity -osoite on aloitusosoite, 16-bittinen arvo dataosan Modbus. Sellaisena sen vaihteluväli on 0 - 65 535 (0000 - FFFF pakkauksissa)

Perinteisessä käytännössä entiteetin numerot alkavat yhdellä numerolla, joka edustaa entiteettityyppiä, ja sen jälkeen neljä numeroa, jotka edustavat entiteetin sijaintia:

  • käämien numerot alkavat 0: sta ja ovat välillä 0 0001 - 0 9999,
  • erilliset tulonumerot alkavat 1: llä ja ovat 1 0001 - 1 9999,
  • tulorekisterin numerot alkavat 3 ja span 3 0001 kohteeseen 3 9999,
  • TILAREKISTERI numerot alkavat 4 ja span 4 0001 kohteeseen 4 9999.

Datasiirtoa varten, yksikön sijainti (1 9999) on käännetty 0-pohjainen yksikkö osoite (0 9998) vähentämällä 1. Esimerkiksi, jotta lukea tilarekisterejä alkaen numero 40001, datakehys sisältää toiminnon koodi 3 (kuten edellä todettiin) ja osoite 0. tilarekisterejä alkaen numero 40100, osoite on 99 jne.

Tämä rajoittaa kunkin entiteetin osoitteiden määrän 9 999: een. De facto indeksointisopimuksella ulottuu tämän enintään 65536. Se koostuu yksinkertaisesti yhden numeron lisäämisestä edelliseen luetteloon:

  • kela numerot ulottuvat 0 00001 kohteeseen 0 65536,
  • diskreetti syöttö numerot ulottuvat 1 00001 kohteeseen 1 65536,
  • tulorekisterin numerot ulottuvat 3 00001 kohteeseen 3 65536,
  • jolla rekisteri numerot ulottuvat 4 00001 kohteeseen 4 65536.

Käytettäessä laajennettu linkitykset, kaikki numero viittaukset täytyy olla tarkalleen 6 numeroa. Näin vältetään sekaannukset kelojen ja muiden yksiköiden välillä. Jos esimerkiksi tiedät eron pitorekisterin #40001 ja kelan #40001 välillä, jos kela #40001 on tavoite, sen on oltava muodossa #040001.

Toinen tapa huomioida tietoosoitteet on käyttää heksadesimaaliarvoa, joka selventää 4 numeron käyttöä perinteisessä perinteessä.

  • käämien numerot vaihtelevat 0x 0000 - 0x FFFF,
  • diskreetti syöttö numerot ulottuvat 1x 0000 1x FFFF,
  • tulorekisteristä numerot ulottuvat 3x 0000 3x FFFF,
  • TILAREKISTERI numerot ulottuvat 4x 0000 4x FFFF.

Tämän merkinnän etuna on, että kun käyttäjän on analysoitava Modbus -paketteja, osoite vastaa.

JBUS -kartoitus

Toinen de facto -protokolla, joka liittyy läheisesti Modbusiin, ilmestyi sen jälkeen, ja sen määritti PLC -tuotemerkki April Automates, joka on tulos ranskalaisten Renault Automationin ja Merlin Gerin et Cien välisestä yhteisyrityksestä vuonna 1985: JBUS . Modbusin ja JBUS: n välisillä eroilla (entiteettien, palvelinasemien määrä) ei ole nyt merkitystä, koska tämä protokolla melkein katosi huhtikuun PLC -sarjan kanssa, jonka AEG Schneider Automation osti vuonna 1994 ja sitten vanhensi. Nimi JBUS on kuitenkin säilynyt jossain määrin.

JBUS tukee toimintokoodeja 1, 2, 3, 4, 5, 6, 15 ja 16 ja siten kaikkia edellä kuvattuja kokonaisuuksia. Numerointi on kuitenkin erilainen JBUS:

  • Numero ja osoite ovat samat: entiteetillä # x on osoite x tietokehyksessä.
  • Yhteisön numero ei siis sisällä entiteetin tyyppiä. Esimerkiksi tilarekisteri #40010 Modbusissa pitää rekisteriä #9, joka sijaitsee osoitteessa 9 JBUS: ssa.
  • Numeroa 0 (ja siten osoitetta 0) ei tueta. Palvelimen ei pitäisi käyttää todellisia tietoja tähän numeroon ja osoitteeseen, ja se voi palauttaa nolla -arvon tai heittää virheen pyydettäessä.

Toteutukset

Lähes kaikissa toteutuksissa on eroja virallisesta standardista. Eri lajikkeet eivät ehkä kommunikoi oikein eri toimittajien laitteiden välillä. Jotkut yleisimmistä muunnelmista ovat:

  • Tietotyypit
    • IEEE liukuluku numero
    • 32-bittinen kokonaisluku
    • 8-bittinen data
    • Sekalaiset tietotyypit
    • Bittikentät kokonaislukuna
    • Kerroimet tietojen muuttamiseksi kokonaisluvuksi/kokonaisluvusta. 10, 100, 1000, 256 ...
  • Protokollalaajennukset
    • 16-bittiset palvelinosoitteet
    • 32-bittinen datakoko (1 osoite = 32 bittiä palautettua dataa)
    • Sananvaihdettu data

Modbus Plus

Nimestä huolimatta Modbus Plus ei ole Modbus -muunnelma. Se on erilainen protokolla , johon liittyy merkkien välittäminen .

Se on Schneider Electricin omistama eritelmä , vaikka se on julkaisematon eikä patentoitu. Se toteutetaan normaalisti käyttämällä mukautettua piirisarjaa, joka on saatavana vain Schneiderin kumppaneille.

Katso myös

Viitteet

Ulkoiset linkit

Erittely
Muut