Nyní je nutno docílit toho, ať se každou sekundu přičte k hodnotě teploty konstantní hodnota (např. 3).
Funkce skriptu:
- Pokud hodnota teploty je
menší než maximální teplota (např. 100), pak do vlastnosti
Value proměnné "Temperature" přičíst konstantní hodnotu.
- Pokud hodnota teploty je
větší (nebo rovna) než maximální teplota, pak do vlastnosti
Value proměnné "Temperature" přiřadit minimální hodnotu teploty (např. 0).
- Opakovat cyklus.
V události
onTick je nutno provést následující kroky:
1. Vytvoření proměnných
Do události
onTick do plochy v pravé části karty "
Události" zadejte na 1. řádek skript:
JavaScriptVBScriptVyber a zkopíruj do schránky
var oTemper;
Dim oTemper
Tímto skriptem jste v algoritmu založili proměnnou
oTemper, kterou bude představovat objekt
"Temperature".
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ě oTemper,
a = array - pole hodnot, atd.
Všimněte si také, že jste u proměnné nedefinovali datový typ. Každá proměnná 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
undefined). 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 "Temperature"
Na 2. řádek zadejte skript:
JavaScriptVBScriptVyber a zkopíruj do schránky
oTemper = pMe.Pm("../Data/#vars/Temperature");
Set oTemper = pMe.Pm("../Data/#vars/Temperature")
Do proměnné
oTemper se přiřazuje hodnota, která je nyní typu
Object.
Poznámka pro
JavaScript: Tyto dva řádky můžete zkrátit na jeden řádek ve tvaru:
var oTemper = pMe.Pm("../Data/#vars/Temperature");
Poznámka pro
VBScript: Příkaz
Set před přiřazovanou proměnnou se musí uvést pouze u přiřazování
objektu.
Každá událost každého objektu v systému PROMOTIC má parametr (proměnnou)
pMe. Tento parametr má datový typ
Object a je nastaven systémem PROMOTIC 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), který představuje cestu ve stromu
Pma objektů k požadovanému
Pma objektu (text je uzavřen do uvozovek čímž skript pozná, že se jedná o hodnotu typu
String).
V systému PROMOTIC lze použít dvojí způsob adresování (tzn. způsob zadávání cesty k objektu):
-
absolutní adresování – probíhá vždy z objektu
PmaRoot, vždy začíná znakem lomítko. (například
"/BoilerPlant/Boiler1/Data/#vars/Temperature")
-
relativní adresování - probíhá vždy z objektu, ve kterém je volána metoda
Pm. (například
"../Data/#vars/Temperature")
Nevýhodou absolutního adresování je, že při změně struktury ve stromu
Pma objektů se takto získaný objekt může stát neplatným. Například z "Boiler1" můžete kopírováním vytvořit nový objekt "Boiler2" (v aplikaci toto zatím nedělejte). V "Boiler2" by pak byly úplně stejné objekty jako v "Boiler1" (včetně všech nastavení). V případě použití absolutního adresování by skript v "Boiler2" pracoval s hodnotami v "Boiler1". 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ů lze vyvolat kliknutím pravým tlačítkem 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 (referenci) na objekt, proto dále vyberte "Pma objekt - reference".
V zobrazeném okně v konfigurátoru "Proměnná" zadejte název proměnné, do které se má přiřadit odkaz na objekt (oTemper).
V konfigurátoru "Hodnota" vyberte (pomocí tlačítka se třemi tečkami) požadovaný objekt (proměnná Temperature v objektu PmaData) a zatrhněte konfigurátor "Relativní cesta".
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 objektu "Temperature"
Na další řádky zadejte skript:
Tato část skriptu používá podmíněný příkaz
if. Příkaz umožňuje provedení skupiny příkazů, pokud zadaná podmínka bude splněna (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 – tzn. způsob zadávání vlastnosti objektu, kdy se píše
Objekt.NázevVlastnosti.
Je zde jak čtení tak zápis hodnoty do vlastnosti
Value.
Objekt
"Temperature" (typu
PmVar) má více vlastností (např. vlastnost
Note,
Unit, atd.), určitě nejdůležitější je však vlastnost
Value. Vlastnost vrací hodnotu teploty (typu
Single – tak jste to zadali v objektu
"Temperature").
Právě jste dokončili svůj první skript v systému PROMOTIC. V objektu
"Temperature" v kartě "
Události" při označené události
onTick byste teď měli mít v pravé části této karty napsán text:
Veškeré změny potvrďte tlačítkem

.
Nyní můžete spustit aplikaci.