Šiuolaikinėse įmonėse komunikacija yra esminė grandis, ne tik tarp žmonių, bet ir tarp technologinių sistemų. Ryšių protokolai yra būdas, kuriuo skirtingi įrenginiai keičiasi duomenimis. Kai kurie naudoja atvirus protokolus, kiti - patentuotus. Atviras protokolas yra lengvai pritaikomas ir integruojamas į rinką, nes jo specifikacijos yra viešai skelbiamos. Plačiausiai naudojamas protokolas yra „Modbus“ - atviras protokolas. Jį 1979 m. sukūrė „Gould-Modicon“ (vėliau „Schneider Electric“), ieškodama būdo, kaip kompiuteriai galėtų bendrauti su PLC (programuojamais loginiais valdikliais) sistemomis. Nuo 1996 m. „Modbus TCP“ (speciali protokolo versija) priklauso IEC 61158 pramonės standartui. Beveik nėra pramonės šakos, pramoninės automatikos ar SCADA sistemų, kuriose nebūtų naudojamas „Modbus“ protokolas. „Modbus“ pramonėje naudojamas jau daugiau nei 40 metų, ir nauji automatizavimo produktai vis dar pristatomi su šiuo protokolu. Nors egzistuoja daugybė kitų protokolų, „Modbus“ išlieka pasirinkimu daugeliu atvejų.
Kaip Veikia Modbus Protokolas?
„Modbus“ veikia pagal kliento/serverio (anksčiau meistro/vergo) architektūrą, kuri apibrėžia užklausų ir atsakymų seką. Tai taikomojo lygio protokolas, kur klientas (dažniausiai kompiuteris ar valdymo sistema) pateikia duomenų užklausas serveriui (pvz., jutikliui, PLC) arba prašo atlikti tam tikrus veiksmus. Klientas generuoja arba naudoja funkcinį kodą, kuris nurodo norimą operaciją.
Pagrindinis protokolo veikimas yra paprastas: jis užtikrina, kad pagrindinis įrenginys (dažniausiai kompiuteris) ir vienas ar keli pavaldiniai įrenginiai būtų sujungti. Pavyzdžiui, skirtingi matavimo prietaisai gali būti valdomi kompiuterio ir (arba) gali perduoti duomenis į kompiuterį. Duomenų perdavimas vyksta trimis pagrindiniais keliais: ASCII, RTU ir TCP, kiekvienas tinkamas skirtingiems tikslams. Perdavimo terpės gali būti Ethernet arba nuoseklusis ryšys.
„Modbus“ tinkle kiekvienas serveris (valdiklis) nustato visus žinomus klientus (įrenginių adresus), atpažįsta pranešimo adresą, kad nustatytų pageidaujamą operacijos tipą, ir išgauna bet kokius pranešime esančius duomenis ar kitą informaciją.
Pranešimas, kuriuo keičiamasi tarp kliento ir serverio, vadinamas kadru.

