Ovladač Advantech AdvDAQ využívá nové rozhraní ovladačů
doplněné v Control Webu 8. Z tohoto důvodu nebude ovladač k
dispozici pro starší verze systému Control Web. Vzhledem k
jednodušším licenčním podmínkám Control Webu 8 je možné
ovladač zkoušet i bez použití licence.
Díky použití programové podpory DAQNavi umí
ovladač komunikovat s velkou škálou zařízení. Tato zařízení jsou
rozdělena do několika hlavních kategorií: PCI, PCI Express, ISA karty
a USB moduly. Seznam všech podporovaných zařízení pak lze nalézt přímo
na webu firmy Advantech.
Pokud při instalaci ovladače není na daném počítači detekována
podpora DAQNavi, spustí instalátor samostatnou
instalaci potřebné části podpory. Tato instalace nainstaluje základní
podpůrné prostředky spolu s programovou podporou a zařízení
DemoDevice, které lze použít například k testům při
vývoji aplikace a využívá ho také dodávaný příklad použití ovladače. V
instalátoru stači zvolit položku Install DAQNavi a
pomocí tlačitek Next projít celou instalaci.
Pomocí ovladače lze realizovat synchronní čtení a zápis analogových
i digitálních vstupů a výstupů. Z čítačů lze použít čtení počtu
událostí na digitálním vstupu (Event Counter), popř.
měřit jejich frekvenci (Frequency Measurement).
Pokročilejší práce se zařízením, jako je bufferované nebo triggerované
čtení vstupů/výstupů a generování pulsů/PWM, prozatím ovladač
nepodporuje.

Příklad aplikace pro práci s ovladačem AdvDAQ, který je
součástí instalace.
Konfigurace
Před konfigurací ovladače je potřeba nastavit samostatné
zařízení. Konfigurační dialog každého zařízení lze nalézt ve
Správci zařízení systému Windows. Po otevření
dialogu s vlastnostmi zařízení lze pod záložkou Device
configuration najít tlačítko Configure…
pro otevření konfiguračního dialogu. Pokud máme nainstalovanou
plnou podporu DAQNavi spolu se softwarem
Advantech Navigator, lze konfigurovat zařízení i
přímo přes tuto aplikaci. Aplikace Navigator také
umožnuje generování tzv. profilů zařízení, které lze poté pomocí
ovladače do zařízení automaticky načíst, viz parametr
profile v sekci device.
Konfigurace ovladače pak probíhá přes klasický konfigurační
soubor '.par'. 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.
Pokud máme například dvě zařízení, můžeme použít následující
zápis konfiguračního souboru:
[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
Sekce channels pak 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čtu 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
|