Modbus (v automatizácii budov)

Modbus je otvorený klient-server protokol, ktorý umožňuje regulátorom čítať a zapisovať dáta zariadení cez sériovú linku RS-485 alebo Ethernet.

Modbus je otvorený komunikačný protokol, ktorý riadiacemu zariadeniu umožňuje čítať a zapisovať údaje uložené vo vnútri koncových zariadení. Beží buď po sériovej linke RS-485, známej ako Modbus RTU, alebo cez Ethernet, známy ako Modbus TCP. Niektoré fotovoltické (PV) invertory a energetické merače ho ponúkajú. Napríklad invertor Fronius GEN24 podporuje obe varianty a sprostredkúva údaje z merača Fronius Smart Meter.

Čo je Modbus a odkiaľ pochádza?

Modbus je protokol aplikačnej vrstvy, zaradený do vrstvy 7 modelu OSI. Zabezpečuje komunikáciu typu klient a server medzi zariadeniami na rôznych typoch zberníc a sietí. Špecifikácia Modbusu ho označuje za sériový de facto štandard priemyslu od roku 1979. Klient pošle požiadavku a server odpovie. Protokol definuje formát správ a súbor funkčných kódov. Nehovorí však, čo daný register znamená, preto každý výrobca zariadenia tento význam zdokumentuje vo vlastnom zozname registrov.

Staršie dokumenty používajú pojmy master a slave. Príručka Modbus over Serial Line ich stále používa, kým špecifikácia aplikačného protokolu používa pojmy klient a server.

Ako funguje Modbus RTU na sériovej zbernici?

Modbus RTU je sériový variant. Príručka k sériovej linke označuje dvojvodičové rozhranie RS-485 za najbežnejšie. Režim RTU je pre každé zariadenie povinný, kým režim ASCII je voliteľný. Prenosový režim a nastavenia sériového portu musia byť rovnaké pre všetky zariadenia na jednej linke.

Každú transakciu začína jeden master. Na linke môže byť až 247 podriadených zariadení a každé z nich dostane jedinečnú adresu od 1 do 247. Podriadené zariadenie nikdy neposiela údaje, pokiaľ ho o to master nepožiada. Každý rámec končí kontrolou CRC, takže príjemca môže poškodenú správu odmietnuť. Master, ktorý na jednom kábli dotazuje invertor aj merač, pošle požiadavku, počká na odpoveď a až potom sa opýta ďalšieho zariadenia.

Ako Modbus TCP pridáva ethernetovú hlavičku?

Modbus TCP prenáša rovnaké dáta požiadaviek a odpovedí v rámci spojenia TCP/IP na registrovanom porte 502. Každá správa začína 7-bajtovou hlavičkou MBAP. Obsahuje identifikátor transakcie, ktorý páruje požiadavky s odpoveďami, identifikátor protokolu, ktorý je pre Modbus nulový, pole dĺžky a identifikátor jednotky. Brána využíva identifikátor jednotky na oslovenie zariadenia za ňou na sériovej linke. Tabuľka porovnáva oba varianty.

VlastnosťModbus RTUModbus TCP
PrenosSériová linka, najčastejšie dvojvodičový RS-485TCP/IP cez Ethernet
Adresovanie zariadeníAdresa podriadeného zariadenia od 1 do 247 na jednej zberniciIP adresa a identifikátor jednotky za bránou
Kontrola chýbCRC na konci každého rámcaPole CRC v hlavičke MBAP chýba. Ethernetový rámec nesie vlastné CRC-32
Registrovaný portNevzťahuje saTCP port 502
Maximálna veľkosť správy256 bajtov na sériovej linke260 bajtov cez TCP

Aké dáta môže zariadenie Modbus sprístupniť?

Špecifikácia definuje štyri dátové tabuľky. Diskrétne vstupy a cievky obsahujú jednotlivé bity. Vstupné registre a registre na uchovávanie obsahujú 16-bitové slová. Diskrétne vstupy a vstupné registre sú len na čítanie. Klient môže zapisovať cievky a registre na uchovávanie. Protokol adresuje cievky, diskrétne vstupy a registre od nuly. Cievky číslované v príručke 1 až 16 sú na linke adresované ako 0 až 15. Dátová jednotka protokolu obsahuje najviac 253 bajtov, takže jedna požiadavka na čítanie vráti obmedzený blok hodnôt.

Dátová tabuľkaVeľkosťPrístup
Diskrétne vstupyJeden bitLen čítanie
CievkyJeden bitČítanie a zápis
Vstupné registre16-bitové slovoLen čítanie
Registre na uchovávanie16-bitové slovoČítanie a zápis

Ako využívajú Modbus fotovoltické invertory, merače a tepelné čerpadlá?

Príručka invertora Fronius GEN24 ukazuje, ako to vyzerá pri invertore. Invertor ponúka Modbus TCP cez Ethernet a Modbus RTU cez RS-485. Uvádza bloky registrov pre údaje invertora a pre údaje merača. Pripojený energetický merač je možné čítať cez nastaviteľné ID zariadenia Modbus. Domáci riadiaci systém môže tieto hodnoty čítať a použiť ich vo svojej riadiacej logike.

To, či tepelné čerpadlo ponúka Modbus, závisí od modelu a jeho regulátora. Pred kúpou si od výrobcu vyžiadajte zoznam registrov presne pre daný model. Protokol Modbus nehovorí, ktorý register obsahuje akú hodnotu, preto je skutočnou referenciou zoznam registrov v príručke výrobcu.

