Další novinky – UI300, UI309

Pod názvem UC300 známe regulátor podlahového vytápění s vstupem pro externí omezovací čidlo teploty v podlaze. Souběžně s redesignem hardwaru UC300 vznikl i nový UI300, tedy pokojový ovladač bez regulační funkce. UI300 obsahuje 1× digitální vstup, 1× triakový výstup, interní čidlo teploty a vlhkosti a analogový vstup pro čidlo teploty Pt1000. Všechny hodnoty jsou k dispozici v modbusových registrech, stejně jako u ostatních ovladačů UI…

Další model, UI309, obsahuje navíc ještě čidlo CO2, takže je možné ho nasadit například u kombinovaných systémů s podlahovým topením a rekuperační jednotkou.

Více informací najdete v katalogovém listu ZDE.

BACnet – stručný úvod do základů 2. díl

Průzkum BACnet serveru klientem

Nejčastější úlohou, před kterou stojíme, je zaintegrovat data z BACnet serveru (například tepelného čerpadla) do nějakého klientského softwaru – buď vizualizace, nebo PLC, které tato data dále využívá pro nějakou regulační úlohu. U jiných protokolů, jako například Modbus, potřebujeme od výrobce serveru tabulku s adresami a popisem hodnot – jejich formáty, typy, významy atd. BACnet server, díky svým službám, objektům a jejich vlastnostem, může na dotaz ze strany klienta tyto informace do jisté míry poskytnout sám.

BACnet může pro komunikaci používat různé sběrnice. V dalším se soustředíme na BACnet/IP. Předpokládejme tedy, že BACnet server je zařízení, které má rozhraní Ethernet se známou IP adresou. V našem případě půjde o PLC s IP adresou 192.168.1.17. Počítač s BACnet klientem – průzkumníkem, v tomto případě programem Yabe, má IP adresu 192.168.1.44 – adresa je nastavena tak, aby byla ve stejné logické síti. BACnet komunikuje na protokolu UDP, server standardně naslouchá na UDP portu 47808. Toto číslo portu je rezervované u organizace IANA[1], bylo zvoleno tak, aby se v hexadecimálním tvaru – BAC0 – dobře pamatovalo.

Spustíme program Yabe a v menu vybereme pravým kliknutím na Devices funkci Add device.

0201_yabe_add device

Obr. Yabe – Add device

V dialogu vybereme v poli BACnet/IP over UDP místní síťové rozhraní, které má program použít.

0202_yabe_search

Obr. Yabe – Search

Toto je důležitý krok. IP adresa (Local Endpoint) je odchozí adresa, z níž budou do sítě posílány dotazy. Pokud bychom vybrali například IP adresu Wi-Fi rozhraní, paket s dotazem by se po kabelu na BACnet server vůbec nedostal. Port BAC0 je cílový port u BACnet serverů, na který dotazy směřují. (Místní port, ze kterého dotazy odcházejí, je přiřazován automaticky operačním systémem ze seznamu volných portů.) Tlačítkem Add volbu potvrdíme.

Yabe vyšle několik pátracích dotazů Who-Is. Ve stromu se objeví přenosový kanál (UDP port 47808) a na něm nalezené zařízení.

0203_yabe_found

Obr. BACnet zařízení v programu YABE

Pro analýzu paketů je použit program Wireshark. Pokud vše funguje, nebudeme ho potřebovat – výpis na následujícím obrázku je uveden jen pro ilustraci. Jako filtr byl použit parametr „bacnet“ (zelené pole nahoře), tím byla z výpisu odstraněna většina ostatních paketů, které se na síťovém rozhraní vyskytly. V modrém poli, výpisu BACnet paketů, vidíme, že klient s IP adresou 192.168.1.44 vyslal dotaz s využitím služby Who-Is jako broadcast[2] (broadcast se pozná podle toho, že cílová adresa je – v této IP síti – 192.168.1.255). Na tento broadcast, tedy otázku „je zde nějaké BACnet zařízení?“ určenou všem zařízením v logické síti, odpovědělo zprávou I-Am, „jsem tu já“, jediné zařízení: PLC s IP adresou 192.168.1.17. (Vidíme, že dotaz byl opakován třikrát s intervalem 1 s a pokaždé přišla stejná odpověď.)

