Prázdný košík
Úvodní stránka
Přihlásit
Hledat 
 Control Web 8
 Ovladače pro Control Web
 DataLab
 DataCam
 DataLight
 Pro školy
 Ostatní software
 Control Web – předchozí verze
 Služby
 Školení

Ovladač rozhraní DataLab IF/EIB
 

Ovladač rozhraní DataLab IF/EIB

Vyžaduje Windows 2000 a vyšší. Volně ke stažení zde

Kód:CW-DLEIB
Cena pro integrátory (bez DPH): 0 Kč
Koncová cena (bez DPH): 0 Kč
Výrobce:Moravské přístroje
 
CELKEM
Vaše cena (bez DPH):
Celková cena (bez DPH):
*) Předpokládaná dostupnost se může lišit podle volitelných parametrů produktu. Předpokládaná dostupnost nezahrnuje dobu přepravy a jedná se o nezávazný údaj.

Ovladač zprostředkovává aplikaci systému Control Web data systémové instalační sběrnice EIB (European Installation Bus) pro řízení budov připojené pomocí modulu rozhraní DataLab IF/EIB.

Obsah sekce:

Instalace ovladače
Instalace systémového USB ovladače
Instalace vlastního ovladače pro systém Control Web
O EIB
EIB skupiny, EIS a ovladač
Skupinové adresy
Datové typy
Rychlost EIB
Chování ovladače
Datové objekty
Čtení z EIB
Zápis do EIB
Stav rozhraní DataLab IF/EIB, výjimka ovladače
Nevyžádaná data
Specifické chybové kódy ovladače
Parametrický soubor
Sekce [device]
Sekce [interface]
Sekce [read_on_start] a sekce [read_during_run]
Sekce [behaviours]
Sekce [objects]
Sekce [blocks]
Sekce [<block_name>]

Instalace ovladače

Ovladač DataLab IF/EIB lze použít v systémech Control Web 5 a Control Web 2000 vždy v prostředí operačních systémů Windows NT v5.0 a vyšší, což odpovídá současným operačním systémům Windows 2000, Windows XP a Windows 2003.

Upozornění:

Jiné operační systémy, jako například Windows ME nebo Windows NT 4.0, neobsahují systémová volání nutná pro běh ovladače, a ovladač v nich proto není schopen pracovat. Vzhledem k požadavkům na robustnost průmyslových aplikací je použití bezpečných systémů s jádrem Windows NT v5.0 v každém případě nanejvýš žádoucí a tak podpora pouze systémů Windows 2000 a Windows XP v praxi nepředstavuje omezení.

Ovladač komunikuje s rozhraním DataLab IF/EIB pomocí USB, což znamená:

  • ovladač nepotřebuje žádnou konfiguraci portů, komunikační rychlosti ani adresování jednotek,

  • ovladač pro svou práci vyžaduje, aby operační systém „znal“ rozhraní DataLab IF/EIB. To je zajištěno pomocí speciálního systémového USB ovladače, který je nutné do operačního systému nainstalovat. Po instalaci se tento systémový ovladač stane vnitřní součástí operačního systému (podobně jako například ovladač grafické karty).

Instalace systémového USB ovladače

Systémový USB ovladač je možné instalovat dvěma způsoby, automaticky a ručně. Automatická instalace je velmi jednoduchá, neboť ji řídí operační systém:

  1. připojte rozhraní DataLab IF/EIB,

  2. operační systém Vás informuje o připojení nového zařízení a v průvodci Vás vyzve k zadání cesty k instalační informaci (soubor 'dleib.inf'),

  3. soubor 'dleib.inf' se nachází na instalačním CD v adresáři '\dleibdrv'; stejně dobře ale můžete nechat systém prohledat jednotku CD-ROM automaticky,

  4. po nalezení ovladače a dokončení průvodce bude systémový USB ovladač nainstalován.

Ruční instalace je v zásadě podobná: na instalačním CD v jednotce CD-ROM naleznete v adresáři '\dleibdrv' soubor 'dleib.inf', pravým tlačítkem myši otevřete nad souborem kontextové menu (místní nabídku) a volbou povelu Instalovat... (Install...) ovladač nainstalujete.

Tip:

Instalace z adresáře na CD-ROM není nezbytná. Oba soubory je možné okopírovat na jakékoliv médium. Pokud např. cílový počítač nemá mechaniku CD-ROM, je možné ovladač okopírovat na pevný disk nebo na USB Flash Disk a instalovat jej z této kopie.

Upozornění:

Ovladač 'dleib.sys' není vybaven digitálním podpisem a systém Windows na to upozorní a dotáže se, zda-li v instalaci přesto pokračovat. Chcete-li ovladač nainstalovat, zvolte Ano. Přítomnost či nepřítomnost digitálního podpisu je pouze formální záležitost mající zajistit používání pouze ovladačů prověřených firmou Microsoft a na funkci ovladače ani systému nemá žádný další vliv.

Instalace vlastního ovladače pro systém Control Web

Ovladač samotný se instaluje pomocí programu 'setup.exe' v kořeni instalačního CD. Po spuštění tohoto programu Vás provede celou instalací průvodce. Doporučujeme zvolit úplnou instalaci.

Součástí ovladače je rovnež tato dokumentace. Při běžné instalaci je dokumentace umístěna do adresáře '\Program Files\Moravian Instruments\Drivers\DataLab IF EIB\Doc'.

O EIB

Systémová instalační sběrnice EIB (European Installation Bus) se začíná velmi rychle rozšiřovat a není divu — s její pomocí lze velmi snadno integrovat všechny požadované funkce budov (a nejen jich) do ucelených, přehledných a velmi snadno udržovatelných systémů.

Počátky této sběrnice sahají až k roku 1991, kdy ji v rané podobě společnost Siemens vyvinula specializací svého průmyslového komunikačního protokolu ProfiBUS. Vzniklo konsorcium EIBA (European Installation Bus Association), do kterého se postupně zapojily stovky společností. Přibližně od roku 2002 získává sběrnice EIB navíc užitečný přesah, kdy pod střechou konsorcia EIB-KNX dochází ke standardizaci a spojení s dalšími řídicími systémy budov.

EIB je velmi silně standardizována, počínaje vnitřním chováním základních mikroprocesorových stavebních modulů (BAU, BCU), přes přesnou specifikaci přenosu dat (EIB communication stack) a možných datových typů (EIS = EIB Internetworking Standard) až k abstraktnímu logickému uspořádání parametrů a konfigurací jednotek sběrnice. Tato standardizace umožňuje výrobcům části sběrnice rychle a snadno vyrábět a uživatelům sítě EIB unifikovaně a snadno sestavovat a konfigurovat (pomocí ETS, EIB Tool Software).

Z pohledu informačních technologií lze EIB rozdělit na dvě části. První z nich je distribuovaný systém jednotek, kdy každá část systému (jednotka, aktor, zařízení, modul, ...) je plně samostatná a schopná vykonávat určitou činnost. Tomuto dílu odpovídají části EIB jako přenosové médium (TP = kroucený dvoudrát, PL = rozvod NN 230 V či iETS = přenos pomocí UDP), komunikace, konfigurace komunikačního zásobníku, chování jednotek při výpadku napájení apod. Druhý díl EIB je mnohem zajímavější — obsahuje skupiny a jejich vazby.

