Do Projektu iAutomatyka dołączyli:

Publikacja zgłoszona do 🎁 Konkursu iAutomatyka

Obsługa i mechanizm przerwań w TIA Portal

autor: Tob.

W tym artykule chciałbym przybliżyć mechanizm przerwań. Czym jest, jak działa i gdzie go używać? Dowiesz się czytając dalej.

Sterownik

Do testów i przykładów został wykorzystany sterownik S7-1200 z firmware 4.1 oraz oprogramowanie TIA Portal v15. W sterownikach z niższym firmware do 3.0 występują pewne różnice w porównaniu z nowszymi urządzeniami. Najważniejsze zmiany dotyczące przerwań w sterownikach z nowszym firmware:

  • możliwość konfiguracji przerwań jako nieprzerywalne lub przerywalne,
  • możliwość konfiguracji priorytetu przerwania,
  • dodane zostały przerwania zegarowe,
  • dodane zostały nowe zdarzenia diagnostyczne (np. błąd kasety I/O, zmiana trybu pracy kasety I/O, itp.).

Zasada działania

Praca sterownika polega na cyklicznym wykonywaniu bloków programowych – domyślnie jest to OB1. Wystąpienie przerwania powoduje chwilowe zawieszenie wykonywania programu cyklicznego. W tym czasie wykonywany jest program obsługi przerwania. Wystąpienie przerwania powoduje wykonanie bloku OB, przydzielonego do obsługi tego zdarzenia. Może dojść do zagnieżdżenia przerwania – aktualnie obsługiwane przerwanie zostanie przerwane przez kolejne o wyższym priorytecie. Zakończenie obsługi przerwania powoduje powrót do miejsca w programie, w którym nastąpiło zawieszenie programu.


Lista przerwań

Poniżej tabela z dostępnymi przerwaniami w sterowniku S7-1200 FW>4.0.

Priorytet zdarzenia

Priorytety są to liczby od 1 do 26 przyporządkowane danym blokom OB – im większa liczba, tym większy priorytet. Ogólnie zasada nadawania i zastosowania priorytetów jest prosta – przerwania o nadanym wyższym priorytecie przerywają program o niższym priorytecie. Bloki cykliczne, takie jak OB1, mają najniższy priorytet – 1, ponieważ mogą być zawsze przerwane przez zdarzenie. Gdy zdarzenie zostanie obsłużone, sterownik PLC wraca do miejsca w programie, w którym nastąpiło przerwanie. Aby program mógł być przerwany przez przerwanie o wyższym priorytecie, bloki programowe muszą być skonfigurowane jako przerywalne.

Gdy bloki programowe OB zostaną ustawione jako nieprzerywalne, to nie zostaną przerwane nawet przez OB obsługujące zdarzenia o wyższym priorytecie. OB o wyższym priorytecie będzie musiało czekać w kolejce, aż do zakończenia aktualnie wykonywanego bloku programowego obsługującego przerwanie o niższym priorytecie.

Ustawienia czy przerwania mają być przerywalne, czy nieprzerywalne, dostępne są w konfiguracji sterownika.

Kolejkowanie zdarzeń

Zdarzenia przychodzące do sterownika nie zawsze są wykonywane natychmiast. Obsłużenie przerwania jest opóźnione gdy:

  • jest wykonywane przerwanie o wyższym priorytecie,
  • jest wykonywane inne przerwanie i OB są skonfigurowane jako nieprzerywalne,
  • jest wykonywana instrukcja w programie, która nie może być przerwana (np. UMOVE_BLK).

Przychodzące zdarzenie oraz kolejne trafiaj do kolejki, gdzie oczekują na możliwość obsłużenia. Każda grupa przerwań ma określoną głębokość kolejki. Jeśli zostanie przekroczona, to kolejne zdarzenia zostają utracone.


Odczyt wejść/wyjść

Cykl programu zaczyna się od zapisu pamięci Q do fizycznych wyjść. Po zapisie wyjść, sterownik kopiuje wejścia do pamięci I. W następnej kolejności jest wykonywany program – OB1 i cykl się powtarza. Wynika z tego, że odczyt i zapis wejść/wyjść jest ściśle związany z programem cyklicznym sterownika. W pewnych przypadkach wymagany jest szybszy odczyt i zapis wejść/wyjść. Można wtedy powiązać operacje zapisu i odczytu wejść/wyjść z danym przerwaniem przez przypisanie ich do PIP. Wtedy operacje związane z odczytem/zapisem wejść/wyjść odbywają się razem z przerwaniem, dzięki czemu w przerwaniu można operować na aktualnych stanach wejść i jednocześnie szybko wystawiać odpowiednie stany na wyjściach sterownika.

