Zmienne i komentarze w skryptach
Kurs Industrial Graphics w oprogramowaniu AVEVA, odc. 26
Kontakt w sprawie artykułu: Mateusz Zajchowski - 2026-07-27

W poprzednim odcinku poznaliśmy podstawy skryptów. Teraz dowiemy się więcej o zmiennych lokalnych i komentarzach w skryptach.
Kurs projektowania symboli Industrial Graphics w oprogramowaniu wizualizacyjnym AVEVA
1. Wprowadzenie do Industrial GraphicsZmienne lokalne są używane w konkretnym skrypcie i nie są dostępne w żadnym innym miejscu aplikacji. Aby użyć zmiennej lokalnej, musimy ją zadeklarować w konkretnym skrypcie. Istnieje ona przez cały czas wykonywania skryptu, a następnie znika. Jeżeli skrypt jest cykliczny, w każdej iteracji zmienna jest powoływana do życia od nowa. Jeżeli w dwóch skryptach zdefiniujemy zmienne o tej samej nazwie, będą one od siebie całkowicie niezależne.
Jeżeli nie zadeklarujemy zmiennej, próba jej użycia spowoduje błąd. Jest to widoczne już w edytorze – niezdefiniowane symbole są oznaczane bordowym wytłuszczeniem.

Aby zadeklarować zmienną, używamy słowa kluczowego dim. Najprostsza postać wygląda tak:
dim mojaZmienna;
Taki zapis deklaruje zmienną o nazwie mojaZmienna, brak informacji o typie powoduje, że przyjmowany jest typ domyślny, czyli Integer. W nazwach wielkość liter nie ma znaczenia (mojaZmienna to to samo, co np. mojazmienna lub MojaZmienna).
Jeżeli chcemy zadeklarować zmienną innego typu, musimy to zrobić w następujący sposób:
dim nazwa as typ;
Obsługiwanych jest wiele typów. Wśród nich znajdziemy wszystkie podstawowe typy takie, jak boolean, integer, float, double, time, czy string. Ale obsługiwane są również bardziej rozbudowane typy, takie jak struktury czy klasy .NET.
Nazwy zmiennych mogą mieć do 255 znaków. Można w nich używać liter, cyfr oraz znaku podkreślenia _. Nazwy zmiennych obsługują kodowanie znaków Unicode, więc możliwe jest użycie znaków z alfabetów narodowych, nawet z takich języków, jak japoński.

Zmienne boolean przyjmują wartości true lub false (prawda lub fałsz), ale akceptowane jest również przypisywanie do nich 1 (co odpowiada true) lub 0 (co odpowiada false).
Typ time może przechowywać datę i czas. Funkcja skryptowa Now() zwraca aktualny czas, który możemy przypisać do zmiennej tego typu.

Za pomocą słowa kluczowego dim możemy również deklarować tablice zmiennych lokalnych, o maksymalnie trzech wymiarach. Tablice w QuickScript.NET są indeksowane od 1, co oznacza, że pierwszy element ma indeks 1 (a nie od 0, jak w wielu innych językach, takich jak Python czy C++). Podobnie jak w przypadku pojedynczej zmiennej, pominięcie klauzuli as typ spowoduje, że zostanie zadeklarowana tablica liczb całkowitych.

Zobaczmy bardziej złożony przykład skryptu, który używa zmiennej obiektowej i klasy .NET.

Jest to skrypt wykonywany w momencie, gdy zdefiniowana w aplikacji zmienna submit zmienia wartość na True czyli 1. W pierwszej linii:
dim speaker as System.Speech.Synthesis.SpeechSynthesizer;
deklarowana jest zmienna speaker, która będzie obiektem klasy .NET System.Speech.Synthesis.SpeechSynthesizer, który reprezentuje syntezator mowy. Druga linijka tego skryptu:
speaker = new System.Speech.Synthesis.SpeechSynthesizer;
jest odpowiedzialna za utworzenie konkretnej instancji obiektu za pomocą słowa kluczowego new. Jest to mechanizm dobrze znany z języków takich, jak C++, C# czy Java. W trzeciej linii:
speaker.SpeakAsync(wordtosay);
wywoływana jest metoda SpeakAsync() zdefiniowana w klasie System.Speech.Synthesis.SpeechSynthesizer. Metoda ta powoduje wypowiedzenie przez syntezator określonego tekstu. Argument wordtosay jest właściwością Custom Property typu String, zdefiniowaną w symbolu, dla którego został utworzony ten skrypt.
Ostatnia linia zeruje zmienną submit, aby skrypt wykonał się tylko jeden raz.
Uruchamiamy aplikację. Wartość pisana w polu edycyjnym jest powiązana z właściwością wordtosay, natomiast przycisk powoduje ustawienie wartości zmiennej submit na True. W efekcie po naciśnięciu przycisku syntezator wypowiada to, co wpiszemy w tym polu.

Teraz przyjrzyjmy się komentarzom. Są one pomocne w dokumentowaniu skryptu, co jest szczególnie istotne, gdy wracamy do skryptu po dłuższym czasie, albo gdy nad skryptem pracuje wiele osób. Wszystko, co znajduje się w komentarzach, jest pomijane podczas wykonywania skryptu.
W skryptach QuickScript.NET można używać komentarzy wielowierszowych oraz jednowierszowych. Komentarze wielowierszowe są zamknięte symbolami klamry {}. W tej sposób można również tymczasowo „wyłączyć” fragment skryptu bez jego usuwania – wystarczy objąć go klamrami, a przestanie być wykonywany.

Komentarz jednowierszowy zaczyna się od znaku apostrofu ‘. Może on obejmować całą linię albo jej część – pomijane jest wszystko począwszy od znaku apostrofu aż do końca danej linii. Kolejna linia będzie już wykonywana normalnie.

W kolejnym, ostatnim już odcinku dowiemy się, jak używać zewnętrznych bibliotek .NET w skryptach.