fbpx

OB80 – Diagnostyka S7-1200/1500 – Przekroczenie czasu cyklu

mini_ob80

Błędy czasu zwykle występują podczas uruchamiania sterownika S7-1200. Błędy czasu mogą być wywołane przez dowolny z następujących warunków:

  • Przekroczono maksymalny czas cyklu
  • Nazywany OB nadal wykonywany
  • Przepełnienie kolejki
  • Utrata przerwań z powodu nadmiernego obciążenia przerwaniami

Wszystkie zdarzenia błędów czasu wyzwalają wykonanie OB 80, jeśli istnieje. OB 80 zawiera informacje startowe, które pomagają określić, które zdarzenie i OB wygenerowały błąd czasu. Jeśli OB 80 nie istnieje, wówczas CPU ignoruje błąd, gdy przekroczony zostanie maksymalny czas cyklu.

Zdarzenie błędów czasu – co to jest ?

lp. Zrozumienie zdarzenia błędu czasu
1. „Przekroczono maksymalny czas cyklu”
Jeśli program cykliczny przekroczy maksymalny czas cyklu, reakcja będzie następująca:

  1. Gdy czas cyklu po raz pierwszy przekroczy czas monitorowania cyklu, następuje próba uruchomienia OB „Przerwanie od błędu czasu” (OB 80). Jeśli w CPU nie ma OB „Przerwanie od błędu czasu”, CPU generuje błąd i kontynuuje wykonywanie programu użytkownika.
  2. Jeśli zdarzenie „przekroczony maksymalny czas cyklu” wydarzy się dwa razy w tym samym cyklu programu, bez resetowania zegara cyklu, wtedy CPU przełączy się w STOP, niezależnie od tego, czy istnieje OB 80. Możesz zapobiec przełączeniu CPU w STOP przez restart CPU monitorowanie cyklu za pomocą instrukcji „RE_TRIGR”.

System operacyjny monitoruje czas wykonania programu cyklicznego pod kątem konfigurowalnego górnego limitu znanego jako „Maksymalny czas cyklu”.

„Maksymalny czas cyklu” znajduje się we właściwościach sterownika PLC S7-1200.

  • Przeglądaj „Drzewo projektu” dla swojego S7-1200 PLC.
  • Kliknij dwukrotnie element „Konfiguracja urządzenia”.
  • Wybierz swój sterownik PLC S7-1200 w widoku „Urządzenia i sieci”.
  • Na karcie „Właściwości” wyszukaj wpis „Czas cyklu”.

01

 

 

 

 

 

 

 

 

 

 

 

 
Rys. 01

2. „Wywoływany OB nadal jest wykonywany”
Wywoływany OB jest aktualnie wykonywany. Jest to możliwe dla OB przerwań opóźnionych czasowo i OB przerwań cyklicznych.
3. „Przepełnienie kolejki”
Wystąpiło przepełnienie kolejki OB przerwań. Dla każdej grupy priorytetów przerwań istnieje kolejka. Jeśli zdarzenie przerwania wystąpi, gdy odpowiednia kolejka jest pełna, generowane jest zdarzenie błędu czasu.
4. „Utrata przerwań z powodu nadmiernego obciążenia przerwaniami”
Przerwanie zostało utracone z powodu nadmiernego obciążenia przerwaniami.

 

Instrukcja „RE_TRIGR”

Instrukcja „RE_TRIGR” (monitorowanie czasu cyklu ponownego wyzwalania) umożliwia zresetowanie timera mierzącego czas cyklu. Jednak ta instrukcja musi być wykonana w OB cyklu programu. Instrukcja „RE_TRIGR” jest ignorowana, jeśli jest wykonywana w innych blokach (na przykład OB 80). Jeśli maksymalny czas cyklu skanowania zostanie przekroczony dwukrotnie w tym samym cyklu programu bez wykonanej instrukcji „RE_TRIGR”, CPU natychmiast przełączy się w STOP.