Konfiguracja przypisania wejść/wyjść sterownika do PIP jest przestawiona na rysunku poniżej.

Jeśli dostępna jest większa liczba wejść/wyjść, to można je przypisać do innego PIP np. PIP2 i do innego przerwania o innym czasie cyklu.

Przerwania cykliczne – Cyclic interrupts

Przerwania cykliczne wywoływane są w równych odstępach czasu. Są bardzo ważne w programach sterowników PLC, ponieważ dają możliwość pobierania informacji w stałych odstępach czasu. Dlatego są często wykorzystywane w układach regulacji lub np. próbkowaniu pomiarów (bloki programowe cykliczne np. OB1 nie zapewniają stałej długości cyklu, który może być różny w zależności od wykonywanego programu). Blok OB dla przerwania cyklicznego posiada dwa parametry:

  • czas cyklu – odstęp czasu, w których wywoływane jest OB;
  • faza – opóźnienie wywołania bloku OB obsługi przerwania (przesunięcie względem cyklu wywołania bloku OB przerwania cyklicznego), faza zapobiega nakładaniu się przerwań cyklicznych.

Rysunek poniżej przestawia w sposób graficzny parametry przerwań cyklicznych.

Parametry bloków OB – czas cyklu, faza można ustawić podczas tworzenia bloku programowego oraz we właściwościach (Properies) stworzonego bloku.

Z przerwaniami cyklicznymi są powiązane dwie instrukcje programowe:

  • SET_CIN – instrukcja do ustawiania parametrów bloku OB przerwania cyklicznego;
  • QRY_CINT – instrukcja do odczytu właściwości bloku OB przerwania cyklicznego.

Poniżej przykład wywołania funkcji dla przerwań cyklicznych i opis parametrów.

Jeśli przerwanie jest prawidłowo skonfigurowane to wartość parametru STATUS = 16#14.


Poniżej krótki program do zmiany parametrów przerwania cyklicznego – zmiana cyklu i fazy oraz odczyt ich wartości.

Należy pamiętać, że przerwań cyklicznych nie da się wyłączyć za pomocą programu sterownika.

Przerwania opóźnione – Time delayed interrupts

Przerwanie od opóźnień polega na wywołaniu bloku OB z ustalonym opóźnieniem. Przerwanie jest aktywowane programowo rozkazem SRT_DINT. Należy pamiętać, że przerwanie jest aktywowane stanem wysokim na wejściu EN, ale czas jest liczony od momentu wykrycia zbocza opadającego na tym wejściu. Przerwanie może zostać również wyłączone za pomocą funkcji CAN_DINT. Czy przerwanie od opóźnień jest aktywowane można sprawdzić za pomocą funkcji QRY_DINT. Maksymalny czas, jaki można wprowadzić jako opóźnienie, to 60000 ms czyli 6 min.

Blok programowy OB dla przerwania opóźnionego posiada jeden parametr – priorytet, który można zmienić we właściwościach (Properies) stworzonego bloku.

Rysunek poniżej przedstawia w sposób graficzny, działanie przerwania od opóźnień.

Z przerwaniami cyklicznymi są powiązane trzy instrukcje programowe:

  • SRT_DINT – instrukcja aktywacji przerwania od opóźnień;
  • CAN_DINT – instrukcja wyłączenia aktywowanego przerwania od opóźnień;
  • QRY_DINT – instrukcja do odczytu parametrów przerwania.

Poniżej przykład wywołania funkcji dla przerwań od opóźnień i opis parametrów.

Jeśli przerwanie jest prawidłowo skonfigurowane i zostało aktywowane stanem wysokim na wejściu EN to wartość parametru STATUS = 16#14 (przerwanie aktywne i blok OB istnieje). Jeśli czas opóźnienia zostanie odliczony i przerwanie się wykona lub zostanie wykonana instrukcja CAN_DING lub nastąpi restart sterownika to wartość parametru STATUS = 16#10 (blok OB istnieje, przerwanie nieaktywne).

Ponieważ przerwania cykliczne i opóźnione wykorzystują te same zasoby, łączna liczba wykorzystywanych tego typu przerwań równa się 4.


Przerwania sprzętowe – Hardware interrupts

W sterownikach SIMATIC, można przypisać określone zdarzenie (np. zbocze narastające) na danym wejściu fizycznym do danego bloku OB. Wykonywany program zostanie przerwany i zostanie wykonywany dany blok OB.

Takie zdarzenia można skonfigurować na dwa sposoby – w konfiguracji sterownika lub w jego programie za pomocą instrukcji ATTACH i DETACH.