Skupiny a jejich vazby jsou totiž to hlavní, co EIB dává její obrovskou jednoduchost a eleganci.

Skupina je vysoce abstraktní pojem, který je v zásadě ovšem velmi jednoduchý. Skupina má datový typ (je-li to číslo či logický údaj), typu odpovídající hodnotu (velikost teploty) a adresu. To je vše. Skupina tak může nést veličiny, vnitřní stavy sběrnice, případně může sloužit jen jako procesní nástroj (třeba zvýšení jasu), vždy se nachází jakoby „nad“ sítí jednotek. Do skupiny může být (pomocí adresy skupiny) zapojena každá jednotka sítě (přesněji její jeden či více komunikačních bodů = SAP = Service Access Point). Každá jednotka sítě tak získává svůj obraz skupiny, který si pamatuje a se kterým operuje. Jedna abstraktní skupina takto existuje ve všech jednotkách v konkrétní podobě. Celá EIB potom vlastně řeší pomocí komunikací jednu jedinou věc — jak zajistit, aby tyto konkrétní obrazy skupin v jednotkách byly shodné, aby si jejich hodnoty navzájem odpovídaly.

EIB skupiny, EIS a ovladač

Skupinové adresy

EIB skupina je označena adresou. Adresa skupiny (skupinová adresa, group address) je 15bitové číslo, což dává možnost definice až 32768 různých skupin.

Skupinové adresy se zapisují dvojím způsobem (je to věcí volby tvůrce EIB nasazení) jako čísla oddělená lomítky:

  • pomocí dvou čísel, hlavní skupiny (main group) a podskupiny (subgroup), přičemž hlavní skupina může být v rozsahu 0–15 a podskupina v rozsahu 0–2047. Zápis skupinové adresy v této podobě může vypadat například takto: 4/1225.

  • pomocí třech čísel, hlavní skupiny (main group), střední skupiny (middle group) a podskupiny (subgroup), přičemž hlavní skupina může být v rozsahu 0–15, střední skupina v rozsahu 0–7 a podskupina v rozsahu 0–255. Skupinová adresa v této podobě může vypadat například takto: 2/2/173.

Ovladač DataLab IF/EIB samozřejmě s adresami skupin pracuje a podporuje jejich oba možné zápisy. V parametrickém souboru (viz sekce Parametrický soubor) ovladač přirozeně používá uvedeného zápisu s lomítky, v mapovacím souboru (většinou automaticky vytvořeném) a v aplikaci systému Control Web však zápisu adres s lomítky nelze použít.

Pro mapovací soubor a aplikaci se proto používá poziční zápis skupinové adresy, kdy jednotlivé části skupinové adresy jsou zapsány do desítkových řádů výsledného čísla:

  • skupinová adresa ve tvaru g/s je zapsána jako číslo ve tvaru: 1gg0ssss, adresa 4/1225 proto bude zapsána jako 10401225,

  • skupinová adresa ve tvaru g/m/s je zapsána jako číslo ve tvaru: 0ggmmsss, adresa 2/2/173 proto bude zapsána jako 202173.

Je vcelku zřejmé, že zápis dvoudílné skupinové adresy začíná jedničkou v řádu desítek milionů a že zápis hlavní skupiny a skupiny dvoudílné i třídílné skupinové adresy si navzájem odpovídají.

Skupinová adresa v pozičním zápise (neboli v aplikaci či v mapovacím souboru) znamená přímo číslo kanálu ovladače (a používá se proto například přímo v zápise atributu driver_index kanálů), takže je při vývoji aplikace na první pohled jasné, které skupině který kanál odpovídá.

Datové typy

Kromě adresy je se skupinou spojen i její datový typ. Datový typ skupiny, jako části systému EIB, je přesně dán EIB standardem (EIS) a v ovladači se proto definuje právě jako tento EIB (EIS) typ. Control Web ale používá jiné datové typy, takže je třeba mezi EIS typy a typy systému Control Web zavést převodní pravidla.

Control Web disponuje řadou různých typů, takže provázání s EIS typy je přirozené. Ovladačem podporované EIS typy, jim odpovídající datové typy systému Control Web a případný význam hodnot definuje tabulka .

EIS číslo EIS funkce typ Control Web význam hodnot
1 switch boolean  
2 dimming/control shortint +/-0–100% přírůstku jasu
3 time longcard 0–85399 sekund ve dni + 0–7 × 100000 pro den v týdnu
4 date real Juliánské datum
5 value real  
6 scaling shortcard 0–100%, nebo 0–255
7 drive control boolean up, open = true
9 float real  
10 16bit counter cardinal  
11 32bit counter longcard  
13 ASCII character string  
14 8bit counter shortcard  
15 character string string nejvýše 23 znaků

Vzájemný převod EIS typů a datových typů systému Control Web

Pro správné použití EIS typů v aplikaci dále poslouží několik doporučení:

EIS2

EIS definuje tento typ jako „přírůstek či pokles hodnoty o zlomek 1/1, 1/2–1/64 její velikosti“, což odpovídá číselně změně o 100%, 50%–1,6%. Změny tedy nemohou být plynulé a možný interval +/-0–100% (viz tabulka) bude při zápisu do skupiny vždy převeden na nejbliží zlomek podle tabulky Převod procent na zlomky velikosti hodnoty pro EIS2.

Znaménko + či – čísla určuje, zdali se jedná o přírůstek hodnoty nebo o její pokles.

EIS3

Počet sekund ve dni lze v aplikaci získat nesnadněji čtením systémové proměnné sec_in_day. Den v týdnu (který je součástí EIS3 poněkud paradoxně) se následně k této hodnotě přidá jako počet statisíců.

Je-li hodnota zapsána jen jako prostý počet sekund (tedy bez jakýchkoli statisíců), použije ovladač vždy aktuální den v týdnu.

Příklad: 43200 odpovídá poledni (12:00:00) aktuálního dne (den v týdnu se určí automaticky), 430917 odpovídá čtvrtku 8:35:17.

EIS4

Juliánské datum, které je pro tento datový typ předepsáno, lze získat (a lze s ním pracovat) pomocí nativních procedur systémového přístroje date (např. date.GetDateJD()).

EIS6

EIS definuje tento typ jako rozsah 0–100%, vnitřně je tento údaj vždy převáděn na interval 0–255 (takto jej například pojímá i ETS). Mimo takto standardem vymezený procentuální rozsah ovladač nicméně poskytuje také přístup nepřepočítaný (tedy k celému intervalu 0–255).

Control Web výstup EIS2 Control Web vstup
+/-67–100% +/-1/1 +/-100%
+/-34–66% +/-1/2 +/-50%
+/-18–33% +/-1/4 +/-25%
+/-9–17% +/-1/8 +/-13%
+/-5–8% +/-1/16 +/-6%
+/-3–4% +/-1/32 +/-3%
+/-1–2% +/-1/64 +/-2%
+/-0% +/-0 +/-0%

