KNX protokol
Podporované typy a verzie zariadení
Konfigurácia komunikačnej linky
Parametre protokolu linky
Konfigurácia komunikačnej stanice
Konfigurácia meraných bodov
Literatúra
Zmeny a úpravy
Revízie dokumentu
Podporované typy a verzie zariadení
Protokol KNX je otvorený štandard používaný pri automatizácii budov. Implementácia KNX využíva Falcon SDK vyvíjaný KNX asociáciou. Vzhľadom na to, že tento SDK je vyvíjaný v jazyku C#, prepojenie na D2000 KOM proces je riešené cez samostatný modul d2knx, ktorý sa štandardne nachádza v adresári protdll a komunikuje s D2000 KOM procesom cez TCP spojenie.
Od verzie D2000 v23 sa v adresári protdll nachádzajú podadresáre:
- knx5 - obsahuje modul d2knx používajúci Falcon SDK 5 (5.7.426)
- knx6 - obsahuje modul d2knx používajúci Falcon SDK 6 (6.1.6264)
Pre každú komunikačnú linku, na ktorej sú stanice s KNX protokolom, je potrebné spustiť jednu inštanciu modulu d2knx, ktorá vyžaduje samostatné KNX rozhranie. KNX rozhranie môže byť pripojené cez USB rozhranie alebo môže byť dostupné sieťovo na základe svojej IP adresy.
Poznámka k modulu d2knx:
Modul d2knx je aplikácia, ktorá k svojmu behu potrebuje nainštalované ".NET Core 3.1" (https://dotnet.microsoft.com/en-us/download/dotnet/3.1). Odporúčame vyskúšať jej funkčnosť manuálnym spustením v príkazovom riadku.
Po spustení bez parametrov vypíše nápovedu a zoznam dostupných KNX USB zariadení a následne skončí.
Vyžadované parametre sú:
- IP adresa - adresa, na ktorej d2knx počúva (napr. 127.0.0.1 alebo 0.0.0.0 alebo konkrétna IP adresa počítača, kde je modul d2knx spustený, napr. 172.16.0.1)
- port - TCP port, na ktorom d2knx počúva
- debug - voliteľný parameter, ktorý aktivuje pomocné ladiace výpisy
Príklady ručného spustenia d2knx:
- d2knx 127.0.0.1 4011 debug
- d2knx 0.0.0.0 4012
Príklad výstupu (spustenie bez parametrov):
EIB/KNX interface module
(c) 2020 Ipesoft
Usage : knx ListenIP ListenPort [debug]
Example: knx 127.0.0.1 4011
Available interfaces:
Device 0 Path \\?\hid#vid_16d0&pid_0490#6&34ad9346&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}, Name Tapko USB Interface
Konfigurácia komunikačnej linky
- Kategória komunikačnej linky: TCP/IP-TCP.
- IP adresa je adresa, na ktorej počúva modul d2knx. Ak je modul d2knx spúšťaný D2000 KOM procesom, odporúčaná adresa je 127.0.0.1 (localhost). Je možné prevádzkovať modul d2knx na vzdialenom počítači, v tom prípade treba nakonfigurovať IP adresu vzdialeného počítača.
Pozn: je možné nakonfigurovať aj viacero IP adries (oddelených čiarkou alebo bodkočiarkou). Tak je možné v redundantných D2000 systémoch nakonfigurovať pripájanie sa D2000 KOM procesu napr. k nezávisle spusteným d2knx modulom (každý z nich je spustený na jednom z aplikačných serverov), čo zabezpečuje funkčnosť komunikácie pri výpadku KNX USB adaptéra na jednom serveri bez potreby prepínania redundancie D2000. - Číslo portu je číslo TCP portu, na ktorom počúva modul d2knx. Je možné vybrať ľubovolný voľný port (1-65535).
- Číslo linky je nepoužité, nastavte hodnotu 0.
Parametre protokolu linky
Dialóg konfigurácia linky - záložka Parametre protokolu.
Ovplyvňujú niektoré voliteľné parametre protokolu. Môžu byť zadané nasledovné parametre protokolu linky:
Tab. č. 1
Parameter | Popis | Jednotka / rozmer | Náhradná hodnota |
---|---|---|---|
KNX Driver Program | Konfigurácia spúšťania modulu d2knx procesom D2000 KOM. Ak je tento parameter prázdny, modul d2knx nie je spúšťaný (predpokladá sa iný mechanizmus jeho spúšťania). Parameter obsahuje tieto symbolické mená:
Pozn: v adresári protdll sa nachádzajú aj vzorové spúšťacie skripty pre Windows (d2knx.bat) a Linux/Raspberry PI (d2knx). | - | #PROTDIR#d2knx #HOST# #PORT# |
KNX Interface Type | Typ KNX adaptéra, ktorý modul d2knx otvára a pomocou ktorého komunikuje po KNX zbernici:
| - | USB interface by position |
KNX Interface ID | Identifikácia otváraného KNX adaptéra, ktorá závisí od vybraného typu KNX rozhrania - viď popis parametra KNX Interface Type. Môže to byť poradové číslo USB rozhrania, časť jeho názvu alebo cesty, prípadne IP adresa KNX routra. | - | 0 |
IP Interface Port | Ak KNX Interface ID = "IP interface", tak tento parameter udáva číslo portu (TCP alebo UDP), na ktorom KNX router komunikuje. Štandardné číslo portu je 3671. | - | 3671 |
IP Interface Protocol | Ak KNX Interface ID = "IP interface", tak tento parameter udáva, či je na komunikáciu s KNX routrom použitý UDP alebo TCP protokol:
| Automatic | Automatic |
IP Interface NAT | Ak KNX Interface ID = "IP interface" a komunikuje sa cez UDP protokol, tak tento parameter udáva, či sa má použiť pri komunikácii preklad adries (NAT). | YES/NO | NO |
KNX Interface Address (x.y.z) | KNX adresa, ktorú je možné nastaviť KNX rozhraniu po jeho otvorení. Ak nie je zadaná, použije sa existujúca adresa KNX rozhrania. | - | - |
Security Keys | Názov súboru s bezpečnostnými kľúčmi. Pokiaľ je použitá zabezpečená komunikácia (secure group communication), tento súbor (tzv. keyring súbor - *.knxkeys) je možné exportovať z konfiguračného nástroj ETS, ktorý je dostupný na stránkach KNX asociácie. Parameter obsahuje tieto symbolické mená:
| - | - |
Security Password | Heslo na prístup k súboru s bezpečnostnými kľúčmi. Poznámka: Pokiaľ je použitá zabezpečená komunikácia, musia byť zadané obidva parametre - Security Keys aj Security Password. | - | - |
Driver Debug | Zapnutie ladiacich informácii modulu d2knx. | YES/NO | NO |
Full Debug | Zapnutie ladiacich informácií o čítaných/zapisovaných hodnotách. | YES/NO | NO |
Konfigurácia komunikačnej stanice
- Komunikačný protokol: KNX Protocol.
- Adresa stanice:
- GROUP - Merané body na stanici s adresou GROUP budú dostávať všetky hodnoty typu Group address z komunikácie.
- area.line.device - Adresa konkrétneho KNX zariadenia (napr. 1.3.99), kde area je 0..15, line je 0..15, device je 0..255. Merané body na stanici s konkrétnou adresou budú dostávať hodnoty iba pokiaľ boli prijaté od KNX zariadenia s touto adresou.
Poznámka: je možné na konfigurovať niekoľko staníc s tou istou adresou (s konkrétnou adresou alebo s adresou GROUP) napr. kvôli nastaveniu rôznych časových parametrov pre vyčítavanie jednotlivých meraných bodov.
Parametre protokolu stanice
Môžu byť zadané nasledovné parametre protokolu stanice:
Parameter | Popis | Jednotka / rozmer | Náhradná hodnota |
---|---|---|---|
Read Group Addresses | Spôsob explicitného čítania meraných bodov typu Group address:
| Never Once Always | Once |
Read Group Priority | Priorita čítania použitá pri explicitnom čítaní meraných bodov typu Group address:
| - | Low |
Read Group Timeout | Timeout na odpoveď pri explicitnom čítaní meraných bodov typu Group address. Povolené hodnoty sú 0-60000 ms. | ms | 0 |
Konfigurácia meraných bodov
Možné typy hodnôt bodov: TxtI, Di, Ai, Ci, TiR, TiA, TxtO, Dout, Ao, Co, ToR, ToA, Qi
Jednotlivé komponenty adresy:
Group address: skupinová adresa (16-bitové číslo). Má tri možné formáty:
- trojúrovňová adresa: main/middle/sub, kde main = 0..31, middle = 0..7, sub = 0..255. Príklad: 1/2/24
- dvojúrovňová adresa: main/sub, kde main = 0..31, sub = 0..2047.
Príklad: adresa 1/536 zodpovedá 1/2/24 (lebo 2 * 256 + 24 = 536) - priamo číslo 1..65535 (skupinová adresa 0 nie je povolená).
Príklad: adresa 2584 zodpovedá 1/2/24 (lebo 1 * 2048 + 2 * 256 +24 = 2584)
Attribute: ktorý atribút prijatej správy so skupinovou hodnotou je zverejnený v meranom bode:
- Value - samotná hodnota. Jej interpretácia závisí od nastavenia Value type (reading)
- Flags - textové príznaky:
- r - jedná sa o správu čítania hodnoty
- w - jedná sa o správu zápisu hodnoty
- o - jedná sa o odpoveď
- s - jedná sa o zabezpečenú komunikáciu (secure)
- Source Address - KNX adresa zariadenia, ktoré správu odoslalo (vo formáte area.line.device, napr. 1.0.24)
- Priority - číselná priorita správy:
- System (0)
- High (1)
- Alarm (2)
- Low (3)
- Size - veľkosť prijatej hodnoty v bitoch
Pozn: pri explicitnom čítaní meraných bodov typu Group address sa čítajú iba tie, ktoré majú nakonfigurované Attribute=Value. Z prijatej odpovede sú zistené okrem hodnoty aj ďalšie atribúty.
Pozn: pri spracovaní spontánnych správ so skupinovými hodnotami sú postupne spracované atribúty Flags, Source Address, Priority, Size a až nakoniec Value.
Value type (reading): pre Attribute=Value spôsob interpretácie prijatej hodnoty:
- Unsigned Int - hodnota je interpretovaná ako celé číslo bez znamienka (prípadne ako hodnota True/False)
- Signed Int - hodnota je interpretovaná ako celé číslo so znamienkom
- Float - hodnota je interpretovaná ako reálne číslo (2, 4 alebo 8-bajtové)
- String - hodnota je interpretovaná ako reťazec (reťazec v KNX protokole má 14 znakov)
- TimeOfDay (3B) - 3-bajtová hodnota je interpretovaná ako čas v rámci dňa (DPT_TimeOfDay) - typ hodnoty musí byť TiR/ToR/Ai/Ao/Ci/Co
- Date (3B) - 3-bajtová hodnota je interpretovaná ako dátum (DPT_Date) - typ hodnoty musí byť TiA/ToA
- DateTime (8B) - 8-bajtová hodnota je interpretovaná ako dátum a čas (DPT_DateTime) - typ hodnoty musí byť TiA/ToA
Pozn: pre meraný bod s hodnotou typu TiA/ToA je možné spracovať hodnotu typu DPT_DateTime (8-bajtový dátum a čas) - je nutné nastaviť Value type (reading) = DateTime (8B)
Value subtype (writing): pre Attribute=Value spôsob zakódovania hodnoty pri zápise:
- pre Value type = Unsigned Int:
- Bool
- TwoBit
- FourBit
- SixBit
- Unsigned Byte (1B)
- Unsigned Short (2B)
- Unsigned Int (4B)
- Unsigned Long (8B)
- pre Value type = Signed Int:
- Signed Byte (1B)
- Signed Short (2B)
- Signed Int (4B)
- Signed Long (8B)
- pre Value type = Float:
- Short Float (2B)
- Float (4B)
- Double (8B)
- pre Value type = String:
- String (14B)
- pre Value type = DateTime:
- Date Time (8B)
Poznámka: merané body, ktoré majú v záložke Ovládanie výstupu nastavený parameter Charakter výstupu na Príkaz, nebudú čítané. V protokole KNX sú bežné objekty, do ktorých sa dá zapisovať, ale nedá sa z nich čítať, takže čítanie by skončilo s chybou, ktorá by spôsobila zneplatnenie hodnoty meraného bodu v D2000 - takéto merané body treba nakonfigurovať ako Príkaz.
Browse
Pre merané body je možné zistiť zoznam objektov a ich dátové typy, pokiaľ KOM proces beží a komunikácia so stanicou je nadviazaná.
Po kliknutí na tlačidlo Browse sa otvorí okno KNX Item Browser a zobrazí sa zoznam doteraz načítaných hodnôt. Zoznam objektov sa vytvára dynamicky v dôsledku prijatých správ (odpovedí na explicitné výzvy ako aj v dôsledku spontánneho príchodu hodnôt).
Zoznam objektov je dynamický, t.j. pri príchode novej hodnoty do KOM procesu je aktualizovaný. Podporované je aj filtrovanie v jednotlivých stĺpcoch, v maske je možné používať hviezdičky (napr. 0/0/*).
Dvojité kliknutie na konkrétny riadok spôsobí, že sa parameter Group address vloží do konfigurácie meraného bodu, z ktorého bolo okno KNX Item Browser otvorené.
Tlačidlo Refresh spôsobí vymazanie zoznamu hodnôt v CNF aj v KOM procese.
V stĺpci Value sa nachádza prijatá hodnota interpretovaná ako celé číslo bez znamienka, celé číslo so znamienkom (iba ak je odlišné od čísla bez znamienka) a reálne číslo (ak má dĺžku 16/32/64 bitov), prípadne ako text (ak má dĺžku 14*8 bitov).
Literatúra
https://en.wikipedia.org/wiki/KNX_(standard)
Zmeny a úpravy
-
Revízie dokumentu
- Ver. 1.0 - 13. máj 2020 - Vytvorenie dokumentu.
- Ver. 1.1 - 11. júl 2022 - Podpora pre čítanie DPT_TimeOfDay, DPT_Date, DPT_DateTime.
- Ver. 1.2 - 18. júl 2023 - Podpora zápis DPT_DateTime.
Súvisiace stránky:
Add Comment