Na etapie tworzenia konfiguracji sterownika można przypisać dane wejście sterownika do utworzonego bloku OB, przeznaczonego do obsługi zdarzeń sprzętowych.

Można w ten sposób obsłużyć zbocze narastające lub opadające wykorzystując jedno wejście sterownika.

Można też przypisać dwa zdarzenia – zbocze opadające i narastające tego samego wejścia sterownika do wywołania tego samego bloku OB.

Można również w sposób programowy przypisać dane zdarzenie do bloku OB poprzez instrukcję ATTACH (obsługa zdarzenia przez blok OB zostaje aktywowana) lub odłączyć za pomocą instrukcji DETACH (obsługa zdarzenia przez blok OB zostaje dezaktywowana). Poniżej przykład programu w jaki sposób parametryzuje się funkcję obsługi przerwań sprzętowych.

Konfiguracja funkcji – przypisanie bloku przerwania OB do funkcji konfiguracji przerwania.

Konfiguracja funkcji – przypisanie zdarzenia dla danego wejścia sterownika do funkcji konfiguracji przerwania.

Funkcja ATTACH posiada wejście ADD:

  • wartość 0 – funkcja z tym parametrem przypisuje blok organizacyjny OB tylko i wyłącznie do danego zdarzenia EVEN dla tej funkcji ATTACH, jeśli istnieją inne przypisania to zostają skasowane;
  • wartość 1 – funkcja z tym parametrem powoduje dopisanie zdarzenia EVEN do listy zdarzeń, które są obsługiwane przez dany blok OB (blok OB może być wywołany przez kilka zdarzeń).

Przerwania od zegara czasu rzeczywistego

Przerwania synchronizowane zegarem czasu Time of day interrupt dostępne są dla nowszych sterowników S7-1200 i S7-1500. Dostępne są dwa bloki OB do obsługi przerwań – OB10 i OB11.

Dostępne są następujące przerwania:

  • once – jednokrotne, w danym dniu i danej godzinie;
  • every minute – co minutę, o pełnych minutach,
  • Hourly – co godzinę, z podaniem minut;
  • Daily – raz dziennie, określa się godzinę i minuty;
  • Weekly – co tydzień, określa się godzinę i minutę, dzień tygodnia określa data startu przerwania;
  • Monthly – co miesiąc, określa się godzinę i minutę, dzień miesiąca określa data startu przerwania;
  • Yearly – co rok, określa się godzinę i minutę, dzień roku określa data startu przerwania;
  • End of month – na koniec miesiąca, określa się godzinę i minutę.

Najbardziej przydatne jest przerwanie generowane END_OF_MONTH, ponieważ nie trzeba kontrolować jaki jest miesiąc i czy jest rok przestępny. Można w prosty sposób wygenerować raport na koniec każdego miesiąca bez dodatkowego programu w sterowniku.

Artykuł został nagrodzony w Konkursie iAutomatyka – edycja Maj 2019

Nagrodę zestaw narzędzi + gadżety dostarcza ambasador konkursu, firma Weidmüller.

 



28 maja 2019 / Kategoria: , , ,

Reklama

Newsletter

Zapisz się i jako pierwszy otrzymuj nowości!

Zapoznałem się i akceptuję klauzulę informacyjną.



.

NAJNOWSZE PUBLIKACJE OD UŻYTKOWNIKÓW I FIRM

>KLIKNIJ<

Wejdź do świata automatyki WAGO z bezpłatną licencją e!COCKPIT na start

Wejdź do świata automatyki WAGO z bezpłatną licencją e!COCKPIT na start

>KLIKNIJ<

Nowy świat automatyzacji

Nowy świat automatyzacji

>KLIKNIJ<

Krążniki do przenośników taśmowych – rodzaje i zastosowanie

Krążniki do przenośników taśmowych – rodzaje i zastosowanie

>KLIKNIJ<

Elastyczna modernizacja instalacji dzięki bramom szeregowym

Elastyczna modernizacja instalacji dzięki bramom szeregowym

>KLIKNIJ<

Aplikacje Ethernet

Aplikacje Ethernet

>KLIKNIJ<

Rozporządzenie UE w sprawie ekoprojektów

Rozporządzenie UE w sprawie ekoprojektów

>KLIKNIJ<

Centrum Testowania Technologii Przemysłu 4.0 powstało na Śląsku. Przełom dla polskiej branży produkcyjnej

Centrum Testowania Technologii Przemysłu 4.0 powstało na Śląsku. Przełom dla polskiej branży produkcyjnej

>KLIKNIJ<

Depaletyzowanie: dzięki technologii zdjęć 3D roboty widzą po prostu więcej

