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
Poznámky k Fanuc Robot R-30iA/R-30iB
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ý nadáciou KNX. 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.
Pre každú komunikačnú linku, na ktorej sú stanice s KNX protokolom, je spustená jedna inštancia modulu d2knx, ktorá vyžaduje samostatné KNX rozhranie. KNX rozhranie môže byť pripojené cez USB rozhranie alebo môže byť dostupné po sieti cez IP adresu.

Poznámka k modulu d2knx:

Modul d2knx je aplikácia, ktorá k svojmu behu potrebuje nainštalované ".NET Core 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ú:

Príklady ručného spustenia d2knx:

Príklad výstupu:

Konfigurácia komunikačnej linky


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

ParameterPopisJednotka / rozmerNá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á:

  • #PROTDIR# - nahradí sa cestou k adresáru protdll v inštalácii D2000, v ktorom sa d2knx štandardne nachádza (napr. D:\D2000\D2000.EXE\protdll)
  • #BINDIR# -nahradí sa cestou k adresáru bin (bin64 v 64-bitovej verzii D2000 na Windows) v inštalácii D2000
  • #HOST# - nahradí sa IP adresou nakonfigurovanou na linke (v prípade konfigurácie viacerých IP adries budú tieto striedavo použité)
  • #PORT# - nahradí sa číslom portu nakonfigurovaým na linke
-#PROTDIR#d2knx #HOST# #PORT#

KNX Interface Type

Typ KNX adaptéra, ktoré modul d2knx otvára:

  • USB interface by position - zo zoznamu dostupných KNX USB zariadení sa vyberie zariadenie na pozícii definovanej parametrom KNX Interface ID (číslo 0, 1, 2 atď)
  • USB interface by name - zo zoznamu dostupných KNX USB zariadení sa vyberie zariadenie, ktorého meno obsahuje text zadaný parametrom KNX Interface ID (napr. "Tapco")
  • USB interface by path - zo zoznamu dostupných KNX USB zariadení sa vyberie zariadenie, ktorého cesta obsahuje text zadaný parametrom KNX Interface ID (napr. "Tapco")
  • IP interface (IP address, port, protocol, NAT) - použije sa zariadenie, ktorého IP adresa je v parametri KNX Interface ID
-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 TypeYES/NONO










Konfigurácia komunikačnej stanice


Konfigurácia meraných bodov


Možné typy hodnôt bodov: Ai, Ci, Di, TiR,TxtI, Ao, Co, Dout, ToR, TxtO

Adresa meraného bodu má formát [+]MemoryArea Position[:StringLength] [Count]


Poznámky k Fanuc Robot R-30iA/R-30iB

Podľa dokumentácie FANUC Robot series R-J3/R-J3iB/R-30iA CONTROLLER CIMPLICITY HMI for Robots OPERATOR’S MANUAL, kapitola 6 - ADDRESS ASSIGNMENT TO POINTS, podkapitola 6.1 - READING AND WRITING I/O SIGNALS (%I, %Q, %M, %AI, %AQ) sú rôzne typy I/O signálov mapované na premenné SRTP protokolu takto:

Robot controller I/O signalPLC addressPríklad
Digital Input DI[x]%QxDI[1]   <=>   %Q1
Digital Output DO[x]%IxDO[1]   <=>   %I1
Robot Input RI[x]%Q(5000+x)RI[1]   <=>   %Q5001
Robot Output RO[x]%I(5000+x)RO[1]   <=>   %I5001
UOP Input UI[x]%Q(6000+x)UI[1]   <=>   %Q6001
UOP Output UO[x]%I(6000+x)UO[1]   <=>   %I6001
SOP Input SI[x]%Q(7000+x)SI[0]   <=>   %Q7001
SOP Output SO[x]%I(7000+x)SO[0]   <=>   %I7001
Weld Input WI[x]%Q(8000+x)WI[0]   <=>   %Q8001
Weld Output WO[x]%I(8000+x)WO[0]   <=>   %Q8001
Wire Stick Input WSI[x]%Q(8400+x)WSI[0]   <=>   %Q8400
Wire Stick Output WSO[x]%I(8400+x)WSO[0]   <=>   %Q8400
Group Input GI[x]%AQxGI[1]   <=>   %AQ1
Group Output GO[x]%AIxGO[1]   <=>   %AI1
Analog Input AI[x]%AQ(1000+x)AI[1]   <=>   %AQ1001
Analog Output AO[x]%AI(1000+x)AO[1]   <=>   %AI1001
PMC keep relay
   DO[x] (x : 10001 – 10144)
   Ka.b

%Ix
%I((a*8)+b+10001)

DO[10001]   <=>   %I10001
K2.5   <=>   %I10022
PMC internal relay
   DO[x] (x : 11001 – 23000)
   Ra.b

%M(x-11000)
%M((a*8)+b+1)

DO[11001]   <=>   %M1
R2.5   <=>   %M22
PMCdata table
   GO[x] (x : 10001 – 12000)
   D(a*2), D((a*2)+1)

%AI(x-6000)
%AI(a+4001)

GO[10001]   <=>   %AI4001
D4, D5   <=>   %AI4003


Podľa rovnakého dokumentu, podkapitola 6.2 - READING FROM AND WRITING TO REGISTERS (%R) je štandardné mapovanie registrov z radiča robota na adresy v PLC :

Robot controller dataPLC addressPríklad
Register%RxR[1]   <=>   %R1

Hodnoty v registroch sú 16-bitové čísla so znamienkom, desatinné časti sú odrezané. 
Dokumentácia ďalej uvádza, že toto štandardné mapovanie je možné zmeniť pomocou systémovej premennej $SNPX_ASG. Táto umožňuje nastaviť multiplikátor pri prevode a zmeniť mapovanie registrov. Jeden register môže byť mapovaný do jednej premennej %R (16-bitové číslo so znamienkom), do dvoch za sebou idúcich premenných %R (32-bitové číslo so znamienkom, použite v adrese meraného bodu %RD) alebo do dvoch za sebou idúcich premenných %R ako reálne číslo (32-bitové float číslo , použite v adrese meraného bodu %RF).

Štandardné mapovanie registrov R zabezpečuje nastavenie $SNPX_ASG[1]:

PoložkaHodnota
$ADDRESS1
$SIZE10000
$VAR_NAME'R[1]@1.1'
$MULTIPLIFY1.000

Pri tomto nastavení budú registre R[1] .. R[10000] mapované na registre %R1 .. %R10000 ako 16-bitové čísla so znamienkom.


Štandardné mapovanie pozičných registrov PR (určených na ukladanie pozícii robota) zabezpečuje nastavenie $SNPX_ASG[2]:

PoložkaHodnota
$ADDRESS11000
$SIZE100
$VAR_NAME'PR[1]'
$MULTIPLIFY0.000

