Obsah

BACnet server

BACnet server slouží k poskytování dat protokolem BACnet / UDP klientům, jako jsou například vizualizační programy (SCADA). Proměnné z Mervis Runtime se mapují na standardní objekty BACnet, a to buď ve vlastnostech proměnných Mervis, nebo při ručním sestavování tabulky objektů v BACnet zařízení. Tyto objekty jsou pak k dispozici na BACnet serveru, který běží v PLC. BACnet klienti si tyto objekty a jejich vlastnosti mohou vyčítat a případně do nich i zapisovat.

Platformy a typy objektů

Podporované hardwarové platformy jsou tyto:
mark220
mark320
markMX
IMIO105
IMIO110
ICIO205
mark125
Windows RT
wall - všechny typy

Na ostatních platformách není BACnet server podporován.

Aktuálně jsou podporovány následující typy BACnet objektů:

Podrobnosti včetně podporovaných vlastností objektů jsou uvedeny v PICS.

Založení kanálu

Aby PLC mohlo pracovat jako BACnet server, je nutné založit komunikační kanál tohoto typu. Klikneme pravým tlačítkem na PLC a vybereme Přidat kanál serveru. (Do tohoto kanálu se pak vkládá Device object.)

Ve vlastnostech kanálu zvolíme Protokol: BACnet server. Linkový protokol je UDP. (Komunikace BACnet / MS/TP - po sériové lince RS485 - zatím není podporována. V případě potřeby použijte BACnet router.)