V okénku vlevo je telegram dotazu dále rozebrán. Zajímavější je ovšem odpověď v okénku vpravo. V ní můžeme pozorovat, jak na sebe server prozradil,

  • že obsahuje objekt Device s číslem instance 1
  • že parametr Maximum APDU Length Accepted má hodnotu 1476 (ať už to znamená co chce)
  • že podporuje segmentaci oběma směry (dtto)
  • že výrobcem zařízení je firma Domat Control System – pozná se podle (opět standardizovaného) Vendor ID, v tomto případě 384.

Pro zajímavost: Vendor ID je zdarma přidělováno organizací ASHRAE. Ke konci r. 2019 jich je přiděleno necelých 1200, z toho 13 firmám z České republiky. Toto číslo slouží k identifikaci výrobce zařízení.

0204_who_is_i_am

Obr. Dotaz Who-Is a odpověď I-Am

Klient pak obvykle zahájí další komunikaci a požádá o další vlastnosti objektu Device, o seznam objektů v zařízení, o vlastnosti objektů a jejich hodnoty atd. Pak můžeme data prohlížet ve stromové struktuře. Pokud necháme zapnutý Wireshark, v jeho okně jsou vidět příslušné dotazy a odpovědi. Vlastnosti, které jsou zapisovatelné, z klienta Yabe můžeme i měnit.

 0205_object_list

Obr. Prohlížení obsahu BACnet zařízení klientem Yabe

V pravém okně Yabe jsou vlastnosti příslušného objektu a jejich hodnoty. Nejvíce nás asi bude zajímat vlastnost Present Value, která v případě analogového vstupu (Analog Input) udává měřenou hodnotu, zde 23,56. Vlastnost Units upřesňuje, že hodnota je v °C a tedy se jedná o teplotu, a to opět standardizovaným číslováním (62 znamená °C). Kompletní popis a výčty inženýrských jednotek najdeme v normě, „slušný“ klient ale číslo jednotky přeloží jako zde na symbol nebo text („Degrees Celsius“).

Další užitečná vlastnost je Description. Tam obvykle najdeme, co vlastně objekt představuje. Typický text v této vlastnosti je „Outside Temperature“, „tNabehZapad“, „Otacky privod“ atd.

Co když to nefunguje?

Neznám IP adresu BACnet serveru

Pokud je ve stejné logické síti jako adresa BACnet klienta, může dojít k detekci i tak. Doporučujeme ale adresu zjistit u dodavatele nebo programátora, aby byla jistota, že i ostatní síťové parametry (maska, brána, UDP port) jsou nastaveny správně.

Adresa je ve stejné síti, ale klient nic nedetekuje

Broadcasty mohou být blokovány firewallem na počítači, kde běží klient. Zkusme dočasně vyřadit z činnosti firewall a antivirovou ochranu. Broadcasty nemusejí také projít přes router či VPN: pro pokusy je lepší používat switch. Může také pomoci zakázat či odpojit ostatní – nepoužívaná – síťová rozhraní, jako jsou wi-fi karty, VPN atd. Zkontrolujme v programu Wireshark, zda klient vysílá telegramy jako broadcasty ve stejné síti, v jaké je server: na výpisu výše je ve sloupci Destination správná broadcastová adresa 192.168.1.255.

Broadcasty odcházejí korektně, ale klient nic nedetekuje

Některé BACnet servery mohou (z hlediska normy bezdůvodně) vyžadovat, aby port č. 47808 byl použit i na straně klienta jako odchozí. Pokud to klient umožňuje, zkusme na něm port nastavit.

U jiných BACnet klientů je postup podobný, některé programy nevysílají síťové broadcasty a vyžadují zadání konkrétní IP adresy BACnet serveru, se kterým mají komunikovat.

V „příručním“ klientu tedy již prozkoumat objekty umíme. Jakmile se ale pustíme do nastavování komunikace ve vývojovém prostředí pro PLC nebo vizualizace, může se stát, že narazíme na další parametry, s nimiž jsme se zde zatím nesetkali. Podíváme se na ně v následující části.

 


[1] Viz https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=47808

[2] Broadcast – zpráva určená všem zařízením v síti.

BACnet – stručný úvod do základů 1. díl

Část 1

