Modbus (automatizace budov)

Modbus je otevřený protokol typu klient a server, který umožňuje řídicím jednotkám číst a zapisovat data zařízení přes sériovou linku RS-485 nebo Ethernet.

Modbus je otevřený komunikační protokol, který řídicímu zařízení umožňuje číst a zapisovat data uložená uvnitř koncových zařízení. Běží po sériové sběrnici RS-485, které se říká Modbus RTU, nebo po Ethernetu, kterému se říká Modbus TCP. Některé fotovoltaické (PV) střídače a energetické měřiče ho podporují. Například střídač Fronius GEN24 podporuje obě varianty a předává data z chytrého měřiče Fronius Smart Meter.

Co je Modbus a odkud pochází?

Modbus je protokol aplikační vrstvy, který se nachází na úrovni 7 modelu OSI. Zajišťuje komunikaci typu klient a server mezi zařízeními na různých typech sběrnic a sítí. Specifikace Modbusu ho označuje za průmyslový sériový de facto standard od roku 1979. Klient odešle požadavek a server na něj odpoví. Protokol definuje formát zprávy a sadu funkčních kódů. Neurčuje však, co jednotlivé registry znamenají, a proto každý výrobce zařízení tento význam popisuje ve vlastním seznamu registrů.

Starší dokumenty používají označení master a slave. Příručka Modbus over Serial Line je stále používá, zatímco specifikace aplikačního protokolu hovoří o klientovi a serveru.

Jak funguje Modbus RTU na sériové sběrnici?

Modbus RTU je sériová varianta. Příručka k sériové lince označuje za nejrozšířenější dvouvodičové rozhraní RS-485. Režim RTU je pro každé zařízení povinný, zatímco režim ASCII je volitelný. Přenosový režim a nastavení sériového portu musí být u všech zařízení na jedné lince stejné.

Každou transakci zahajuje jeden master. Na lince může být připojeno až 247 slave zařízení a každé z nich má jedinečnou adresu v rozsahu 1 až 247. Slave zařízení nikdy neodešle data, dokud o ně master nepožádá. Každý rámec končí kontrolním součtem CRC, takže příjemce může poškozenou zprávu odmítnout. Master, který na jednom kabelu dotazuje střídač a měřič, odešle požadavek, počká na odpověď a poté se zeptá na další zařízení.

Jak Modbus TCP přidává ethernetovou hlavičku?

Modbus TCP přenáší stejná data požadavku a odpovědi uvnitř spojení TCP/IP na registrovaném portu 502. Každá zpráva začíná hlavičkou MBAP o délce 7 bajtů. Obsahuje identifikátor transakce, který páruje požadavky s odpověďmi, protokolový identifikátor, který je u Modbusu nulový, pole délky a identifikátor jednotky. Brána využívá identifikátor jednotky k oslovení zařízení připojeného za ní na sériové lince. Tabulka porovnává obě varianty.

VlastnostModbus RTUModbus TCP
Přenosové médiumSériová linka, nejčastěji dvouvodičová RS-485TCP/IP přes Ethernet
Adresování zařízeníAdresa slave v rozsahu 1 až 247 na jedné sběrniciIP adresa a identifikátor jednotky za bránou
Kontrola chybCRC na konci každého rámceHlavička MBAP neobsahuje pole CRC. Ethernetový rámec nese vlastní CRC-32
Registrovaný portNeuplatňuje seTCP port 502
Maximální velikost zprávy256 bajtů na sériové lince260 bajtů přes TCP

Jaká data může zařízení s Modbusem zpřístupnit?

Specifikace definuje čtyři datové tabulky. Diskrétní vstupy a cívky (coils) obsahují jednotlivé bity. Vstupní registry a držicí registry obsahují 16bitová slova. Diskrétní vstupy a vstupní registry jsou pouze pro čtení. Klient může zapisovat do cívek a držicích registrů. Protokol čísluje cívky, diskrétní vstupy i registry od nuly. Cívky očíslované v manuálu 1 až 16 mají na lince adresy 0 až 15. Datová jednotka protokolu obsahuje nejvýše 253 bajtů, takže jeden požadavek na čtení vrátí omezený blok hodnot.

Datová tabulkaVelikostPřístup
Diskrétní vstupyJeden bitPouze pro čtení
CívkyJeden bitČtení i zápis
Vstupní registry16bitové slovoPouze pro čtení
Držicí registry16bitové slovoČtení i zápis

Jak PV střídače, měřiče a tepelná čerpadla využívají Modbus?

Manuál k střídači Fronius GEN24 ukazuje, jak to vypadá u střídače. Střídač nabízí Modbus TCP přes Ethernet a Modbus RTU přes RS-485. Uvádí bloky registrů pro data střídače a data měřiče. Připojený energetický měřič lze číst pomocí nastavitelného identifikátoru Modbus zařízení. Domácí řídicí jednotka může tyto hodnoty číst a využít je ve své řídicí logice.

