Instrukcje TIA Portal

Sterowanie Programem
Przepływ i Wykonanie

Opanuj logiczny przepływ swojego programu. Od skoków warunkowych po narzędzia diagnostyczne w czasie rzeczywistym — zoptymalizuj strukturę wykonania swojego sterownika.

Czym są operacje sterowania programem w TIA Portal?

Operacje sterowania programem pozwalają na zmianę sekwencyjnej kolejności wykonywania sieci. Są używane do pomijania części kodu (Skoki), tworzenia złożonych rozgałęzień (Rozdzielacze) lub zarządzania wewnętrznym zachowaniem CPU (Stop, Watchdog, Pomiar czasu).

Instrukcje te są potężne, ale muszą być używane ostrożnie, szczególnie instrukcja WAIT, która blokuje cykl, lub skoki, które przy zbyt dużej liczbie mogą utrudnić debugowanie. TIA Portal oferuje również nowoczesne narzędzia do przechwytywania błędów lokalnie w każdym bloku.

Skoki i Przepływ

Instrukcje przekierowania programu

JMP / JMPN — Skoki warunkowe

JMP

Co robi

JMP przerywa sekwencyjne wykonywanie i skacze do etykiety (LABEL), jeśli RLO wynosi 1. JMPN robi to samo, jeśli RLO wynosi 0.

Kiedy używać

Pominięcie sekcji kodu, która nie powinna być wykonywana w specyficznym trybie, lub tworzenie prostych pętli w LAD/FBD.

Porady Pro

Cel skoku (LABEL) musi znajdować się w tym samym bloku (FC lub FB).

Nie używaj skoków wstecz do tworzenia pętli bez warunku wyjścia, ponieważ ryzykujesz przekroczenie czasu cyklu.

W SCL używaj raczej struktur IF...THEN lub CASE...OF.

SWITCH — Rozdzielacz wieloprzypadkowy

SWITCH

Co robi

Porównuje wartość wejściową z kilkoma wartościami docelowymi i skacze do sieci odpowiadającej pierwszemu sprawdzonemu przypadkowi. Graficzny odpowiednik Switch/Case.

Kiedy używać

Zarządzanie stanami maszyny (prosty Grafcet), wybór trybów pracy lub kierowanie części według kodu typu.

Porady Pro

Czystsze i bardziej czytelne niż seria komparatorów == połączonych szeregowo.

Użyj wejścia 'ELSE' do obsługi przypadków, gdy żadna wartość nie pasuje.

Idealne do struktur menu na HMI.

RET — Powrót

RET

Co robi

Wymusza zakończenie wykonywania bieżącego bloku (FC/FB) i powraca do bloku wywołującego.

Kiedy używać

Wcześniejsze zakończenie funkcji, jeśli na początku bloku wykryto błąd lub jeśli warunek bezpieczeństwa nie został spełniony.

Porady Pro

Pomocne w optymalizacji czasu cyklu poprzez nieprzetwarzanie reszty kodu bez potrzeby.

Zachowaj czujność: wyjścia bloku, które nie zostały jeszcze przetworzone, zachowają swój ostatni stan.

W SCL używaj instrukcji RETURN;

Kontrola Runtime

Zarządzanie cyklem CPU i pomiary wydajności

RUNTIME — Pomiar czasu

RUNTIME

Co robi

Mierzy czas wykonywania części programu lub całego bloku w mikrosekundach (µs).

Kiedy używać

Optymalizacja kodu, diagnozowanie ciężkich sieci lub obliczenia wydajności maszyny.

Porady Pro

Wywołaj RUNTIME raz, aby zainicjować pomiar, a drugi raz, aby uzyskać wynik.

Użyj typu danych LReal do przechowywania wyniku pomiaru.

Przydatne do sprawdzania, czy złożona pętla FOR nie zbliża się do limitów watchdog.

WAIT — Stałe opóźnienie

WAIT