Yra dviejų tipų „Modbus“ kadrai:
- Protokolo duomenų vienetas (PDU): Sudaro funkcinis kodas ir duomenys.
- Taikomosios programos duomenų blokas (ADU): Sudėtingesnis, apimantis papildomą adresavimą ir klaidų tikrinimą.
Funkcijos kodas žymi atliekamų funkcijų rinkinį, o duomenys - informacijos naudojimą praktikoje.
Modbus Perdavimo Režimai
„Modbus“ siūlo kelis ryšio metodus, kurie užtikrina skirtingų tipų pavaldinių įrenginių ryšį:
- Modbus serijinis: Bet kuriuo metu prie tos pačios nuosekliosios magistralės yra prijungtas tik vienas „Modbus“ pagrindinis įrenginys ir vienas ar keli „Modbus“ pavaldiniai įrenginiai.
- Modbus Ethernet: Bet kuriuo metu prie to paties Ethernet tinklo yra prijungtas vienas ar keli „Modbus“ pagrindiniai įrenginiai ir tik vienas „Modbus“ pavaldinis įrenginys.
Šie ryšio metodai naudoja skirtingus duomenų perdavimo režimus: nuotolinio terminalo įrenginį (RTU), Amerikos standartinį informacijos mainų kodą (ASCII) ir perdavimo valdymo protokolą (TCP).
| Perdavimo Režimas | Komunikacijos Būdas | Aprašymas |
|---|---|---|
| RTU | Nuoseklusis ryšys | Kiekvieną pranešimo duomenų baitą sudaro du 4 bitų šešioliktainiai simboliai. Įrenginiai ir programos perduoda kiekvieną pranešimą nepertraukiamu simbolių srautu. Naudoja CRC klaidų tikrinimui. |
| ASCII | Nuoseklusis ryšys | Kiekvieno pranešimo duomenų baitas susideda iš dviejų ASCII simbolių. Pranešimas prasideda dvitaškiu (:), po kurio nurodomas gavėjo adresas, komanda, duomenys ir LRC (Longitudinal Redundancy Check) klaidų tikrinimui. Baigiasi CRLF. |
| TCP | Ethernet | „Modbus“ duomenų pranešimas yra įtrauktas į TCP kadrą. Naudoja TCP/IP tinklą ir 502 prievadą. Klaidų tikrinimas atliekamas apatiniuose tinklo sluoksniuose. |
Modbus RTU (Remote Terminal Unit)
RTU (nuotolinis terminalo blokas) perduoda dvejetainius kodus, skirtingai nei ASCII, kurį žmonėms sunku perskaityti. Tačiau šis metodas užtikrina žymiai geresnį duomenų vientisumą. Kiekvienas „Modbus RTU“ kodas prasideda ilga pauze (bent 3,5 simbolio), po kurios seka 8 bitų imtuvo adresas ir 8 bitų funkcinis kodas. Teisingo perdavimo atveju laukai siunčiami nepakeisti. Klaidų atveju keičiasi kodas. Duomenų laukas naudojamas pavaldiniam įrenginiui siųsti išmatuotus duomenis pagrindiniam įrenginiui. Visas pranešimas tikrinamas naudojant CRC. Kiekvieno RTU pranešimo pabaiga žymima ilgesniu laukimo laiku (bent 3,5 simbolio).
„Modbus RTU“ perduoda savo duomenis per nuosekliąją sąsają. Fizinės terpės gali būti RS232, RS485 arba RS422.
- RS232: Paprastas taškas-taškas išdėstymas, tinkamas tik vienam įrenginiui prijungti, kai atstumas yra mažesnis nei 15 metrų.
- RS485: Palaiko kelis įrenginius ir didesnius nei 15 metrų atstumus. Šioje terpėje pagrindinis įrenginys bendrauja su keliais pavaldiniais įrenginiais. RS485 palaiko maždaug 32 mazgus 1200 metrų atstumu, tačiau gali būti išplėstas naudojant kartotuvus.
Tinkle gali būti tik vienas pagrindinis įrenginys ir daugiausia 247 pavaldiniai įrenginiai su unikaliais ID nuo 1 iki 247.
Viskas, ką reikia žinoti apie „Modbus RTU“
Modbus ASCII
„Modbus ASCII“ režimas buvo sukurtas pranešimams dekoduoti, kad juos galėtų perskaityti žmonės. Tai įgyvendinti daug sunkiau nei perduoti dvejetainiu būdu užkoduotus kodus. Kodų struktūra visada ta pati: pranešimas prasideda dvitaškiu (:), po kurio nurodomas gavėjo adresas, vykdoma komanda, pats pranešimas (kintamo ilgio) ir LRC komanda klaidų tikrinimui. Kiekvienas ASCII pranešimas baigiamas CRLF simboliu.
Svarbu tai, kad „Modbus RTU“ įrenginys negali bendrauti su „Modbus ASCII“ įrenginiu, nes tai du nesuderinami režimai.
Modbus TCP/IP
Šis režimas skirtas Ethernet tinklui. Jis labai panašus į RTU režimą, nes perduodamas dvejetainiu kodu, tačiau „Modbus TCP“ nereikia skaičiuoti valdymo baitų, nes TCP tvarkykles galima tvarkyti ir įdiegti lengviau. Kiekvieno TCP pranešimo pradžioje yra 0x0000 operacijos numeris, po kurio eina 0x0000 protokolo simbolis. Tada nurodomas likusių baitų skaičius, adresas ir funkcijų laukas. Duomenys, kurių dydis visada skiriasi priklausomai nuo pranešimo ilgio, pateikiami pranešimo pabaigoje. Paprastai TCP 502 prievadas yra rezervuotas „Modbus TCP“.
„Modbus TCP/IP“ naudoja „Modbus“ serverio ir „Modbus“ kliento tinklus. Kiekvienas komutatorius yra prijungtas prie „Modbus“ įrenginio arba komutatorių serijos.
Pagrindinis skirtumas tarp „Modbus TCP“ ir „Modbus RTU“ yra MBAP (Modbus Application Protocol) antraštė, kuri pašalina pavaldžio užklausos pranešimą ir ciklinį papildomą patikrinimą.
Kamstrup Modbus TCP Modulis
Šiuolaikiškas ir patogus montuoti „Kamstrup Modbus TCP“ modulis yra skirtas „MULTICAL® 603“ ir „MULTICAL® 803“ energijos skaitikliams. Jis palaiko dažniausiai naudojamus šildymo ir vėsinimo registrus. Galimos šios modulių konfigūracijos:
- xx-yy-300: Default - „MULTICAL® 603“ ir „MULTICAL® 803“ duomenų schema.
- xx-yy-301: Legacy - seno tipo duomenų telegrama, iš dalies suderinama su „MULTICAL® 602“ skaičiuotuvo telegrama.
Kaip ir „Modbus RTU“ modulis, „Modbus TCP/IP“ modulis sukurtas atsižvelgiant į didelį lankstumą, kad būtų galima atlikti stebėjimo, kontrolės ar duomenų analizės programą. „Modbus TCP“ protokolas palengvina įvairius skaitiklio duomenų formatavimus, kad būtų galima susidoroti su įvairia skaitymo įranga. Pasikeitus skaitiklio duomenims, „Modbus TCP“ modulis juos atnaujina ypač greitai, todėl tinka naudoti ir stebėjimui, ir kontrolei.
„MULTICAL®“ energijos skaitiklis palaiko didelį duomenų kiekį, ir visus susijusius duomenis su jų analize galima nuskaityti. Modulis teikia informacinius kodus, skirtus bendram aliarmui, srauto klaidai, temperatūros klaidai, vandens nuotėkiui, dideliam srautui, orui sistemoje ir neteisingai srauto krypčiai.
Kontrolė ir Reguliavimas
Duomenys gali būti nuskaitomi kelių sekundžių intervalais labai dideliu greičiu, todėl jie gali būti naudojami kontrolės ir reguliavimo tikslais.
Nuotolinis PQT Valdiklio Valdymas
Galimas PQT valdiklio nuotolinis valdymas, nes galima nuskaityti PQT valdiklių ribinius nustatymus ir įrašyti juos per „Modbus“ komandas. Taigi srautą galima valdyti pastato valdikliu, tiesiog nustatydami vieną ar daugiau ribinių nustatymų PQT valdiklyje.
„Modbus“ Privalumai
Renkantis tinklą savo įrenginiui, „Modbus“ protokolas suteikia keletą naudingų privalumų:
- Paprastas diegimas: „Modbus“ diegimas yra paprastas įrenginių gamintojams.
- Atviras protokolas: Jis yra atviras protokolas, todėl, skirtingai nei daugelis patentuotų protokolų, jam nereikia konkrečios fizinės terpės ar sluoksnio. „Modbus“ tinklai yra sukurti naudojant pigias ir įprastas infrastruktūras, tokias kaip RS485, RS422, RS232 ir Ethernet.
- Nemokama specifikacija: Specifikacija prieinama nemokamai, netaikomas licencijos mokestis. Taip pat nereikia mokėti už palaikymą. Papildomo kodo pavyzdžių, įgyvendinimo pavyzdžių ir trikčių šalinimo instrukcijų taip pat rasite „Modbus“ įrankiuose.
- Tinkamas duomenų kiekiams: Tinka mažiems ir vidutiniams duomenų kiekiams (iki 255 baitų).
- Patikimas perdavimas: Paprastas prijungimas ir patikrintas duomenų perdavimas.
- Suderinamumas ir atnaujinimas: Pasirinkus „Modbus“, ateityje turėsite didelę tikimybę išvengti suderinamumo ir atnaujinimo problemų.
„Modbus“ - Universali Sistema
„Modbus“ yra beveik neišvengiamas ir būtinas automatizavimo technologijoms. Visų pirma, perdavimas per Ethernet (t. y. TCP protokolas) laikomas de facto standartu. Internetas taip pat pagrįstas šia kliento-serverio struktūra. Praktinis šio metodo privalumas yra tai, kad skirtingi „Modbus“ variantai naudoja bendrą taikymo protokolą, kuris iš esmės supaprastina komunikacijos procesus pramonėje.
Ši technologija užtikrina universalų automatizavimo technologijų įrenginių ryšio protokolą. Naudojama perdavimo terpė nesvarbi. Taikymo protokolas yra visiškai nepriklausomas ir todėl gali būti naudojamas įvairiais būdais. PLC naudojami įvairiose pramonės srityse - tiek didelėse, tiek mažose. Todėl labai svarbus vienodas ryšio kelias. „Modbus“ siunčia užklausą iš pagrindinio įrenginio pavaldiniam (-iams) įrenginiui (-ams) ir tokiu būdu gali greitai, saugiai ir vienodai perduoti duomenis. Šiuolaikinės technologijos taip pat leidžia derinti skirtingus perdavimo tipus. Tokiu būdu, pavyzdžiui, įrenginiai su nuosekliosiomis sąsajomis gali būti integruoti į sistemas, kurios daugiausia veikia per internetą.
Modbus Istorija ir Versijos
„Modbus“ protokolas, sukurtas 1979 m. „Modicon“ (dabar „Schneider Electric“), yra plačiai naudojamas pramoniniams įrenginiams. Jis leidžia įvairiems elektroniniams įrenginiams efektyviai bendrauti tinkle, nepriklausomai nuo gamintojų skirtumų.
Pagrindinės „Modbus“ versijos apima:
- Modbus RTU (Remote Terminal Unit): Naudojamas nuosekliame ryšyje, duomenys atvaizduojami dvejetainiu formatu. Naudoja CRC klaidų tikrinimui. Tai plačiausiai įdiegtas protokolo variantas.
- Modbus ASCII: Taip pat naudojamas nuosekliam duomenų perdavimui, bet naudoja ASCII simbolius. Pranešimai yra lengviau skaitomi žmonių, bet lėtesni nei RTU. Naudoja LRC klaidų tikrinimui.
- Modbus TCP/IP: Naudojamas duomenų ryšiui per TCP/IP tinklus, jungiantis per 502 prievadą. Klaidų tikrinimas atliekamas apatiniuose tinklo sluoksniuose.
- Modbus Plus (MB+): Patentuotas protokolas, pasižymintis dideliu greičiu ir palaikantis sudėtingesnes tinklo topologijas. Reikalauja specialios aparatinės įrangos.
- Pemex Modbus: Standartinės „Modbus“ plėtinys, skirtas palaikyti duomenų srautą, sukurtas naftos ir dujų įmonėms.
- Enron Modbus: Sukurtas palaikyti 32 bitų slankiuosius ir sveikuosius kintamuosius bei istorinį duomenų srautą.
Modbus Funkcijų Kodai
Funkcijų kodai apibrėžia konkrečias operacijas, kurias gali atlikti „Modbus“ įrenginiai. Dažniausiai pasitaikantys funkcijos kodai apima:
- 01 (Read Coils): Skaitomos vienos ar kelių ritės (būsenos registrai).
- 02 (Read Discrete Inputs): Skaitomi diskretūs įėjimai.
- 03 (Read Holding Registers): Skaitomi laikymo registrai (saugomi nuolat).
- 04 (Read Input Registers): Skaitomi įvesties registrai (tik skaitymo).
- 05 (Write Single Coil): Rašoma į vieną ritę.
- 06 (Write Single Register): Rašoma į vieną laikymo registrą.
- 15 (Write Multiple Coils): Rašoma į kelias rites.
- 16 (Write Multiple Registers): Rašoma į kelis laikymo registrus.
Norint apibrėžti ir rasti duomenis, reikia žinoti tiek registro adresą, tiek funkcinį kodą.
Modbus RS-485: Išsamus Žvilgsnis
Ryšys tarp „Modbus“ pagrindinio ir „Modbus“ pavaldinių įrenginių RS485 tinkle apima išsamų protokolą, siekiant užtikrinti efektyvų duomenų mainus. Šio ryšio pagrindas yra duomenų rėmelis, kuris perduoda struktūrizuotus duomenis.
Tipinį duomenų rėmelį „Modbus“ tinkle sudaro keli pagrindiniai komponentai:
- Įrenginio adresas: Identifikuoja numatytą gavėją (1-247).
- Funkcijos kodas: Nurodo veiksmą, kurio reikia imtis.
- Duomenys: Apima veikimo parametrus arba rezultatus.
- CRC (Ciklinis Perteklinio Pertekkliaus Patikrinimas): Dviejų baitų reikšmė, pridedama prie duomenų kadro pabaigos, užtikrina duomenų vientisumą aptikdama klaidas perdavimo metu.