To, zda tepelné čerpadlo nabízí Modbus, závisí na modelu a jeho regulátoru. Před koupí si u výrobce vyžádejte seznam registrů konkrétního modelu. Protokol Modbus neurčuje, který registr obsahuje kterou hodnotu, a proto je skutečnou referencí seznam registrů v manuálu výrobce.

Čím se Modbus liší od BACnetu a KNX?

Modbus a BACnet jsou odlišné protokoly. Modbus definuje funkční kódy a datové tabulky a význam každé hodnoty určuje výrobce zařízení. BACnet definuje objekty se standardními vlastnostmi, které popisují každý objekt ostatním zařízením. Záznam o BACnetu vysvětluje objektový model.

OtázkaModbusBACnet
Co protokol definuje?Formát zprávy, funkční kódy a datové tabulkyObjekty se standardními vlastnostmi
Kdo dává hodnotě význam?Výrobce zařízení, v seznamu registrůTyp objektu a jeho vlastnosti
Jak zařízení popisuje samo sebe?Nepopisuje. Popisuje to seznam registrů v manuáluJeho objekt zařízení uvádí objekty a služby, které podporuje

KNX je třetí protokol. Sdružení KNX ho popisuje jako otevřený standard a mezi kategorie svých projektů řadí rodinné domy. Systém řízení budovy může kombinovat více protokolů a brána je propojuje. Modbus je jedním ze způsobů, jak přivést údaje z PV střídače nebo chytrého měřiče do takového systému.

Co zkontrolovat před připojením zařízení s Modbusem?

Začněte u manuálů zařízení, nikoli u specifikace protokolu. Zjistěte, zda zařízení nabízí RTU, TCP nebo obojí, a který seznam registrů platí pro jeho verzi firmwaru. Každému sériovému zařízení přiřaďte jedinečnou adresu a na celé sběrnici používejte stejné nastavení. Seznam registrů zapište do projektové dokumentace, protože číslování v manuálech se může lišit od číslování na lince.

Pozornost je třeba věnovat také zabezpečení. Organizace Modbus Organization zveřejňuje samostatný protokol Modbus Security Protocol, který kombinuje Transport Layer Security (TLS) s tradičním protokolem Modbus. K ověřování používá certifikáty X.509v3. Organizace Modbus Organization označuje dokument o sériové lince z roku 1996 za zastaralý, takže pro každou novou instalaci RS-485 použijte příručku Serial Line Guide V1.02.

Často kladené otázky

Je Modbus totéž co BACnet?
Ne. Modbus přenáší funkční kódy a datové tabulky a to, co každý registr znamená, určuje výrobce zařízení. BACnet definuje objekty se standardizovanými vlastnostmi, takže zařízení popisuje svá data v síti samo.
Proč mi adresa registru v mapě Modbus vychází o jednu nižší?
Protokol počítá registry a cívky od nuly, kdežto návody je často číslují od jedničky. Registry očíslované v návodu 1 až 16 mají na lince adresy 0 až 15. Než adresu zapíšete do řídicí jednotky, přečtěte si v dokumentaci poznámku k číslování.
Je Modbus dostatečně bezpečný pro domácí energetický systém?
Sám o sobě ne. Tradiční protokol Modbus nemá ochranu TLS. Organizace Modbus Organization zveřejňuje bezpečnostní protokol Modbus Security Protocol, který kombinuje TLS s protokolem a používá certifikáty X.509v3, proto se zeptejte, zda vaše zařízení tuto variantu podporují.
Potřebuji bránu, abych připojil zařízení Modbus RTU k Ethernetu?
Ano, pokud řídicí jednotka má pouze Ethernet a zařízení jsou připojena na sběrnici RS-485. Brána překládá mezi Modbus TCP a Modbus RTU. Identifikátor jednotky v hlavičce TCP určuje, které sériové zařízení přijme požadavek.
Mohou střídač fotovoltaiky a energoměr sdílet jedno připojení Modbus?
Mohou sdílet sběrnici RS-485, pokud oba podporují Modbus RTU a každé má jedinečnou adresu. Některé střídače, například Fronius GEN24, také čtou připojený měřič a jeho data předávají dál přes vlastní rozhraní Modbus. Seznamy registrů a nastavení najdete v návodech.
Podporuje mé tepelné čerpadlo protokol Modbus?
Záleží na modelu a jeho řídicí jednotce. Požádejte výrobce o seznam registrů přesného modelu. Pokud výrobce žádný seznam registrů nezveřejňuje, naplánujte jiný způsob čtení jeho dat.

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