Podstawy pisania skryptów dla paneli Astraada HMI
Kontakt w sprawie artykułu: Mateusz Fas - 2023-03-01
Z tego artykułu dowiesz się:
- czym są skrypty w panelach operatorskich Astraada HMI,
- jakie są rodzaje skryptów i jak można je wywoływać,
- jak wygląda składnia języka skryptowego,
- jakich typów danych, operatorów i instrukcji możesz użyć w skryptach.
Makra, czyli niewielkie skrypty, wykorzystywane są w programowaniu paneli operatorskich Astraada HMI, aby usprawnić działanie aplikacji i dodać jej funkcjonalności. Dzięki nim programista może choćby zawrzeć w swojej aplikacji nieskomplikowaną logikę. Składnia makr podobna jest do klasycznego języka C, dlatego każdy, kto miał już kiedyś styczność z programowaniem, nie powinien mieć najmniejszego problemu ze zrozumieniem, jak pisać w pełni funkcjonalne i użyteczne makra. W tym artykule opisujemy rodzaje makr oraz ich najpopularniejsze funkcje i instrukcje wraz z przykładami.
Rodzaje makr
Global Macro
Jest to makro, które może być używane przez wszystkie aplikacje panelowe w tym samym projekcie. Dzięki niemu aplikacje w projekcie mogą dzielić wspólne funkcje bez konieczności posiadania tego samego zestawu makr lokalnie. W makrach globalnych można używać tylko zmiennych wewnętrznych.
Local Macro
Może być używane jedynie przez aplikację, w której się znajduje.
Sub-macro
To rodzaj makra, które może być uruchamiane przez inne makra, za pomocą polecenia CALL. Po jego napotkaniu podczas wykonywania makra nadrzędnego, program zaczyna wykonywać makro podrzędne. Ostatnie polecenie w Sub-macro musi być poleceniem RET, które zwraca sterowanie do makra nadrzędnego. Program zacznie się wtedy wykonywać od następnego polecenia po poleceniu CALL.
Poprzez implementację wspólnych funkcji w makrach podrzędnych dla innych makr, twoje programy mogą być podzielone na łatwe do zrozumienia i utrzymania moduły.
Sposoby wywoływania makr
W jednej aplikacji na panel HMI Astraada może znajdować się wiele oddzielnych makr. Każde z nich może być wywoływane na jeden z poniższych sposobów:
Startup Macro
Jest ono uruchamiane tylko raz podczas startu aplikacji. Panel HMI nie wyświetli ekranu startowego, dopóki to makro nie zostanie zakończone. Możesz użyć go, aby zainicjować globalne dane i ustawienia startowe aplikacji. Makro startowe ustawiasz w zakładce General Setup.
Main Macro
Makro, które jest uruchamiane cyklicznie przez cały czas działania aplikacji. Jest ono wybierane w zakładce General Setup.
Event Macro
Jest ono uruchamiane w odpowiedzi na zdarzenie, które sygnalizowane jest załączeniem konkretnego bitu. W jednej aplikacji można umieścić maksymalnie cztery makra tego typu. Definiujemy je w zakładce General Setup.
Time Macro
Jest to makro uruchamiane okresowo zgodnie z konfigurowalnym interwałem czasowym. Aplikacja może posiadać maksymalnie cztery takie makra. Każde z nich posiada inny zestaw opcji przedziałów czasu, które można wybrać w celu określenia częstotliwości uruchamiania tego makra. Konfiguracji makr czasowych dokonujemy w zakładce General Setup.
To są najczęściej używane i najpopularniejsze rodzaje makr używanych w aplikacjach na panele HMI. Nie są to jednak wszystkie rodzaje. Poza nimi wyróżniamy:
- Open Macro, Cycle Macro, Close Macro – wykorzystywane do zarządzania ekranami,
- On Macro, Off Macro, Object Macro – wykorzystywane do zarządzania obiektami,
- Query Processing Macro – wykorzystywane do zarządzania alarmami,
- Data Logging Macro – wykorzystywane do zarządzania Data Loggerami,
- Start Macro, End Macro – wykorzystywane do obsługi harmonogramów.
Więcej o każdym z nich możesz dowiedzieć się w Pomocy oprogramowania Astraada HMI CFG.
Składnia
Składnia makr jest podobna do składni języka C. NIE wymaga jednak używania średników na końcu poleceń.Wcięcia nie mają zasadniczo znaczenia, są one jednak ułatwieniem dla programisty, dlatego zalecamy ich stosowanie. Deklaracji zmiennych symbolicznych nie dokonuje się ramach konkretnych makr, można to zrobić w oknie Tags, bądź „w locie” korzystając z wygodnego edytora.
Podczas wprowadzania stałych używamy sufiksów w formie liter K, k, D lub d do określenia, że to liczba całkowita, litery B lub b do określenia bitu oraz liter F lub f do liczb zmiennoprzecinkowych. Bez sufiksu kompilator może rozpoznać te liczby jako adresy.
Istnieją dwa sposoby zapisu komentarzy. Komentarz jednoliniowy może rozpoczynać się od dwóch znaków dzielenia //. Komentarz wieloliniowy powinien być zapisany pomiędzy znakami /* a * /.
Dowiedz się więcej na temat paneli HMI.
Typy danych
Notacja służąca do wskazywania typu zmiennej lub stałej, który może być akceptowany dla określonego argumentu funkcji (za pomocą tych znaków opisywane są argumenty funkcji w edytorze):
Notacja służąca do określania typu danych zwracanego przez funkcję:
Operacje matematyczne
Operacje arytmetyczne
Pozostałe operacje arytmetyczne mają identyczną budowę. Są to odejmowanie (-), mnożenie (*), dzielenie (/) oraz reszta z dzielenia (%).
Inne operacje matematyczne
Operacji matematycznych dostępnych w oprogramowaniu Astraada HMI CFG jest wiele. Od najbardziej podstawowych (np. wyliczanie pierwiastka – SQRT, wyliczanie potęgi POW) do bardziej wymagających (ASIN, ATAN, TAN – kolejno arcus sinsus, arcus cosinus, tangens). Listę wszystkich dostępnych operacji matematycznych znajdziesz w User Manual w rozdziale 15 w zakładkach Calculation oraz Math Operation.
Operacje logiczne
OR ( || )
AND ( && )
EXOR ( ^ )
Zaprzeczenie ( ! )
Oczywiście nie są to wszystkie dostępne operacje logiczne. Więcej ich znajdziesz w User Manual w rozdziale 15 w zakładce Logical Operation.
Instrukcja warunkowa IF
Instrukcja wybiera rozwiązanie w zależności od tego, który warunek jest prawdziwy. Jeżeli żaden nie jest prawdziwy, program wykonuje polecenia zawarte pomiędzy instrukcjami ELSE i ENDIF. Warunkiem mogą być klasyczne porównania znane z języka C (==, <=, <, itp.) lub konkretne zmienne binarne z programu.
Pętla FOR
Pętla FOR realizuje w makrach swoje podstawowe zadanie – wykonywanie jednej komendy określoną liczbę razy. Jej koniec wyznacza polecenie NEXT. Powyżej pokazano przykład jej użycia w postaci dwóch zagnieżdżonych pętli.
Skok programu – Instrukcja JMP
Po jej napotkaniu program przeskakuje do fragmentu makra oznaczonego odpowiednią etykietą. Ma dwie postacie: bezwarunkową i warunkową.
Zarządzanie ekranami
Możesz zarządzać ekranami z poziomu makra. Służą do tego polecenia OpenScreen oraz CloseScreen.
Z poziomu programu możesz także ustawić czas, po jakim włączy się wygaszacz ekranu. Służy do tego komenda SetScreenSaver, która jako parametr przyjmuje czas oczekiwania w minutach.
Podsumowanie
Powyżej przedstawiono jedynie podstawowe informacje dotyczące składni makr, aby móc rozpocząć samodzielnie pracę z nimi. Więcej informacji na ten temat można znaleźć w User Manual programu Astraada HMI CFG, w rozdziale 15. Jest on w całości poświęcony pisaniu i konfigurowaniu makr. Znajdziesz tam bardziej zaawansowane instrukcje logiczne, matematyczne oraz polecenia używane do sterowania programem. Wszystkie pokazane są z przykładowym zastosowaniem oraz wyjaśnieniem, jak dokładnie działają.
Sprawdź ofertę paneli operatorskich sklepie internetowym firmy ASTOR.