Strona główna ASTOR

Jak utworzyć i modyfikować receptury?
Kurs programowania paneli HMI odc. 8

Kontakt w sprawie artykułu: Wojciech Talik - 2020-04-21

Podczas kursu dowiesz się m.in.:

  • jak utworzyć recepturę w aplikacji na panel HMI,
  • jak wgrać oraz pobrać receptury do/ze sterownika PLC,
  • jak zarządzać recepturami oraz zmieniać ich wartości.

Twoja aplikacja na panel HMI wyświetla już komunikaty o aktualnym stanie poziomu w zbiorniku i rejestruje je w dodanej przez Ciebie tabeli.

W tej części kursu dodasz kolejną funkcję, która przydaje się zwłaszcza przy procesach wymagających regularnej zmiany wartości np. ilości mieszanych składników. Dodasz również możliwość sterowania procentowym udziałem każdej z trzech substancji w mieszanej cieczy.

Przygotowanie zmiennych wykorzystywanych w recepturach

Otwórz okno Tag Table, przez dwukrotne kliknięcie w pozycję Tags z drzewa projektowego i utwórz kolejny folder o nazwie receptury. W tym celu kliknij prawym przyciskiem myszy na pozycję Internal Memory i wybierz Add Subgroup.

Dodaj do folderu powyższe pozycje. Każda ze zmiennych posłuży do zmiany wartości w celu zmiany receptury na finalny produkt.

Jak dodać nową recepturę?

Wybierz z drzewa projektowego pozycję Recipes i kliknij Add Recipe Block. Otwórz okno Recipe Block, w którym ustawisz zakres zapisywanych konfiguracji oraz przeznaczoną na nie pamięć programu. Zapoznaj się z funkcjami tego okna. Zwróć uwagę na opcje, które pozwalają na wgranie oraz pobranie receptur do/ze sterownika PLC.

Zaznacz opcję Write Recipe To PLC i wybierz tag o nazwie AKT_NAME, aby sprawdzić stan lub dokonać zmian ustawień wczytywania konfiguracji do urządzenia. Zatwierdź wybór zmiennej przyciskiem Select i przejdź do zakładki Data Item w oknie Recipe Block. Typ pierwszego argumentu, czyli Nazwa zdefiniuj jako Byte Array. Tego argumentu będziesz używał/a jako nazwę zapisywaną w aplikacji w formacie ASCII. W polu Total Character ustaw wartość na 4.

Pozostałe argumenty, które odnoszą się już bezpośrednio do wartości składowych każdego z kolorów, pozostaw w domyślnym typie, zmieniając tylko opcję Range Check tak, aby odczytywanie ich wartości odbywało się w przedziale od 0 do 100. Możesz dodatkowo w polu Name w zakładce General zmienić nazwę bloku na Kolory.

Analogicznie jak w poprzednich częściach kursu dodaj teraz osobny ekran o nazwie RECEPTURY. Pamiętaj o dodaniu odpowiednich przycisków.

Dodaj do nowego ekranu obiekt Recipe Table. Klikając dwukrotnie w dodany obiekt, wejdź w jego konfigurację, a następnie w polu Recipe Block wybierz stworzoną przez Ciebie recepturę o nazwie kolory (0) oraz zatwierdź wprowadzone zmiany przyciskiem OK. Dodaj do listy receptur obiekt Scroll Bar dostępny w menu Objects i zakładce More Buttons. Zmień orientację przesuwnego paska na pionową oraz przypisz mu kontrolowany obiekt. Program automatycznie daje możliwość wyboru tylko tych obiektów, które znajdują się na aktualnie edytowanym ekranie. Dostosuj rozmiary i położenie obiektów oraz ich wygląd.

Rozbudowa funkcjonalna aplikacji

Przejdź teraz do dodania dwóch pozostałych zbiorników odpowiadających kolorom: zielonemu G oraz niebieskiemu B. Skopiuj istniejący zbiornik z literą R i umieść go w prawym górnym rogu ekranu głównego.

Podobnie wykonaj drugą kopię zbiornika wraz z oznaczeniem i umieść go w środku ekranu na podobnej wysokości, jak dwa pozostałe obiekty.

Zmień oznaczenia i ich kolory oraz poprowadź do nich rurociągi, korzystając z opcji Pipeline z górnego menu Object. Dostosuj wymiary oraz kształt rur, aby finalnie utworzyć rurociąg z połączeniami do każdego zbiornika z kolorami. Po zakończeniu edycji rurociągu, wykonaj dwie kopie zaworu znajdującego się na połączeniu zbiornika z czerwonym kolorem oraz głównym zbiornikiem i umieść je odpowiednio na połączeniu z pojemnikiem oznaczonym literą oraz B.

Pamiętaj, aby w konfiguracji obiektu zmienić zmienne, które odpowiadają zaworom. Jest to niezbędne do prawidłowego działania aplikacji. Po wykonaniu wszystkich tych czynności ekran ZBIORNIKI powinien wyglądać podobnie do poniższego.

