Seznam sekcí: - Činnost ovladače
- Parametry ovladače
- Příklad použití ovladače
Činnost ovladače
Ovladač ke komunikaci využívá oficiální podporu od firmy
Advantech pod názvem DAQNavi. Seznamy podporovaných zařízení série
DAQ lze nalézt na webu firmy Advantech
(https://www.advantech.com/products/data-acquisition-(daq)-communication/sub_1-2mljza).
Ovladač se při spuštění aplikace pokusí připojit ke všem
zadaným zařízením a ověřit zadanou konfiguraci v parametrickém
souboru. Pokud některé zařízení není připojeno nebo se v průběhu
běhu aplikace odpojí, zkouší ovladač periodicky obnovit spojení.
Komunikace hodnot může probíhat dle požadavků aplikace, čtením
nebo zápisem některého kanálu. Čtení kanálu vyvolá čtení hodnoty
přímo ze zařízení, zápis do kanálu pak vyvolá odeslání hodnoty do
zařízení. Datové kanály ovladače (jejich počet a typ) se
konfigurují v souboru parametrů podle požadavků uživatele.
Parametry ovladače
Pomocí souboru parametrů je možno definovat použitá zařízení a
kanály ovladače, popřípadě nastavit další doplňující parametry.
Celý soubor parametrů je rozdělen do několika sekcí. Název sekce
je uveden v hranatých závorkách a musí být jedinečný. V sekci jsou
uvedeny za jménem a znakem = jednotlivé parametry. Na
jednom řádku může být definován jeden parametr.
Definice zařízení
Touto sekcí se definují zařízení, se kterými má ovladač
komunikovat. Každému zařízení se musí přiřadit jedinečné
číslo, které se zapíše do názvu sekce. Toto číslo je potřeba
použít také při definici kanálů tohoto zařízení v sekci channels
popsané níže.
Pokud máme například dvě zařízení, můžeme použít
následující zápis:
[device_0]
…
[channels_0]
…
[device_1]
…
[channels_1]
…
Definice zařízení pak vypadá následovně:
[device_<N>]
device_desc = <S>
device_num = <N>
module_index = <N>
profile = <S>
unit = <U>
…
device_desc — jedinečný identifikátor zařízení. Je
vygenerován podporou Advantech DAQ při instalaci ovladače
zařízení. Většinou se skládá z typu zařízení a ID desky,
např. PCI-1751,BID#0. Identifikátor lze
dodatečně měnit pomocí konfiguračního dialogu zařízení a je
doporučeno ho používat pro připojení k zařízením.
device_num — číslo zařízení přidělené programovou podporou
Advantech DAQ při instalaci ovladače zařízení. Toto číslo
nemusí vždy být unikátní a při připojení více zařízení
stejného typu se může u jednotlivých zařízení při změně
portu nebo slotu měnit. Při použití 2 a více zařízení je
doporučeno používat spíše parametr
device_desc, u kterého nehrozí záměna
zařízení.
module_index — index modulu u zařízení s více
moduly.
profile — název nebo plná cesta k souboru s uloženým
profilem pro dané zařízení. Při použití názvu souboru bez
plné cesty se předpokládá, že se soubor s profilem nachází
ve stejné složce jako samotný parametrický
soubor.
unit — definuje reprezentaci dat čtených nebo
zapisovaných do kanálů zařízení. Jednotky mají význam pouze
pro analogové vstupy/výstupy, digitální nebo čítačové
vstupy/výstupy pracují s logickými hodnotami nebo
bezrozměrnými čísly. Tento parametr lze také použít u
definice jednotlivých kánálů.
N — číselná
hodnota v dekadické soustavě.
S — libovolný
textový řetězec.
U — typ reprezentace dat. Implicitní hodnota je
ADU (Analog/Digital Unit), která
reprezentuje přímo počet kroků A/D nebo D/A převodníku
použitého v daném zařízení. Dále je možné použít hodnotu
SCL, která zajistí převod počtu kroků
převodníku do nastaveného rozsahu daného kanálu při
konfiguraci zařízení (např. +/-10
V).
V této sekci je povinný pouze jeden z parametrů
device_desc a device_num.
Ostatní parametry jsou nepovinné.
Příklad sekce device ovladače:
[device_0]
device_desc = PCI-1751,BID#0
profile = pci1751.xml
unit = SCL
Konfigurace kanálů zařízení
Tato sekce definuje jednotlivé kanály nebo skupiny kanálů
ovladače a jejich reprezentaci v zařízení. Kanály nebo skupiny
kanálů jsou definovány číslem, resp. rozsahem kanálů a jejich
typem. V některých případech musí následovat číslo portu,
popř. číslo bitu na daném zařízení, ke kterému je kanál
přiřazen. Další nepovinný parametr určuje typ reprezentace dat
u analogových vstupů/výstupů. Součástí definice může být
i komentář. Ten musí být uveden na samostatném řádku a musí
začínat středníkem.
Následuje způsob zápisu parametrů a jejich možné hodnoty.
Každému kanálu nebo skupině kanálů odpovídá jeden řádek textu.
V hranatých závorkách jsou uvedeny nepovinné nebo doplňující
parametry:
[channels_<N>]
<Channel> = <Type><Port>[.<Bit>][,<Unit>]
<From> - <To> = <Type>[<Port>][.<Bit>][,<Unit>]
…
Channel | číslo kanálu | From | číslo prvního kanálu v bloku | To | číslo posledního kanálu v bloku | Type | typ kanálu, možné hodnoty jsou: AI | analogový vstup | AO | analogový výstup | CJC | cold junction contact | DI | bitový binární vstup | DIB | 8 binárních vstupů čtených jako 1 byte | DO | bitový binární výstup | DOB | 8 binárních výstupů zapisovaných jako 1
byte | EC | čtení čítače událostí | ECS | start čítače událostí | FR | čtení frekvence | FRS | start čítače frekvence |
| Port | číslo portu (kanálu) na daném zařízení | Bit | bit pro daný port, platí pouze pro kanály typu
DI a DO | Unit | definuje reprezentaci dat čtených nebo zapisovaných
do kanálů zařízení. Jednotky mají význam pouze pro kanály
typu AI, AO. Pro parametr
platí stejné hodnoty jako v sekci
device. |
Pokud definujeme pouze jeden kanál, je nutné použít také
parametr Port (mimo kanály typu
CJC). Při definici skupiny kanálů toto nutné
být nemusí (záleží na typu kanálů, konkrétním rozsahu, poču
portů na zařízení, atd.). Kanály pracující s čítačemi událostí
(EC, ECS,
FR, FRS) nelze zapisovat ve
skupinách a na daném portu lze číst pouze jednu hodnotu,
například není možné číst počet událostí a jejich frekvenci na
portu 0 zároveň. Podrobné definice kanálů lze nalézt v
následujících příkladech:
[channels_0]
; zařízení obsahuje 8 analogových vstupů (AI0 - AI7), 8 analogových výstupů (AO0 - AO7) a 8 digitálních vstupů (DI0 - DI7):
; používáme zápis bez čísla portu
1000 - 1007 = AI
; nemusíme použít všechny porty, následující zápis použije pouze výstupy AO0 až AO4 a bude je převádět dle zadaného rozsahu v konfiguraci
1100 - 1103 = AO, SCL
; čtení 8 digitálních vstupů po jednotlivých bitech
2000 - 2007 = DI
; čtení předchozích 8 digitálních vstupů jako 1 byte, číslo portu je již vyžadováno
2008 = DIB0
; definice analogových vstupů po jednotlivých kanálech, je potřeba také uvést port
1050 = AI0
1051 = AI1
…
1057 = AI7
[channels_1]
; zařízení obsahuje 16 digitálních vstupů (DI0 - DI15), 16 digitálních výstupů (DO0 - DO15) a cold junction kontakt (CJC):
100 = CJC
; nemusíme použít všech 8 bitů, následující zápis použije pouze bity 1, 2, 3 a 4 z portu 0
200 - 203 = DI0
; pro jednotlivé kanály musíme u DI a DO zadat také daný bit
300 = DI1.0
301 = DI1.1
…
307 = DI1.7
; při čtení po bajtech stačí zadat daný port na zařízení - pro výstupy DO0 až DO7 je to port 0 a DO8 až DO15 je to port 1
400 = DOB0
401 = DOB1
[channels_2]
; zařízení obsahuje 2 čítače událostí na portu 0 a portu 1:
; zápis na kanál 501, resp. 503 spustí (hodnota true) nebo zastaví (hodnota false) čítání událostí, resp. frekvence
; čtením z kanálu 500, resp. 502 získáme hodnotu čítače
500 = EC0
501 = ECS0
502 = FR1
503 = FRS1
Příklad použití ovladače
Součástí instalace je příklad použití ovladače. Tento příklad
naleznete ve Veřejných dokumentech (adresář
'%PUBLIC%\Documents\Control Web Drivers\AdvDAQ'. Součástí příkladu
je také soubor '.par' s parametry ovladače. K funkci je potřeba
mít nainstalován tzv. DemoDevice, který je součástí instalované
podpory u tohoto ovladače, popř. součástí samotné instalace
Advantech DAQNavi SDK. V souboru '.par' je potřeba uvést správný
název toho zařízení — výchozí je DemoDevice,BID#0.
|