W wielu zautomatyzowanych zakładach i fabrykach istnieje sieć przemysłowa PROFIBUS – najpopularniejsza sieć przemysłowa na świecie. PROFIBUS (Process Field Bus) jest standardem komunikacji polowej w technologii automatyzacji przemysłowej. PROFIBUS obejmuje zakres użytkownika od poziomu pola do poziomu sterowania procesem. Zasadniczo ma zastosowanie jako profil protokołu PROFIBUS-DP (Distributed I / O). Pewnie mieliście okazję spotkać się z PROFIBUS w swoim miejscu pracy, a co poniektórzy mieli możliwość konfiguracji lub diagnostyki.
We wcześniejszych artykułach opisałem konfigurację urządzeń w sieci Profibus. Tym Razem chciałbym przedstawić kilka metod diagnozowania usterek sieci. Naprawdę nie trzeba wiele aby szybko i sprawnie zdiagnozować problem na magistrali Profibus, trzeba tylko wiedzieć od czego zacząć.
Pokażę na przykładach metody diagnostyki za pomocą oprogramowania Siemens Step 7 oraz mojej stacji badawczej Siemens PLC, składającej się z podzespołów:
- CPU 317-2DP (DP Adres 2)
- CP 343-1
- DI 16xDC24V
- DO 16xDC24V
- ET-200M (DP Adres 3)
- DI8/DO8xDC24V
- HMI TP177B (DP Adres 1)
- SEW Movidrive Compact 41 (DP Adres 4)
Zakład produkcyjny może działać efektywnie i ekonomicznie tylko wtedy, gdy inżynierowie są w stanie szybko zidentyfikować i naprawić usterki, aby zminimalizować przestoje. Poniżej przedstawię kilka możliwości analizowania błędów Profibus:
Inspekcja wizualna diod LED:
- Diody LED na urządzeniu typu DP-Master
- Diody LED na urządzeniu typu DP-Slave
Software Simatic Step 7:
- Diagnostyka Sprzętowa (Hardware Diagnostics)
- Wgląd w Bufor Diagnostyczny (Diagnostic Buffer)
Program użytkownika w Step 7:
- Wywoływanie Errors OB
- Wywoływanie SFC13
- Diagnostyka FB125.
Inspekcja wizualna.
Zacznijmy od inspekcji wizualnej wszystkich sterowników i urządzeń peryferyjnych w naszej sieci Profibus. Na urządzeniach typu MASTER można spotkać się z następującymi diodami LED które informują nas o bieżącym stanie urządzenia oraz sieci:
S7-300 CPU 317-2DP
- BF1/ BF2 – Czerwona dioda LED
- SF – Czerwona dioda LED
- DC5V – Zielona Dioda LED
- FRCE – Pomarańczowa dioda LED
- RUN – Zielona Dioda LED
- STOP – Pomarańczowa dioda LED
Na urządzeniach typu SLAVE można spotkać się z następującymi diodami LED które informują nas o bieżącym stanie urządzenia oraz sieci:
ET-200M IM 153-1
- SF – Czerwona dioda LED
- BF – Czerwona dioda LED
- ON – Zielona Dioda LED
Rozwiązywanie problemów z diagnostyką sprzętową i buforem diagnostycznym.
Wkrótce po zakończonej inspekcji wizualnej nadchodzi pora na diagnostykę sprzętowa (Hardware Diagnostics)
W tym celu użyjemy oprogramowania Siemens Step 7. Podpinam się do sterownika Siemens adapterem, a następnie w oprogramowaniu Step 7 otwieram mój projekt i zaznaczam CPU naszego sterownika, klikam prawy przycisk myszki, PLC → HARDWARE DIAGNOSTICS.
Informacje o stanie lub trybie pracy modułu są wyświetlane w oknie CPU/Faulty modules.
Okno Hardware Diagnostics jest aktualizowane po przyciśnięciu klawisza “F5” lub przyciskiem „Update”
Teraz wybieram wadliwą stację i klikam „Module Information”. To zabiera nas do szczegółowej diagnostyki danego urządzenia.
Bufor diagnostyczny (Diagnostic Buffer) zawiera wpisy, które ułatwiają znalezienie przyczyny błędu w programie. Zaznaczam CPU w oknie „Hardware diagnostics” i klikamy „Module information”
W wyświetlonym oknie mogę odczytać przyczynę i lokalizację błędu w zakładce „Diagnostic Buffer”.
Gdy zaznaczę błąd i wcisnę przycisk “Help on Event”, wyświetli nam się nowe okno, w którym opisana jest przyczyna błędu oraz opis jak usunąć błąd.
Ostatnie 100 wpisów jest zapisanych w buforze diagnostycznym.
Zawartość bufora można zapisać jako plik “___.txt”
Diagnostyka od strony programu użytkownika.
Ewaluacja błędów za pomocą OB86 : Poznaliśmy podstawowe funkcje diagnozowania sterownika, teraz przejdźmy do programu PLC i ewaluacji błędów w programie użytkownika. System operacyjny CPU 317-2 DP wywołuje OB86, jeśli wykryto awarię stacji, podsieci lub rozproszonego IO dla zdarzenia przychodzącego i wychodzącego. Jeśli OB86 nie został zaprogramowany i wystąpi taki błąd, CPU przechodzi w tryb STOP. Zaprogramuję więc OB86 w naszym sterowniku (pamiętaj: nie trzeba wywoływać OB86 w OB1):
Wywołanie OB86 jako przychodzące lub wychodzące zdarzenie.
Porównuję status Local Byte 0 – OB86_EV_CLASS – („Kierunek” przyczyny wywołania OB86) z
B#16#38 – wychodzące zdarzenie (outgoing event)
oraz
B#16#39 – przychodzące zdarzenie (incoming event).
I tym sposobem setuje bądź resetuje Bit M86.0 w pamięci sterownika.
Można jeszcze “głębiej” zajrzeć do OB86:
Wywołanie OB86 jako identyfikacja błędu.
Do istniejącego już kodu dodajemy dwa komparatory,
Porównujemy status Local Byte 1 – OB86_FLT_ID – (Identyfikacja Błędu) z
B#16#C4 – Awaria DP Stacji (Failure of a DP Station).
Local Byte 11 bloku OB86:
Local Byte 11 bloku OB86 przechowuje numer stacji która uległa uszkodzeniu.
OB86_RACK_FLTD Local DWord 8 zawiera 4 Byte = 8,9,10,11:
Byte 11, Bits 0 do 7 – Numer uszkodzonej Stacji DP ( Number of the DP Station)
Byte 10, Bits 8 do 15 – Numer sieci Profibus (DP Master System Number)
Byte 9 i 8, Bits 16 do 30 – Logiczny adres Slave S7 lub adres diagnostyczny standardowego urządzenia DP Slave (Logical base address of an S7 slave or diagnostic address of a standard DP slave)
Byte 8, Bit 31 – Identyfikator IO (I/O Identifier)
Przenosimy więc Local Byte 11 do MB189, następnie M86.0 oraz MB189 wykorzystujemy w projekcie na panelu HMI.
M86.0 jest odpowiedzialna za “widoczność” alarmu
MB189 przechowuje wartość – numeru stacji która uległa uszkodzeniu.
Dzięki zaprogramowaniu OB86 można w łatwy i szybki sposób wdrożyć wszystkie potrzebne dane i przedstawić je na panelu HMI.
Na tym krótkim video można zobaczyć prostą wizualizację:
Gdy utracimy urządzenie DP-Slave na naszej magistrali PROFIBUS, na panelu HMI pojawi się komunikat – !!!PROFIBUS FAILURE!!!, oraz adres uszkodzonego urządzenia DP-Slave.
Odczyt danych diagnostycznych SFC13 DPNRM_DG
To by było na tyle z OB86, przejdźmy więc do następnej opcji jaka jest dostępna w Step 7 a mianowicie SFC13. SFC13 DPNRM_DG DIAGNSTC – odpowiedzialny za odczyt danych diagnostycznych urządzenia DP-Slave.
Podstawowa struktura danych diagnostycznych DP Slave wygląda następująco:
Byte 0 – Station Status 1
Byte 1 – Station Status 2
Byte 2 – Station Status 3
Byte 3 – Master Station Number
Byte 4 – Manufacturer’s ID (high byte)
Byte 5 – Manufacturer’s ID (low byte)
Byte 6 – Other slave-specific diagnostics
Więcej informacji można znaleźć w manualu urządzenia w rozdziale – Diagnostics lub po wciśnięciu przycisku “F1” – Help.
Zaprogramujemy więc SFC13 w OB1.
Wpierw należy stworzyć blok danych DB86 a w nim umieścić dane – ET200M_Diag_BYTE typu Array of 64 Byte, w tym bloku zostaną zapisane informacje diagnostyczne, pobrane z urządzenia o adresie podamym przez nas.
Następnie w OB1 trzeba wywołać blok SFC13. Pamiętać trzeba aby na “pin” LADDER podać adres diagnostyczny stacji którą chcemy monitorować w formacie Hex. W naszym przypadku jest to urządzenie ET200M o adresie diagnostycznym 8189 czyli Hex = W#16#1FFD. Informacje diagnostyczne zostaną pobrane gdy na „pin” REQ zostanie podana wartość logiczna 1, w naszym przypadku jest to zbocze narastające lub opadające bitu M86.0, który jest setowany i resetowany w OB86.
Wszystko nalerzy wgrać do sterownika i monitorować DB86.
Aby zrozumieć wszystkie dane przedstawione w bloku DB86 należy zajrzeć do manuala urządzenia, do rozdziału diagnostyka. Tam będzie opisany każdy Byte diagnostyczny.
Blok Danych DB86.
Wywołanie SFC13 w OB1.
FB125 DETAIL_DP_DIAG – szczegółowa diagnostyka urządzeń DP
Ostatnia pozycją którą chciałbym przedstawić jest FB125 czyli szczegółowa diagnostyka urządzeń DP (Detailed DP Diagnostic). FB125 jest funkcją wykrywania uszkodzonego urządzenia DP-Slave. W przypadku wadliwych urządzeń DP-Slave szczegółowe informacje diagnostyczne dotyczące przyczyny usterki można wyświetlić na panelu HMI (numer stacji, numer modułu, status modułu, numer kanał, błąd kanału). Informacje diagnostyczne dowolnych DP-Slave można odczytać i interpretowane poprzez indywidualną diagnostykę.
Gdy najdzie potrzeba użycia szczegółowej diagnostyki sieci, można użyć bloku FB 125.
Blok FB 125 dostarczy nam między innymi informacji:
- DP_MASTERSYSTEM
- EXTERNAL_DP_INTERFACE
- ALL_DP_SLAVES_OK
- SUM_SLAVES_DIAG
- SLAVE_ADR
- SLAVE_STATE
- SLAVE_IDENT_NO
- ERROR_NO
- ERROR|_TYPE
- MODULE_NO
- MODULE_STATE
- CHANNEL_NO
- CHANNEL_TYPE
- CHANNEL_ERROR_CODE
- CHANNEL_ERROR_INFO_1
- CHANNEL_ERROR_INFO_2
- DIAG_COUNTER
- DIAG_OVERFLOW
- BUSY
Aby blok funkcyjny FB125 zadziałał należy go wywołać w trzech blokach organizacyjnych, które wcześniej zostały zaprogramowane w sterowniku – OB1, OB82 i OB86 (pamiętaj OB82 i OB86 nie trzeba wywoływać w OB1):
We wszystkich OB do bloku FB125 należy przypisać ten sam blok danych DB125, w którym to zostaną zapisane dane diagnostyczne.
Na wyjściowe „piny” bloku FB125 przypisałem adresy pamięci sterownika, gdyż użyje części tych danych do stworzenia wizualizacji na panelu HMI. W ten oto prosty sposób można dokładnie przedstawić diagnostykę sieci Profibus na panelu HMI i w bardzo szybki sposób zlokalizować problem.
Przedstawienie danych z FB125 na panelu HMI.
Na tym krótkim video można zobaczyć prostą wizualizację:
Wkrótce po utracie falownika SEW ( DP Adres 4) zauważamy migajaca ikone DP MASTERSYSTEM 1 (główna magistrala Profibus w projekcie) oraz ikonę z numerem 4 (Adres uszkodzonego urządzenia DP-Slave), klikam więc w ikonę “4”. Pojawia się nowy ekran z informacjami diagnostycznymi.
Zawarte informacje w tym oknie to:
- Adres uszkodzonej magistrali.
- Status Stacji.
- Numer uszkodzonego urządzenia DP-Slave oraz potoczna nazwa urządzenia.
- Numer uszkodzonego modułu.
- Licznik diagnostyczny oraz jego reset.
- Numer identyfikacyjny producenta urządzenia.
- Oraz ilość uszkodzonych urządzeń na danej magistrali.
Następnie “odzyskałem” stacje i wróciłem do ekranu głównego, jak widać wszystko wróciło do normy (ikony są znów zielone = wszystko OK).
Wkrótce potem wyjąłem moduł numer 4 ze stacji ET-200M (DP Adres 3) zauważamy migająca ikonę DP MASTERSYSTEM 1 oraz ikonę z numerem 3 klikam więc w ikonę “3”.
I tym razem zaprezentowane są informacje o uszkodzonym urządzeniu. Naprawiam stacje, i wyjście do głównego ekranu.
Jest jeszcze wiele innych możliwości diagnostyki w sterowniku PLC Siemens, ja podałem podstawowe możliwości, które w zupełności wystarczają w moim miejscu pracy.
Podsumowanie
To by było na tyle w tej publikacji, mam nadzieję że choć trochę zainteresowałem Cię tą diagnostyką. Może ten artykuł przyda ci się w przyszłości lub wykorzystasz w Twoim miejscu pracy i stworzysz własna wizualizacje dla diagnostyki sieci PROFIBUS.
Pozdrawiam,
Maciej Pala
Artykuł nagrodzony!
Artykuł został zgłoszony jako Praca Konkursowa do Konkursu iAutomatyka w miesiącu Kwiecień 2018 i zdobył poniższą nagrodę:
Uniwersalny klucz do szaf od WAGO
Nagrodę dostarcza WAGO – producent urządzeń automatyki przemysłowej i budynkowej oraz systemów połączeń dla elektrotechniki i elektroniki. Powstanie w 1951 roku firmy WAGO było wyrazem przekonania o słuszności obranego kierunku i stworzyło podwaliny pod dalszy rozwój technologii. Z czasem stała się ona standardem na całym świecie i teraz nie sposób wyobrazić sobie nowoczesnej instalacji elektrycznej czy systemu automatycznego sterowania bez wyrobów WAGO. http://www.wago.pl/
🎁 Zwycięzca: Maciej Pala – Maciej sam mógł wybrać nagrodę jako najlepsza praca w miesiącu Kwiecień 2018 Praca konkursowa: Wybrane metody diagnozowania sieci PROFIBUS w STEP7 SIEMENS |