Promotic
WikipediaLinkedInYoutubeTwitterFacebook

PmPrototype - Podrobný popis objektu

Viz: Objekt PmPrototype
 
Zjednodušeně si lze funkci objektů PmPrototype a PmInstance představit tak, že při startu aplikace dojde k automatickému rozkopírování obsahu příslušného prototypu do všech instancí, které tento vzor používají.

Výhoda konceptu prototypů a instancí je, že k rozkopírování prototypu do všech instancí dochází automaticky při každém spuštění aplikace, takže změna provedená v prototypu se projeví automaticky při příštím spuštění i ve všech instancích. Obsah originálního prototypu existuje pouze ve vývojovém prostředí, v běžící aplikaci neexistuje. Existují pouze jeho kopie v jednotlivých instancích.

 
Parametrizovatelné prototypy:

Většinou je potřeba zajistit, aby se jednotlivé instance téhož prototypu od sebe mírně odlišovaly. Zejména se jedná o odlišné zobrazované texty, inicializační hodnoty konstant, napojení vazeb na veličiny, vlastní soubory nebo databázové tabulky, skupiny trendů, alarmů, eventů nebo odlišnosti ve skriptech. K tomuto účelu slouží Parametry PROMOTIC objektu, kdy lze ve vzoru definovat sadu parametrů a konkrétní instance pak nastaví skutečnou hodnotu těchto parametrů, platných pro tuto instanci. K definování parametrů objektů PmPrototype a PmInstance slouží konfigurátor Parametry PROMOTIC objektu. K odkazu na hodnoty parametrů PROMOTIC objektu lze v konfigurátorech objektu použít Makro výraz $.par a ve skriptech je možno použít metodu PmObject.GetPar. Důležité pro zjištění hodnoty parametru je, že při zjišťování hodnoty konkrétního parametru se parametr hledá od daného objektu, přes jeho rodiče kaskádním způsobem (bubláním).

 

Upozornění pro prototypy a instance: Pro objekt PmInstance platí, že přejímá pouze parametry příslušného objektu PmPrototype, kterým může (ale nemusí) zadat změněné hodnoty. Tzn. že instance může pouze měnit hodnoty existujících parametrů příslušného prototypu. Instance, ale ani rodiče instance, nesmí přidávat parametry nové. Instance (prototyp) má přístupné pouze parametry definované v prototypu, nemá přístup k parametrům rodiče instance. Tím je zajištěno, že všechny instance téhož prototypu mají stejnou sadu parametrů i když s různými hodnotami. Objekt PmInstance je tedy vyjímečný z hlediska hledání parametrů (bublání) tím, že na tomto objektu hledání parametrů končí a nepokračuje k rodiči objektu PmInstance. Z hlediska parametrů je tedy instance prototypu izolována od parametrů zbytku aplikace. Pokud je potřeba získat hodnotu parametru pro prototyp z rodičů instance, potom je nutno tento parametr v objektu PmPrototype založit (se stejným nebo jiným jménem) a na parametr rodiče instance se odkázat buď zde nebo v objektu PmInstance. Odkaz na parametr rodiče se provede jako Makro výraz $.par v hodnotě parametru instance nebo prototypu.

Například v prototypu založíme nový parametr boiler, jehož hodnotu nastavíme na hodnotu parametru boiler rodiče instance: boiler:$.par("boiler");

 
Vztah parametrů PROMOTIC objektů a grafických prvků:

Důležité je, že lze předat parametr PROMOTIC objektu do obrazu jako grafického prvku. Princip je, že parametr PROMOTIC objektu se nedostane dovnitř obrazu automaticky (grafický prvek přímo "nevidí" parametr, který je definován mimo obraz). V obraze je nutno založit příslušný parametr v grafickém prvku PmiRoot a při otevření obrazu jej nastavit na hodnotu parametru PROMOTIC objektu. Toho lze dosáhnout:

- pomocí parametru sParams metody OpenView nebo
- pomocí makro výrazu v konfigurátoru obrazu Výchozí hodnota sParams.

 
Využití konceptu prototypu a instancí:

Koncept prototypu a instancí je velmi vhodný pro situace, kdy se v apliaci vyskytne několik velmi podobných nebo shodných celků. Například aplikace monitoruje 5 kotlů, kdy jednotlivé kotle jsou v podstatě totožné a část aplikace týkající se jednoho kotle se skládá z komunikace s příslušným PLC, dat kotle, trendování, alarmů, eventů a grafické obrazovky.

Nyní stačí založit prototyp "Kotel" představující jeden kotel, implementující kompletně funkčnost jednoho kotle (komunikaci, zobrazení, trendy a alarmy) a vytvořit 5 instancí tohoto prototypu s názvy "Kotel1", "Kotel2", atd. Pro postihnutí odlišností jednotlivých instancí se založí nezbytný počet parametrů PROMOTIC objektu. Nejdůležitější by byl parametr reprezentující číslo kotle, ale mohla by tam být i IP adresa PLC, atd.

 
Upozornění! U všech objektů v prototypu je potřeba zajistit jedinečnost globálních názvů a systémových prostředků (identifikátory, názvy, soubory, adresy, databázové tabulky, atd.), nejlépe použít Makro výraz $.par. Týká se to zejména objektů PmTrend, PmAlarmEvent, PmAdo, PmDatabase, objektů zpřístupněných do webu nebo v síti, atd.

Například u trendů, alarmů i eventů je nutno parametrizovat identifikátor skupiny, zobrazovaný název skupiny, název souboru a adresáře, název databáze, tabulky, kam komponenta ukládá data. Pokud se toto neprovede, potom je to stejné, jako by ve vývojovém prostředí byly vyrobeny dvě komponenty se stejným nastavením. Pak si navzájem začnou přepisovat data nebo se nepodaří globálně zaregistrovat pod stejným identifikátorem, atd.

Navigace:
 
 
- PmPrototype - Podrobný popis objektu
 
 
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice