Promotic
WikipediaLinkedInYoutubeTwitterFacebook

První skript

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;
 
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");
 
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 je datového typu 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 metoda Pm volána. (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ů je možné 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:
 
JavaScriptVBScriptVyber a zkopíruj do schránky

if (oTemper.Value >= 100)
oTemper.Value = 0;
else
oTemper.Value += 3;  //+= je zkrácená verze zápisu oTemper.Value = oTemper.Value + 3;
 
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. Tato 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:
 
JavaScriptVBScriptVyber a zkopíruj do schránky

var oTemper = pMe.Pm("../Data/#vars/Temperature");
if (oTemper.Value >= 100)
oTemper.Value = 0;
else
oTemper.Value += 3;
 
Veškeré změny potvrďte tlačítkem .
 
Nyní můžete spustit aplikaci.
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice