Versija 3 nuo 2017-11-26 11:28:31

Išvalyti žinutę
Locked History Actions

Modbus protocol

Žodis angliškai

Modbus protocol

Santrumpa

MODB

Žodis Lietuviškai

Modbus protokolas


Apibrėžimas

Modbus protokolas dažniausiai naudojamas kompiuterizuotose sistemose su Modicon tipo programuojamais valdikliais duomenų perdavimui organizuoti. Šis protokolas turi būtent tokią struktūrą, kurią paminėti valdikliai naudoja nepriklausomai nuo tinklo per kurį jie komunikuoja. Protokolas aprašo duomenų mainų žodžio turinio ir išdėstymo standartinį formatą.


Paaiškinimas

Protokolas nustato, kaip kiekvienas sistemoje funkcionuojantis valdiklis identifikuoja savo adresą, atpažįsta jam siunčiamą pranešimą, nustato reikalingą atlikti veiksmą, išpakuoja jam skirtus duomenis. Jeigu reikia, valdiklis suformuoja grąžinamą pranešimą. Kitų tipų tinkluose (ne Modbus) šis protokolas yra užkoduojamas tinklo naudojamuose duomenų perdavimo paketuose.


Truputis istorijos

Modbus yra Modicon įmonės 1979 metais sukurtas nuosekliojo ryšio protokolas skirtas naudoti su programuojamais loginiais valdikliais (PLC). Modbus tapo pramonės stadartu naudojant komunikacijos protokolus, ir jis dabar plačiai naudojamas norint susieti pramoninius elektronkos prietaisus. Pramonėje Modbus naudojamas nes:

  • · Jis sukūrtas naudoti pramoniniais tikslais,
  • · Jis yra atvirai publikuojamas ir nemokamas,
  • · Lengvai įdiegiamas ir palaikomas,
  • · Perkelia duomenis bitais arba žodžiais neapribodamas įrangos gamintojų.

Modbus protokolas įgyvendina komunikaciją tarp daugelio prietaisų prijungtų prie to pačio tinklo, pvz.: sistemoje kuri matuoja atskirų įrenginių darbo laiką, bei našumus ir surinktą informaciją perduoda į kompiuterį. Modbus dažnai naudojamas priežiūros (supervisor) kompiuterio prijungimui prie nuotolinio terminalo bloko (RTU), kuris yra priežiūros valdymo ir duomenų kaupimo sistemose. Daugelis duomenų tipų yra įvardinti pagal jų naudojimą valdančiose rėlėse. Vieno bito fizinis išėjimas yra vadinamas ritiniu (angl. Coil) ir vieno bito fizinė įvestis yra vadinamas diskrėčiaja įvestimi arba kontaktu.

Modbus protokolo vystimas ir atnaujinimas nuo 2004 m. balandžio mėn. yra prižiūrimas Modbus organizacijos, kai Schneider Electric (ankščiau buvusi Modicon) perdavė teises į šią organizaciją.


Duomenų perdavimas ir jų mainų režimai

Duomenims perduoti Modbus protokolu naudojamos RS232 arba RS485 sąsajos. Sistemoje dirba vienas vedantysis (host arba master) valdiklis ir vedamieji (slave) valdikliai. Tik vedantysis valdiklis gali inicijuoti mainus. Kiti valdikliai tik formuoja atsakymus į paklausimus. Vedantysis valdiklis gali individualiai komunikuoti su vedamaisiais valdikliais arba jiems visiems siųsti bendrą pranešimą. Vedamieji valdikliai grąžina atsakymą vedančiajam po to , kai į juos kreipiamasi individualiai.

Modbus protokole gali būti naudojami du mainų režimai – ASCII arba RTU. Derindamas ryšio sistemą vartotojas turi pasirinkti vieną iš jų, kartu nustatydamas vienodus asinchroninių mainų režimus (mainų sparta, lyginumas ir kt.).

Pasirinkus ASCII (American Standard Code for Information Interchange) režimą, kiekvienas baitas yra perduodamas dviem ASCII simboliais. Šio darbo režimo pagrindinė ypatybė yra tai, kad tarp simbolių gali būti laiko tarpas (iki 1s). Šiame darbo režime skaičiai koduojami šešioliktainiais simboliais (0 .. 9, A ... F), pridedant po vieną START ir STOP bitus, be lyginumo kontrolės. Paketo gale yra perduodamas LRC (Longitudinal Redundancy Check).

Kai valdikliai komunikuoja RTU (Remote Terminal Unit) režime, kiekvienas baitas yra koduojamas dviejų – keturių bitu šešioliktainiais simboliais. Taigi šis darbo režimas užtikrina greitesnius duomenų mainus. Paketo gale yra perduodamas CRC (Cyclical Redundancy Check).