Převod procent na zlomky velikosti hodnoty pro EIS2

Rychlost EIB

Nejčastěji používané (a tedy základní) přenosové médium pro EIB je kroucený dvoudrát (TP), pomocí něj se k EIB připojuje i rozhraní DataLab IF/EIB. Toto přenosové médium používá přenosovou rychlost 9600bps, což při započtení délky nejkratšího možného EIB TP telegramu (8 byte), prodlevy a potvrzení telegramu (ACK) dává komunikační rychlost 64 EIB telegramů za sekundu.

To není nijak moc, pokud bychom chtěli komunikovat bezhlavě. Pro technologie budov to však bohatě stačí, protože rychlosti sledovaných a řízených dějů jsou v řádech desítek a stovek sekund.

Control Web jako obecný vizualizační a řídící nástroj pracuje svým tempem a vzhledem k jeho mohutnému výkonu je velmi snadné neopatrnou (či špatnou) aplikací EIB sběrnici zcela zahltit. Velmi proto doporučejeme dodržet v aplikaci EIS standard, z něhož část (v překladu do češtiny) vyjímáme:

Upozornění:

EIBA Handbook Series, Internetworking standards, 2.3 General Requirements for Interworking, 2.3.1 Busload:

Rychost opakování — rychlost opakování by měla být volena velmi obezřetně, neboť značně ovlivňuje provoz na sběrnici a hrozí zde riziko zahlcení. Předpokládaná zátěž sběrnice by měla být již součástí plánu instalacen EIB sítě.

Doporučují se následující pravidla:

  • pro uživatelské (ruční) operace by vzdálenost mezi odesílanými telegramy měla být nejméně 200 milisekund,

  • pro automatické operace by vzdálenost mezi odesílanými telegramy měla být v řádech sekund či minut.

Poznámka: Vě většině případů automatických operací je postačují rychlost opakování v řádech minut — například meření teploty, jasu, času apod. vždy měří veličiny, které se mění pomalu.

Chování ovladače

Datové objekty

S pojmem datový objekt se lze v EIB setkat ve funkčních jednotkách. Každá jednotka má určitou funkci, většinou násobnou (například dva stmívané kanály), a s každou funkcí je spojeno pro účely ovládání a změn chování několik datových objektů.

Datový objekt v jednotce je zapojen do skupiny (pomocí skupinové adresy) a pokud je zapojen pouze do jedné skupiny, je tento datový objekt (jak je psáno výše) konkrétním obrazem abstraktní skupiny.

Datové objekty nicméně lze zapojovat do více skupin najednou, jeden datový objekt potom shrnuje data ze všech těchto skupin. Z principu komunikace EIB je pak jasné, že datové objekty patřící do více skupin mají vždy hodnotu naposledy upravené skupiny.

Udržování konkrétních obrazů skupiny v datových objektech je podle standardu EIB možné ovlivňovat následujícími volbami:

objekt se komunikuje

je-li volba nastavena, pak datový objekt reaguje na změny skupiny, není-li volba nastavena, je objekt zcela pasivní (a pro EIB nefunkční). Ovladač DataLab IF/EIB tuto volbu nenabízí — , všechny datové objekty ovladače se komunikují

objekt lze číst z jiných jednotek (read flag)

je-li volba nastavena, lze hodnotu datového objektu číst zevnitř EIB sítě

do objektu lze zapisovat z jiných jednotek (write flag)

je-li volba nastavena, lze hodnotu datového objektu zapisovat zevnitř EIB sítě — neboli, takovýto objekt sleduje změnu hodnoty skupiny

objekt zapisuje do EIB sítě (transmit flag)

je-li volba nastavena, zapíše se hodnota zapsaná (třeba z aplikace) do datového objektu rovněž do EIB sítě a tím i do skupiny

objekt lze měnit nevyžádanou komunikací (update flag)

volba znamená, že odpověď s přečtenou hodnotou datového objektu z jiné jednotky ovlivní datový objekt v této jednotce. Tato volba je ve všech BCU1 zařízeních zapnuta (a nelze vypnout), ve všech BCU2 zařízení a stejně i v ovladači DataLab IF/EIB je tato volba nastavitelná

Kombinací popsaných voleb se dosahuje různých chování datových objektů.

Ovladač DataLab IF/EIB pro Control Web výše popsané volby plně podporuje, přičemž pro snazší práci s objekty chování vzniklá různými kombinacemi objektů pojmenovává. Navíc, jak je popsáno v sekci o souboru s parametry, chování (tedy kombinace voleb) lze určit i vlastní, přesně podle požadovaného chování objektu. Datový objekt v ovladači potřebuje některá další nastavení (protože Control Web má i jiné možnosti, než definuje EIS); v současné době to jsou tyto rozšiřující volby:

objekt bude při čtení vždy přečten z EIB sítě (ze skupiny) (communicate_on_read)

princip práce EIB sítě je jasný — abstraktní skupina, je-li upravena, zajistí pomocí EIB komunikace rozšíření své nové hodnoty do všech jednotek. Každá jednotka se proto vždy dozví, že skupina byla změněna. Datový objekt proto má vždy správnou hodnotu skupiny.

Chce-li ovladač (aplikace) použít údaj z datového objektu, přečte jej. Pokud objekt pracuje normálním v EIB běžným způsobem, získá aplikace vždy správný údaj. Avšak, například, je-li skupina pasivní (neboli její hodnoty se nikdy nezapisují do sítě, protože nastavující datový objekt nemá nastaven transmit flag), může být nutné z takové skupiny hodnotu přečít explicitním čtením, — což je ovšem něco navíc vůči prostému převzetí hodnoty místního datového objektu ovladače. Takový způsob práce se skupinou není v EIB příliš běžný (ale i tam se občas použije), ovladač jej nicméně musí podporovat.

objekt bude po startu ovladače přečten z EIB (provede se iniciální čtení) (read_on_start)

v okamžiku startu ovladače jsou veškeré objekty uvnitř něj „prázdné“, obsahují počáteční hodnoty (což jsou zpravidla nuly). Samozřejmě, takové počáteční hodnoty neodpovídají skutečnému stavu EIB sítě a aplikace, která by na tento fakt nebrala ohled, by pracovala chybně (dokud by se postupně data uvnitř ovladače změnami v EIB neustavila).

Control Web pro řízení a měření dat po startu nabízí standardní prostředky (a všechna data by bylo možné z EIB po startu načítat běžnými postupy aplikace). EIB je však schopna pracovat s daty i svébytnými postupy, které nabízejí komfortnější způsob inicializace vnitřních hodnot datových objektů.

Chce-li ovladač, aby datový objekt po startu řízeně přečetl data z EIB sítě, musí datovému objektu tuto volbu (read_on_start) nastavit. Nebude-li volba nastavena, ovladač do svého datového objektu hodnotu získá buď po změně v EIB síti anebo aktivitou aplikace systému Control Web.