Norint efektyviai įdiegti „Modbus“ per RS485, reikia aiškiai suprasti šiuos komponentus. Aparatinės ir programinės įrangos sinchronizavimas užtikrina sklandų ryšį.
Kodėl Rinktis Modbus, o Ne Tik RS485?
Nors RS485 yra fizinis sluoksnis, „Modbus“ suteikia protokolą, kuris organizuoja duomenų perdavimą. „Modbus“ per RS485 yra plačiai pripažintas ryšio standartas, vertinamas dėl savo patikimumo ir našumo sudėtingoje aplinkoje. Jo pagrindinio-pavaldžiojo topologija supaprastina tinklo konfigūraciją ir valdymą, sumažina duomenų susidūrimų riziką. Palyginti su RS232, RS485 palaiko ilgesnius kabelius ir didesnę duomenų perdavimo spartą, leidžia keliems įrenginiams jungtis toje pačioje magistralėje. „Modbus“ per RS485 pasižymi dideliu duomenų tikslumu ir patikimumu net ir aplinkoje, kurioje yra dideli elektromagnetiniai trukdžiai (EMI).
Naujos Tendencijos ir Ateities Perspektyvos
Nors „Modbus“ per RS485 yra patikimas, įgyvendinant gali kilti iššūkių, tokių kaip magistralės arbitražas ir tikslus įrenginių adresavimas. Efektyvus magistralės arbitražas reikalauja kruopščios konfigūracijos. Ryšio atstumas gali būti padidintas naudojant kartotuvus ir aukštos kokybės kabelius. Griežtos klaidų tikrinimo ir taisymo priemonės, tokios kaip pariteto bitai ir CRC, užtikrina duomenų vientisumą. Dažnos problemos, tokios kaip signalo atspindys, triukšmo trukdžiai ir sinchronizavimo problemos, gali būti sprendžiamos tinkamais techniniais sprendimais.
Modbus Palyginimas su Kitais Protokolais
Pramoninių ryšių srityje svarbu suprasti įvairių protokolų galimybes.
- Modbus TCP vs. Modbus RS485: „Modbus TCP“ naudoja Ethernet, suteikdamas didesnį greitį ir lengvą integravimą su IT sistemomis. „Modbus RS485“ puikiai veikia triukšmingoje aplinkoje dėl patikimo diferencinio signalizavimo.
- Modbus RS485 vs. CAN Bus: CAN magistralė dažnai naudojama automobilių ir automatikos srityse dėl realaus laiko galimybių. „Modbus RS485“ yra pagrindinė lauko magistralių sistemų dalis pramonės šakose, tokiose kaip gamyba.
- Modbus RS485 vs. Profibus: „Profibus“ lenkia „Modbus RS485“ greičiu ir duomenų apdorojimo galimybėmis, tačiau dažnai reikalauja specializuotos įrangos. „Modbus RS485“ išlieka ekonomišku ir universaliu sprendimu.
Tinkamo ryšio protokolo pasirinkimas priklauso nuo konkrečių programų poreikių, tokių kaip greitis, kaina, suderinamumas ir specifiniai pramoniniai reikalavimai.