[KURS PLC, CZĘŚĆ 7] Sterowniki SIMATIC S7-1200 (CPU1211C) – tworzenie funkcji
Uwaga! Lista wszystkich opublikowanych odcinków kursu jest dostępna pod adresem.
W poprzednich odcinkach kursu programowania PLC (bazujemy na sterowniku z rodziny SIMATIC S7-1200) wykorzystywaliśmy tylko blok organizacyjny OB1. Kody programów był proste, więc mogliśmy korzystać z takiego rozwiązania. W praktycznych aplikacjach sterownik PLC wykonuje zazwyczaj wiele różnych zadań. Żeby ułatwić sobie pracę w takich sytuacjach, w tej części kursu programowania PLC przedstawimy podstawowe informacje na temat funkcji i sposobu ich tworzenia.
Zestaw startowy do kursu programowania SIMATIC S7-1200 Sklep KAMAMI.pl przygotował specjalną ofertę dla osób zainteresowanych poznaniem w praktyce możliwości sterowników SIMATIC S7-1200 oraz podstaw ich programowania. W ramach tej oferty dostępny jest zestaw startowy o nazwie Siemens SIMATIC S7-1200 PROMO w promocyjnej cenie (659 PLN brutto). Składa się on z następujących elementów:
|
Tworzenie funkcji
Tworzenie kodu programu niezależnie od rodzaju języka wiąże się z tworzeniem funkcji oraz zmiennych w celu przechowywania danych. Krótko mówiąc funkcje (nazywane czasem blokiem w przypadku programowania sterowników) operują na danych i służą do realizacji powtarzających się lub ściśle określonych zadań. Oprogramowanie TIA Portal umożliwia utworzenie trzech typów funkcji. Tworzenie każdej z nich jest bardzo proste i w przyszłości będziesz tworzył takie bloki bardzo często. Dodanie nowej funkcji polega na rozwinięciu w drzewie projektu folderu Program blocks i następnie kliknięcie na Add new block. Wówczas pojawia się okno przedstawione poniżej.
Do wyboru mamy funkcje (zwane też blokami) typu Organization block (OB), Function block (FB), Function (FC). Wybranie typu bloku polega na kliknięciu odpowiedniego symbolu z lewej strony okna Add new block. Następnie trzeba wybrać język w którym będziemy tworzyć kod. W naszym przypadku zawszę będzie to SCL. Do każdego bloku jest przydzielany numer. Domyślnie jest to robione automatycznie i większości przypadków tych numerów nie musimy ręcznie przydzielać. Robi to za nas środowisko.
Bloki organizacyjne są pewnego rodzaju funkcją, które są wykonywane w zależności od systemu operacyjnego sterownika. To firmware decyduje, kiedy dany blok OB zostanie aktywowany do wykonania.
Dla zainteresowanych doskonaleniem programowania PLC Wydawnictwo BTC przygotowało książkę „Podstawy programowania sterowników SIMATIC S7-1200 w języku SCL”, której autorem jest autor naszego kursu, doświadczony projektant systemów automatyki – Tomasz Gilewski. |
Bloki organizacyjne można podzielić na:
- startowe – instrukcje znajdujące się w tym bloku są wykonywane zawsze tylko raz tuż po włączeniu zasilania do sterownika.czasowe – kod znajdujący się w bloku tego typu zostaje wykonany jednokrotnie o ustalonym dniu i czasie lub jest wykonywany cyklicznie o określonym interwale czasowym (np. co 1 sekundę),
- diagnostyczne – sterownik zaczyna wykonywać instrukcje znajdujące się w tym bloku, gdy pojawi się błąd (np. za długi czas wykonywania kodu programu w innych blokach). Dostępne są też bloki diagnostyczne, za pomocą których można pobrać informacje diagnostyczne z innych urządzeń,
- sprzętowe – gdy pojawi się specyficzne zdarzenie (np. zbocze narastające na wejściu cyfrowym), wówczas następuje przejście do odpowiedniego bloku OB powiązanego z obsługą tego zdarzenia.
- Pozostałe typy bloków to funkcje:
- FB – służy do realizacji powtarzających się lub dokładnie określonych zadań. Umożliwia pobranie określonych danych poprzez parametry wejściowe funkcji do jej wnętrza, wykonanie obliczeń na tych danych zgodnie z zawartymi tam instrukcjami i zwrócenie wyniku za pomocą parametrów wyjściowych. Wszystkie dane, na jakich operuje funkcja typu FB są zawsze pamiętane. Wywołanie takiej funkcji w kodzie programu zawsze wymaga powiązania z blokiem danych, który będzie połączony z tą funkcją. To właśnie w tym bloku danych DB (nazywanym też instance DB) są przechowywane wszystkie parametry oraz zmienne (poza zmiennymi tymczasowymi). Z bloku instance DB korzysta tylko funkcja FB. Nie możesz z nich korzystać w sposób, który poznałeś w ostatnim odcinku.
- FC – również służy do realizacji powtarzających się zadań. Jest podobna do funkcji typu FB. Najważniejszą różnicą to dane, na jakich operuje funkcja FC nie są zapamiętywane. Wynika to z faktu, że funkcja typu FC nie jest powiązana z żadnym blokiem danych DB.
Modele programowania
W poprzednich odcinkach kursu programowania PLC kod programu był umieszczany w bloku OB1. Wówczas wszystkie instrukcje były wykonywane po kolei – jedna po drugiej. Graficznie zostało to przedstawione na poniższym rysunku.
Na tym rysunku możesz zobaczyć, że to system operacyjny (firmware sterownika) jest pośrednikiem pomiędzy sprzętem (hardware) a blokami OB. Blok OB1 jest wykonywany cyklicznie, zatem po wykonaniu wszystkich instrukcji znajdujących się w tym bloku następuje przejście do początku tego bloku i rozpoczęcie kolejnej pętli programowej. Często jest to nazywane programem liniowym, ponieważ instrukcje są wykonywane linia po linii. Nie są wykonywane żadne skoki.
Projekt
Teraz utworzymy nowy projekt. Napiszemy kod programu analogiczny, jak w poprzednim odcinku. Tym razem wykorzystamy dwa przyciski oraz dwie diody LED. Naciśnięcie pierwszego przycisku spowoduje zapalenie niebieskiej diody LED na czas, w którym przycisk został wciśnięty. W momencie naciśnięcia drugiego przycisku zostanie zapalona czerwona dioda LED. Można oczywiście nacisnąć jednocześnie dwa przyciski, wówczas zaświecą się dwie diody. Na początku napiszemy program liniowy. W dalszej części pokażę Ci inna koncepcję programowania, która ma więcej zalet i jest powszechnie stosowana.
Podłączenie elektryczne
Tym razem przyciski należy podłączyć do wejść o adresie I0.2 oraz I0.3. Czerwoną diodę LED podłącz zamiast zielonej do wyjścia cyfrowego Q0.1.
Schemat elektryczny niezbędnych połączeń przedstawiono poniżej.
Schemat podłączenia zasilania sterownika jest analogiczny, jak przedstawiono w poprzednim odcinku.