Moravské přístroje, a. s., zdroj: https://www.mii.cz/art?id=286&lang=405, vytištěno: 25/05/2024 00:56:54

Hlavní stránkaProduktyPrůmyslový počítačový systém DataLabDataLab PC

Ovladač WATCHDOG pro DataLab PC
 Ovladač WATCHDOG je určen pro řízení hlídacího obvodu na počítačích DataLab PC.

Dovoluje řídit hlídací obvod několika způsoby. Jako běžný ovladač systému Control Web, přes procedurální rozhraní DLL nebo jako Active X komponenta. Jméno knihovny ovladače je 'DLWDD.DLL'.

Vlastnosti ovladače

  • Obsahuje rozhraní pro zařazení do systému Control Web jako jeho nativní ovladač.

  • Obsahuje procedurální rozhraní — soubor funkcí — pro použití z uživatelského programu (C++, Basic, Pascal, ...).

  • Obsahuje Active X komponentu pro zabudování do uživatelského programu. Popis Active X rozhraní je umístěn do samostatného dokumentu.

Seznam sekcí:

Vlastnosti ovladače
Činnost ovladače
Ovladač pro Control Web
Procedurální rozhraní DLL

Činnost ovladače

Počítače DataLab PC jsou vybaveny hlídacím obvodem (watchdog), pro zvýšení spolehlivosti činnosti řídicího programu. Pomáhá ošetřit případy, kdy se řídicí program dostane do nežádoucího stavu (kritická chyba, nekonečná smyčka) vlivem chyby programátora nebo jiné neočekávané chyby.

Watchdog je nejprve nutné aktivovat. Poté obvod očekává periodickou signalizaci od běžící aplikace. Jestliže z nějakého důvodu signalizace selže, hlídací obvod restartuje počítače. Perioda signalizace se dá měnit s krokem 0,1 s, maximální perioda je více jak 6500 s. Aplikace watchdog opět deaktivuje při svém ukončení.

Ovladač pro Control Web

Z aplikace systému Control Web je možno řídit hlídací obvod buď zápisem na kanál nebo voláním procedury ovladače.

Kanály ovladače

Ovladač má jediný kanál (č.1), pomocí kterého se nastavuje spouštěcí interval hlídacího obvodu a současně se hlídací obvod znovu aktivuje. Zapisovaná hodnota udává dobu, po jejímž uplynutí bude počítač restartován, jestliže nedojde k nové aktivaci hlídacího obvodu. Hodnota se zadává v sekundách. Rozlišení je 0,1 s. Minimální délka intervalu je 0.1 s, maximální délka intervalu je 6553.5 s. Zápis hodnoty 0 způsobí vypnutí hlídacího obvodu.

Procedury ovladače

Aplikace může volat ovladači určité procedury, pomocí nichž je možno řídit chování ovladače nebo získat důležité informace. To se děje prostřednictvím systémové procedury:

system.DriverQueryProc( DriverName : string; Param1 : any; &Param2 : any )

Její parametry mají následující význam:

ParametrVýznam
DriverName

symbolické jméno ovladače, definované v aplikaci,

Param1

slouží k zadání povelu (jména procedury ovladače),

Param2

je použit jako parametr procedury nebo návratová hodnota procedury.

DriverName a Param1 se zadávají jako textové řetězce. Param2 je různého typu podle významu procedury.

Přehled a význam jednotlivých procedur ovladače (parametr Param1)

SetTimeout

Procedura funguje podobně jako kanál č. 1. Pro aktivaci hlídacího obvodu je třeba periodicky volat tuto proceduru. Parametr Param2 obsahuje dobu v sekundách, po které bude počítač restartován, když nedojde k opětovné aktivaci hlídacího obvodu. Rozlišení je 0,1 s. Zápis hodnoty 0 způsobí vypnutí hlídacího obvodu.

Mapovací soubor ovladače a datové typy

Mapovací soubor obsahuje definici typu kanálu ovladače a jeho obsah by se neměl měnit:

begin
  1 real output
end.

Procedurální rozhraní DLL

Procedurální rozhraní je možné použít z uživatelského programu, vytvořeného v některém z jazyků C/C++, Basic, Pascal a podobně. Vlastností jazyka musí být možnost načtení dynamicky linkované knihovny (DLL) a volání jejích funkcí.

Ovladač watchdog je implementován v knihovně 'dlwdd.dll'. Tato knihovna vyváží následující symboly (funkce) pro práci s hlídacím obvodem:

Connect

Funkce pro připojené hlídacího obvodu. Jestliže hlídací obvod není k dispozici, vrátí hodnotu False. V opačném případě vrací hodnotu True.

Disconnect

Funkce odpojí hlídací obvod. Tato funkce nemá návratovou hodnotu.

IsConnected

Funkce vrátí stav připojení k hlídacímu obvodu. Hodnota True znamená, že hlídací obvod je připojen.

SetTime

Funkce aktivuje hlídací obvod. Parametr udává dobu, po jejímž uplynutí bude počítač restartován, jestliže nedojde k nové aktivaci hlídacího obvodu. Hodnota se zadává v sekundách. Rozlišení je 0,1 s. Zápis hodnoty 0 způsobí vypnutí hlídacího obvodu. Funkce vrátí hodnotu True, jestliže se podařila.

Definice funkcí pro jazyk C/C++:

BOOL __stdcall Connect()
void __stdcall Disconnect()
BOOL __stdcall IsConnected()
BOOL __stdcall SetTime(float wt)

Příklad použití v jazyce Visual Basic:

Public Declare Function Connect Lib "dlwdd.dll" () As Long
Public Declare Sub Disconnect Lib "dlwdd.dll" ()
Public Declare Function IsConnected Lib "dlwdd.dll" () As Long
Public Declare Function SetTime Lib "dlwdd.dll" (ByVal Time As Single) As Long