Abiejuose darbo režimuose pranešimai turi pradžios ir galo taškus. Tai leidžia imtuvui susirasti pranešimo pradžią, nuskaityti adresą ir identifikuoti jį.


Vedamųjų įrenginių adresavimas

ASCII režime vedamojo įrenginio adresas yra perduodamas dviem baitais, o RTU režime – vienu. Vedamųjų įrenginių adresai yra iš diapazono 0 .. 247. Vedantysis įrenginys, kreipdamasis į vedantįjį, pranešimo adreso lauke formuoja adresą. Vedamasis įrenginys formuodamas atsakymą adreso lauke įrašo savo adresą. Taip vedantysis įrenginys identifikuoja vedamąjį. 0 adresas naudojamas kaip bendras visiems vedamiesiems įrenginiams. Funkcijos kodas perduodamas dviem baitais ASCII režime, vienu baitu – RTU režime. Funkcijų kodai gali būti iš srities 1 .. 255. Vedantysis įrenginys, formuodamas funkcijos kodą vedamajam, nustato pastarojo veiksmą (grąžinti valdymo registrų turinius, atlikti matavimą, grąžinti būseną ir pan.). Vedamasis, formuodamas atsakymą, talpina tą patį funkcijos kodą (echoes). Jei vedamasis įrenginys funkcijos kodo neatpažįsta, jis atsakymo funkcijos kodo vyriausioje skiltyje formuoja loginį vienetą.


Duomenų lauko struktūra

Duomenų lauką gali sudaryti ASCII simbolių (ASCII režime) poros arba pavienių simbolių (RTU režime) seka. Duomenų lauke, kurį vedantysis įrenginys siunčia vedamajam, yra papildoma informacija, kurią vedamasis įrenginys panaudoja tam tikrai funkcijai atlikti. Tai gali būti registrų adresai, duomenų lauke esantis baitų skaičius ir kt. Pavyzdžiui, jeigu vedantysis įrenginys paprašo grąžinti registrų turinius, tai duomenų lauke pranešamas tų registrų kiekis. Jeigu vedantysis įrenginys perduoda registrų turinius į vedamąjį įrenginį, tai duomenų lauke nurodomas registrų kiekis ir jų turiniai. Jeigu nėra klaidų, tai vedamojo įrenginio atsakyme bus talpinami duomenys. Jeigu jų yra, duomenų lauke bus talpinamas klaidos kodas. Kai kurios funkcijos gali būti be duomenų lauko.


Duomenų formatas

Dirbant su MODBUS naudojamas UART arba ACE generuojamas duomenų formatas. ASCII režime naudojamas 7,N,1 arba 7,Y,1 formatas (Start, 7 duomenų bitai, lyginumo kontrolės skiltis (ar be jos) ir vienas stop bitas). RTU režime naudojamas 8,N,1 arba 8,Y,1 formatas (Start, 7 duomenų bitai, lyginumo kontrolės skiltis (ar be jos) ir vienas stop bitas). Baitai perduodami jaunesniuoju bitu į priekį (LSB first). Klaidų kontrolei yra naudojami du metodai:

  • Lyginumo kontrolė (kiekvienam simboliui atskirai),
  • Viso pranešimo kontrolė su LRC (ASCII režime) ir su CRC (RTU režime).

Pirmuoju atveju kiekvienam perduodamam pranešimo simboliui yra formuojama lyginumo kontrolės skiltis. Antruoju atveju skaičiuojama LRC arba CRC. Priėmimo vietoje taip pat atliekamas jos skaičiavimas ir vykdomas palyginimas su priimtąja.


Protokolo versijos

Yra daug skirtigų Modbus protokolo versijų. Jos skirtos serijiniam prievadui , Ethernet ir kitiems protokolams, kurie palaiko interneto protokolo rinkinį. Protokolo rušys:

  • Modbus RTU – yra pritaikytas nuoseklioje komunikacijai ir naudojamas kompaktiškas, dvejetainis duomenų protokolo ryšiui pateikimas. RTU formatas seka komandas / duomenis su cikline viršvalandinio patikrinimo kontroline suma, kaip klaidų tikrinimo mechanizmą duomenų patikimumui užtikrinti. Modbus RTU yra labiausiai paplitusi "Modbus" froma. Modbus RTU žinutė turi būti nuolat perduodama be uždelsimo tarp simbolių. Modbus pranešimai yra įrėminti (atskiriami) tuščiosios eigos (tyliais) laikotarpiais.
  • Modbus ASCII - tai naudojamas nuoseklioje komunikacijoje, o protokolo ryšiui naudojami ASCII simboliai. ASCII formate naudojama išilginio ištrynimo patikros kontrolinė suma. "Modbus" ASCII pranešimai prasideda nuo dvitaškio (":") ir galines eilutes žymi (CR / LF).
  • Modbus TCP / IP arba Modbus TCP - tai Modbus variantas, naudojamas ryšių per TCP / IP tinklus, jungiantis per prievadą 502. Tam nereikalinga kontrolinės sumos apskaičiavimas, nes žemesniuose lygmenyse jau teikiama kontrolinės sumos apsauga.
  • Modbus per TCP / IP arba Modbus per TCP arba Modbus RTU / IP - tai Modbus variantas, kuris skiriasi nuo Modbus TCP, nes kontrolė yra įtraukta į paketo sandarą, kaip ir "Modbus RTU".
  • Modbus per UDP . Kai kurie bandė naudoti "Modbus" per UDP IP tinkluose, o tai pašalina TCP reikalaujamas pridėtines išlaidas.
  • "Modbus Plus" ("Modbus +", "MB +" arba "MBP") - "Modbus Plus" yra " Schneider Electric" nuosavybė ir, skirtingai nuo kitų variantų, palaiko tarpusavio ryšius tarp kelių savininkų. Tam reikia specialaus bendro procesoriaus, kuris tvarkytų greitą HDLC tipo rotaciją. Jis naudoja vytas poras esant 1 Mbit / s ir transformatoriaus yra izoliuojamas kiekviename mazge, todėl naudojamas tam tikto kraštinės įtampos lygis, o ne įtampos buvimas/ nebuvimas. Norint "Modbus Plus" prijungti prie kompiuterio, paprastai reikia ISA , PCI arba PCMCIA magistralės kortelės. Tam reikalinga speciali aparatinė įranga.
  • Pemex Modbus - tai standartinio "Modbus" pratęsimas, palaikantis istorinius ir srauto duomenis. Jis buvo sukurta " Pemex" naftos ir dujų kompanijai, skirta proceso kontrolei ir niekada nebuvo plačiai paplitęs.
  • "Enron Modbus" - tai dar vienas " Enron Corporation" sukurto standartinio "Modbus" pratęsimas, palaikantis 32 bitų integruotus ir kintamuosius su kintamuoju tašku bei istorinius ir srauto duomenis. Duomenų tipai susiejami naudojant standartinius adresus. Istoriniai duomenys atitinka Amerikos naftos instituto (API) pramonės standartus, kaip duomenys turėtų būti saugomi.

Duomenų modelis ir funkcijų iškvietimai yra vienodi pirmiesiems 4 protokolų variantams. Tik kapsuliavimas yra kitoks. Tačiau variantai nėra suderinami, taip pat nėra suderinami ir kadrų formatai.


Pagrindiniai privalumai ir trūkumai

Pagrindiniai Modbus protokolo privalumai:

  • Palyginti nedidelė įrangos kaina;
  • Standartinė sąsaja – paprasta perduoti duomenis į kompiuterį;
  • Palyginti paprastas sistemos instaliavimas ir aptarnavimas.

Pagrindiniai Modbus protokolo trūkumai:

  • Palyginti nedidelių galimybių protokolas;
  • Riboto pritaikymo protokolai.


Apibendrinimas

Modbus protokolas dažniausiai naudojamas kompiuterizuotose sistemose pramonėje su PLC (programmable logic controllers) duomenų perdavimui užtikrinti. Norint perduoti duomenis Modbus protokolu naudojamos RS232 arba RS485 sąsajos. Sistema dirba master/slave valdikliu principu.Dažniausiai tik master valdiklis gali inicijuoti duomenų mainus, tik ethernet terpėje inicijuoti duomenu perdavimą gali tiek master tiek slave, bet dažniausiai komunikaciją inicijuoja tik vienas pagrindinis įrenginys . Modbus protokole gali būti naudojami du mainų režimai – ASCII arba RTU , ir derindamas ryšio sistemą vartotojas turi pasirinkti vieną iš jų, kartu nustatydamas vienodus asinchroninių mainų režimus. Dirbant su MODBUS naudojamas UART arba ACE generuojamas duomenų formatas. Šį protokolą lengva naudoti su kompiuterių, nes jis savyje turi stadartinę sąsają. Dažniausiai dėl savo lengo aptarnavimo ir paprastumo šis protokolas naudojamas pramonėje, perduoti statistiniams duomenims apie drėgmę, temperatūrą ir t.t. Didelis protokolo pliusas yra tai kad jis yra nomokamas ir eksplotuojamos įrangos kaina nedidelė.