Promotic
WikipediaLinkedInYoutubeTwitterFacebook

První skript

Nyní je potřeba docílit toho, ať se každou sekundu přičte k hodnotě teploty konstantní hodnota (např. 3).
 
Funkce skriptu:
 
- pokud je hodnota teploty menší než maximální teplota (např. 100) pak do vlastnosti Value proměnné "Teplota" přičíst konstantní hodnotu
- pokud je hodnota teploty větší (nebo rovna) než maximální teplota (např.. 100) pak do vlastnosti Value proměnné "Teplota" přiřadit minimální hodnotu teploty (např. 0)
- opakovat cyklus
 
V události onTick je proto potřeba provést následující kroky:
 
1. vytvoření proměnných
 

Do události onTick do plochy v pravé části záložky Události napište na 1.řádek skript:

 
Dim oTeplota
 
Tímto skriptem jste v algoritmu založili proměnnou oTeplota, kterou bude představovat objekt "Teplota".
 
Název proměnné ve skriptu nesmí obsahovat mezery, diakritiku a speciální znaky. Je dobrým zvykem mít v názvu proměnné první malé počáteční písmeno, které vystihuje charakter proměnné, např.
n = number (číslo)
b = boolean
s = string (text)
o = object - v našem případě oTeplota,
a = array - pole hodnot, atd.
 
Všimněte si také, že jste u proměnné nedefinovali datový typ. Každá proměnná v jazyku VBScript je totiž tzv. Variant, což je proměnná, která má v sobě nejen hodnotu, ale i datový typ. Při založení je proměnná prázdná (datový typ je Empty). Teprve při přiřazení (které budete dělat za chvíli) proměnná pozná co je jí přiřazováno a podle toho nastaví i svůj datový typ.
 
2. přiřazení objektu "Teplota"
 

Na 2.řádek napište skript:

 
Set oTeplota = pMe.Pm("../Data/#vars/Teplota")
 
Do proměnné oTeplota se přiřazuje hodnota, která je nyní typu Object. Pouze u přiřazování objektu vyžaduje VBScript napsat příkaz Set před přiřazovanou proměnnou.
 
Každá událost každého objektu v systému PROMOTIC má parametr (proměnnou) pMe. Tento parametr je datového typu PmObject a je nastaven systémem PROMOTIC na referenci na objekt, ve kterém daná událost vzniká. V případě události onTick v objektu "Emul" je tedy parametr pMe nastaven na objekt "Emul". Každý objekt má metodu Pm. Tato metoda má jeden parametr, což je text (String), představující cestu v aplikačním stromu k požadovanému PROMOTIC objektu (text je uzavřen do uvozovek čímž VBScript pozná, že se jedná o hodnotu typu String). V systému PROMOTIC lze použít dvojí způsob adresování:
 
- absolutní adresování – probíhá vždy od objektu PmRoot, vždy začíná lomítkem.
- relativní adresování - probíhá vždy od objektu, ve kterém je metoda Pm volána.
 
Nevýhodou absolutního adresování je, že při změně struktury stromu aplikace se takto získané reference na objekt mohou stát neplatnými. Například z "Kotel1" můžete kopírováním vytvořit nový objekt "Kotel2" (v aplikaci toto zatím nedělejte). V "Kotel2" by pak byly úplně stejné objekty jako v "Kotel1" (včetně všech nastavení). V případě použití absolutního adresování by skript v "Kotel2" pracoval s hodnotami v "Kotel1". Při použití relativního adresování by problém v použitém příkladě nenastal.
 
Poznámka: Místo ručního psaní skriptu můžete použít také průvodce psaním skriptů, který může významně usnadnit psaní skriptů. Průvodce psaním skriptů je možné vyvolat kliknutím pravého tlačítka myši na ploše editoru skriptů, v zobrazené lokální nabídce vyberte položku "Skript průvodce ..." a protože chceme vytvořit odkaz na objekt, proto dále zvolte "PROMOTIC objekt (Set)". V zobrazeném okně v konfigurátoru "Proměnná" zadejte název proměnné, do které se má přiřadit odkaz na objekt (oTeplota). V konfigurátoru "Hodnota" pomocí tlačítka se třemi tečkami vyberte požadovaný objekt (proměnná Teplota v objektu PmData) a zatrhněte konfigurátor "Relativní cesta vzhledem k". Průvodce umožňuje i vytvoření (deklaraci) proměnné, což v našem případě nepoužijeme – proměnnou jste si vytvořili už dříve.
 
3. ověření a nastavení hodnoty Teplota
 

Na další řádky napište skript:

 
If oTeplota.Value >= 100 Then
   oTeplota.Value = 0
   oTeplota.Value = oTeplota.Value + 3
 
Tato část skriptu používá podmíněný příkaz If If...Then...Else. Příkaz umožňuje provedení skupiny příkazů, pokud bude splněná zadaná podmínka (hodnota teploty je větší než 100°C) nebo případně jiné skupiny příkazů, pokud zadaná podmínka nebude splněna (hodnota teploty je menší než 100°C).
 
Zde se poprvé prakticky používá přístup k vlastnosti objektu, který byl teoreticky vysvětlen dříve – tj. způsob zadávání vlastnosti objektu, kdy se píše Objekt.NázevVlastnosti. Je zde jak čtení tak zápis hodnoty vlastnosti Value. Objekt "Teplota" (typu Var) má více vlastností (např. vlastnost Note, Bit, atd.), určitě nejdůležitější vlastnost je však Value. Tato vlastnost vrací hodnotu teploty (datového typu Single – tak jste to zadali v objektu "Teplota").
 
Právě jste dokončili svůj první skript v systému PROMOTIC. V objektu "Teplota" v záložce Události při označené události onTick byste teď měli mít v pravé části této záložky napsán text:
 
Dim oTeplota
Set oTeplota = pMe.Pm("../Data/#vars/Teplota")
If oTeplota.Value >= 100 Then
   oTeplota.Value = 0
   oTeplota.Value = oTeplota.Value + 3
 
Nyní můžete spustit aplikaci.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice