Status połączenia z wyspą ET 200SP

Tym razem zapraszam na mały poradnik z automatyki, a dokładnie sterowników Siemens S7 i wysp IO.

Podłączając wyspę IO typu ET 200 SP (SIEMENS)  do sterownika S7-1200, dobrze by było znać jej status, a dokładnie czy nie wystąpił błąd związany z połączeniem, bądź z jakimś modułem tej wyspy.

Aby tego dokonać, użyjemy bloczku do diagnostyki urządzeń rozpoznawalnych przez identyfikator HW-Device – instrukcji ModuleStates. Komponent ten znajduje się w zakładce Extended Instructions, w kategorii Diagnostics. Po dodaniu instrukcji do naszego programu należy podpiąć takie zmienne które będą przechowywać danej jak:

Tryb pracy (Mode – wymienione pod koniec artykułu), status urządzenia (State – musi to być tablica typu bool o 128 komórkach – 0..127), wartość jaką zwraca instrukcji, czyli kody błędów (ret_val), oraz identyfikator urządzenia (LADDR) czyli HW_Device. Jak odczytać identyfikator sprzętowy urządzenia? Jest on nadawany automatycznie przez oprogramowanie TIA portal. Można go znaleźć wchodząc do zakładki Device & Network w drzewie projektu, następnie otworzyć widok sieci (Network View), wybrać żądane urządzenie/wyspę i prawym przyciskiem myszy wywołać menu.

W menu które się pojawi, należy wybrać właściwości (Properties), w okienku na dole ekranu (w zależności od tego jak mamy ustawiony widok, okno to może znajdować się w innym miejscu), następnie należy wybrać zakładkę System constants. W niej znajdują się stałe opisujące dane urządzenie – nazwy te można wykorzystywać bezpośrednio w programie. Jak widać w załączonym przykładzie, numer HW_Device mojej wyspy wynosi 272 – w programie użyłem stałej o nazwie ET_200SP~IODevice.

Po poprawnym skonfigurowaniu instrukcji i wgraniu programu do sterownika blok naszej instrukcji powinien wyglądać jak na rys. 3 (ret_val przyjmuje wartość 0 – wszystko OK), natomiast status każdego modułu danej wyspy znajduje się w tablicy podpiętej do parametru STATE naszej instrukcji. Wybrałem tryb pracy 5 (czyli jakakolwiek awaria, błąd modułu bądź wyspy zgłasza awarię), więc w przypadku gdy nie ma awarii zmienne mają wartość FALSE, w przeciwnym razie przyjmują wartość TRUE. Jak widać na rysunku 4 wyspa posiada 4 moduły – jednostka centralna, moduł wejść, moduł wyjść i zakończenie wyspy – status każdego modułu jest odwzorowany w tabeli od pozycji 1. A co z pozycją 0 tej tabeli? Pozycja ta informuje o globalnym błędzie wyspy, czyli gdy wszystko jest ok przyjmuje wartość 0, a gdy jakiś moduł powoduje błąd przyjmuje wartość 1 (TRUE) – dzięki temu nie trzeba sprawdzać wszystkich komórek z osobna aby dostać informację o tym, czy występuje jakaś awaria.

Po odłączenie przewodu ethernetowego status będzie jak na zdjęciu 5, natomiast gdy brakuje jakiegoś modułu, bądź występuje jakaś inna awaria związana z jednym modułem status wygląda jak na zdjęciu 6.

Kody błędów jak i tryby pracy diagnostyki można znaleźć w pomocy dla tego komponentu.

W przypadku gdy parametry diagnostyczne są poprawnie ustawione, zostaje zwracana wartość 0. W przypadku gdy np. wpiszemy zły adres (LADDR) który nie istnieje w projekcie uzyskamy kod błędy 8091 – w postaci szesnastkowej.

Do wyboru mamy 5 trybów diagnostycznych:

  1. Czy moduły są skonfigurowane
  2. Czy występuje błąd modułu
  3. Czy moduły są niedostępne
  4. Czy moduły istnieją
  5. Występuje jakiś problem z modułem.

To by było na tyle. W dość łatwy sposób można sprawdzić podłączone wyspy, oraz status modułów podłączonych to tych wysp. Mam nadzieję, że ten krótki poradnik wam się przyda.

Nie zapomnij o komentarzu

Pozdrawiam.

P.S.

W miarę czasu będą pojawiać się nowe artykuły dot. automatyki – jak to bywa u mechatronika, interesuje się on wieloma rzeczami;)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *