Promotic

Pierwszy skrypt

Teraz jest konieczne osiągnąć to, by co każdą sekundę do wartości temperatury została doliczona stała wartość (np. 3).

Funkcje skryptu:
- Jeżeli wartość temperatury jest mniejsze niż temperatura maksymalna (np. 100), wtedy do właściwości Value zmiennej "Temperature" dolicz stałą wartość.
- Jeżeli wartość temperatury jest wyższa (lub równa) aniżeli temperatura maksymalna, wtedy do właściwości Value zmiennej "Temperature" przyszereguj minimalną wartość temperatury (np. 0).
- Powtarzanie pętli.


Dlatego w zdarzeniu onTick jest konieczne wykonać następujące kroki:

1. Wytworzenie zmiennych

Do zdarzenia onTick do jego obszaru w prawej części karty "Zdarzenia" do 1. wiersza wprowadź skrypt:

JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oTemper;


Tym skryptem w algorytmie zdefiniowałeś zmienną oTemper, którą będzie reprezentować obiekt "Temperature".

Nazwa zmiennej w skrypcie nie mogą zawierać spacji, znaków diakrytycznych ani znaków specjalnych. Jest dobrym zwyczajem mieć w nazwie zmiennej pierwszą małą literę początkową, która oddaje charakter zmiennej, np.
n = number (liczba)
b = boolean
s = string (tekst)
o = object - w naszym przypadku oTemper, itd.
a = array - tablica wartości, itd.


Zauważ również, że przy zmiennych nie definiowałeś, jakiego typu danych są te zmienne. Każda zmienna jest typu Variant, co oznacza zmienną, która zawiera w sobie nie tylko wartość ale również typ danych. Po wytworzeniu zmienna jest pusta (typ danych jest undefined). Dopiero po przyszeregowaniu (które wykonasz za chwilę) zmienna stwierdzi jaka wartość jest do niej przyszeregowywana i według tego ustawi swój typ danych.

2. Przyszeregowanie obiektu "Temperature"

Do 2. wiersza wprowadź skrypt:

JavaScriptVBScriptWybierz oraz skopiuj do schowka

oTemper = pMe.Pm("../Data/#vars/Temperature");


Do zmiennej oTemper jest przyszeregowywana wartość, która jest typu Object.

Notatka dla JavaScript: Te dwa wiersze można skrócić do jednego wiersza w formie: var oTemper = pMe.Pm("../Data/#vars/Temperature");
Notatka dla VBScript: Polecenie Set przed przypisywaną zmienną musi zostać zastosowane tylko przy przypisywaniu obiektu.


Każde zdarzenie każdego obiektu w systemie PROMOTIC posiada parametr (zmienną) pMe. Parametr ten posiada typ danych Object i jest ustawiony przez system PROMOTIC na obiekt, w którym dane zdarzenie powstaje.
W przypadku zdarzenia onTick w obiekcie Emul jest parametr pMe ustawiony na obiekt Emul.
Każdy obiekt posiada metodę Pm. Metoda ta posiada jeden parametr, tym jest tekst (String), który przedstawia ścieżkę w drzewie Pma obiektów do wymaganego Pma obiektu (tekst jest ograniczony cudzysłowem, dzięki czemu skrypt rozpozna, że chodzi o wartość typu String).

W systemie PROMOTIC można zastosować dwa sposoby adresacji (tzn. sposób określania ścieżki do obiektu):
- bezwzględną adresację - przebiega zawsze z obiektu PmaRoot, zawsze rozpoczyna się ukośnikiem. (na przykład "/BoilerPlant/Boiler1/Data/#vars/Temperature")
- względna adresacja - przebiega zawsze z obiektu, w któryma jest wołana metoda Pm. (na przykład "../Data/#vars/Temperature")


Mankamentem adresacji bezwzględnej jest to, że przy zmianie struktury w drzewie Pma obiektów w taki sposób uzyskany obiekt może stać się nieaktualnym. Na przykład z "Boiler1" możesz poprzez skopiowanie wytworzyć nowy obiekt "Boiler2" (w aplikacji tego narazie nie wykonuj). W "Boiler2" by wtedy były identyczne objekty jak w "Boiler1" (włącznie wszystkich ustawień). W przypadku zastosowania bezwzględnej adresacji by skrypt w "Boiler2" pracował z watościami w "Boiler1". Przy zastosowaniu adresacji względnej by w danym przykładzie problem nie nastąpił.

Notatka: Zamiast pisać skrypt z palca możesz skorzystać z wizarda do pisania skryptów, który ci może znacząco uprościć ich pisanie.
Wizard pisania skryptów można wywołać kliknięciem prawym przyciskiem myszki w obszarze edytora skryptu, w wyświetlonej liście wybierz pozycję "Skrypt Wizard ..." i ponieważ chcemy wytworzyć odniesienie do obiektu, dlatego dalej wybierz "Pma obiekt - odniesienie".
W wyświetlonym oknie w konfiguratorze "Zmienna" wprowadź nazwę zmiennej, do której ma zostać przyszeregowane odniesienie do obiektu (oTemper).
W konfiguratorze "Wartość" wybierz (przy pomocy przycisku z trzemi kropkami) wymagany obiekt (zmienna Temperature w obiekcie PmaData) oraz zaznacz konfigurator "Ścieżka względna".
Wizard umożliwia również wytworzenie (dewklarację) zmiennej, co w naszym przypadku nie zastosujemy - zmienną wytworzyłeś już wcześniej.

3. Sprawdzenie oraz ustawienie wartości obiektu "Temperature"

W następnych wierszach wprowadź skrypt:

JavaScriptVBScriptWybierz oraz skopiuj do schowka

if (oTemper.Value >= 100)
{
oTemper.Value = 0;
}
else
{
oTemper.Value += 3;   // += skrócona wersja zapisu oTemper.Value = oTemper.Value + 3;
}


W tej części skryptu jest zastosowane polecenie if. Polecenie to umożliwia wykonanie grupy poleceń, jeżeli określony warunek zostanie spełniony (wartość temperatury jest większe niż 100°C) lub ewentualnie innej grupy poleceń, jeżeli określony warunek nie zostanie spełniony (wartość temperatury jest mniejsze niż 100°C).

Tu jest praktycznie po raz pierwszy wykorzystany dostęp do właściwości obiektu, który został wcześniej teoretycznie objaśniony - tzn. sposób ustawiania właściwości obiektu, kiedy pisze się Obiekt.NazwaWłaściwości.
Znajduje się tu jak odczyt z tak i zapis wartości do właściwości Value.
Obiekt "Temperature" (typu PmVar) posiada większą ilość właściwości (np. właściwość Note, Unit, itd.), jednak zapewne najważniejszą jest właściwość Value. Właściwość zwraca wartość temperatury (typu Single – tak jak to wprowadziłeś w obiekcie "Temperature").


Właśnie dokończyleś swój pierwszy skrypt w systemie PROMOTIC. W obiekcie "Temperature" w karcie "Zdarzenia" przy wybranym zdarzeniu onTick powinieneś mieć w prawej części tej karty zapisany tekst:

JavaScriptVBScriptWybierz oraz skopiuj do schowka

var oTemper = pMe.Pm("../Data/#vars/Temperature");
if (oTemper.Value >= 100)
{
oTemper.Value = 0;
}
else
{
oTemper.Value += 3;
}


Wszystkie zmiany potwierdź przy pomocy przycisku .

Teraz możesz uruchomić aplikację.
© MICROSYS, spol. s r. o.