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:

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:

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:

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:

Pagrindiniai Modbus protokolo trūkumai:


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ė.

paskutinį kartą redaguota 2017-11-26 11:28:31 redaktoriaus AurimasMasevičius