LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
Artykuły

[KURS PLC, CZĘŚĆ 20] Sterowniki SIMATIC S7-1200 (CPU1211C) – przerwania zewnętrzne

Uwaga! Lista wszystkich opublikowanych odcinków kursu jest dostępna pod adresem.

W poprzednich odcinkach kursu PLC kod programu był tworzony w bloku OB1. W takiej sytuacji instrukcje są wykonywane jedna po drugiej czyli, linia po linii. Wykonanie wszystkich instrukcji zajmuje określony czas, który jest nazywany czasem cyklu. Ten okres nie jest stały, gdy są używane np. instrukcje warunkowe. Wówczas czas wykonania komend może się być dłuższy, lub krótszy w zależności od tego, czy warunek jest spełniony.

Drugim powodem, dlaczego czas cyklu może się zmieniać, są przerwania. W układzie sterowania służą one do szybkiej reakcji na jakieś zdarzenie. Jest to bardzo ważny mechanizm, który odciąża sterownik od sprawdzania potencjalnych źródeł przerwań. Pozwala to na stworzenie wydajniejszego kodu programu. Ogólnie przerwania można podzielić na dwie grupy:

  • przerwania zewnętrzne,
  • przerwania wewnętrzne.

W tej lekcji zajmiemy się przerwaniami zewnętrznymi.

Tak jak już wiesz, przerwania mogą wpłynąć na przebieg działania kodu programu. Spowoduje to zatrzymanie pętli głównej (blok OB1) i przejście do procedury obsługi przerwania która jest innym fragmentem kodu umieszczonym w bloku OB powiązanym z danym przerwaniem.

Przerwania zewnętrzne mogą być uruchamiane przez wejścia cyfrowe, do których podłączono np. czujniki. Dla każdego wejścia można przypisać przerwanie od zbocza narastającego lub opadającego. Do jednego wejścia cyfrowego można przypisać dwa oddzielne bloki organizacyjne odpowiadające za procedury obsługi tych przerwań.

W dalszej części tego odcinka kursu PLC zostanie przedstawione użycie przerwania od czujnika.

Zadanie

W skład układu sterowania wchodzi kilkaset elementów wejściowych oraz kilkadziesiąt elementów wykonawczych. Jest to rozbudowany obiekt. Jednym z nich jest czujnik podłączony do wejścia cyfrowego I0.0. Natomiast element wykonawczy został podłączony do wyjścia Q0.0. Jeżeli czujnik wykryje obiekt, na wejściu cyfrowym sterownika jest stan wysoki. Wówczas należy włączyć element wykonawczy w możliwie jak najkrótszym czasie. W momencie, gdy czujnik przestanie wykrywać obiekt, to element wykonawczy należy również wyłączyć jak najszybciej.

Zamiast czujnika, można wykorzystać przycisk, natomiast elementem wykonawczym niech będzie dioda.

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:

  • sterownika SIMATIC S7-1200 (CPU1211C, 6ES7211-1AE40-0XB0),
  • przełącznika SIRIUS ACT NO+NC zintegrowanego z LED (3SU1031-3BB61-0AK0, 3SU1500-0AA10-0AA0, 3SU1400-1AA10-1BA0, 3SU1400-1AA10-1CA0, 3SU1401-1BB60-1AA0),
  • oprogramowania w wersji eval.
Schemat elektryczny

Podłączenie zasilania do sterownika PLC przedstawiono poniżej:

Projekt TIA Portal

Do wykonania tego zadania są potrzebne przerwania. Treść zadania mówi o szybkim włączeniu, oraz wyłączeniu. Do zrealizowania tego zadania niezbędne są dwa przerwania – jedno od zbocza narastającego, a drugie od opadającego.

Na samym początku tworzymy nowy projekt (np. nazywając go 20_Zbocza). Następnie konfigurujemy sterownik w dokładnie ten sam sposób, jak było to realizowane w poprzednich odcinkach kursu PLC.