Protokol BACnet (Building Automation Control Network) není v systémech řízení budov žádným nováčkem. Jeho vývoj začal v roce 1987, v roce 1995 se stal standardem ANSI/ASHRAE a v r. 2003 byl normalizován ve standardu ISO 16484-5. V procesních podstanicích se ale objevuje jen postupně, především pro svou ne zcela snadnou implementaci. Jako u každého komunikačního protokolu, tvůrci hledali optimální bod mezi rychlou a úspornou implementací na nejrůznější typy hardwaru a jednoduchým, pochopitelným použitím v praxi. Na rozdíl od poměrně jednoduchých komunikačních protokolů, jako je například Modbus, je tedy v BACnetu definována celá řada služeb a objektů, které usnadňují aplikačním technikům práci při programování a uvádění technologií do provozu.

Pokud se chceme s protokolem BACnet seznámit z hlediska programátora PLC, kompletní popis standardu, který má ve vydání z roku 2016 více než 1300 stran, by nás asi odradil. Norma dává pro začátečníka smysl více jako referenční příručka než jako učebnice. Podívejme se na BACnet spíše jako technici měření a regulace, které vlastně nezajímá ani tak konkrétní podoba telegramů, jako spíš vztah BACnetu k pojmům, které známe ze světa PLC.

BACnet používá model klient – server, tedy musíme vždy rozlišovat, jestli určitý hardware pracuje jako BACnet klient nebo BACnet server. Je možné, aby jeden přístroj podporoval obě funkce, ale není to obvyklé – s výjimkou programovatelných PLC. Velmi zjednodušeně řečeno, server obsahuje objekty, klient si je vyčítá a zapisuje do nich.

BACnet objekty a vlastnosti

BACnet server obsahuje data v podobě objektů. BACnet definuje 60 standardních typů objektů, například analogová hodnota, časový program, záznam trendu, nebo skupina výtahů. Některé objekty, jak vidíme, mají jasnou souvislost s řízením budov. BACnet objekt je struktura, která má několik vlastností (BACnet properties). Vlastnost je v podstatě proměnná, která je nějakého definovaného typu, má nějaký název a nabývá nějaké hodnoty.

Aby byly v rámci zařízení od sebe odlišeny objekty stejného typu, každý má unikátní číslo instance – Instance Number. Jednoznačná identifikace objektu v zařízení se tedy skládá z typu objektu a čísla jeho instance. Máme-li dejme tomu BACnet vstupní modul s 8 analogovými vstupy, bude mimo jiné nejspíš obsahovat objekty Analog Input 1 až Analog Input 8.

Objekty jsou sdruženy v „kontejneru“, BACnet zařízení (device)[1]. V hardwarovém přístroji, např. v PLC, smí být jen jeden objekt tohoto typu. Device má také nějaké vlastnosti. Ty definují zejména komunikační možnosti a BACnet klient si je načítá jako první, aby věděl, jakým způsobem má se serverem optimálně komunikovat.

objects

Příklad vlastností BACnet device vidíme na následujícím obrázku:

bacnet_yabeobjectlist

Tabulka je snímek obrazovky z BACnet klienta, programu Yabe, který se používá jako průzkumník zařízení BACnet. Program našel na síti BACnet server a načetl z něj BACnet device a jeho vlastnosti. Názvy vlastností jsou v levém sloupci, jejich hodnoty v pravém. Jedna z vlastností je například Local Time, její hodnota říká, že hodiny reálného času v BACnet serveru ukazují 13:36:03. Později uvidíme, že některé vlastnosti jsou podle standardu povinné, jiné jsou volitelné – i když je zařízení neobsahuje, stále vyhovuje normě. Některé vlastnosti mohou být povinné jen za určitých podmínek: vlastnost Local Time je například povinná pouze tehdy, obsahuje-li zařízení hodiny reálného času.

Důležitou vlastností zařízení je vlastnost Object List. Je to seznam všech objektů, které zařízení obsahuje, a na které se pak klient může dále doptávat. V tabulce je vidět část seznamu objektů s jejich typy a čísly instancí. Například z indexů 4 a 5 je zřejmé, že device obsahuje mj. dva objekty typu Binary Output s čísly instancí 1 a 2. To už klientovi stačí na to, aby se na ně zeptal v dalších dotazech a nechal si vypsat jejich vlastnosti.