Dodaj teraz obiekty, które będą służyły do wyświetlania aktualnej wartości przypisanej do procentowego udziału danego koloru. Zamieść na ekranie głównym obiekt Numeric Display i zrób jego dwie kopie. Przypisz do każdego z obiektów odpowiednią zmienną, która znajduje się w stworzonym przez Ciebie folderze receptury. Bloki wyświetlające wartości umieść obok każdego z pojemników odpowiadających trzem kolorom.

Dodaj teraz możliwość wyświetlania nazwy aktualnej receptury. Możesz to zrealizować za pomocą obiektu Character Display, który przypisz do tagu AKT_NAME.
Umieść obiekt w pobliżu przycisku załączającego działanie całego programu (START).

Następnie dodaj obiekt Recipe Selector, który umożliwi wybranie receptur zdefiniowanych wcześniej w aplikacji. W oknie Recipe Name wybierz utworzoną przez Ciebie wcześniej recepturę (pojawi się tylko jedna opcja), dobierz czcionkę według Twoich preferencji i przyciskiem OK wyjdź z okna konfiguracji.

Dodaj teraz nowy przycisk Function Button (znajdziesz go w górnym menu Object) i umieść go obok dodanego obiektu wyboru receptury –  zmień jego nazwę na ZAPISZ. Przypisz obiektowi funkcję Write Recipe to Controller. Przycisk ten posłuży Ci do wgrywania wcześniej zdefiniowanej receptury do urządzenia.  Możesz dodatkowo przypisać mu funkcję Control by Bit, którą znajdziesz w zakładce Visibility (do funkcji przypisany został tag start).

Uzupełnienie makra

Aby całość działała poprawnie, musisz jeszcze uzupełnić kod (w makrze MAIN) o dodatkowe warunki uwzględniające dodane przez Ciebie zbiorniki kolorów.

Kod do skopiowania:

IF 0\start(B)
	IF !0\ZAWORY\ZAW_OFF(B)
	IF 0\poziom<0\RECEPTURY\AKT_R
		0\ZAWORY\ZAW_R=1b(B)
		0\ZAWORY\ZAW_G=0b(B)
		0\ZAWORY\ZAW_B=0b(B)
		ELIF 0\poziom< (0\RECEPTURY\AKT_R+0\RECEPTURY\AKT_G)
			0\ZAWORY\ZAW_R=0b (B)
			0\ZAWORY\ZAW_G=1b (B)
			0\ZAWORY\ZAW_B=0b (B)
		ELIF 0\poziom < (0\RECEPTURY\AKT_R+0\RECEPTURY\AKT_G+0\RECEPTURY\AKT_B)
			0\ZAWORY\ZAW_R=0b (B)
			0\ZAWORY\ZAW_G=0b (B)
			0\ZAWORY\ZAW_B=1b (B)
		ENDIF
		0\mixer=1b(B)
		IF 0\poziom<100k
			0\poziom=0\poziom+1k
		ELSE
			0\ZAWORY\ZAW_R=0b (B)
			0\ZAWORY\ZAW_G=0b (B)
			0\ZAWORY\ZAW_B=0b (B)
			0\ZAWORY\ZAW_R=0b (B)
			0\bufor=0\bufor+1k
			IF bufor>=20k
				0\bufor=0k
				0\mixer=0b (B)
			0\ZAWORY\ZAW_OFF=1b(B)
			ENDIF
		ENDIF
	ELIF 0\ZAWORY\ZAW_OFF(B)
		IF 0\poziom>0k
			0\poziom=0\poziom-1k
		ELSE
			0\start=0b(B)
			0\ZAWORY\ZAW_OFF=0b(B)
		ENDIF
	ENDIF
	0\licznik=0k
ENDIF

Twój program jest gotowy do sprawdzenia. Skompiluj go, zapisz i sprawdź jego działanie w symulatorze offline.

W tym odcinku dowiedziałeś/aś się, jak dodać receptury oraz zarządzać nimi w programie Astraada HMI CFG. W kolejnym odcinku cyklu dowiesz się, jak automatyzować pracę aplikacji przez harmonogramy.

Jeżeli masz jakieś pytania na tym etapie kursu, napisz je w komentarzu – chętnie odpowiemy 🙂


W kolejnej części kursu „Jak wprowadzić automatyzację pracy aplikacji? | Kurs Programowanie paneli HMI” odc.9, dowiesz się:

  • do czego służą harmonogramy,
  • jak dodać harmonogram do zaprojektowanej aplikacji,
  • jak uruchamiać i zmieniać harmonogramy w aplikacji.

Autorzy:
Paweł Podsiadło
Ewelina Niziołek

Czy ten artykuł był dla Ciebie przydatny?

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

Ten artykuł nie był jeszcze oceniony.

Zadaj pytanie

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

2 odpowiedzi na “Jak utworzyć i modyfikować receptury? | Kurs programowania paneli HMI odc. 8”

  1. Dobrze opisane, Chciałbym się jednak dowiedzieć jak zaprogramować wybieranie receptur z przycisku, a nie z listy, czyli naciskam pole i wybiera się receptura 1 naciskami inne pole i wybiera się receptura 2 itd

    • Do receptury można przypisać przycisk.
      Każda receptura ma przestrzeń w pamięci, do której można się odwoływać. 🙂 Adresy znajdzie Pan w polu Recipe Memory ustawień Recipe Block

Dodaj komentarz

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