We współczesnych systemach automatyki można zauważyć podział każdej aplikacji na trzy części: algorytm sterowania, dane pomiarowe i parametry. Dwie pierwsze części zostały już dobrze opisane m.in. tutaj. Dziś chciałbym się skoncentrować na ostatnim elemencie tej układanki, czyli na zarządzaniu parametrami sterowania.
Parametry procesu najczęściej oddziela się od samego algorytmu sterowania. Jest to zrozumiałe, ponieważ w przypadku procesów produkcyjnych odpowiednie wartości dobierane są zwykle nie przez programistę, ale przez technologa i najczęściej są wynikiem wielu prób. W przypadku automatyki budynkowej parametry ustawiane są przez użytkownika końcowego i zmieniają się często np. w zależności od pory roku.
Oczywiście jest to możliwe za pośrednictwem panelu HMI lub wizualizacji webowej. Wprowadzone wartości można dodatkowo zabezpieczyć deklarując zmienne jako retain (Więcej tutaj). Dzięki temu zachowają swoje wartości nawet po utracie zasilania. Często jednak takie rozwiązanie nie wystarczy.
Idealnym przykładem są wszelkiego rodzaju linie produkcyjne. W dobie przemysłu 4.0 (Więcej tutaj) maszyny muszą mieć możliwość łatwego „przezbrajania”, aby mogły produkować więcej niż jeden rodzaj produktu. Wiąże się to z koniecznością częstych zmian parametrów procesu. Wprowadzanie wszystkich parametrów z poziomu panelu HMI jest narażone na błędy, a przede wszystkim jest czasochłonne. Co więcej, wszystkie parametry są zamknięte w sterowniku i nie ma możliwości łatwego ich zarchiwizowania lub przeniesienia na inną maszynę.
Rozwiązaniem są receptury. Receptura to zestaw wartości pewnej grupy zmiennych zapisany w formie pliku, który łatwo można wczytać. Dzięki temu wykonując jedną czynność zmienia się wartości wielu zmiennych. W środowisku e!COCKPIT istnieją gotowe mechanizmy pozwalające na tworzenie i zarządzanie recepturami. Możliwe jest tworzenie praktycznie dowolnej liczby grup zmiennych, a dla każdej grupy dowolnej liczby receptur.
Najłatwiej będzie to przedstawić na przykładzie. Załóżmy, że przygotowujemy maszynę do termo-formowania tworzyw sztucznych. W zależności od wielkości, kształtu i materiału, z którego wykonany ma być dany detal zmieniają się nam następujące parametry produkcji:
- temperatura grzałki
- czas nagrzewania materiału
- temperatura formy
- wartość podciśnienia zasysającego materiał do formy
- czas działania podciśnienia.
Parametry te dobierane są doświadczalnie, ale później pozostają stałe dla danego produktu. Wraz z wprowadzaniem kolejnych wersji produktu rozbudowuje się tabela, która może wyglądać następująco:
Parametr | Produkt 1 | Produkt 2 | Produkt 3 | Produkt 4 | Produkt 5 |
Temperatura grzałki | 300°C | 200°C | 350°C | 280°C | 310°C |
Czas grzania | 20s | 10s | 25s | 17s | 21s |
Temperatura formy | 100°C | 80°C | 110°C | 150°C | 140°C |
Podciśnienie | 3 bar | 2 bar | 3,5 bar | 2,5 bar | 2 bar |
Czas podciśnienia | 10s | 15s | 12s | 11s | 15s |
Lista parametrów stanowi kolekcję zmiennych, natomiast konkretne wartości dla kolejnych produktów są recepturami, czyli po prostu „przepisami” na produkt.
Receptury w e!COCKPIT najlepiej tworzyć pod koniec procesu projektowego. Mamy wtedy pewność, że wszystkie zmienne, jakie chcielibyśmy obsłużyć korzystając z receptur zostały już zadeklarowane.
Proces rozpoczynamy od dodania Recipe Managera. Klikamy prawym klawiszem myszy na drzewie projektu i wybieramy [Recipe Manager]. Tu możemy zdecydować o formacie plików z recepturami. Polecam korzystać z plików tekstowych w formacie *.csv. Dzięki temu wartości będzie można łatwo edytować także poza sterownikiem PLC, np. przy pomocy Excela. Poniżej przykładowa konfiguracja.
Teraz możemy dokładać kolejne kolekcje zmiennych. Są to grupy parametrów logicznie ze sobą powiązanych i zmienianych zawsze w tym samym czasie. Bazując na wcześniej zaprezentowanym przykładzie, można sobie wyobrazić sytuację, że jeden sterownik odpowiada za sterowanie dwoma maszynami. W takim przypadku dla każdej z maszyn powinna zostać stworzona osobna kolekcja zmiennych.
Zmienne do kolekcji dodajemy wybierając je spośród wszystkich dostępnych w projekcie. Następnie możemy dodawać kolejne receptury. Po wgraniu projektu każda receptura zostanie zapisana w pamięci sterownika jako osobny plik. Dostęp do plików możliwy jest za pośrednictwem FTP. Po odpowiedniej konfiguracji pliki te można też przechowywać na karcie SD. Dzięki temu przenoszenie na inne maszyny lub edycja na komputerze staje się dziecinnie prosta.
Będąc zalogowanym na sterowniku możemy edytować wartości zmiennych w recepturach lub aktywować wybrane przepisy. W momencie wyboru danej receptury, wartości w niej zapisane są przepisywane z pliku tekstowego do zmiennych wewnątrz programu PLC.
Dalej jednak musimy dysponować oprogramowaniem e!COCKPIT i kodem źródłowym aplikacji, aby operować na recepturach. e!COCKPIT domyślnie udostępnia biblioteki, dzięki którym wszystkie wyżej opisane czynności można wykonać z poziomu aplikacji PLC i wizualizacji webowej.
Aby ułatwić korzystanie z opisanych powyżej mechanizmów, stworzyliśmy bibliotekę, która oprócz dodatkowych funkcjonalności zawiera wzorce wizualizacyjne. Dzięki temu z poziomy wizualizacji możliwa jest:
- edycja istniejących receptur
- zapis aktualnych parametrów do nowej receptury
- wgranie parametrów z wybranej receptury
- przeglądanie wszystkich receptur w pamięci sterownika.
Wspomniana biblioteka bazuje na wbudowanych mechanizmach e!COCKPIT. Aby była prostsza w wykorzystaniu, jej funkcjonalność została uproszczona. Można tu korzystać tylko ze standardowych typów danych. Obsługa typów strukturalnych pokazana zostanie w kolejnym wpisie.
Dla dociekliwych chcących rozwijać własne rozwiązania w oparciu o bibliotekę bazową udostępniamy także nieskompilowany projekt, w którym można podpatrzeć jak ww. biblioteka została stworzona. Przykład2021
Krzysztof Nosal, WAGO.PL