Aby wstawić instrukcję „RE_TRIGR”:

  • Przejrzyj okienko instrukcji, aby znaleźć „Instrukcje rozszerzone” > „Sterowanie programem” > „RE_TRIGR”.
  • Przeciągnij i upuść tę instrukcję do sieci OB cyklu programu.

02

 

 

 

 

 

 

 

 

Rys. 02

Informacje dodatkowe!
Używaj instrukcji „RE_TRIGR” ostrożnie. Powtarzające się wykonanie instrukcji „RE_TRIGR” może stworzyć nieskończoną pętlę lub bardzo długi skan. W wyniku tej niekończącej się pętli program cykliczny nigdy się nie kończy, a wyjściowy obraz procesu nigdy nie zostanie zapisany. Dlatego nigdy nie otrzymasz stanu zachowania na wyjściach.

Obsługa zdarzenia błędu czasu za pomocą OB „Przerwanie błędu czasu”

System operacyjny wywołuje OB 80 „Przerwanie błędu czasu”, jeśli wystąpi jedno z wcześniej wymienionych zdarzeń.

Lp.
Obsługa zdarzenie błędu czasu za pomocą OB „Przerwanie błędu czasu”
1. Dodaj OB „Przerwanie błędu czasu”

  • Przeglądaj „Drzewo projektu” w poszukiwaniu elementu „Dodaj nowy blok”.
  • W oknie „Dodaj nowy blok” kliknij przycisk „Blok organizacyjny”.
  • Wybierz z listy OB „Przerwanie błędu czasu”.
  • Kliknij przycisk „OK”.

UWAGA!!!
W programie można używać tylko jednego OB „przerwania błędu czasu”.

03

 

 

 

 

 

 

 

 

 

 

 
Rys. 03

2. Monitorowanie informacji startowych OB „Przerwanie błędu czasu”

  • Kliknij dwukrotnie OB „Time error interrupt” dla S7-1200 PLC w „Project tree”.
  • Przejrzyj okienko instrukcji „Instrukcje” > „Przenieś” > „Przenieś”.
  • Przeciągnij i upuść instrukcję ruchu do sieci OB „Przerwanie błędu czasu”.
  • Przenieś wartość tagu „fault_id” do tagu globalnego (na przykład „Data_block”.by_fault_ID”).
  • Zaprogramuj pozostałe tagi, które chcesz monitorować w ten sam sposób. Proszę odnieść się do przykładu na rys. 04.

04

 

 

 

 

 

 

 

 

 

 
Rys. 04

3. Analiza informacji startowych OB „Przerwanie błędu czasu”
OB „Przerwanie błędu czasu” zawiera następujące informacje startowe:„identyfikator błędu” (BYTE) „fault_id” określa typ błędu.

  • 0x01: Przekroczono maksymalny czas cyklu
  • 0x02: Wywołanie OB jest nadal wykonywane
  • 0x07: Przepełnienie kolejki
  • 0x09: Utrata przerwań z powodu nadmiernego obciążenia przerwaniami

„csg_OBnr „(OB-DOWOLNY)
Numer OB wykonywanego w momencie wystąpienia błędu.

„csg_prio” (UINT)
Priorytet wykonywanego OB w momencie wystąpienia błędu.

 

A Ty już przekroczyłeś czas cyklu PLC? Opisz w komentarzu Twoją sytuację

Kurs wideo

Więcej na temat programowania w języku SCL znajdziesz w kursie Sterownik PLC w praktyce:

pl-usb-1p1-tia-1200-scl_sterownik-plc_w-praktyce-1

 

 

 

 

 

 

 

 

 

 

Podziel się tym wpisem na:
  • Facebook
  • Google Bookmarks
  • Twitter
  • Wykop

Newsletter - Zapisz się i jako pierwszy otrzymasz najnowsze informacje