Pantek Productivity Pack Process Data Logger Verze 1.2 10. října 2001
Obsah ÚVOD... 3 Charakteristika produktu... 3 Systémové požadavky... 3 Omezení... 3 Instalace... 4 Licencování... 4 KONFIGURACE... 5 Stránky vlastností...5 General... 5 Symbols... 7 Vlastnosti... 8 Metody... 10 TIPY A TRIKY... 11 Způsoby ukládání dat z InControlu... 11 Konfigurace tabulky... 12 Rychlé ukládání (Fast writing)... 12 Automatické vytváření tabulek... 13 Současný zápis do několika tabulek... 13 Omezení jmen sloupců v tabulce... 13 Podporované datové typy... 13 Strana 2 / 14
Úvod Charakteristika produktu Process Data Logger je objekt ActiveX určený pro rychlé a spolehlivé ukládání dat z aplikace InControl do relační databáze ve formátu DBF pomocí OLE DB nebo přímým zápisem. Hlavní vlastnosti a přínosy: Pro ukládání je využito samostatné vlákno (thread) procesu InControlu, jehož činnost minimálně ovlivňuje běh programů aplikace InControl. Činnost vlákna lze programově pozastavit. Pro velmi rychlé ukládání prvek nabízí ukládání přímým zápisem ve formátu DBF. Podpora jednoduchých proměnných i proměnných typu pole, všech číselných datových typů i textu. Ukládat lze v každém taktu InControlu nebo explicitně pomocí zveřejněné metody. Při použití více instancí objektu lze ukládat do několika databází nebo tabulek současně. Automatické vytváření nových databázových tabulek s definovaným časem a periodou vytváření. Systémové požadavky Wonderware InControl 7.1 Microsoft Windows NT 4.0 SP5 nebo vyšší nebo Microsoft Windows 2000 Při ukládání pomocí OLE DB ještě navíc MDAC 2.5 (Microsoft Data Access Components) Omezení Process Data Logger verze 1.2 byl testován a podporuje databázový formát DBF (dbase). Pantek neposkytuje technickou podporu pro zápis do jiných formátů. Strana 3 / 14
Instalace Instalaci produktu Process Data Logger lze začít spuštěním souboru Setup.exe. Instalace probíhá automaticky bez zásahu uživatele. Instalační program nakopíruje a zaregistruje všechny potřebné soubory na cílový počítač. Po skončení instalace je Process Data Logger připraven k použití. Pro použití v programu Wonderware InControl je třeba prvek vložit do tohoto prostředí (InControl Development). Tato instalace se provede takto: V panelu Project View klikněte pravým tlačítkem na složku Programs a zvolte položku New Program Ze zobrazené nabídky vyberte položku Factory Object a klikněte na tlačítko OK. Objeví se okno Select Factory Object. Ze seznamu Factory Objects zvolte Pantek Process Data Logger a klikněte na OK. Soubor uložte pod libovolným jménem. Licencování Tento produkt může být používán pouze na počítačích obsahujících instalaci některého z produktů rodiny Wonderware FactorySuite 2000. Pro svou funkci dále vyžaduje platný licenční soubor PantekLic.lic. Licenční soubor je umístěn ve složce Program Files\FactorySuite\Common\License. Licence je svázána se sériovým číslem (Serial Number) produktu FactorySuite. Bez platného licenčního souboru bude Process Data Logger spuštěn v demo režimu. Tento režim je plně funkční po dobu dvou hodin, poté nebude možné ukládat data do databáze. Licenční soubory můžete objednávat u společnosti Pantek (CS) s.r.o.: Tel.: +420 49 563 5072 nebo 563 5073 E-mail: info@pantek.cz http://www.pantek.cz Strana 4 / 14
Konfigurace Stránky vlastností General Na stránce vlastností General se nastavují parametry týkající se činnosti prvku. Popis jednotlivých položek: Connection String Textový řetězec, který definuje inicializační řetězec pro přístup k databázím. Pro pohodlné sestavení tohoto řetězce je možné použít tlačítko, které zobrazí standardní dialog pro výběr OLE DB poskytovatele. Pokud je zvolena volba Fast Writing, tak je důležité ve standardním dialogu pro výběr OLE DB poskytovatele vyplnit položku Enter the initial catalog to use - tento argument určuje cestu, kam budou data ukládána (položka Initial Catalog v Connection String ). Pokud je povolena volba Fast Writing to DBF, tak se do tohoto boxu zadává cesta na dbf soubory. Enable Scan Určuje, zda se bude funkce DoLogging volat automaticky v každém cyklu programu InControl. Enable Reading Tento parametr je možné modifikovat pouze v případě, kdy je povolena volba Enable Scan. Parametr Enable Reading řídí čtení hodnot symbolů z InControlu. V případě, že tato volba není povolena, tak ve funkci DoLogging nedochází ke čtení hodnot z InControlu. Pokud je volba povolena, tak se ve funkci DoLogging čtou hodnoty všech nadefinovaných symbolů a ukládají se do vnitřního pole. Strana 5 / 14
Log To DB Parametr povoluje zápis hodnot do databáze. Pokud není povolen zápis do databáze, tak jsou hodnoty ukládány do vnitřního pole. Velikost vnitřního pole je omezena parametrem Maximum Buffer Size. Fast Writing To DBF Parametr povoluje rychlý zápis do tabulky ve formátu DBF. Rychlý zápis se neděje přes OLE DB ani ODBC, ale Process Data Logger v tomto případě zapisuje přímo do souboru. Auto Number Parametr povoluje vytváření speciálního databázového sloupce. Jméno sloupce bude vždy AUTONUM. Tento sloupec zaručuje pro každý záznam jedinečnou hodnotu. První záznam bude mít hodnotu 1, každý další bude vždy o 1 vyšší. Maximum Buffer Size - Maximální počet záznamů vnitřního pole. Údaj omezuje růst velikosti vnitřního bufferu. Table Prefix Name Počáteční jména tabulek. Počet znaků může být maximálně dva. Table Start Time Čas, ve kterém se mají vytvářet nové tabulky. Create New Table Every Časová perioda, podle které se periodicky vytváří nová tabulka databáze. Pokud je v parametru Create New Table Every nastaveno 0 hodin a 0 minut, nebude se nikdy vytvářet nová tabulka a zápis se bude provádět neustále to stejné tabulky. Chcete-li vytvářet nové tabulky s denní periodou, nastavte tento parametr na 24 hodin a 0 minut. Strana 6 / 14
Symbols Stránka Symbols slouží k definování symbolů, které se mají ukládat do databáze. Jako symboly je možno vybírat proměnné nadefinované v prostředí programu InControl Development a to jak jednoduché proměnné tak proměnné typu pole. Add Otevře standardní dialog pro výběr symbolů nadefinovaných v prostředí InControl Development. Zvolený symbol je možné přidat do seznamu symbolů ( Symbols To Log ) na této stránce vlastností. Modify Aplikuje změnu jména databázového sloupce podle hodnoty v poli DB Column Name. Remove Smaže zvolený symbol ze seznamu symbolů Symbols To Log. DB Column Name Jméno databázového sloupce. Maximální počet znaků je 8. Jméno databázového sloupce musí být jedinečné. Strana 7 / 14
Vlastnosti Seznam vlastností poskytovaných prvkem Process Data Logger: AutoNum Datový typ: DINT Popis: Jde o jednoznačný identifikátor záznamů v tabulce (souboru). První záznam má hodnotu 1, další jsou oproti předcházejícím větší o 1. Pokud je za běhu vytvořena nová tabulka je hodnota znovu nastavena na 1. Pokud volba Auto Number na stránce vlastností General není povolena, tak vlastnost AutoNum bude mít neustále hodnotu 0. ConnectionString Datový typ: String Popis: Textový řetězec definuje inicializační řetězec pro přístup k databázím. Tento řetězec je možné modifikovat za běhu InControlu. Změna se projeví, až při vytváření nové tabulky. EnableReading Datový typ: BOOL Popis: Tento parametr má význam modifikovat pouze v případě, že je povolena volba Enable Scan. Parametr Enable Reading řídí čtení hodnot symbolů z InControlu ve funkci DoLogging. V případě, že je hodnota FALSE, tak ve funkci DoLogging nedochází ke čtení hodnot z InControlu. Pokud je hodnota TRUE, tak se ve funkci DoLogging čtou hodnoty všech nadefinovaných symbolů a ukládají se do vnitřního pole. Tyto hodnoty jsou pak ukládány do databáze. EnableScan Datový typ: BOOL Popis: Pouze pro čtení. Pokud je hodnota TRUE, tak je v každém cyklu programu InControlem volána funkce DoLogging. Pokud je hodnota FALSE, tak funkce DoLogging není volána. FilePeriod Datový typ: DINT Popis: Hodnota určuje periodu vytváření nových tabulek. Údaj je uveden v minutách. Hodnota nesmí přesáhnout 24 hod. Pokud je zadávaná hodnota větší než 24 hod, pak je tento údaj ignorován. Pokud je hodnota nula, pak nedochází k vytváření nových tabulek. FileStartTime Datový typ: DT Popis: Určuje čas, ve kterém se má vytvářet nová tabulka. Pokud je vlastnost FilePeriod rovna 0, nebude se nikdy vytvářet nová tabulka. LogToDB Datový typ: BOOL Strana 8 / 14
Popis: Parametr povoluje zápis hodnot do databáze. Pokud není povolen zápis do databáze, tak jsou hodnoty ukládány do vnitřního pole. Velikost vnitřního pole je omezena parametrem MaximumBufferSize. Pokud se pak parametr změní na TRUE (povolen zápis do databáze), pak jsou hodnoty symbolů, přesunuty z vnitřního pole do databáze. MaximumBufferSize Datový typ: DINT Popis: Za běhu programu je tato vlastnost pouze pro čtení. Hodnota určuje maximální počet záznamů vnitřního pole prvku. NumberRecInBuff Datový typ: DINT Popis: Pouze pro čtení. Proměnná obsahuje okamžitý počet záznamů, které ještě nebyly uloženy do databáze, tzn. že jsou prozatím pouze ve vnitřním poli Process Data Loggeru. PrefixTableName Datový typ: String Popis: Počáteční jméno tabulek. Povoleny jsou maximálně dva znaky. TableName Datatový type: String Popis: Jméno tabulky (souboru), která je právě používána pro zápis hodnot symbolů. Strana 9 / 14
Metody Seznam metod poskytovaných prvkem Process Data Logger: DoLogging() Popis: Pokud je parametr EnableScan TRUE, tak je tato funkce periodicky volána InControlem (v každém cyklu programu). Metoda čte hodnoty symbolů z InControlu a ukládá je do vnitřního pole, tyto hodnoty jsou pak v jiném vláknu (threadu) ukládány do tabulky databáze. LogValues(int IndexFrom, int IndexTo) Popis: Metoda čte hodnoty z InControlu a ukládá je do vnitřního pole. Tyto hodnoty jsou pak v jiném vláknu (threadu) ukládány do tabulky databáze. Metoda má dva parametry, které slouží pro ukládání proměnných (symbolů) typu pole. Hodnoty IndexFrom a IndexTo reprezentují indexy pole a určují tak, které prvky pole budou načteny. Strana 10 / 14
Tipy a triky Způsoby ukládání dat z InControlu Process Data Logger může získávat hodnoty zvolených symbolů z InControlu dvěma způsoby a to pomocí funkce DoLogging a nebo pomocí funkce LogValues: DoLogging je speciální metoda, kterou Process Data Logger vystavuje InControlu a ten je pak schopen periodicky volat tuto metodu v každém cyklu. Metoda získává hodnoty symbolů z InControlu a ukládá je do vnitřního pole. Ukládání těchto hodnot do databáze se provádí v jiném vlákně (thread). Vlákno přesouvá hodnoty z vnitřního pole do databáze. Aby se hodnoty symbolů nezískávaly v každém cyklu, je možné měnit hodnotu vlastnosti EnableReading (TRUE/FALSE). Pokud je hodnota nastavena na FALSE, pak funkce DoLogging nečte žádné hodnoty symbolů. Pokud je hodnota vlastnosti EnableReading TRUE, pak funkce DoLogging získává hodnoty z InControlu a ukládá je do vnitřního pole. Metoda LogValues není automaticky volána v každém cyklu. Musí být volána z programu InControlu. Metoda získává hodnoty symbolů z InControlu a ukládá je do vnitřního pole prvku. Ukládání těchto hodnot do databáze se provádí v jiném vlákně (thread). Vlákno přesouvá hodnoty z vnitřního pole do databáze. Metoda má dva parametry (IndexFrom, IndexTo), které slouží pro ukládání hodnot proměnných (symbolů) typu pole. Hodnoty IndexFrom a IndexTo určují indexy prvků pole, které budou načteny. Process Data Logger umí pracovat jak s jednoduchými proměnnými, tak s proměnnými typu pole. Pokud jsou ukládány pouze proměnné, které nejsou typu pole, pak se dá říci, že každému volání funkce LogValues (DoLogging) odpovídá jeden záznam v tabulce cílové databáze. Prvek přečte pro všechny nadefinované symboly hodnoty, které pak tvoří jeden záznam v tabulce.v tomto případě se parametry metody LogValues nevyužívají. Pokud má prvek ukládat proměnné typu pole, nelze tvrdit, že každému volání odpovídá jeden záznam, neboť každé volání funkce LogValues může zapsat více záznamů do tabulky. Například: prvek má zapisovat do tabulky dvě proměnné: PoleNamerenychHodnot a ZacatekMereni. Proměnná PoleNamerenychHodnot je typu Array [1 1000], ZacatekMereni je typu datum (nejde o pole). Pokud zavoláme funkci LogValues(1, 500), tak prvek získá z InControlu hodnotu proměnné ZacatekMereni, a pak 500 hodnot proměnné PoleNamerenychHodnot[1 500]. Výsledkem volání této funkce bude 500 záznamů v databázové tabulce. Ke každé hodnotě pole se přiřadí získaná hodnota z proměnné ZacatekMereni. Kdy je vhodné používat volání DoLogging a kdy LogValues Pokud se ukládají proměnné typu pole, je vhodné používat namísto DoLogging metodu LogValues, neboť v metodě LogValues lze specifikovat, které prvky pole se mají ukládat. Strana 11 / 14
Pokud by měly být hodnoty ukládány v každém cyklu, je vhodné používat metodu DoLogging. Pokud hodnoty nejsou ukládány v každém cyklu, ale v závislosti na nějakých podmínkách, je vhodné používat metodu LogValues. Tak je možné mít pod kontrolou, kdy a která data se budou ukládat. Kdy je výhodné ukládat obsah proměnné typu pole Existují případy, kdy není možné ukládat hodnoty do Process Data Loggeru v každém cyklu InControlu. Například při měření, kdy je nutné před uložením naměřené vzorky zpracovat. V tomto případě je vhodné tyto naměřené vzorky ukládat do proměnné typu pole v rámci InControlu. Tyto proměnné musí být nakonfigurovány pro ukládání na stránce vlastností Symbols. Po ukončení měření je pak možné provést zpracování těchto vzorků a zavolat metodu LogValues. Parametry metody LogValues jsou pak dolní a horní index pole. Horní index pole určuje poslední platnou hodnotu pole pro dané měření. Konfigurace tabulky Na stránce vlastností Symbols se definují symboly, jejichž hodnoty mají být ukládány do databázové tabulky. Ke každému symbolu je automaticky generováno jméno databázového sloupce. Toto jméno je možné modifikovat. Při vložení symbolu prvek automaticky zjistí jeho datový typ a dle něj generuje odpovídající datový typ v tabulce. V prvku není možné konfigurovat typ proměnné ani typ v databázové tabulce, vše se děje automaticky. Do tabulky databáze je možné vložit speciální sloupec ( AUTONUM ), který bude mít jedinečnou hodnotu pro každý záznam. Vytvoření tohoto sloupce se povoluje na stránce vlastností General (Auto Number). Rychlé ukládání (Fast writing) Process Data Logger umožňuje zapisovat záznamy do databáze přes OLE DB rozhraní, ale pro velké množství dat v krátkém čase je tento přístup nevyhovující. Proto prvek umožňuje přímý zápis do tabulek ve formátu DBF. Viz položka Fast Writing To DBF na stránce vlastností General. Při použití přímého zápisu do DBF se zápis záznamů neprovádí přes standardní OLE DB (ODBC) rozhraní, ale prvek pracuje přímo s databázovým souborem (tabulkou). Prvek vytváří a podporuje DBF (dbase) formát verze III. Tento přístup zatěžuje systémové zdroje mnohokrát méně, než přístup přes OLE DB. Pokud není přímý zápis do DBF povolen, prvek ukládá data do databáze pomocí OLE DB. Tímto způsobem je možné ukládat rovněž data do souboru DBF. Protože prvek umí k DBF souborům přistupovat přímo, není tento způsob z výkonnostních důvodů doporučován. Pokud InControl provádí rychlá měření, je vhodné zakázat zápis do databáze (LogToDB := FALSE). V tomto případě prvek ukládá hodnoty z InControlu do vnitřního pole, hodnoty Strana 12 / 14
nejsou během měření ukládány do databáze. Po ukončení měření je pak nutné povolit ukládání do databáze (LogToDB := TRUE). Při přechodu této vlastnosti z FALSE na TRUE se aktivuje samostatné vlákno prvku a začne přesouvat hodnoty z vnitřního pole prvku do tabulky databáze. Pokud je povoleno ukládání do databáze během měření, může nastat situace, že prvek ovlivní periodu cyklu InControlu (scan time). Automatické vytváření tabulek Jména tabulek se generují automaticky podle datumu, předpony a přípony tabulky. Předponu (Table Prefix Name) je možné konfigurovat na stránce vlastností General. Předpona může mít maximálně dva znaky. Dále se ve jménu tabulky nachází rok (pouze dva znaky), měsíc a den. Na poledním místě se nachází přípona. Přípona se tvoří automaticky podle počtu vytvořených tabulek v daném dnu a může mít jeden až dva znaky ( a zz ). Pravidla pro vytváření nových tabulek Nová tabulka se vytvoří vždy, pokud nastane čas Table Start Time a zároveň je ve vlastnosti Create New Table Every nastavena hodnota různá od nuly. Nová tabulka se vytvoří vždy, pokud systémový čas počítače je větší než čas naposledy vytvořené tabulky plus čas definovaný ve vlastnosti Create New Table Every a zároveň je ve vlastnosti Create New Table Every nastavena hodnota různá od nuly. Současný zápis do několika tabulek Prvek umožňuje zápis pouze do jedné tabulky. Zápis do více tabulek je možno provést pouze za použití několika instancí prvku. Pro více instancí je možno používat stejné DSN, pak je ale nutné jména tabulek rozlišit předponou. Vhodnější postup je vytvořit pro každou instanci prvku jiné DSN a pro každé DSN vytvořit jedinečný podadresář. V tomto případě, mohou mít tabulky shodnou předponu. Omezení jmen sloupců v tabulce Pro jména sloupců v databázi lze používat libovolnou kombinaci znaků, které zvolený OLE DB poskytovatel umožňuje. Pro správnou funkci je však nutné vyvarovat se jmen sloupců, které zvolený OLE DB poskytovatel nepodporuje. Pokud použijete chybné jméno sloupce, ve Wonderware Loggeru se vám zobrazí zpráva informující, že nastala chyba v definici položky. Příklad: Pro Microsoft dbase driver nemůžete použít klíčová slova: Time, DATE, Number, Char, FLOAT, LOGICAL, MEMO, NUMERIC, OLEOBJECT aj. Pokud bude použito některé slovo z tohoto výčtu pro název databázového sloupce, ve Wonderware Loggeru se zobrazí následující chybová zpráva [Microsoft][ODBC dbase Driver] Syntax error in field definition. Podporované datové typy Prvek umí ukládat všechny číselné datové typy a také umí ukládat textové řetězce a čas. Strana 13 / 14
Podporované datové typy: BOOL, BYTE, DINT, DWORD, INT, LREAL, REAL, SINT, STRING, TOD, WORD. Dodavatel Pantek (CS) s.r.o. Pantek (CS) s.r.o., pobočka Ostrava Škroupova 957 28. října 150 Hradec Králové Ostrava 500 02 702 00 Tel.: +420-(0)49-5635 072 až 3 Tel.: +420-(0)69-6602 378 E-mail: info@pantek.cz E-mail: pklen@pantek.cz http://www.pantek.cz http://www.pantek.cz Strana 14 / 14