I vlastnosti jsou standardizované. Norma jich specifikuje skoro 500. Každá vlastnost má v normě své textové označení, property identifier, a zároveň číslo: například nejčastěji používaná vlastnost objektu, present value (aktuální hodnota), která například u čidla teploty nese naměřenou teplotu, má číslo 85. V následující tabulce jsou vidět normované vlastnosti objektu Analog Value:

bacnet_avproperties

Obr. Properties of the Analog Value Object Type. Zdroj: ISO 16484-5, (C) ISO 2016

V tabulce vidíme název vlastnosti (např. Present Value), její typ (zde REAL) a informaci o tom, zda jde o proměnnou pouze ke čtení (R, read), ke čtení i zapisovatelnou (W, write) nebo nepovinnou (O, optional). Čísla vlastností v tabulce nejsou uvedena, ale je dobré je znát, neboť řada vizualizačních programů umožňuje u definice datových bodů nastavení použité vlastnosti právě číslem – je to zřejmě jednodušší, než dlouhý drop-down box se stovkami vlastností (v němž by stejně chyběly vlastnosti specifické, které si výrobci mohou definovat libovolně, viz dále). Poznámky u nepovinných proměnných – horní indexy – upřesňují podmínky, za jakých se například nepovinné vlastnosti stávají povinnými, omezují jejich rozsahy atd.

Typy proměnných jsou buď jednoduché, jako Real, CharacterString, Boolean, Enumerated atd., nebo specifické pro BACnet – například BACnetPriorityArray. Jejich podrobný popis bychom našli v normě, nyní se tím zabývat nebudeme.

Tvůrci zařízení si mohou mimo normu pro objekty definovat jejich další specifické vlastnosti, tzv. proprietary properties. Ty se používají například pro definici umístění objektu v hierarchické struktuře (stromu), aby klienti mohli zobrazovat proměnné strukturovaně podle technologií a ne jen všechny nepřehledně pod sebou.

proprietary_properties

Obr. Proprietary properties. Zdroj: BACnet Browser Test Sequencer User’s Manual, (C) Siemens

Podle normy jsou čísla Property ID do 511 vyhrazena pro standardní vlastnosti definované normou, čísla od 512 výše lze používat pro specifické, zákaznické vlastnosti. Na obrázku výše vidíme vlastnosti s Property ID (první sloupec) 3000 a výše. Ty jsou typické pro implementaci Siemens.

BACnet služby

Máme tedy device, obsahující objekty. Jak je ale vyčíst? I na to BACnet myslí a definuje tzv. služby (services). Jsou to vlastně standardizované funkce pro práci s daty – určují formát dotazů a odpovědí. Některé služby mají poněkud bizarní názvy, jako Who-Is, I-Am, Who-Has, I-Have – ty se používají pro detekci a prozkoumávání zařízení a objektů. U jiných je funkce zřejmá z pojmenování: Read-Property a Write-Property zjevně slouží pro čtení a zápis jednotlivých vlastností v objektech. Služby nás nebudou tolik zajímat, mají význam spíš pro programátory driverů než pro aplikační techniky. Jejich názvy se ale objevují ve výpisu v programu Wireshark, takže pro diagnostiku se hodí je znát, jak uvidíme dále.

Služeb je asi 40 a kromě práce s proměnnými řeší i funkce jako potvrzování alarmů, synchronizace času, dynamické vytváření a mazání objektů, ale i přenos souborů nebo přenos dat pomocí terminálu. Přenos souborů může sloužit například pro přehrání aplikačního programu.

V další části vyzkoušíme pomocí služeb prozkoumat objekty, které jsou v zařízení obsaženy.


[1] Český termín „zařízení“ budeme používat co nejméně a pouze proto, že se skloňuje srozumitelněji než anglický „device“. Totéž platí pro „vlastnost“ a „property“.

Rozdíly mezi hardwarovými platformami s runtime Merbon

Runtime, neboli program, který spouští aplikaci vytvořenou programátorem a tedy vykonává základní činnost PLC, může být implementován na různých hardwarových platformách. Platformy se od sebe liší v celé řadě vlastností: výkon procesoru, velikost operační paměti a paměti pro trvalé ukládání dat, typy a počet sériových komunikačních portů, integrované analogové a digitální vstupy a výstupy atd. Tyto vlastnosti určují, které funkce runtime bude možné na platformě provozovat.

V následující tabulce jsou nové funkce, které jsou dostupné v release Merbon IDE 2.4.0.1. Linuxové platformy (v horní části tabulky) podporují všechny z nich, u platforem s menším výkonem jsou některé z funkcí nedostupné.

srovnání_CZ

web – historie uložená na PLC, stažitelná z webu + do grafu:

Část paměti je vyhrazena pro ukládání historických dat a jejich prezentaci přes webové rozhraní. V grafu, definovaném na webu, jsou tedy viditelná nejen online vzorkovaná data, ale i historie – hodnoty, které byly navzorkovány a uloženy ještě před připojením webového prohlížeče. Data lze také stáhnout jako obrázek nebo .csv soubor a otevřít je v jiném programu pro zpracování dat, např. v Excelu.

web – alarmový log:

Web obsahuje generickou (není nutné zvlášť programovat) stránku se záznamy o výskytu a změnách alarmových stavů. Historie alarmů je důležitá pro diagnostiku poruch – každý alarm má u sebe časovou značku, takže je zřejmé, kdy vznikl, kdy odezněl a kdy byl potvrzen či smazán. Záznamy lze stáhnout jako .csv soubor.

web – více uživatelů:

Pro webový přístup lze definovat více uživatelů s různými právy, přístupová politika se konfiguruje stejně, jako u aplikace Merbon Visual nebo u terminálu HT200. Web se tím stává „malou Scadou“.

web – systémový log:

Web obsahuje generickou stránku se systémovými událostmi, jako jsou start PLC, spuštění procesů, připojení uživatelů atd. Vhodné pro diagnostiku a servis. Záznamy lze stáhnout jako .csv soubor.

srovnani_obr1

web – spojení na více PLC:

Webový server v PLC může zpracovávat data nejen z PLC, na němž běží, ale i z dalších PLC v síti. Může se tím zjednodušit topologie systému.

rozdíly

Pro webový přístup na více PLC již není nutné otvírat více webových adres. Data z různých PLC jsou načtena do společného webového serveru, který běží na jednom z PLC v síti. Mohou tak být zobrazena společně v jednom panelu či jednom grafu, usnadní se řízení bezpečnostní politiky atd.

web – servisní web, nová HMI grafika + textová definice menu; grafy on-line:

Pomocí servisního webu (generická stránka) je možné nastavovat základní síťové parametry PLC, jako je IP adresa, maska, brána a DNS server. To zjednoduší uvádění do provozu PLC s předdefinovanými aplikacemi. U nich není nutné při oživování přehrávat program, ale jen přes web nakonfigurovat síť a nastavit regulační parametry a časové programy. Pro změnu těchto parametrů není již potřeba používat Merbon IDE.

Pro webový přístup je dále možné použít textovou šablonu (stejnou, jako je pro definici menu LCD displeje). Přes web tak lze PLC ovládat podobně, jako kdybychom stáli u rozvaděče a parametry měnili přes LCD displej.

Grafy online začínají vzorkovat hodnoty po otevření stránky v prohlížeči. Data nejsou ukládána v PLC, při zavření okna prohlížeče jsou ztracena. Slouží k dočasnému zkoumání dynamického chování technologie.

BACnet server / klient

BACnet je standardní, firemně nezávislý komunikační protokol, vyvinutý pro potřeby systémů řízení budov. PLC může pracovat jako BACnet server, který poskytuje data protokolem BACnet / UDP klientům, jako je například vizualizační program (SCADA). V IDE se při tvorbě programu označí proměnné, které se pak automaticky mapují na objekty BACnet. Je podporováno 11 typů objektů – analogové, binární a vícestavové vstupy, výstupy a hodnoty, časové programy a objekt Device.

BACnet klient naopak umožňuje integrovat do Merbon runtime cizí zařízení, jako jsou klimatizační jednotky, VZT jednotky, pokojové termostaty atd. BACnet objekty z cizího systému se namapují na proměnné v runtimu Merbon a je možné s nimi pracovat jako s ostatními proměnnými, získanými například z I/O modulů.

Nový model podstanic řady wall – wMXcom

Vážení obchodní přátelé,

po modelu wCIOcom bychom Vám rádi představili další model z nové řady wall, a to wMXcom. Další podstanici programovatelnou v prostředí Merbon IDE.

Výstřižek

Stejně jako wCIOcom, i wMXcom je plně kompatibilní s dalšími komponenty systému Domat, jako jsou terminály a pultíky (HT200, HT102), mobilní aplikace Merbon Visual, vizualizace Merbon SCADA, databáze Merbon DB, portál ContPort i další produkty.

Více informací najdete v katalogovém listu ZDE.

Nový model podstanic řady wall – wCIOcom

Domat vždycky kladl důraz na snadnou integraci cizích systémů. Té pomůže i rozšíření sortimentu podstanic wall o další model wCIOcom (PLC a 8AI, 8AO, 8DI, 8DO (I/O mix stejný jako u wCIO)).

wCIOcom

Na základní jednotce má toto PLC navíc konektor Cannon 9, který obsahuje jeden logický sériový port s hardwarovými rozhraními RS232 (signály Rx, Tx, GND, RTS, CTS) a RS485 (A+, B-, GND).

Více informací najdete v katalogovém listu ZDE.

Školení komunikace protokolem Modbus – Klecany

Školení je určeno pro programátory PLC a SCADA, ale i pro další zájemce o integrované systémy s protokolem Modbus RTU a TCP. Účastníci budou po absolvování schopni specifikovat, vyprojektovat a oživit komunikaci mezi cizím zařízením Modbus a PLC nebo vizualizací.

Datum: 16. 1. 2020, 9:00 – 14:00 hod.
Místo konání: školicí středisko Klecany, Nám. Třebízského 424, 250 67 Klecany

Program:

  • historie, použití protokolu, média, základní principy komunikace, master/slave
  • adresování, modbusové funkce, modbusová tabulka, stavba telegramu, chybové kódy
  • komunikace po RS485, praktické cvičení, čtení a zápis do registrů, postup při integrování cizích zařízení
  • analogové hodnoty a jak na ně, HVAC integer, potíže a jejich řešení
  • příklady integrace v prostředí SoftPLC a dalších programech
  • Modbus/TCP, vztah k Modbus RTU, praktické cvičení
  • routování Modbus TCP/RTU, možnosti v síťovém prostředí, tunelování Modbus RTU přes virtuální COM port
  • specifikace požadavků na cizí systémy, příklady aplikací, výhody a nevýhody různých řešení z praxe
  • možnost dalších praktických cvičení a diskuze

Program může být upraven vzhledem k požadavkům účastníků.

Přineste si s sebou prosím vlastní notebooky s oblíbenými PLC a SCADA programy (pokud máte, i převodník na RS485), s rozhraním Ethernet, s Windows 7 nebo novější (Win8, Win8.1, Win10). Dále je potřeba mít nainstalován .NET Framework 4.5 nebo novější.

Ujistěte se, že máte správcovský přístup k Windows a nastavte si IP adresu notebooku v rozsahu 192.168.1.x.

Přihlašujte se prosím na adrese skoleni@nulldomat.cz.

Nový programovatelný regulátor IMIO110

IMIO110 je malý programovatelný regulátor s 16 I/O a rozhraním RS485 nyní s LCD displejem.

IMIO110

Ideální pro malá zařízení, jako domovní rekuperační jednotky, kompaktní výměníkové stanice atd. Výhodou je kombinace místního ovládání a dálkové správy přes web, aplikaci Merbon Visual nebo SCADA centrálu.

Katalogový list pro IMIO110 si můžete stáhnout ZDE.

Nový firmware 2.4.0.7 pro HT200

Vážení obchodní přátelé,

rádi bychom Vás informovali o vydání nového firmware 2.4.0.7 pro HT200.

Více informací najdete ZDE.

Katalogový list pro HT200 najdete ZDE.

Nové katalogové listy pro produkty řady wall

Vážení obchodní přátelé,

rádi bychom Vás informovali, že v sekci Ke stažení přibyly nové katalogové listy pro produkty řady wall.

Všechny si můžete prohlédnout ZDE, pod začínajícím písmenem W.