Pri tomto nastavení budú jednotlivé zložky polohy (X, Y, Z, W, P, R atď) uložené ako 32-bitové float čísla na adresách %RF11000, %RF11002, %RF11004 atď (50 registrov na jeden PR, celkove 100 registrov na PR[1] a PR[2].  Viac detailov viď podkapitola 6.3 READING FROM AND WRITING TO POSITION REGISTERS (%R).


Štandardné mapovanie registra aktuálnej pozície POS zabezpečuje nastavenie $SNPX_ASG[3]:

PoložkaHodnota
$ADDRESS12000
$SIZE100
$VAR_NAME'POS[0]'
$MULTIPLIFY0.000

Pri tomto nastavení budú jednotlivé zložky aktuálnej polohy (X, Y, Z, W, P, R atď) uložené ako 32-bitové float čísla na adresách %RF12000, %RF12002, %RF12004 atď (50 registrov na jeden POS, celkove 100 registrov na POS[0] a POS[1].  Viac detailov viď podkapitola 6.4 READING AND WRITING THE CURRENT POSITION (%R).


Mapovanie ALM registrov obsahujúcich históriu alarmov je možné nastavením $SNPX_ASG[x]:

PoložkaHodnota
$ADDRESS12100
$SIZE300
$VAR_NAME'ALM[1]'
$MULTIPLIFY1.000

Pri tomto nastavení budú jednotlivé zložky histórie alarmov (AlarmID, Alarm number, Alarm severity, Alarm message) prístupné na nakonfigurovaných adresách (100 registrov na jeden ALM, tj. 300 registrov pokryje 3 alarmy). Viac detailov viď podkapitola 6.5 READING ALARM HISTORY (%R).


Mapovanie PRG registrov obsahujúcich stav vykonávania programu (program execution status) je možné nastavením $SNPX_ASG[x]:

PoložkaHodnota
$ADDRESS12400
$SIZE18
$VAR_NAME'PRG[1]'
$MULTIPLIFY1.000

Pri tomto nastavení budú jednotlivé zložky stavu vykonávania programu (Program name, Line number, Execution status, Calling program name) prístupné na nakonfigurovaných adresách (18 registrov na jeden PRG). Viac detailov viď podkapitola 6.6 READING THE PROGRAM EXECUTION STATUS (%R).


Mapovanie rôznych systémových premenných je takisto možné nastavením $SNPX_ASG[x]. Príklad:

PoložkaHodnota
$ADDRESS12420
$SIZE2
$VAR_NAME'$mcr.$genoverride'
$MULTIPLIFY1.000

Pri tomto nastavení bude v registroch 12420 a 12421 systémová premenná OVERRIDE (položka $genoverride systémovej premennej $mcr) ako 32-bitový integer (adresa %RD12420, prístup na čítanie aj zápis). Viac detailov viď podkapitola 6.7 READING FROM AND WRITING INTO SYSTEM VARIABLES (%R).


Mapovanie komentárov k registrom, pozičným registrom a I/O je takisto možné nastavením $SNPX_ASG[x]. Príklad:

PoložkaHodnota
$ADDRESS12440
$SIZE160
$VAR_NAME'R[C1]'
$MULTIPLIFY1.000

Pri tomto nastavení budú v registroch %R12420 až %R12599 komentáre k registrom R1 až R4 (40 registrov, t.j. 80 znakov na komentár - adresy %R12440:40, %R12480:40, %R12520:40 a %R12560:40). Podobne je možné nakonfigurovať komentáre k iným typom objektov (napr. 'PR[C1]', 'DI[C2]', 'GI[C1]', 'GO[C1]' atď). Viac detailov viď podkapitola 6.8 READING AND WRITING THE COMMENT OF REGISTERS, POSITION REGISTERS, AND I/O (%R).


Mapovanie hodnôt I/O a stavu simulácie je takisto možné nastavením $SNPX_ASG[x]. Príklad:

PoložkaHodnota
$ADDRESS12430
$SIZE4
$VAR_NAME'RO[S1]'
$MULTIPLIFY1.000

Pri tomto nastavení budú v registroch %R12430 až %R12433 stavy simulácie výstupov RO[1] až RO[4]. Podobne je možné nakonfigurovať stavy simulácie iných typov objektov (napr. 'DI[S1]', 'DO[C2]', 'DO[S1]', 'RI[S1]' atď) ako aj hodnoty týchto objektov (napr. 'DI[1]', 'DI[2]', 'UO[1]', 'SI[1]' atď). Viac detailov viď podkapitola 6.9 READING AND WRITING THE VALUE AND SIM STATUS OF I/O (%R).

Literatúra


https://en.wikipedia.org/wiki/Service_Request_Transport_Protocol

FANUC Robot series R-J3/R-J3iB/R-30iA CONTROLLER CIMPLICITY HMI for Robots OPERATOR’S MANUAL (R-30iA CONTROLLER CIMPLICITY HMI for Robots_[B-82604EN_01].pdf)

Zmeny a úpravy


-

Revízie dokumentu


Komunikačné protokoly