Počáteční čtení objektu z EIB lze ovlivnit parametry sekce Sekce [interface] parametrického souboru read_on_start_delay a read_on_start_repeat_count. Ovladač počáteční čtení opakuje dle nastavení druhého parametru (a opakuje se vždy jen čtení těch objektů, u nichž se to dosud nepodařilo) a vždy před zahájením nového opakovaného bloku komunikací čeká po dobu určenou prvním parametrem.

Jména, která pro chování objektů ovladač DataLab IF/EIB používá, jsou (spolu s odpovídající kombinací voleb):

reader

update + communicate_on_read

tracker

update + write

tracker_init

update + write + read_on_start

transmitter

transmit

transmitter_with_status

update + write + transmit

transmitter_with_status_init

update + write + transmit + read_on_start

server

read

concentrator

update + write + read

source

transmit + read

Datové objekty, jsou-li zapojeny do více skupin, jsou v aplikaci dostupné pod více čísly kanálů — každé skupinové adrese odpovídá jedno číslo kanálu. Protože všechny skupinové adresy patří jednomu komunikačnímu objektu, lze pro použití objektu v aplikaci zcela rovnocenně použít jakýkoli jeho kanál (jakékoli číslo kanálu).

EIB spojuje s datovým objektem jeho důležitost, která má praktický dopad zejména při přenosech dat v EIB síti. Důležitost, neboli třída objektu (či priorita), může být následující:

HodnotaVýznam
normal

základní důležitost, velká většina datových objektů má právě tuto důležitost. Je to zároveň hodnota, která je v datových objektech ovladače přednastavena (tedy, použije se, pokud není zadána nějaká jiná důležitost).

high

vysoká důležitost

alarm

výstražná důležitost, druhá důležitost, která se občas objeví. Typické použití je pro hlášení krizových stavů: vstup do objektu, porušení okna či odejmutí sundavatelné části EIB prvku.

system

systémová důležitost; je de facto vyhrazena pouze pro konfigurační komunikace, normální provoz v nakonfigurované EIB síti by neměl tuto důležitost používat. V ovladači DataLab IF/EIB ji není možné definovat.

Důležitost datového objektu je v ovladači DataLab IF/EIB spojena s chováním objektu a v parametrickém souboru se definuje na stejném místě (jako by se jednalo o volbu chování datového objektu), viz sekci Sekce [behaviours].

Control Web při definici kanálů používá směry, což je jednoduché vyjádření smyslu toku dat (výstupní kanál přenáší data ven z aplikace do technologie a naopak).

Control Web 5 (a také jeho následníci) zjišťuje směry kanálů přímo z ovladače, takže při tvorbě aplikace v těchto systémech není možné směr kanálu přiřadit chybně. Systém Control Web 2000 tuto vlastnost neobsahuje a správné směry kanálů je nutné zapsat do samostatného 'DMF' souboru ovladače.

Pro správnou funkci kanálů (datových objektů) v systému Control Web 2000 lze doporučit následující přiřazení směrů kanálů v DMF souboru a v aplikaci (v případě použití jiných směrů se může stát, že Control Web 2000 zbytečně zamezí použít kanál ve všech směrech, kterými je kanál schopen komunikovat):

datový objekt pouze s volbou transmit

směr výstupní (output)

datový objekt bez volby transmit

směr vstupní (input)

datové objekty s volbou transmit současně s jinými volbami

směr obousměrný (bidirectional)

Čtení z EIB

Čtení dat z EIB může v ovladači probíhat dvojím způsobem:

čtením místní hodnoty

Tento způsob čtení hodnoty ze skupiny je základní a je doporučen. Předpokládá, že skupiny v EIB síti jsou aktivní, že pracují a že do nich příslušné jednotky zapisují údaje. Datový objekt v ovladači proto vždy při zápisu do skupiny údaj automaticky obdrží.

Ovladač při tomto způsobu čtení nekomunikuje, pouze poskytne data aplikaci. Čtení hodnoty datového objektu proto nijak nezatěžuje EIB síť. Ovladač při tomto způsobu čtení vrací údaje okamžitě, a nemá proto pro něj smysl řízení komunikace pomocí prodlev (input_timeout).

Je-li datový objekt spojen s více skupinami, způsobí změnu hodnoty datového objektu zápis do jakékoli jeho skupiny. Například — je-li objekt spjat se skupinami 3/1/0 (světlo A) a 3/1/255 (všechno zhasnout), získá objekt hodnotu pří zápisu do kterékoli ze skupin.

Datový objekt čte data z EIB tímto způsobem, nemá-li nastavenu ve svém chování volbu communicate_on_read.

komunikací z EIB

Tento způsob čtení ze skupiny je rozšiřující a je doporučen pouze pro použití ve vyjímečných případech — například je-li třeba v určité situaci číst z určité jednotky nějaký speciální (třeba chybový či stavový) datový objekt. Lze jej nazvat vyžádané čtení.

Ovladač při tomto způsobu čtení komunikuje, vyžádá si novou hodnotu z EIB sítě a teprve po zpětném získání hodnoty skupiny poskytne tuto novou hodnotu aplikaci. Komunikací dochází k zatěžování EIB sítě. Ovladač při tomto způsobu čtení vrací data zpožděně (až je získá), a proto pro něj smysl řízení komunikace pomocí prodlev (input_timeout).

Je-li datový objekt spojen s více skupinami, komunikuje ovladač data z první skupiny objektu (z první adresy objektu), pokud není pro čtení označena jiná adresa (viz Sekce [objects] parametrického souboru).

Datový objekt čte data z EIB tímto způsobem, má-li nastavenu ve svém chování volbu communicate_on_read.

Je-li současně s volbou communicate_on_read v chování objektu přítomna i volba update nebo write, dochází ke změně hodnoty objektu i mimo vyžádaná čtení. Pokud aplikace v takové situaci nepočká na dokončení komunikace (viz dokumentaci systému Control Web), přečte aplikace poslední místní hodnotu datového objektu.

Vyžádané čtení lze ovlivňovat sadou parametrů (prodlevou dokončení čtení, počtem opakování a prodlevou mezi čteními); zvlášť pro počátační čtení a zvlášť pro čtení za chodu ovladače — viz Sekce [read_on_start] a sekce [read_during_run] parametrického souboru.

Kanály aplikace, které jsou s datovým objektem spojeny, musejí být vstupní (input) nebo obousměrné (bidirectional). Platí současně (viz výše), že hodnotu datového objektu lze v aplikaci získat čtením jakéhokoli kanálu datového objektu (komunikuje-li se kanál, komunikuje se vždy pomocí prvé skupinové adresy bez ohledu na číslo kanálu, které bylo pro přístup k datům objektu použito).

Zápis do EIB

Zápis dat do EIB probíhá v ovladači jediným způsobem — hodnota z aplikace je zapsána do datového objektu a je-li v chování objektu zapnuta volba transmit, je tato nová hodnota zapsána do EIB sítě do první skupiny objektu (do první adresy objektu).

