Tento ovladač slouží pro komunikaci se zařízeními, které podporují protokol
BACnet. Viz
Komunikace protokolem BACnet.
Před použitím tohoto ovladače v aplikaci PROMOTIC je vhodné přečíst kapitolu:
Komunikace pomocí PROMOTIC ovladačů.
Základní vlastnosti ovladače:
- Použití tohoto ovladače vyžaduje zakoupení
licence PmBACnet. S freeeware verzí
PmFree nebo při vývoji aplikace (s
vývojovou licencí pro testovací účely) je tato komponenta funkční vždy.
- Komunikace je pro Ethernet (aplikace PROMOTIC je klient). Ovladač podporuje výhradně aplikační vrstvu BACnet/IP s transportní vrstvou UDP.
- Drobnou odlišností od standardu je, že aplikace PROMOTIC je z hlediska této komunikace vždy pouze klientem. Nepodporuje funkce pro vyhledávání zařízení a objektů (
Who-Is/
I-Am). Primární identifikací cílového zařízení je jeho IP adresa, nikoli číslo zařízení (ovladač s číslem zařízení zatím vůbec nepracuje).
Poznámka: Who-Is slouží k zasílání dotazu typu broadcast (dotaz pro všechny). Následující odpověďi I-Am informují o přítomnosti zařízení a přitom je sděleno číslo zařízení, jeho IP adresa, atd.
- Ovladač nepodporuje segmentaci a COV (Changing of Value).
Protokol pracuje s objekty: Protokol BACnet patří do skupiny objektově orientovaných protokolů. Objekt v BACnet zařízení má svůj typ, své číslo a je tvořen sadou vlastností.
Typ objektu: například analogový vstup, binární výstup, atd. - viz dále.
Číslo objektu: slouží k rozlišení objektů (objektů daného typu může být v zařízení více - nebo nemusí být vůbec). Čísla musí být jedinečná v rámci typu, mohou být v rozsahu 0 až 4 194 302 a nemusí tvořit souvislou řadu.
Zvláštním případem je objekt typu "Device", který je v zařízení vždy právě jednou. Jeho číslo je 4 194 303 (3FFFFF hexa). V ovladači se proto jeho číslo vůbec nazadává.
Vlastnost: určuje další informace o daném objektu, například aktualní hodnota, jednotka, meze, atd. Některé vlastnosti mohou být typu Array.
Příklad 1: Určitá měřená teplota je reprezentována objektem typu
"Analog Input", má číslo například 13 a má sadu vlastností jako například:
"present-value" (aktuální hodnota)
"units" (fyzikální jednotka)
"reliability" (věrohodnost)
"high-limit" (Horní mez) atd.
Příklad 2: Každé
BACnet zařízení je popsáno jedním objektem
"Device", které má vlastnosti například:
"vendor-name" (název výrobce)
"local-time" (čas v zařízení)
"time-of-device-restart" (čas posledního restartu zařízení) atd.
Typy objektů: Následuje seznam ovladačem podporovaných typů objektů:
- Device: Objekt, který má informace o globálních vlastnostech zařízení. Například název a identifikátor výrobce, výrobní číslo, atd.
- Analog Input: Analogová hodnota na vstupu zařízení.
- Analog Output: Analogová hodnota na výstupu zařízení.
- Analog Value: Analogová hodnota uvnitř zařízení.
- Binary Input: Logická hodnota na vstupu zařízení.
- Binary Output: Logická hodnota na výstupu zařízení.
- Binary Value: Logická hodnota uvnitř zařízení.
- Multi-state Input: Vícestavová hodnota na vstupu zařízení.
- Multi-state Output: Vícestavová hodnota na výstupu zařízení.
- Multi-state Value: Vícestavová hodnota uvnitř zařízení.
- Averaging: Průměrování.
- Accumulator: Zásobník.
-
PulseConverter:
Pulsní převodník
- CharacterString Value: Textový řetězec.
-
Schedule:
Plánovač.
V tomto objektu je podporována i vlastnost "weekly-schedule". Tuto vlastnost lze číst i zapisovat a v systému PROMOTIC má datový typ String a je to text ve formátu CSV obsahující den (1=Pondělí - 7=Neděle), čas a hodnotu. Poznámka: Pro čtení a zápis do souboru lze použít metody Pm.FileCsvRead a Pm.FileCsvWrite.
Vlastnost "exception-schedule" zatím není ovladačem podporována.
Datové typy: BACnet používá následující datové typy:
-
boolean - V aplikaci PROMOTIC je reprezentován datovým typem:
Boolean.
-
unsigned integer - V aplikaci PROMOTIC je reprezentován datovým typem:
Long.
-
signed integer - V aplikaci PROMOTIC je reprezentován datovým typem:
Integer.
-
real - V aplikaci PROMOTIC je reprezentován datovým typem:
Single.
-
double - V aplikaci PROMOTIC je reprezentován datovým typem:
Double.
-
character string - V aplikaci PROMOTIC je reprezentován datovým typem:
String.
-
bit string - V aplikaci PROMOTIC je reprezentován datovým typem:
Long. Zatím je omezeno na 32 bitů a nelze poznat kolik bitů je platných. Zatím je také jen pro čtení, nelze zapisovat.
V některých případech jsou bitové stringy využívány jako tzv. BACnet Status Flags. V tom případě jsou využity pouze 4 bity s následujícím významem:
- bit 0: in-alarm
- bit 1: fault
- bit 2: overriden (přepnuto na ruční ovládání)
- bit 3: out-of-service
-
enumerated - Pro vlastnost
units převádí hodnotu na
String nesoucí informaci o fyzikálních jednotkách přiřazených normou (tuto hodnotu lze jen číst, nelze zapisovat). U ostatních hodnot převádí hodnotu na typ
Byte s číslem vyjmenované hodnoty (tyto hodnoty lze číst i zapisovat).
-
date - V aplikaci PROMOTIC je reprezentován datovým typem:
Date.
-
time - V aplikaci PROMOTIC je reprezentován datovým typem:
Date.
Uložení do vlastnosti present-value:
Vlastnost present-value tvoří prioritní pole (priority-array) s 16 prioritními hodnotami. Při zápisu lze určit prioritu a tedy index v poli kam se hodnota zapíše. Pokud zapisovaná hodnota bude nastavena na datový typ Variant s hodnotou:null pro JavaScript nebo Empty pro VBScript, pak se bude posílat BACnet hodnota NULL a tedy při zápisu se na zadaném indexu v poli položka odmaže.
Doporučené hodnoty parametrů objektu PmaComm:
Síťová adresa | IP adresa zařízení. Protože ovladač zatím nepodporuje vyhledávání zařízení, IP adresa zde slouží jako hlavní identifikátor zařízení místo čísla zařízení. |
---|
Číslo TCP/UDP portu | 47808 (definováno v normě BACnet, hexadecimální hodnota je BAC0) |
---|
Typ Ethernet přenosu | UDP |
---|
Maximální akceptovaná délka APDU | Přestože pro BACnet/IP je doporučovaná délka datového paketu aplikační vrstvy 1476 bajt, mohou některá zařízení vyžadovat kratší délku paketu. Informaci o této velikosti poskytuje například zpráva typu Načtení přehledu všech dostupných informací ze zařízení - viz dále. Norma připouští následující alternativní velikosti (octets = počet bajtů): 50 octets 128 octets 206 octets (fits LanTalk frame) 480 octets (fits ARCNET frame) 1024 octets 1476 octets (fits ISO 8802-3 frame) (přednastaveno) |
---|
Popis komunikace pomocí objektu PmaCommGroup
Proměnné v objektu
PmaCommGroup (nebo ještě lépe proměnné v objektu
PmaData s datovým rozšířením
ExtComm) se v tomto ovladači vyčítají
všechny najednou v jedné komunikační zprávě. Ovladač sám neomezuje počet proměnných, ale pokud projektant nastaví v jednom objektu
PmaCommGroup mnoho proměnných, pak lze přesáhnout velikost povolené zprávy (viz konfigurátor "
Maximální akceptovaná délka APDU") a
přenos selže. Je proto doporučeno rozdělit proměnné do více objektů
PmaCommGroup.
Poznámka: Jiné PROMOTIC komunikační ovladače automaticky rozdělují proměnné z jednoho objektu PmaCommGroup do více zpráv. U tohoto protokolu to však není přímo možné a pokud ano, pak by to velmi omezilo počet proměnných v jedné zprávě. Nastavení počtu se proto nechává na projektantovi, který tak může optimalizovat počty proměnných v jednom objektu PmaCommGroup na co největší počet.
Proměnné se vyčítají všechny (pokud konfigurátor "
Obnovování dat povoleno" je zatržen). Při zápisu do proměnné se posílá do zařízení jen tato jedna proměnná (pokud konfigurátor "
Automaticky zasílat při zápisu do položky" je zatržen).
Popis konfigurátoru "ItemID":
Popis konfigurátoru "ItemID": ItemId je textový identifikátor položky, který slouží k adresaci položky v zařízení. Z konfigurátoru ItemID ovladač pozná, jak se má hodnota položky přijímat nebo vysílat.
Text lze buď napsat ručně, nebo sestavit pomocí okna, které se otevře tlačítkem vpravo od konfigurátoru.
Pro zadání lze použít Makro výraz (vyhodnocuje se po spuštění aplikace).
Textový řetezec pro
ItemId má obecně tvar:
TypObjektu.ČísloObjektu.IdentifikátorVlastnosti[IndexVlastnosti].priN
- ČísloObjektu: Nezadává se pro objekt typu "Device".
- IndexVlastnosti: (nepovinné) Vlastnost objektu může být i pole - tehdy lze uvést index pole v hranatých závorkách.
Příklady tvaru identifikátoru:
Device.model-name = Název typu zařízení
AnalogValue.2.present-value.pri8 = Aktuální analogová hodnota s číslem 2. Při zápisu této položky se bude posílat hodnota s prioritou 8 (viz
Uložení do vlastnosti present-value).
BinaryValue.14.present-value[4] = Aktuální hodnota na indexu 4 v binárním poli s číslem 14
Pro správné zadání
ItemId je doporučeno:
- Pro zadávání hodnoty v konfigurátoru "
ItemID" použít výběrové okno, které lze otevřít tlačítkem vpravo od zadavatele.
Upozornění pro zapis hodnot do zařízení: Zadáním ItemId se definuje požadovaný BACnet objekt a vlastnost. Nedefinuje se zde ale BACnet datový typ. Při příjmu hodnoty ovladač pozná datový typ hodnoty a zapamatuje si to u dané proměnné. Při zaslání hodnoty do zařízení pak již ovladač ví v jakém tvaru má hodnotu poslat.
Pokud však nedojde k alespoň jednomu příjmu, pak ovladač nemusí přesně vědět, jaký BACnet typ pro danou proměnnou zařízení používá. Ovladač tehdy přednastaví typ na nějaký vhodný, který odvodí z názvu BACnet vlastnosti. Toto však nemusí někdy odpovídat. Proto je doporučeno při zasílání hodnoty nejdřív zajistit alespoň jeden příjem.
Tento konfigurátor se pro daný ovladač nevyužívá.
Popis komunikace pomocí objektu PmaCommMsg
Objekt
PmaCommMsg lze použít pro speciální komunikace, které nelze provést objektem
PmaCommGroup. V případě tohoto ovladače je implementována pouze jedna speciální zpráva:
-
Načtení přehledu všech dostupných informací ze zařízení:
Pro správné nastavení konfigurátoru "ItemID" v proměnných pro objekt PmaCommGroup je nutno znát informace o dostupných objektech v daném zařízení. Tyto informace lze ze zařízení vyčíst a právě to dělá tato zpráva:
Zpráva vyčte informace a uloží je do textového řetězce v kartě "Data-příjem".
Získané informace touto zprávou dávají přehled o objektech v daném zařízením (seznam objektů s udáním typu a čísla objektu). Tyto informace lze použít při sestavování ItemId v objektu PmaCommGroup.
Pro správné vytvoření a nastavení objektu PmaCommMsg je vhodné použít předkonfiguraci::
Pokud v této předkonfiguraci zatrhnete konfigurátory:
pak se vytvoří správně nastavený objekt PmaCommMsg i s obrazem, ve kterém lze zprávu spustit a vyčíst tak požadované informace z PLC automatu.