Strona główna ASTOR
Automatyka w praktyce

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 * /.

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ą.

Newsletter Poradnika Automatyka

Czytaj trendy i inspiracje, podstawy automatyki, automatykę w praktyce

Please wait...

Dziękujemy za zapis do newslettera!

Czy ten artykuł był dla Ciebie przydatny?

Średnia ocena artykułu: 5 / 5. Ilość ocen: 8

Ten artykuł nie był jeszcze oceniony.

Zadaj pytanie

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *