Podsumowanie

| Technika

W procesie produkcyjnym zdarza się, że zaprojektowana aplikacja zaczyna źle działać. Do zadań inżyniera utrzymania ruchu należy szybka reakcja na zaistniałą sytuację oraz znalezienie i próba wyeliminowania błędów. W artykule przedstawione zostały podstawowe funkcje sterowników PLC Simatic firmy Siemens, które pozwalają na przeprowadzenie testów diagnostycznych i wykrywanie błędów występujących wtedy, gdy sterownik wciąż pracuje, ale zapisana na nim aplikacja działa nieprawidłowo. Dobra znajomość omawianych funkcji pozwala na szybką reakcję obsługi, próbę poprawy działania aplikacji oraz skrócenie czasu przestoju, co pozwala na zmniejszenie strat i poniesionych kosztów związanych z zaistniałymi błędami.

Podsumowanie

WYŚWIETLANIE STRUKTURY PROGRAMU

Jedną z często stosowanych opcji jest wyświetlanie struktury programu. W tym celu w oknie dialogowym Customize (rys. 10) podczas wyświetlania danych referencyjnych należy zaznaczyć opcję Program Structure. Otwiera się wtedy okno (rys. 11) ze strukturą programu, która opisuje całkowitą hierarchię bloków w programie sterowania.

"W zależności od ustawień filtru, wybranego za pomocą przycisku  wyświetla się cały program w postaci drzewa lub wybrana część struktury bloków. Następujące symbole są wyświetlane w strukturze drzewa (rys. 11): < maximum : nnn > - maksymalna ilość pamięci lokalnej (w bajtach) wymagana do przetworzenia całej struktury programu, [ nnn ] - maksymalna ilość pamięci lokalnej (w bajtach) wymagana do przetworzenia programu, licząc od ostatniego bloku.

LISTA CROSS-REFERENCES

Kolejna funkcja wyświetla informacje o tym, jakie adresy są wykorzystane, w jakich blokach i z jakimi instrukcjami. Jest ona otwierana za pomocą opcji View -> Cross References. W liście mogą być wyświetlane wszystkie wykorzystane wejścia, wyjścia, znaczniki (M), elementy czasowe (T), liczniki (C), bloki (z wyłączeniem OB), peryferyjne wejścia i wyjścia (rys. 12).

Lista Cross-References jest przedstawiona w formie tablicy i ma następujące kolumny: Address - absolutny adres rejestru, Symbol - symboliczna nazwa adresu, Block - blok, w którym został wykorzystany adres, Type - informacja, czy adres jest tylko do odczytu (R) lub tylko do zapisu (W), Language - język programowania, w którym zostały napisane funkcje wykorzystujące adres, Details - instrukcje z jakimi został użyty adres.

Rys. 15. Wyświetlenie Cross-References z edytora LAD/STL/FBD

Rys. 16. Lista obszarów I/Q/M oraz T/C

Po zaznaczeniu konkretnego adresu z listy, za pomocą prawego przycisku myszy i wybraniu opcji View -> Cross Reference for Address, otwiera się nowe okno przedstawiające referencje dla jednego wybranego wcześniej adresu. Za pomocą funkcji Filter wyświetla się referencje dla wybranych adresów lub obszarów pamięci (rys. 13). Filtrowanie uruchamiane jest za pomocą opcji View-> Filter reference data.

W oknie dialogowym ustawia się następujące informacje: Addresses - definicja, jakie adresy będą wyświetlane w liście; Filter Area - specyfikacja wyświetlanego obszaru wewnątrz adresu; Access Type - informacja, gdzie jest odczytywana lub gdzie jest zapisywana wartość adresu; Columns - definiowanie, które kolumny mają być wyświetlane. Jeżeli zdefiniowane ustawienia mają być ustawieniami standardowymi, należy je zapisać poprzez wybranie opcji Save as standard.

Standardowe lub podstawowe ustawienia można odzyskać za pomocą przycisku Load Default Setting. W momencie wyświetlania danych referencyjnych można uruchomić w dowolnym momencie funkcję znajdowania adresu (ciągu znaków) w liście referencyjnej, wybierając z menu okna Cross-References opcje Edit -> Find. Poprzez dwukrotne kliknięcie na adres w liście Cross-References zostanie otwarty uruchomiony edytor LAD/FBD/STL i blok w miejscu, gdzie ten adres został wykorzystany (rys. 14).

Dane referencyjny są generowane tylko z bloku, który został zapisany na dysku (offline). Podczas sprawdzenia programu znajdującego się w sterowniku bloki zapamiętane online i offline muszą być identyczne. Stan bloków sprawdzany jest w aplikacji SIMATIC Manager za pomocą funkcji z menu Options -> Compare Blocks. W trakcie diagnozowania programu bardzo często wymagane jest szybkie sprawdzanie miejsc wykorzystania konkretnego adresu.

W takim przypadku należy zastosować funkcję Go to Location, która jest uaktywniana bezpośrednio z edytora LAD/FBD/STL i wyświetla listę Cross-References wybranego adresu. Funkcja jest uruchamiana poprzez kliknięcie prawym przyciskiem myszy na wybrany adres. Pojawi się okno dialogowe Go to Location (rys. 15). Wpisy są identyczne jak w edytorze Cross-References. Następnie, po wybraniu interesującego miejsca wykorzystania adresu, kliknąć na przycisk Go To.

Rys. 17. Lista niewykorzystanych nazw symbolicznych

Rys. 18. Edycja symbolu dla adresu bez symboliki

Poprzez wciśnięcie przycisku Starting Point wraca się do pierwszego miejsca wykorzystania adresu. Standardowo uaktywnione są wszystkie miejsca wykorzystania adresu. Poprzez wybranie opcji Selection w polu Type of Access wyświetla się np. tylko miejsca, gdzie jest zapisywana wartość do rejestru (przyrównanie, set, reset). Wyświetlenie listy wykorzystanych pamięci z obszarów wejść (I), wyjść (Q) i znaczników (M) jest uaktywniane poprzez wybranie w oknie funkcji Cross-Referrences opcji View -> Assignment -> Inputs, Outputs and Bit Memory lub wciśnięcie ikony  (rys. 16).

Wyświetlenie listy wykorzystanych członów czasowych (T) i liczników (C) jest uaktywniane poprzez wybranie View -> Assignment -> Timers and Counters lub wciśnięcie ikony  (rys. 16). W kolejnych liniach listy znajdują się elementy T/C wykorzystane w programie. Lista obszarów I/Q/M oraz T/C umożliwia sprawdzenie, które bity z bajtów zostały użyte w programie z obszarów I/Q/M oraz T/C. Każda linia przedstawia jeden bajt z obszaru pamięci, w którym są zidentyfikowane pionowo bity.

Można także sprawdzić, czy obszar został wykorzystany w programie w formie bitu, bajtu, słowa czy też podwójnego słowa. Elementy listy są opisane następującymi symbolami: "-" - adres nie jest użyty w programie i jest nadal wolny, "o" - adres jest wykorzystany w programie bezpośrednio (jako bit), "x" - adres jest wykorzystany pośrednio jako bajt, słowo lub podwójne słowo. Dowolne ograniczenia lub warunki, jakie zakresy obszarów danych mają być wyświetlane, określa się wybierając opcje View-> Filter reference data.

W tym przypadku jest wyświetlane to samo okno dialogowe filtru co przy liście referencyjnej. Wyświetlenie listy niewykorzystanych nazw symbolicznych jest uaktywniane poprzez wybranie w menu okna Cross-Referrences opcji View -> Unused Symbols lub poprzez wciśnięcie ikony . Lista przedstawia adresy (rys. 17), które mają nazwę symboliczną, lecz nie zostały użyte w programie sterowania. Wybrany symbol i nazwę symboliczną kasuje się z tablicy symboli poprzez kliknięcie na niego prawym przycis kiem myszy i wybranie opcji Delete Symbols.

Rys. 19. Porównanie bloków (1)

Rys. 20. Porównanie bloków (2)

Wyświetlenie listy adresów bez symboliki jest uruchamianie przez wybranie opcji View -> Addresses without Symbols lub wciśnięcie ikony . Lista przedstawia adresy, które są wykorzystywane w programie sterowania, lecz nie mają nazwy symbolicznej w tablicy symboli. Poprzez kliknięcie prawym klawiszem i wybranie funkcji Edit Symbols definiuje się symbolikę dla wybranego adresu (rys. 18). Za pomocą funkcji filtrującej uruchamianej za pomocą opcji View-> Filter reference data określa się dokładniej sposób wyświetlania niewykorzystywanych adresów z nazwami symbolicznymi.

PORÓWNANIE BLOKÓW

W STEP 7 istnieje możliwość porównania bloków pomiędzy programem online i offline lub pomiędzy dwoma programami znajdującymi się na dysku twardym programatora (PG). Pozwala to sprawdzić, czy zostały wprowadzone zmiany w CPU oraz które linie i bloki zostały zmienione.

Porównanie bloków można zrealizować następująco (rys. 19):

  • za pomocą prawego przycisku myszy wybrać katalog Blocks z programu S7, następnie opcję Options -> Compare Blocks,
  • wybrać, które programy mają być porównane online/offline,
  • w kolejnym oknie zostaną wyświetlone różnice w porównywanych blokach,
  • wybrać linię różnicy, która ma być sprawdzona i wcisnąć przycisk Details,
  • w oknie Compare Blocks - Details sprawdzić, kiedy został zmieniony blok i jaką ma długość,
  • po wciśnięciu przycisku Go To zostaną otwarte dwa bloki np. online i offline w edytorze LAD/STL/ FBD oraz przedstawione linie programowe, w których znajdują się różnice (rys. 20).

Zmiany mogą być dokonane tylko w oknie offline.

PODSUMOWANIE

Znajomość i umiejętne zastosowanie funkcji diagnostycznych znacznie ułatwia wykrycie i eliminację błędów. Stosunkowo łatwo wykrywa się błędy systemowe, które powodują zatrzymanie pracy sterownika PLC. Jednak często poważnych problemów nastręczają błędy funkcjonalne, które występują, pomimo że sterownik wciąż pracuje i z tego powodu są one znacznie trudniejsze do wykrycia.

Mogą być związane z nieprawidłowym działaniem elementów peryferyjnych lub błędami programowymi, które nie zostały zidentyfikowane podczas pisania oraz uruchomienia programu w sterowniku PLC. W artykule opisano sposób pracy z funkcjami diagnostycznymi środowiska STEP 7 pomagającymi w identyfikacji błędów funkcjonalnych, których odpowiednie wykorzystanie znacznie poprawia niezawodność przygotowywanej aplikacji.

Jakub Możaryn
Wojciech Kuś
Siemens