Co robi

Zawiesza wykonywanie programu na określony czas w mikrosekundach. UWAGA: w przeciwieństwie do Timera, WAIT całkowicie blokuje cykl CPU.

Kiedy używać

Oczekiwanie kilku mikrosekund na ustabilizowanie sygnału elektronicznego na bardzo szybkiej karcie I/O.

Porady Pro

Używaj z umiarem. Zbyt długi WAIT wywoła błąd Watchdog i zatrzyma PLC.

Nigdy nie używaj do opóźnień procesowych (sekundy/minuty); do tego używaj Timerów TON.

Dostępne tylko na S7-1500.

STP — Stop CPU

STP

Co robi

Wymusza przejście CPU w tryb STOP.

Kiedy używać

Stan błędu krytycznego, w którym maszyna nie powinna być już sterowana, lub test diagnostyczny.

Porady Pro

Zatrzymanie jest natychmiastowe. Do ponownego uruchomienia wymagana będzie interwencja ręczna (HMI lub przełącznik).

W miarę możliwości preferuj zarządzanie alarmami z bezpiecznym stanem zastępczym zamiast gwałtownego zatrzymania CPU.

Pomocne w projektach uruchomieniowych do zrobienia 'brejka' w konkretnym miejscu.

Obsługa Błędów

Lokalne przechwytywanie błędów wykonania

GET_ERROR / GET_ERR_ID

Co robią

Pobierają informacje o pierwszym błędzie, który wystąpił wewnątrz bloku (np. dostęp do nieistniejącego indeksu tablicy).

Kiedy używać

Uczynienie bloków odpornymi poprzez przechwytywanie błędów programistycznych bez zatrzymywania PLC.

Porady Pro

GET_ERROR dostarcza szczegółową strukturę, GET_ERR_ID zwraca tylko numer błędu.

Umieść te instrukcje na końcu swoich krytycznych bloków.

Pozwala na stworzenie własnego dziennika błędów.

Skoki vs Struktury sterujące

Której metody użyć do przekierowania programu?

Potrzebujesz...Zalecana instrukcjaDlaczego?
Prosty skok w LadderJMPPominąć sieć
Złożony wybór wielokrotnySWITCH / CASECzytelniejsze niż 10 JMP
Mierzyć czas wewnętrznyRUNTIMEOptymalizacja wydajności
Natychmiastowe zatrzymanieSTPBłąd krytyczny sprzętowy
Bardzo krótkie czekanieWAITStabilizacja elektroniczna
Lokalna diagnostykaGET_ERRORUniknięcie STOPu CPU

Często Zadawane Pytania

Jaka jest różnica między JMP a JMP_LIST?

JMP to pojedynczy skok do celu. JMP_LIST pozwala zdefiniować listę celów. W zależności od indeksu numerycznego, program skacze do 1., 2. lub N-tej etykiety z listy.

Czy instrukcja WAIT jest niebezpieczna?

Tak, jeśli jest niewłaściwie użyta. Zawiesza ona wykonywanie CAŁEGO programu użytkownika. Jeśli suma Twoich WAITów i kodu przekroczy czas watchdog (często 150ms), CPU przejdzie w tryb STOP.

Jak zmierzyć całkowity czas cyklu PLC?

Do tego nie potrzebujesz instrukcji RUNTIME. Możesz odczytać tę informację bezpośrednio we właściwościach CPU online lub użyć zmiennych systemowych bloku OB1.

Gdzie umieszczać etykiety LABEL?

LABEL można umieścić na początku dowolnej sieci. W LAD pojawiają się one nad lewą szyną zasilającą. Nazwa etykiety musi być unikalna wewnątrz bloku.

Zautomatyzuj swoje struktury sterujące

Opisz swoją logikę skoków i potrzebną diagnostykę, a T-IA Connect wygeneruje zoptymalizowane sieci JMP i SWITCH dla Twojej aplikacji.