Depaletyzowanie: dzięki technologii zdjęć 3D roboty widzą po prostu więcej

>KLIKNIJ<

Poznaj iAutomatyka Roku 2020 – Wywiad z Adamem Laryszem

Poznaj iAutomatyka Roku 2020 – Wywiad z Adamem Laryszem

>KLIKNIJ<

PFC200 w Sferycznym Ogrodzie Badawczym

PFC200 w Sferycznym Ogrodzie Badawczym

>KLIKNIJ<

Roboty SCARA – możliwości łatwej automatyzacji procesów produkcyjnych

Roboty SCARA – możliwości łatwej automatyzacji procesów produkcyjnych

>KLIKNIJ<

Przekaźnik z wymuszonym prowadzeniem styków

Przekaźnik z wymuszonym prowadzeniem styków

>KLIKNIJ<

INTELIGENTNA KURTYNA OPTYCZNA WEBCHECKER DO POMIARÓW SZEROKOŚCI I PROWADZENIA KRAWĘDZI KILKU WSTĘG JEDNOCZEŚNIE

INTELIGENTNA KURTYNA OPTYCZNA WEBCHECKER DO POMIARÓW SZEROKOŚCI I PROWADZENIA KRAWĘDZI KILKU WSTĘG JEDNOCZEŚNIE

>KLIKNIJ<

Jak zwiększyć wydajność maszyny dzięki sterownikowi ruchu Trio?

Jak zwiększyć wydajność maszyny dzięki sterownikowi ruchu Trio?

>KLIKNIJ<

Nowości produktowe 2021

Nowości produktowe 2021

>KLIKNIJ<

Zasilacze transformatorowe z MerXu – oferta platformy

Zasilacze transformatorowe z MerXu – oferta platformy

>KLIKNIJ<

Wyłączniki magnetyczne Pizzato ST G RFID z certyfikatem ECOLAB

Wyłączniki magnetyczne Pizzato ST G RFID z certyfikatem ECOLAB

>KLIKNIJ<

Przemysł 4.0 – jak wypłynąć na fali zmian?

Przemysł 4.0 – jak wypłynąć na fali zmian?

>KLIKNIJ<

Projektowanie i wdrażanie rozwiązań pod klucz

Projektowanie i wdrażanie rozwiązań pod klucz

>KLIKNIJ<

Indukcyjne czujniki ReeR PI-SAFE – bezpieczna praca ludzi z maszynami

Indukcyjne czujniki ReeR PI-SAFE – bezpieczna praca ludzi z maszynami

Reklama



MOŻESZ SIĘ TYM ZAINTERESOWAĆ

  • 1,740 PLN
    By w pełni wykorzystać możliwości robotów Universal Robots, proponujemy udział w szkoleniach organizowanych przez Elmark Automatyka, firmę z ponad 25 letnim doświadczeniem w prowadzeniu szkoleń. Podczas zajęć będą mogli Państwo zdobyć prakt...
    Czas trwania: 2 dni
    Link: Terminy
  • ÖLFLEX® CLASSIC 110 – elastyczny przewód sterowniczy do różnych zastosowań, w płaszczu z PVC, aprobata VDE, odporność na oleje, 300/500 V, również do YSLY lub YY CPR: informacje pod adresem www.lapppolska.pl Certyfikat zgodności VDE z...
  • Wyświetlacz słupkowy ITP15 jest kompaktowym wskaźnikiem procesowym, który wizualizuje analogowy sygnał wejściowy w zakresie od 0 do 100% z 10 słupkami po 10%. Sygnałem wejściowym może być liniowy sygnał napięciowy 0 (2) -10 V lub sygnał prą...
  • Ten kurs zawiera podstawy z dziedziny serwomechanizmów. Składa się z pierwszego modułu wprowadzającego, pełnego kursu o serwomechanizmach. Mini kurs przeprowadzi Cię przez podstawowe zagadnienia związane z serwomechanizmami. Zaczniemy od sa...
  • Producenci maszyn, integratorzy, operatorzy mediów, firmy serwisujące rozproszone obiekty, np. farmy fotowoltaiczne i wielu innych, wszystkich ich łączy potrzeba zdalnego dostępu do urządzeń za które ponoszą w różny sposób odpowiedzialność....
  • Nowe modułowe sterowniki programowalne PLC firmy Eaton umożliwiają producentom maszyn i systemów opracowywanie nowoczesnych koncepcji automatyki, zwłaszcza w połączeniu z systemem XN300 I/O i panelem dotykowym XV300. Modułowy sterownik zape...



KATEGORIE ARTYKUŁÓW
POLECANE ARTYKUŁY
Wydarzenia