Kolejny krok, to utworzenie nazw symbolicznych. Przechodzimy do PLC tags i tworzymy dwie tablice o nazwach Input oraz Output. Przedstawia to poniższy rysunek:

W tablicy Input została utworzona nazwa symboliczna Sensor, natomiast w tablicy Output utworzono nazwę symboliczną Led.

Teraz do projektu należy dodać nowy blok organizacyjny, który wykorzystamy do obsługi zdarzenia, jakim będzie zbocze narastające.

Z Program blocks wybieramy Add new block, a następnie Organization block. Przedstawia to poniższy rysunek:

Z listy dostępnych bloków wybieramy Hardware interrupt. W polu Name należy wpisać RasingEdge. Wybieramy język SCL i zatwierdzamy przyciskiem OK.

W analogiczny sposób należy dodać kolejny blok organizacyjny Hardware interrupt, któremu nadano nazwę FallingEdge.

Wracamy do konfiguracji sprzętowej sterownika. Przechodzimy do zakładki DI 6/DQ 4, a następnie wybieramy Channel0. Konfiguracja została przedstawiona na poniższym rysunku:

W polu Input filters wybieramy 20 microsec. Jest to czas pozwalający wykryć zmianę sygnału podłączonego do wejścia cyfrowego sterownika. Jeżeli nastąpi zmiana stanu sygnału pochodzącego z podłączonego czujnika, w naszym przypadku z wejścia I0.0, to kolejna zmiana stanu sygnału z tego czujnika zostanie wykryta po 20 μs.

Następnie należy uaktywnić przerwanie od zbocza narastającego wybierając Enable rising edge detection. W polu Event name wpisujemy nazwę zdarzenia, które możemy nazwać EventRising_I0_0. W polu Hardware interrupt przycisk z trzema kropkami i wybieramy utworzony wcześniej blok przerwania o nazwie RasingEdge. Wartość w polu Priority zostawiamy bez zmian.

W podobny sposób należy aktywować przerwanie od zbocza opadającego. W tym celu zaznaczamy Enable falling edge detection. W polu Event name wpisujemy nazwę zdarzenia, które możemy nazwać EventFalling_I0_0. W polu Hardware interrupt naciskamy przycisk z trzema kropkami i wybieramy utworzony wcześniej blok przerwania o nazwie FallingEdge. Wartość w polu Priority zostawiamy bez zmian.

Pozostało nam tylko napisać kod programu realizujący nasze zadanie. Przerwanie od zbocza narastającego powinno włączyć element wykonawczy. W bloku RasingEdge wpisujemy więc następujący kod:

"Led" := TRUE;

Ta linia kodu ustawia wyjście cyfrowe w stan wysoki.

W bloku FallingEdge należy umieścić kod, który wyłączy element wykonawczy. Kod programu przedstawiono poniżej:

"Led" := FALSE;

Za pomocą tej linii kodu jest realizowane ustawienie wyjścia w stan niski.

Blok OB1 zostaje bez kodu programu. Wszystko jest wykonywane za pomocą przerwań. W przypadku, gdy w bloku OB1 znajdowałby się jeszcze jakiś kod, wówczas czas cyklu zostałby wydłużony. Aby włączyć lub wyłączyć wyjścia cyfrowe, należałoby zapisać do pamięci obraz procesu i odnieść się już bezpośrednio do wyjścia cyfrowego. Zagadnienie to jednak wybiega poza ramy tego kursu. Wszystkie szczegóły wraz z przykładem przedstawione zostały w książce „Podstawy programowania sterowników S7-1200 w języku SCL”.

Pozostało tylko skompilować cały projekt i wgrać do sterownika.

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.

Testowanie

Przetestuj teraz, czy po naciśnięciu przycisku dioda zaczyna świecić. Po puszczeniu przycisku dioda powinna zgasnać.

Praca domowa

Podłącz kolejny czujnik do sterownika (do wejścia I0.1) oraz element wykonawczy do wyjścia Q0.1. Dodaj kolejne do projektu dwa przerwania, które będą reagować na zbocza sygnału z wejścia I0.1.

Tomasz Gilewski