Zápis dat do EIB proto typicky komunikuje a zatěžuje proto EIB síť.

Jelikož se při zápise komunikuje, lze zápis a jeho výsledek řídit a sledovat pomocí mechanizmů aplikace (komunikační prodlevy output_timeout apod.).

Kanály aplikace, které jsou s datovým objektem spojeny, musejí být výstupní (output) nebo obousměrné (bidirectional). Platí současně (viz výše), že hodnotu datového objektu lze z aplikace zapsat pomocí jakéhokoli kanálu datového objektu (vždy se přitom zapisuje do prvé skupinové adresy bez ohledu na číslo kanálu, které bylo pro přístup k datům objektu použito).

Stav rozhraní DataLab IF/EIB, výjimka ovladače

USB rozhraní, pomocí kterého ovladač komunikuje, může být bez ohledu na běh aplikace a bez ohledu na stav ovladače připojeno či odpojeno, totéž platí pro EIB síť (zapojeno/nezapojeno). Tyto stavy mohou být pro aplikaci velmi důležité, proto je ovladač aplikaci poskytuje ve svém stavovém kanále.

Číslo stavového kanálu je volitelné (v souboru s parametry). Změna stavu ovladače (neboli změna stavového kanálu) je vždy aplikaci systému Control Web hlášena pomocí výjimky ovladače (parametr driver_exception přístrojů), takže aplikace má možnost asynchronně reagovat na jakékoli nesrovnalosti.

Stavový kanál je dvaatřicetibitové číslo (longcard), v němž mají jednotlivé bity následující význam:

HodnotaVýznam
0 (USB_connected)

bit je nastaven, pokud ovladač nalezl připojené rozhraní DataLab IF/EIB s odpovídající identifikací a úspěšně s ním komunikuje

1 (EIB_connected)

bit je nastaven, pokud je k rozhraní DataLab IF/EIB připojena EIB síť a ovladač je tak schopen komunikovat EIB data

2 (init_read_pending)

bit je nastaven, pokud ovladač dosud nedokončil počáteční načítání hodnot objektů z EIB sítě

3 (queue_overflow)

bit je nastaven, pokud počet zaznamenaných a nezpracovaných změn dat mimo pořadí (viz sekci ) dosáhl limitu určeného parametrem input_queue_length

4-31 (reserved)

rezervováno pro budoucí použití

Příklad reakce na změnu stavu ovladače (v systému Control Web lze rovněž použít i událostní proceduru OnDriverException()):

program EIBStatus;
  driver_exception = EIBDriver;

  procedure OnActivate( Time, Instrument, Driver, Data : boolean );
  begin
    if not Driver then
      stop;
    end;
    if bitget( StatusChannel, 0 ) = 1 then
      (* we have device *)
    else
      (* we did not find any device yet *)
    end;
    if bitget( StatusChannel, 1 ) = 1 then
      (* we have EIB connection *)
    else
      (* EIB is not connected *)
    end;
  end_procedure;

end_program;

Nevyžádaná data

Upozornění:

Komunikaci nevyžádaných dat nelze použít v systému Control Web 2000. Podpora komunikace nevyžádaných dat je k dispozici až v systému Control Web a vyšších.

EIB síť je již z definice prostředí, ve kterém jednotlivé jednotky vykonávají přikázanou činnost zcela samostatně. To znamená, že každá jednotka může upravit hodnotu skupiny kdy se jí zamane, podle své potřeby. Z pohledu jiných jednotek (a tedy i z pohledu ovladače DataLab IF/EIB) se ovšem taková změna skupiny jeví jako zcela asynchronní a nepředpověditelná — jednotka dostane data (novou hodnotu skupiny) aniž by o ně žádala.

Zápis do skupiny (úprava hodnoty skupiny) lze proto na všech jednotkách pojmout jako asynchronní událost (událostmi v programech se obyčejně rozumí aktivity vzešlé odjinud, nikoli z programu samého). Výrazové prostředky systému Control Web pro asynchronní události nabízejí událostní procedury. Protože se při komunikaci pracuje s kanály (s datovými elementy spjatými s ovladačem), použijí se pro zpracování nevyžádaných dat událostní procedury sekce, ve které jsou patřičné kanály definovány.

Komunikace nevyžádaných dat je zcela automatická. Jakmile ovladač zpracuje nevyžádanou událost, informuje Control Web a ten zajistí komunikaci nevyžádaných dat mimo pořadí běžným komunikačním mechanizmem. To znamená, že nevyžádaná komunikace se v tomto ohledu uvnitř aplikace projevuje stejně jako komunikace vyžádaná — po jejím dokončení je zavolána událostní procedura On*Communicated (viz popis událostních procedur datových sekcí v dokumentaci) a dále, došlo-li komunikací ke změně hodnoty elementu, rovněž událostní procedura On*Change.

Mechanizmus přijímání nevyžádaných dat respektuje aplikaci — . Pokud aplikace (v příslušné datové sekci) neobsahuje žádnou z uvedených procedur, žádná data mimo pořadí nezpůsobí žádnou aktivitu aplikace (samozřejmě, přijatá hodnota je v ovladači uchována; jen se o ní aplikace bez vlastní komunikace nedozví).

Protože je (viz sekce Datové objekty) s každým datovým objektem spojeno potenciálně více skupinových adres, bylo by při zpracovávání nevyžádaných dat možné použít jakýkoli kanál. Z praktických důvodů je ovšem stanoveno, že nevyžádaná data jsou v událostních procedurách On*Communicated a On*Change vždy nabízena v kanálu, který odpovídá prvé skupinové adrese objektu. Neboli, prvá skupinová adresa datového objektu má výjimečné postavení nejen na straně EIB (je použita k zápisu a k vyžádanému čtení), ale i na straně aplikace systému Control Web — je jako jediná používána při oznamování nevyžádaných komunikací.

Následující jednoduchý příklad ukazuje proceduru, která zpracuje všechny události skupiny 3/2/13 (EIS2 dimming/control) a uchová uvnitř proměnné Level aktuální stav jasu stmívače (procedura tak uskutečňuje část funkce stmívače). Vždy, když v EIB síti někdo zapíše do skupiny 3/2/13, přenesou se nevyžádaná data z EIB do systému Control Web, což vyústí ve volání událostní procedury (v ukázce specifické pro jeden datový element):

data
  
  var LIGHTS;
    Level : shortcard;
  end_var;

  channel {driver = eib; direction = input};
    DimmingControl = shortint {driver_index = 302013};

    procedure On_DimmingControl_Communicated( Status : longcard );
    begin
      if Status <> 0 then (* communication error *)
        stop;
      end;
      Level = min2( 100, Level + DimmingControl ); 
        (* limiting Level to 0 is not neccessary, as shortcard data type
           cannot contain numbers lower than zero *)
    end_procedure;

  end_channel;

end_data;