Ako sa Modbus líši od BACnet a KNX?

Modbus a BACnet sú rôzne protokoly. Modbus definuje funkčné kódy a dátové tabuľky, pričom význam každej hodnoty určuje výrobca zariadenia. BACnet definuje objekty so štandardizovanými vlastnosťami, ktoré popisujú každý objekt ostatným zariadeniam. Záznam o BACnet vysvetľuje objektový model.

OtázkaModbusBACnet
Čo protokol definuje?Formát správ, funkčné kódy a dátové tabuľkyObjekty so štandardnými vlastnosťami
Kto dáva hodnote význam?Výrobca zariadenia, v zozname registrovTyp objektu a jeho vlastnosti
Ako zariadenie opisuje samo seba?Nijako. Opisuje ho zoznam registrov v príručkeJeho objekt zariadenia uvádza objekty a služby, ktoré podporuje

KNX je tretí protokol. KNX Association ho opisuje ako otvorený štandard a medzi jeho projektové kategórie zaraďuje rodinné domy. Systém automatizácie budov môže kombinovať viac protokolov a brána ich dokáže spojiť. Modbus je jedným zo spôsobov, ako dostať údaje z fotovoltického (PV) invertora alebo inteligentného merača do takéhoto systému.

Čo treba skontrolovať pred pripojením zariadení Modbus?

Začnite príručkami zariadení, nie špecifikáciou protokolu. Zistite, či zariadenie ponúka RTU, TCP alebo oba varianty a ktorý zoznam registrov platí pre jeho verziu firmvéru. Každému sériovému zariadeniu priraďte jedinečnú adresu a na celej zbernici používajte rovnaké nastavenia. Zoznam registrov zapíšte do dokumentácie projektu, pretože číslovanie v príručkách sa môže líšiť od číslovania na linke.

Bezpečnosti treba venovať pozornosť. Organizácia Modbus Organization publikuje samostatný Modbus Security Protocol, ktorý kombinuje Transport Layer Security (TLS) s tradičným protokolom Modbus. Na overenie používa certifikáty X.509v3. Organizácia Modbus Organization označuje dokument o sériovej linke z roku 1996 ako zastaraný, preto pri každej novej inštalácii RS-485 použite príručku Modbus over Serial Line V1.02.

Často kladené otázky

Je Modbus to isté ako BACnet?
Nie. Modbus prenáša funkčné kódy a dátové tabuľky a význam každého registra určuje výrobca zariadenia. BACnet definuje objekty so štandardnými vlastnosťami, takže zariadenie popisuje svoje dáta v sieti samo.
Prečo mi adresa registra v mape Modbus vychádza o jedna inak?
Protokol adresuje registre a cievky od nuly, kým návody ich často číslujú od jednej. Registre očíslované v návode 1 až 16 sú na linke adresy 0 až 15. Pred zápisom adresy do regulátora si prečítajte poznámku o číslovaní v dokumentácii.
Je Modbus dostatočne bezpečný pre domáci energetický systém?
Sám o sebe nie. Tradičný protokol Modbus nemá ochranu TLS. Organizácia Modbus zverejnila bezpečnostný protokol Modbus Security Protocol, ktorý kombinuje TLS s protokolom a používa certifikáty X.509v3. Opýtajte sa preto, či vaše zariadenia tento protokol podporujú.
Potrebujem bránu na pripojenie zariadení Modbus RTU k Ethernetu?
Áno, ak má regulátor iba Ethernet a zariadenia sú na zbernici RS-485. Brána prekladá medzi Modbus TCP a Modbus RTU. Identifikátor jednotky v hlavičke TCP určí sériové zariadenie, ktoré požiadavku prijme.
Môžu fotovoltický invertor a energomer zdieľať jedno pripojenie Modbus?
Môžu zdieľať zbernicu RS-485, ak obe podporujú Modbus RTU a každé má jedinečnú adresu. Niektoré invertory, napríklad Fronius GEN24, čítajú aj pripojený merač a jeho dáta posúvajú ďalej cez vlastné rozhranie Modbus. Zoznamy registrov a nastavenia skontrolujte v návodoch.
Podporuje moje tepelné čerpadlo Modbus?
Záleží na modeli a jeho regulátore. Zoznam registrov presne pre váš model si vyžiadajte od výrobcu. Ak výrobca zoznam registrov nezverejňuje, naplánujte iný spôsob čítania jeho dát.

Zdroje

  1. MODBUS Application Protocol Specification V1.1b3 · Modbus Organization · Introduction (de facto standard since 1979), 1.1 Scope (OSI level 7), data model table, 4.1 PDU and ADU sizes, coils addressed from zero
  2. MODBUS over Serial Line Specification and Implementation Guide V1.02 · Modbus.org · 2.1 Master/slave principle, 2.5 Transmission modes, RS-485 interface
  3. MODBUS Messaging on TCP/IP Implementation Guide V1.0b · Modbus Organization · 3.1.3 MBAP Header description, port 502, section on error detection
  4. Specifications and Implementation Guides · Modbus Organization · Specification list
  5. Fronius GEN24: Modbus TCP and RTU · Fronius International GmbH · Modbus TCP and RTU operating instructions
  6. The Language of BACnet: Objects, Properties and Services · BACnet Committee website, article by Bill Swan (Alerton Technologies) · Objects, Device object
  7. KNX: One standard. Every brand. Every system. · KNX Association · Home page