TIA Portal – Kompleksowe Narzędzie Inżynieryjne dla Automatyki Przemysłowej
TIA Portal to pakiet systemu i narzędzi stworzony przez firmę Siemens, którego celem jest integracja wielu narzędzi rozwojowych dla urządzeń automatyki. Jest wynikiem unifikacji oraz modernizacji istniejących rozwiązań, takich jak Simatic Step 7, Simatic WinCC i Sinamics Starter.
W środowisku TIA Portal odbywa się programowanie, rozwój i konfiguracja sterowników PLC marki Siemens, interfejsów HMI oraz przemienników częstotliwości. Logika programistyczna opiera się na strukturze bloków, co ułatwia proces projektowania, utrzymania i diagnozowania maszyn oraz procesów przemysłowych, pod warunkiem stosowania podejścia zorganizowanego i strukturalnego.
Programowanie PLC i Narzędzia WinCC
Step 7 jest dedykowane do programowania sterowników PLC z rodzin S7-1200, S7-1500, S7-300 oraz S7-400. Alternatywnymi kontrolerami dla komputerów przemysłowych są WinAC oraz nowoczesny S7-1500 Software Controller. Dostępne języki programowania obejmują: LAD (schemat drabinkowy), FBD (schemat bloków funkcyjnych), SCL (Structured Control Language), STL (lista instrukcji) oraz S7 GRAPH.
Rozwój ekranów HMI w narzędziu WinCC jest stosowany w systemach nadzorczych na komputerach (systemy SCADA) oraz na panelach operatorskich z serii Basic, Comfort i Mobile. Komunikacja między urządzeniami obsługuje protokoły takie jak Profibus, PROFINET oraz AS-I (Actuator Sensor Interface). Warto także wspomnieć o modułach komunikacyjnych CM, które umożliwiają łączność w różnych protokołach przemysłowych, takich jak Modbus i CANOpen.
Struktura Programowania w PLC
Programowanie sterowników PLC w TIA Portal bazuje na architekturze podzielonej na bloki:
- OB (Organization Blocks)
- FC (Functions)
- FB (Function Blocks)
- DB (Data Blocks).
Monitorowanie stanu instalacji oraz sterowanie elementami wykonawczymi odbywa się przez urządzenia połączone ze sprzętem sterownika. System operacyjny PLC pełni funkcję tłumacza, interpretując algorytmy użytkownika i przekształcając je na instrukcje logiczne dostosowane do konfiguracji sprzętu.
Bloki Organizacyjne i Ich Rola w Cyklach Wykonania Programu
Bloki Organizacyjne (OB) są ściśle powiązane z cyklami wykonywania programu oraz przerwaniami. Ich wykonanie jest uzależnione od zdefiniowanych wcześniej wyzwalaczy, takich jak interwał czasowy czy wykrycie awarii sprzętowej. OB1, czyli główny blok programu, odgrywa kluczową rolę w inicjalizacji oraz sekwencyjnym skanowaniu wywołań innych bloków zawierających zaimplementowany kod. W odróżnieniu od pozostałych bloków OB, OB1 jest wykonywany w sposób cykliczny i ciągły.
Według przedstawionej reprezentacji, wykonanie programu rozpoczyna się od zawartości OB1 w sposób liniowy i synchroniczny, przetwarzając instrukcje od lewej do prawej, od początku do końca bloku. Po zakończeniu OB1 procesor sterownika (CPU) wznawia wykonanie kodu od początku i proces ten powtarza się w nieskończoność.
Chociaż użytkownik może stworzyć wiele funkcji (FC) i bloków danych (DB), sterownik PLC wykonuje jedynie te instrukcje, które zostały zaprogramowane w OB1 w określonej kolejności. Tworzenie podprogramów jest realizowane dzięki wywołań bloków, które mogą mieć charakter zagnieżdżonych wywołań.
Przerwania i Czas Cyklu Programu
Ponieważ odtworzenie instrukcji w głównej funkcji OB1 zależy od przetworzenia wszystkich przypisanych funkcji, czas cyklu może się zmieniać w zależności od stanu instalacji oraz nieprzewidzianych warunków programistycznych. Aby uniknąć błędów logicznych lub zagwarantować cykliczne wykonanie z określonym interwałem czasowym, zalecane jest stosowanie bloków przerwań cyklicznych.
Bloki Cyclic Interrupt są również wykonywane cyklicznie, ale z ustalonym z góry interwałem czasowym między kolejnymi wykonaniami.
Przykładowo, co 100 ms, bieżące przetwarzanie jest przerywane, aby mogły zostać wykonane instrukcje zawarte w bloku przerwania cyklicznego. Pozwala to na terminowe i regularne przetwarzanie wybranych operacji, niezależnie od stanu głównego cyklu programowego.
Funkcje (FC) w TIA Portal
Funkcje (FC) służą do kompresji algorytmów oraz zwracania wartości do zmiennych zdefiniowanych jako wyjściowe, zgodnie z parametrami wejściowymi oraz operacjami wykonanymi wewnątrz bloku.
Zmienne lokalne deklarowane w funkcjach FC mogą posiadać różne charakterystyki, takie jak:
- In (wejście): Parametry wejściowe funkcji. najważniejsze jest rozróżnienie stanów różnych wywołań tej samej funkcji;
- Out (wyjście): Parametry wyjściowe funkcji. Ważne jest rozróżnienie działań różnych wywołań tej samej funkcji;
- InOut (wejście i wyjście): Parametry, które mogą być jednocześnie wejściowe i wyjściowe. Jest to przydatne do minimalizowania błędów wynikających z zapisu do parametrów wejściowych;
- Temp (tymczasowe): Zmienne tymczasowe, które są przydzielane do losowej przestrzeni pamięci CPU na początku bloku i nadpisywane po jego zakończeniu. Nie mają możliwości retencji ani odniesienia globalnego;
- Constant (stała): Tymczasowe zmienne o wartościach stałych, zdefiniowane podczas ich deklaracji.
Zastosowanie Funkcji FC
Funkcje FC pozwalają na uporządkowanie oraz uproszczenie algorytmów, co sprzyja lepszej czytelności kodu oraz jego ponownemu wykorzystaniu. Ich stosowanie jest szczególnie przydatne przy projektowaniu skomplikowanych procesów, w których wymagana jest precyzyjna kontrola nad danymi wejściowymi, wyjściowymi oraz zmiennymi tymczasowymi.
Bloki Funkcyjne (FB) w TIA Portal
Bloki Funkcyjne (FB) posiadają strukturę i funkcje podobne do bloków funkcyjnych (FC), z jedną istotną różnicą – możliwością tworzenia bloków danych instancji (iDB), które są powiązane z każdym wywołaniem FB. Dzięki temu każde wywołanie bloku FB ma przypisaną unikalną przestrzeń pamięci, co pozwala na indywidualne zarządzanie danymi dla wszystkich wywołania.
Bloki Funkcyjne umożliwiają deklarowanie zmiennych podobnych jak w blokach FC. Dostępne typy zmiennych to:
- Wejściowe (In): Parametry przekazywane do bloku, które pozwalają na dostarczenie danych potrzebnych do jego działania.
- Wyjściowe (Out): Parametry, które zwracają wynik działania bloku.
- Wejściowo-wyjściowe (InOut): Parametry, które mogą jednocześnie działać jako wejście i wyjście, co jest przydatne przy operacjach wymagających modyfikacji danych wejściowych.
- Tymczasowe (Temp): Zmienne używane tylko w trakcie wykonania bloku. Są one usuwane po zakończeniu pracy bloku i nie mają możliwości retencji.
- Statyczne (Static): Jest to dodatkowy typ zmiennych dostępny w blokach FB. Zmienne statyczne są przechowywane w nieulotnej pamięci CPU i zachowują swoje wartości po zakończeniu pracy bloku. Dzięki temu mogą być wykorzystywane globalnie i odwoływane w dowolnym momencie programu.
Przykładowo, jeżeli stworzymy blok funkcyjny o nazwie Motors i wywołamy go w dwóch różnych miejscach programu, każde wywołanie zostanie powiązane z unikalnym blokiem danych instancji (iDB). Pozwala to na niezależne przechowywanie i odczytywanie danych. Załóżmy, iż zmienna Motor_On reprezentuje stan silnika. W takim przypadku:
- Motor A może być przypisany do bloku danych DB1 i będzie przechowywał unikalny stan związany z tym wywołaniem.
- Motor B zostanie powiązany z DB2 i jego stan będzie przechowywany oddzielnie.
Taka struktura pozwala na wielokrotne wykorzystywanie tego samego algorytmu w różnych częściach programu bez ryzyka nadpisania danych czy kolizji zmiennych.
Zalety Bloków Funkcyjnych
Bloki Funkcyjne w TIA Portal przynoszą szereg korzyści, takich jak:
- Separacja pamięci: Każde wywołanie FB ma dedykowaną przestrzeń pamięci, co pozwala na niezależne zarządzanie danymi.
- Ponowne wykorzystanie kodu: Ten sam blok może być wielokrotnie wywoływany w programie, co znacząco upraszcza jego strukturę.
- Retencja danych: Dzięki zmiennym statycznym bloki FB umożliwiają zachowanie wartości zmiennych choćby po zakończeniu ich działania.
Praktyczne użycie bloków funkcyjnych pozwala na bardziej przejrzystą, elastyczną i wydajną organizację programów sterujących w środowisku TIA Portal.
Zrozumienie Typów Danych Użytkownika (UDT) w TIA Portal
W TIA Portal, oprócz standardowych typów danych jak Integer, Real czy Boolean, można korzystać z User Data Types (UDT) – zdefiniowanych przez użytkownika struktur danych. UDT pozwalają na tworzenie elastycznych i złożonych struktur, które mogą składać się z dowolnych kombinacji istniejących typów danych oraz tablic.
Zastosowanie UDT znacząco poprawia organizację danych w programie, umożliwiając łatwą replikację powtarzalnych struktur. Dzięki temu rozwój aplikacji staje się szybszy, a diagnostyka bardziej przejrzysta. Na przykład, zamiast deklarować oddzielne zmienne dla wszystkich silnika, można stworzyć strukturę Motor_Data, zawierającą parametry takie jak ID, Stan pracy i Prędkość.
UDT zwiększają czytelność kodu i oszczędzają czas, umożliwiając ponowne wykorzystanie tych samych struktur w różnych częściach programu.
Podsumowanie
TIA Portal to wszechstronne środowisko inżynieryjne, które integruje narzędzia do programowania i konfiguracji urządzeń automatyki przemysłowej. Dzięki obsłudze sterowników PLC, interfejsów HMI oraz przemienników częstotliwości, pozwala na efektywne projektowanie i diagnostykę systemów. Struktura oparta na blokach funkcjonalnych (OB, FC, FB) zapewnia elastyczność oraz spójność programowania, a bloki instancji danych (iDB) umożliwiają zarządzanie pamięcią dla wszystkich wywołania bloku.
Dodatkowo, typy danych użytkownika (UDT) pozwalają na organizację i wielokrotne wykorzystanie złożonych struktur danych, co znacząco ułatwia pracę w skomplikowanych projektach. TIA Portal wspiera różne języki programowania oraz protokoły komunikacyjne, co czyni je niezastąpionym narzędziem w nowoczesnej automatyce przemysłowej.