Uvedená ukázka je elementární, zcela se nezabývá například násobným využitím procedury pro více elementů apod.; nicméně úkolem dokumentace ovladače není opakovat informace, které jsou pečlivě popsány v dokumentaci k systému Control Web. Pro více poznatků proto doporučujeme právě hlavní dokumentaci k systému.

Nevyžádaná data musejí být (aby měla smysl) v ovladači skladována po dobu od vzniku události (přijetí hodnoty v datovém objektu) až do jejího zpracování v událostní proceduře. Přebytek výkonu systému Control Web vůči EIB je obrovský, přesto by se však mohlo (třeba na starých či velmi zatížených počítačích) stát, že by se bez skladování sem tam něco ztratilo (pro stmívání by to asi nevadilo, ale záleží-li někde na počtu zápisů (třeba hodnoty true), mohlo by to způsobovat potíže. Skladování nevyžádaných dat se v ovladači děje automaticky a pro jistotu je omezeno parametrem input_queue_length (viz sekci Parametrický soubor). Dojde-li případně k zaplnění fronty, informuje ovladač aplikaci pomocí výjimky ovladače a nastavení bitu 3 (queue_overflow) stavového kanálu. V takovém případě lze upravit (zvětšit) délku fronty nevyžádaných dat z počátečních 256 událostí na větší číslo.

Specifické chybové kódy ovladače

Ovladač používá následující specifické chybové kódy (tyto chybové kódy se objevují jednak v Okně zpráv a jednak jsou obsahem atributů error a write_error):

HodnotaVýznam
1 (ecDeviceUnplugged)

jednotka odpojena — DataLab IF/EIB buď nemá připojené napájení (je rozpojen USB kabel) anebo sériové číslo správně zapojené jednotky neodpovídá nastavení parametru id parametrického souboru.

2 (ecNoEIBConnection)

není připojena EIB sběrnice — DataLab IF/EIB nemá spojení s EIB sítí.

4 (ecUnACKed)

odeslaný EIB paket nebyl žádnou přijímací jednotkou potvrzen.

5 (ecReadResponseTimeout)

požadavek na řízení čtení hodnoty z EIB vypršel, zařízení neodpovědělo do uplynutí stanovené doby.

6 (ecLineBusy)

zápis dat se nezdařil, neboť EIB síť je zaneprázdněna

7 (ecTransceiverFault)

zápis dat se nezdařil, neboť se nepodařilo odeslat data do EIB sítě

8 (ecOutputQueueOverflow)

zápis dat se nezdařil, neboť vymezená délka výstupní fronty byla naplněna (chyba se může objevit pouze pokud je délka výstupní fronty omezena)

Poznámka:

Chybové kódy kanálů specifické pro ovladač jsou v systému Control Web odlišeny od obecných chybových kódů posunutím o hodnotu 65536 (10000H). Systém Control Web podle tohoto posunu rozpozná, jedná-li se o chybu obecnou, platnou v rámci celého systému, nebo specifickou pro daný typ ovladače. V okně zpráv (Log Window) jsou vidět kódy chyb zmenšené o 65536 (v případě DataLab IF/EIB kódy 1 až 4). Pokud ale kódy čte přímo aplikace prostřednictvím atributu kanál:error, hodnota tohoto atributu bude 65537 až 65540.

Parametrický soubor

Ačkoli bude většina konfigurací ovladače učiněna pomocí nástroje systému Control Web (viz sekci ), je nutné parametrický soubor podrobně popsat.

Parametrický soubor obsahuje nastavení závislé na druhu ovladače, takže parametrický soubor pro ovladač DataLab IF/EIB nelze použít pro ovladač jiný (jednotek ADAM apod.).

Parametrický soubor ovladače DataLab IF/EIB je textový, uspořádaný do sekcí, s konfiguračními parametry zapsanými na řádcích ve formátu klíč = údaj. Sekce slouží k hlavnímu členění, zatímco klíče představují vlastní nastavení. Ovladač DataLab IF/EIB používá ve svém parametrickém souboru následující předdefinované sekce:

HodnotaVýznam
device

sekce pro konfiguraci USB rozhraní DataLab IF/EIB na straně počítače

interface

sekce pro konfiguraci EIB komunikačního zásobníku

read_on_start
read_during_run

sekce pro konfiguraci časování čtení při počátečním čtení a za běhu ovladače

behaviours

sekce pro definici chování datových objektů

objects

sekce pro definici jednotlivých samostatných datových objektů

blocks

sekce pro definici bloků datových objektů, které sdílejí určitá nastavení

[<block_name>]

sekce pro definici datových objektů, které sdílejí určitá nastavení

Uvnitř těchto sekcí se používají další (rovněž předdefinovaná) klíčová slova pro zápis EIS datových typů a pro zápis přednastavených chování (o chování datových objektů pojednává sekce Datové objekty, o zápisu chování v parametrickém souboru sekce Sekce [behaviours]).

Pojmenování datových typů v ovladači je trojí — číslem a dvěma symbolickými jmény:

EIS1

typ se uvede jako 1, nebo jako switch, nebo jako eis1

EIS2 control

2, nebo increase, nebo eis2

EIS3

3, time, eis3

EIS4

4, date, eis4

EIS5

5, value, eis5

EIS6

6, scaling, eis6 — rozsah 0–100%

EIS6

scaling255 — rozsah 0–255

EIS7

7, updown, eis7

EIS9

9, float, eis9

EIS10

10, counter16, eis10

EIS11

11, counter32, eis11

EIS13

13, char, eis13

EIS14

14, counter8, eis14

EIS15

15, string, eis15

Sekce [device]

Sekce [device] obsahuje následující klíče:

ParametrVýznam
id

každé rozhraní DataLab IF/EIB je vyrobeno s jednoznačnou identifikací, která je jako výrobní číslo uvedena na štítku na krabičce rozhraní. Tuto identifikaci používá ovladač pro USB spojení s rozhraním. N — esouhlasí-li identifikace, ovladač se s rozhraním nespojí.

Příklad:

[device]
  id = 2401406

Klíč je povinný.

status_channel

číslo stavového kanálu ovladače. Bez zadání tohoto parametru nebude možné v aplikaci použít stavový kanál. Číslo musí být nezáporné a je libovolně volitelné se zřejmým omezením: číslo stavového kanálu musí být vybráno tak, aby nebylo shodné s žádnou ze skupinových adres použitých v ovladači.

Příklad:

[device]
  status_channel = 1

Klíč je nepovinný, jeho počáteční hodnota není definována.

input_queue_length_channel

číslo kanálu ovladače s aktuální délkou vstupní fronty (fronty dat přijímaných mimo pořadí). Bez zadání tohoto parametru nebude možné kanál s délkou vstupní fronty v aplikaci použít. Číslo musí být nezáporné a je libovolně volitelné se zřejmým omezením: číslo musí být vybráno tak, aby nebylo shodné s žádnou ze skupinových adres použitých v ovladači.

Příklad:

[device]
  input_queue_length_channel = 2

Klíč je nepovinný, jeho počáteční hodnota není definována.

output_queue_length_channel

číslo kanálu ovladače s aktuální délkou výstupní fronty (fronty dat připravených k odeslání). Bez zadání tohoto parametru nebude možné kanál s délkou výstupní fronty v aplikaci použít. Číslo musí být nezáporné a je libovolně volitelné se zřejmým omezením: číslo musí být vybráno tak, aby nebylo shodné s žádnou ze skupinových adres použitých v ovladači.

Příklad:

[device]
  output_queue_length_channel = 2

Klíč je nepovinný, jeho počáteční hodnota není definována.

Sekce [interface]

Sekce [interface] obsahuje následující klíče:

ParametrVýznam
address

fyzická adresa rozhraní, adresa, kterou se bude rozhraní hlásit v EIB síti. Adresa je fyzická, první dvě její části (area a line) by proto měly odpovídat linii, do níž je rozhraní DataLab IF/EIB zapojeno.

Příklad:

[interface]
  address = 14.1.255
input_queue_length

počet nevyžádaných komunikací (EIB paketů), které ovladač udržuje až do okamžiku zpracování aplikací (pomocí událostních procedur). Protože aplikace v systému Control Web má vůči EIB komunikaci několikařádový přebytek výkonu, nebude nejspíše třeba vůbec tento parametr upravovat.

Příklad:

[interface]
  input_queue_length = 1000

Klíč je nepovinný, jeho počáteční hodnota je 256.

output_queue_length

počet paketů připravených k odeslání, které ovladač udržuje v paměti v případě, že se nedaří data dostatečně rychle odesílat. Protože aplikace v systému Control Web má vůči EIB komunikaci několikařádový přebytek výkonu, může se stát, že EIB síť nedokáže požadavky dostatečně rychle přijímat a mohlo by tak docházet ke ztrátě dat. Výstupní fronta pozdrží požadavky až do okamžiku uvolnění sítě.

Je zřejmé, že aplikace může stále ovladač zahlcovat, aniž by byl prostor pro kompletní odeslání dat (neboli aplikace bude zapisovat rychleji, než EIB dokáže komunikovat) — neboli výstupní fronta bude stále růst. Parametr output_queue_length délku fronty limituje. Dojde-li pak k zaplnění fronty, ovladač ukončí danou komunikaci chybou komunikace 8 (ecOutputQueueOverflow).

Příklad:

[interface]
  output_queue_length = 10000

Klíč je nepovinný, jeho počáteční hodnota je 4 294 967 295 (neboli maximum).

ACK_method

způsob chování rozhraní DataLab IF/EIB při přijímání EIB paketu. Každý paket v EIB komunikaci by měl být potvrzen (ACK = adknowledge), přičemž v normálně instalovaných EIB sítích tomu tak i vždy je. V každé skupině se obyčejně nacházejí jak zdroje (vysílače) hodnot tak jejich přijímače (aktory apod.), takže potvrzení paketu má vždy kdo zajistit.

Není-li paket potvrzen, EIB jej obyčejně opakuje, což zvyšuje zatížení sítě.

Použije-li se ovladač DataLab IF/EIB především pro vizualizaci, je pravděpodobné, že EIB síť a její skupiny vždy budou mít příjemce, který paket potvrdí. Použije-li se však Control Web v EIB síti více výkonně, pro řešení logických spojení apod., může se stát, že některá ze skupiny nebude mít jiného příjemce, než ovladač DataLab IF/EIB. Pak je ovšem správné, aby se o potvrzení takovýchto paketů postaral právě ovladač.

Parametr ACK_method může nabývat dvou hodnot: none a all. Při prvé volbě rozhraní žádné pakety nepotvrzuje, při druhé volbě rozhraní potvrzuje všechny pakety.

Příklad:

[interface]
  ACK_method = all

Klíč je nepovinný, jeho počáteční hodnota je none.

ACK_timeout

prodleva čekání ovladače na potvrzení (kladné i záporné) odeslání paketu. Vyprší-li tato prodleva, ovladač čekání na potvrzení ukončí a odešle do sítě další připravený paket.

Příklad:

[interface]
  ACK_timeout = 750

Klíč je nepovinný, jeho počáteční hodnota je 500. Jednotka údaje je milisekunda.

BUSY_delay

prodleva, po kterou ovladač čeká před opakováním požadavku, byla-li EIB síť v okamžiku jeho odeslání zaneprázdněna. Ovladač opakuje požadavek nejvýše třikrát.

Příklad:

[interface]
  BUSY_delay = 500

Klíč je nepovinný, jeho počáteční hodnota je 200. Jednotka hodnoty jsou milisekundy.

read_on_start_delay

prodleva, po kterou ovladač čeká při počátečním čtení hodnot objektů před opakováním čtení (ovladač pak opakovaně čte pouze objekty, jejichž hodnotu dosud nezískal). Ovladač čtení opakuje podle nastavení parametru read_on_start_repeat_count.

Příklad:

[interface]
  read_on_start_delay = 15000

Klíč je nepovinný, jeho počáteční hodnota je 5000. Jednotka hodnoty jsou milisekundy.

read_on_start_repeat_count

počet opakování počátečních čtení hodnot objektů. Ovladač počáteční čtení opakuje pouze pro objekty, jejichž hodnotu dosud nezískal. Mezi jednotlivé pokusy přečíst hodnoty objektů ovladač vkládá prodlevu stanovenou parameterem read_on_start_delay.

Příklad:

[interface]
  read_on_start_repeat_count = 5

Klíč je nepovinný, jeho počáteční hodnota je 3.

Sekce [read_on_start] a sekce [read_during_run]

Obě sekce obsahuje nastavení chování vyžádaného čtení dat z EIB sítě. To se při startu ovladače týká počátečního čtení (sekce [read_on_start]) a za běhu ovladače všech vyžádaných čtení (sekce[read_during_run], platí pro objekty s chováním communicate_on_read). Čtení ovlivňují následující klíče platné shodně pro obě sekce:

ParametrVýznam
timeout

prodleva, po kterou ovladač čeká na odpověď EIB zařízení (neboli na čtenou hodnotu objektu). Uplyne-li tato prodleva, ukončí ovladač čtení s chybou komunikace 5 (ecReadResponseTimeout).

Příklad:

[read_on_start]
  timeout = 2500

Klíč je nepovinný, jednotka jeho údaje je milisekunda. V sekci [read_on_start] je počáteční hodnota klíče 1500, v sekci [read_during_run] 2500.

repeat_count

počet opakování čtení. Ovladač požadavky na čtení opakuje, pokud čtení skončí chybou (nebo pokud zařízení neodpoví).

Příklad:

[read_on_start]
  repeat_count = 3

Klíč je nepovinný. V sekci [read_on_start] je počáteční hodnota klíče 1, v sekci [read_during_run] rovněž 1.

delay

prodleva, kterou ovladač vkládá mezi dva za sebou následující požadavky na čtení.

Příklad:

[read_on_start]
  delay = 250

Klíč je nepovinný, jednotka jeho údaje je milisekunda. V sekci [read_on_start] je počáteční hodnota klíče 150, v sekci [read_during_run] 0.

Sekce [behaviours]

Sekce [behaviours] obsahuje následující klíče:

ParametrVýznam
behaviour

klíč, který slouží k definici vlastního chování datových objektů; chování se zapisuje jako jméno chování následované kombinací voleb chování oddělených čárkami. Pořadí voleb není povinné.

Klíč se v sekci může neomezeně opakovat.

Volby vycházejí z voleb komunikace datových objektů (viz sekci Datové objekty); takže do klíče lze zapsat seznam vybraný z následujících klíčových slov:

HodnotaVýznam
readable

pro volbu objektu read

writable

pro volbu objektu write

transmit

pro volbu objektu transmit

updateable

pro volbu objektu update

communicate_on_read

pro zapnutí vyžádaného čtení

read_on_start

pro zapnutí čtení pro získání počáteční hodnoty

high

volba pro nastavení důležitosti high (viz sekce Datové objekty)

alarm

volba pro nastavení důležitosti alarm (viz sekce Datové objekty)

Příklad:

[behaviours]
  behaviour = all, readable, updateable, transmit, communicate_on_read, writable
  behaviour = my_transmitter, transmit, alarm

Jména chování (v příkladu all a my_transmitter) lze v ovladači použít kdekoli, kde se vyžaduje zápis jména chování, což je buď v klíčích object a objects v sekci objects a v klíči behaviour v sekci [<block_name>].

Kromě takto uživatelsky definovaných chování ovladač rozeznává předdefinovaná chování, takže je pravděpodobné, že v běžných EIB nasazeních vůbec nebude třeba sekce [behaviours] využít. Předdefinovaná chování jsou (více včetně jejich vysvětlení viz sekce Datové objekty): reader, tracker, transmitter, transmitter_with_status, server, source a concentrator.

Sekce [objects]

Sekce [objects] obsahuje následující klíče:

ParametrVýznam
object

klíč, který slouží k definici jednoho komunikačního objektu, objekt přitom lze zapojit do několika skupin

objects

klíč, který slouží k definici více komunikačních objektů najednou, objekty jsou přitom zapojeny každý do jedné skupiny.

Jak klíče object, tak klíče objects se mouhou v sekci neomezeně opakovat. Každý objekt (nebo objekty) jsou tak pomocí těchto klíčů zapsány na jednotlivých řádcích.

Formát zápisu klíčů je následující:

object/objects = <behaviour>, <EIS type>, <address_list>

Jednotlivé části v řádku znamenají:

ParametrVýznam
<behaviour>

jméno chování; jako jméno může být zapsáno některé z předdefinovaných chování (transmitter) nebo jakékoli chování definované pomocí klíče behaviour v sekci behaviours.

<EIS type>

EIB datový typ objektu, číslo nebo klíčové slovo; možné hodnoty jsou zapsány výše.

<address_list>

Skupinová adresa, seznam skupinových adres, případně rozsah skupinových adres.

Vše nejlépe demonstruje opět příklad:

[objects]
  object = transmitter_with_status, switch, 3/1/9, 3/0/9
  objects = transmitter, scaling, 3/3/0..3/3/13, 3/3/24
  object = transmitter, 5, 4/0/0
  ...
  • První řádek definuje jeden objekt zapojený do dvou skupin (3/1/9 a 3/0/9), podle pravidel popsaných v sekci Chování ovladače má přitom první skupinová adresa (3/1/9) výsadní postavení a používá se pro zápis hodnot, oznamování přijetí nevyžádaných dat a vyžádané čtení hodnot, pokud není pro vyžádané čtení určena jiná skupinová adresa.

  • Druhý řádek definuje 15 objektů s adresami 3/3/0, 3/3/1, ..., 3/3/13 a 3/3/24.

  • Třetí řádek definuje opět samostatný objekt, tentokrát s typem 5, tj. value, objekt je zapojen jen do jediné skupiny.

Definice objektu s více skupinovými adresami (neboli definice pomocí object =) umožňuje určit, která z adres objektu má být použita, čte-li ovladač data přímo z EIB sběrnice (vyžádané čtení). Volba nemusí být u žádné ze skupin zapsána a pak se pro vyžádané čtení použije první skupinová adresa objektu. Výběr skupinové adresy pro vyžádané čtení se provede snado zápisem písmene r či R přímo (bez mezery) před skupinovou adresu. Mírně upravený předchozí příklad takový zápis demonstruje:

[objects]
  object = transmitter_with_status, switch, 3/1/9, r3/0/9
  ...

Neboli, v ukázce zapsaný objekt bude skupinovou adresu 3/1/9 používat pro zápis a pro oznamování přijetí nevyžádaných dat; skupinovou adresu 3/0/9 pro vyžádané čtení a obě adresy pro příjem dat z EIB sběrnice.

Sekce [blocks]

Sekce [blocks] obsahuje následující klíče:

ParametrVýznam
block

opakovaný klíč, který slouží ovladači pouze jako informace, jaké všechny sekce [<block_name>] s hromadnými definicemi objektů má v parametrickém souboru hledat.

Klíče odkazují na jiné sekce, které teprve definují datové objekty.

Příklad:

[blocks]
  block = Lights
  block = Presence
  block = Temperatures

Sekce [<block_name>]

Sekce [<block_name>] v parametrickém souboru slouží pro snadný zápis mnoha datových objektů pouze zápisem jejich skupinové adresy. Jméno sekce může být libovolné. Pro použití těchto sekcí existuje pouze jediná podmínka: jméno sekce (neboli <block_name>) musí být ovladači známo z některého klíče block sekce blocks.

Sekce [<block_name>] obsahuje následující klíče:

ParametrVýznam
behaviour

chování datových objektů, které má platit pro všechny datové objekty definované uvnitř této sekce. Jako jméno může být zapsáno některé z předdefinovaných chování (transmitter) nebo jakékoli chování definované pomocí klíče behaviour v sekci behaviours.

Parametr je v sekci povinný.

type

EIS typ datových objektů této sekce (možné hodnoty viz výše).

Parament je v sekci povinný.

object

klíč, který slouží k definici jednoho komunikačního objektu, objekt přitom lze zapojit do několika skupin

objects

klíč, který slouží k definici více komunikačních objektů najednou, objekty jsou přitom zapojeny každý do jedné skupiny

Parametry object a objects se zapisují podobně jako v sekci Sekce [objects] s tím rozdílem, že ani chování ani EIS typ se již v zápisu klíče neuvádějí. Následující příklad ukazuje definici několika sekcí <block_name>:

[Lights]
  behaviour = transmitter
  type = switch
  objects = 10/5/20..10/6/20, 11/1/0..11/1/15, 1/1/5
  object = 1/1/6, r1/1/7

[Presence]
  behaviour = tracker
  type = switch
  objects = 2/0/1, 2/1/1, 2/2/1, 2/3/1, 2/4/1, 2/5/1

[Temperatures]
  behaviour = tracker
  type = eis5
  objects = 3/4/128..3/4/143
  objects = 3/5/64..3/5/95