Zařízení (device) představuje základní (povinný) objekt, pod nímž se v síti BACnet definují další objekty. Device obsahuje jejich seznam (po úspěšném nakonfigurování a spuštění viditelný např. v programu Yabe - Yet Another BACnet Explorer, dostupný na https://sourceforge.net/projects/yetanotherbacnetexplorer/):

BACnet object list v Yabe

Jako „kontejner“ pro BACnet objekty slouží Device Object, proto nejprve definujeme tento objekt:

V kontextovém menu kanálu zvolíme Přidat zařízení serveru.

Název PLC (zde „PLCbtest“) se přenáší do BACnet vlastností (property) objektu Device - Object Name a Description.

BACnet device

Nyní definujeme objekty s hodnotami, tedy objekty namapované na Mervis proměnné.

Definování objektů s hodnotami

Dvojitým kliknutím na zařízení se otevře tabulka s mapováním proměnných Mervis na objekty BACnet.
Datové body se do tabulky definují dvěma způsoby:

1. Přímo v prohlížeči proměnných

Vlastnosti BACnet se vyplňují přímo při tvorbě programu. Jsou součástí metadat proměnných. Tento způsob má tu výhodu, že tabulka BACnet objektů v Device se generuje automaticky při kompilaci a není nutné ji pak editovat ručně.

Variables in Browser

Výše uvedené kroky lze provést i hromadně, pokud v Prohlížeči proměnných vybereme více bodů (Ctrl+ levý klik nebo Shift + šipka dolů).

Při příští kompilaci jsou vygenerovány BACnet identifikátory objektů (BACnet Object IDs) a tabulka v Zařízení (Device) je úplná.

2. Ručním vyplněním v tabulce objektů v BACnet Device

V tabulce se přidané objekty objeví s nevyplněnými čísly instance objektu a tedy i identifikátory objektu. (Identifikátor objektu se skládá z instance objektu a standardního kódu typu objektu, jde o bitovou kompozici těchto dvou údajů.)

BACnet variables added manually

Při příští kompilaci se objekty automaticky očíslují. Toto číslování nelze upravovat.

Proměnnou lze do tabulky napojit pouze jednou. Není tedy možné definovat více BACnet objektů, napojených na stejnou proměnnou. Pokud je již v tabulce objekt, napojený na určitou proměnnou, tato proměnná již není ve výběru pro napojování dalšího objektu.

Vlastnosti BACnet, které se přebírají z metadat proměnných

Každý typ BACnet objektu má podle standardu definován určitou množinu povinných a nepovinných vlastností (properties). Některé z nich se vyplňují ručně, jiné se přebírají z metadat proměnných v systému Mervis.

Například objekt typu Analog Value má tyto vlastnosti (zdroj: ASHRAE BACnet Standard, 1995):

AV properties

Povinné vlastnosti jsou značeny v třetím sloupci písmenem R(equired). W znamená Writable. O je Optional, nepovinná vlastnost. Mervis podporuje většinou pouze povinné vlastnosti.

Notification classes

Notification classes neboli notifikační třídy jsou objekty, které určují pravidla pro zasílání informací o událostech. Pokud v některém z ostatních objektů dojde ke změně, která se má poslat ostatním účastníkům v systému, je vyslána notifikace. Každé hlášení má definovanou prioritu, která určuje, jak se s informací má nakládat při dalším zpracování. Priority jsou od 0 (nejvyšší, pro kritické události) do 255 (nejnižší, pro málo významné události).

Notifikační třídu je možné přiřadit objektu (např. analogovému vstupu - Analog Input) až tehdy, má-li objekt vybrán alarmový bod. Jakmile alarmový bod přejde ze stavu Normal do jiného stavu nebo stav posléze změní, do sítě BACnet je vyslána notifikace s prioritou, která je právě definována v notifikační třídě. Každý objekt s přiřazeným alarmovým bodem musí mít zároveň přiřazenu nějakou notifikační třídu, jinak projekt nejde zkompilovat. Při založení BACnet serveru je automaticky založena i notifikační třída „Třída_1“, která je defaultně přiřazována všem založeným objektům s alarmovými body.

Přídání notifikační třídy

Notification classes

Pokud si nejste jisti nebo nechcete priority využívat, použijte předdefinovanou třídu.

Export do souborů EDE

Soubory EDE (Engineering Data Exchange) jsou textové soubory ve formátu CSV, které popisují objekty BACnet a jejich vlastnosti v zařízení BACnet. Slouží pro standardizovaný offline přenos dat mezi systémy, zejména pro import objektů do BACnet klienta (SCADA). Pokud dodavatel BACnet serveru tyto soubory poskytne, technik, konfigurující BACnet klienta nemusí objekty a jejich vlastnosti zadávat ručně, ale naimportuje je z těchto souborů.

EDE soubory je vhodné generovat až poté, co bylo dokončeno sestavování tabulky BACnet objektů v zařízení. Při mazání a vkládání objektů může dojít k přečíslování identifikátorů objektu.

EDE export

EDE export soubory

Výsledkem exportu jsou čtyři soubory. Název souboru se skládá z názvu projektu, GUID projektu a standardní částí názvu.

...EDE: základní soubor s objekty a jejich vlastnostmi, např.

#Engineering-Data-Exchange;;;;;;;;;
PROJECT_NAME;"<undefined>";;;;;;;;
VERSION_OF_REFERENCEFILE;1;;;;;;;;
TIMESTAMP_OF_LAST_CHANGE;13.08.19;;;;;;;;
AUTHOR_OF_LAST_CHANGE;HONZA-PC - Jan;;;;;;;;
VERSION_OF_LAYOUT;2;;;;;;;;
#mandatory;mandatory;mandatory;mandatory;mandatory;mandatory;optional;optional;optional;
# keyname;device obj.-instance;object-name;object-type;object-instance;unit-code;hi-limit;low-limit;state-text-reference;
"prom1";1;"prom1";0;1;62;200;0;;
"prom2";1;"prom2";1;1;47;100;0;;
"prom3";1;"prom3";2;1;16;362;80;;
"prom5";1;"prom5";4;1;95;;;;
"prom6";1;"prom6";3;1;95;;;;
"main.T17_Boolean_Scheduler";1;"T17_Boolean_Scheduler";17;4;95;;;;
"main.T18_Real_Scheduler";1;"T18_Real_Scheduler";17;2;95;;;;
"main.T19_Int_Scheduler";1;"T19_Int_Scheduler";17;3;95;;;;
"prom4";1;"prom4";5;1;95;;;;
"prom6_out";1;"prom";5;4;95;;;;
"prom01";1;"prom01";14;1;95;;;1;
"prom02";1;"prom02";19;1;95;;;1;
"prom";1;"prom";13;1;95;;;1;
"prom1_out";1;"prom1_out";2;3;95;100;0;;
"hw.IMIO10x_DO2";1;"IMIO10x_DO2";3;2;95;;;;
"hw.IMIO10x_AI1";1;"IMIO10x_AI1";2;5;95;100;0;;

...ObjTypes: použité typy objektů s číselným kódováním podle standardu BACnet, např.

#Encoding of BACnet Object Types;;;
#Code;Object Type;;
"0";"AnalogInput";;
"1";"AnalogOutput";;
"2";"AnalogValue";;
"3";"BinaryInput";;
"4";"BinaryOutput";;
"5";"BinaryValue";;
"13";"MultistateInput";;
"14";"MultistateOutput";;
"17";"Schedule";;
"19";"MultistateValue";;

...StateTexts: výčet stavů pro objekty typu multistate, např.

#State Text Reference;;;;;;
#Reference Number;0;1;2;3;4;
1;Normal;Active;ActiveAcked;AckedMemory;Memory;

...Units: použité fyzikální jednotky s číselným kódováním podle standardu BACnet, např.

# Unit Texts Reference;
"16";"JOULES"
"47";"WATTS"
"62";"DEGREES-CELSIUS"
"95";"NO-UNITS"

Je možné, že některé programy vyžadují mírně odlišný formát souboru (jiné pozice mezer, znaky „#“ atd.). V případě nekompatibility kontaktujte technickou podporu Domat Control System. Export EDE souborů v Mervis IDE byl testován s významnými vizualizačními programy a dodržuje známé standardy.

Testovací poznatky

Pro nastavování výjimek v časových program v software Desigo Insight je možné využít pouze časový program T19 Int. Časové programy T17 Bool a T18 Real neumožňují zápis výjimek.