Funkcje bezpieczeństwa maszynowego w sieci EtherNet/IP
2
Narzędzia i wymagania Do wykonania ćwiczenia zostały dostarczone następujące materiały pozwalające na jego realizację. Oprogramowanie: Logix Designer RSLinx Classic Sprzęt: Komputer z systemem operacyjnym Windows 7 Demonstrator Compact GuardLogix 1769 L36ERMS Demonstrator Kinetix 5500/PowerFlex 527 Kable Ethernet Wymagane pliki: CGLX_Demo_Wstep.ACD Schemat połączeń sieci EtherNet/IP Lista adresów IP Nr kat. urządzenia Nazwa węzła Adres IP 1769 L36ERMS CGLX_Demo 192.168.1.5 1734 AENTR PointIO_AENTR 192.168.1.11 25C A2P5N114 PF527_1 192.168.1.20 2198 H003 ERS2 K5500_1 192.168.1.23 3
W ćwiczeniu zastosujemy: 1. Serwonapęd Kinetix 5500 sterowany w trybie Motion i Safety poprzez sieć EtherNet/IP. 2. Falownik PowerFlex 527 sterowany w trybie Motion i Safety poprzez sieć EtherNet/IP. 3. Tryb sterowania Motion serwonapędu i falownika jest wstępnie skonfigurowany. 4. Kontroler Compact GuardLogix 1769 L36ERMS z funkcjonalnością sterowania Motion i Safety w sieci EtherNet/IP. 5. W sieci EtherNet/IP jest skonfigurowany moduł 1734 AENTR z jednym modułem wejściowym IB8 i jednym modułem wyjściowym OB8. 6. W ćwiczeniu skonfigurujemy kolejny moduł na wyspie 1734 AENTR. Będzie to moduł wejść bezpiecznych IB8S. Do tego modułu podłączony jest przycisk stopu awaryjnego, wyłącznik bezkontaktowy SensaGuard oraz rygiel 440G LZ. Rozmieszczenie sprzętu w walizkach demo Switch EtherNet/IP Stratix Procesor Compact GuardLogix Compact IO we lokalne CompactLogix Point IO EtherNet/IP we/wy standard i bezpieczne Moduły we/wy IP67 ArmorBlock (nieużywane w ćwiczeniu) Podłączenie sprzętowe we/wy 4
Zasilanie falownika i serwonapędów Silnik indukcyjny z enkoderem PowerFlex 527 falownik PF527_1 Kinetix 5500 Serwonapędy K5500_1 K5500_2 Serwosilniki VPL 5
Ćwiczenie 1. Uruchomienie Studio 5000 i przejrzenie wstępnego projektu 1. Uruchom Studio 5000; kliknij dwukrotnie na ikonę Studio 5000 na pulpicie. 2. Z kolumny Open, wybierz ikonę Existing Project. Otworzy się okno Open Project. 3. Przejdź do folderu Lab Files na pulpicie i otwórz CGLX_Demo_Wstep.ACD. Otworzy się Logix Designer. 4. Zapisz plik projektu pod własną nazwą np. CGLX_Demo _Nazwisko.ACD 5. Przejdź do okna Controller Organizer. Zwróć uwagę, że w systemie Logix, po wyborze kontrolera Compact GuardLogix pojawiają się dodatkowe funkcjonalności: Safety Task program bezpieczeństwa Urządzenia z funkcjami bezpieczeństwa, które działają w sieci CIP Safety EtherNet/IP Zauważ, że w kasecie 1756 A4 zainstalowane są: a) 1769 L36ERMS kontroler Compact GuardLogix b) 1734 AENTR adapter Point IO EtherNet/IP 1734 IB8 moduł 8 wejść cyfrowych 1734 OB8 moduł wyjść cyfrowych c) PowerFlex 527 falownik CIP Motion/Safety d) Kinetix 5500 S2 serwonapęd CIP Motion/Safety 6
Zadanie bezpieczeństwa z programem bezpieczeństwa Kontroler Compact GuardLogix Napędy Motion/Safety Kinetix 5500 S2 PowerFlex 527 6. Dla napędów PowerFlex 527 i Kinetix 5500 S2 zostały zdefiniowane osie synchronizowane PF527_Axis i K5500_Axis (sama konfiguracja osi nie należy do celów tego ćwiczenia). 7. Przejdź do programu MainProgram, a następnie otwórz podprogram Motion. Przejrzyj poszczególne linie. 8. Rung 0 służy do załączenia/wyłączenia obu skonfigurowanych osi PF527_Axis i K5500_Axis. Tag On_Off jest aliasem dla fizycznego wejścia IN0 w lokalnym module wejściowym kontrolera Compact GuardLogix. 7
9. Rung 1 służy do uruchomienia osi PF527_Axis z zadaną prędkością. Wykorzystana jest instrukcja MAJ (Motion Axis Jog), a do zatrzymania wykorzystana jest instrukcja MAS (Motion Axis Stop). Tag Start_PF527, służący do sterowania tymi instrukcjami jest aliasowany z fizycznym sygnałem IN1 podłączonym do modułu wejść lokalnych kontrolera Compact GuardLogix. 10. Rung 2 służy do uruchomienia krzywki osi K5500_Axis (slave) zależnej od pozycji osi PF527_Axis (master). Tag Krzywka_K5500 służący do uruchomienia instrukcji MAPC (Motion Axis Position Cam) jest aliasowany z fizycznym sygnałem DI2 podłączonym do modułu wejść wejściowego na wyspie Point IO. 11. Naciśnij przycisk edycji Cam Profile, aby zobaczyć profil krzywki ruchu osi Kinetix 5500_Axis w stosunku do pozycji osi PF527_Axis. 8
Zaprogramowany profil krzywki w oknie konfiguracji może wyglądać jak poniżej: W trybie offline możesz zmodyfikować punkty profilu. 12. Rung 3 służy do kasowania błędów obu skonfigurowanych osi. 13. Wróć do okna Controller Organizer. Otwórz okno właściwości serwonapędu Kinetix 5500S2 o nazwie K5500. Ten napęd ma funkcjonalność sterowania ruchem i pozycjonowania za pomocą sieci EtherNet/IP (CIP Motion). Dodatkowo ma również możliwość sterowania bezpieczeństwa za pomocą sieci EtherNet/IP (CIP Safety). Oznacza to, że napęd ten może być zatrzymany bezpiecznie (STO Safety Torque Off) za pomocą polecenia wysłanego przez sieć EtherNet/IP ze sterownika bezpieczeństwa. 9
Rodzaj sterowania wybiera się w polu Module Definition. Można wybrać trzy opcje: Motion and Safety dany sterownik steruje napędem w trybie Motion i Safety Motion only dany sterownik steruje napędem tylko w trybie Motion (inny sterownik kontroluje bezpieczeństwo tego napędu lub napęd ma zdeaktywowaną funkcjonalność Safety) Safety only dany sterownik kontroluje bezpieczeństwo tego napędu (w systemie musi być inny sterownik sterujący tym napędem w trybie Motion Motion and Safety Motion only Safety only 14. Przejdź do okna Controller Organizer. Wybierz opcję Controler Tags. Znajdź zmienne bezpieczeństwa przypisane do napędu Kinetix 5500. K5500:SO.SafeTorqueOff zmienna aktywująca zatrzymanie bezpieczne K5500:SO.Reset zmienna aktywująca reset napędu po aktywacji funkcji bezpieczeństwa K5500:SI.ResetRequired zmienna informująca o możliwości resetu napędu po aktywacji funkcji bezpieczeństwa 15. Wróć do okna Controller Organizer. Otwórz okno właściwości falownika PowerFlex 527 o nazwie PF527. Ten napęd ma również funkcjonalność sterowania ruchem i pozycjonowania za pomocą sieci EtherNet/IP (CIP Motion). Dodatkowo ma również możliwość sterowania bezpieczeństwa za pomocą sieci EtherNet/IP (CIP Safety). Oznacza to, że napęd ten może być zatrzymany bezpiecznie (STO Safety Torque Off) za pomocą polecenia wysłanego przez sieć EtherNet/IP ze sterownika bezpieczeństwa. 16. Sprawdź dla falownika PF527 jego konfigurację bezpieczeństwa oraz zmienne bezpieczeństwa podobnie jak to zrobiłeś dla serwonapędu K5500. Zwróć uwagę, że funkcjonalność bezpieczeństwa obu napędów jest identyczna. 10
Ćwiczenie 2. Testowanie uruchomienia napędów Kinetix 5500 S2 i PowerFlex 527. 1. Z menu Communication wybierz opcję Who Active. Otworzy się okno Who Active. 2. Zaznacz procesor 1769 L36ERMS. Jeżeli ścieżka w sterowniku jeszcze nie została określona, kliknij na Set Project Path. Uwaga: Jeżeli sterownik jest inny niż zalecany lub jeżeli masz pytania odnośnie sprzętu, skonsultuj się z instruktorem ćwiczenia. ` 3. Kliknij na przycisk Download w oknie Who Active Otworzy się okno Download. Kliknij na przycisk Download, aby wgrać program do sterownika. 4. Po zakończeniu wgrywania ustaw sterownik w tryb RUN. 5. Zauważ, że na wyświetlaczach napędów jest komunikat INHIBIT S05 SAFE TORQUE OFF. Oznacza to, że napędy są zatrzymane w trybie bezpieczeństwa. Poziom bezpieczeństwa realizowany przez tą funkcjonalność sieciową to PL e / Kat. 3 wg ISO 13849 1 oraz SIL 3 wg IEC 62061. W trybie STO nie ma możliwości sterowania napędami. 6. Przejdź do okna Controller Organizer. Dwukrotnie kliknij na Controller Tags. Po otwarciu okna rozwin zmienne strukturalne K5500:SO oraz PF527:SO. Są to zmienne wyjściowe bezpieczeństwa, które zadanie bezpieczeństwa może wysyłać do napędów. Znajdź tagi: K5500:SO.SafeTorqueOff PF527:SO.SafeTorqueOff Sprawdź, czy jesteś na zakładce Monitor Tags. Wpisz wartość 1 w powyższe tagi. 11
7. Zauważ, że na wyświetlaczach napędów pojawi się komunikat STOPPED. 8. Otwórz podprogram Motion. Przełącz przełącznik IN0 podłączony do wejścia w lokalnym module wejściowym kontrolera Compact GuardLogix. Zostaną aktywowane instrukcje MSO, a napędy wejdą w stan RUNNING. Sprawdź komunikat na wyświetlaczach. 9. Następnie przełącz przełącznik IN1 uruchamiający instrukcję MAJ (jog) w napędzie Powerflex 527. Silnik indukcyjny powinien uruchomić się z zadaną prędkością, przyspieszeniem i zrywem. 10. Następnie naciśnij przycisk DI2 podłączony do modułu wejściowego na wyspie Point IO. Uruchamia on instrukcję MAPC (krzywka zależna od pozycji) w napędzie Kinetix 5500 S2. Silnik VPL powinien wystartować odwzorowując profil krzywki zależnie od pozycji silnika indukcyjnego. 11. Kolejno wyzeruj tagi K5500:SO.SafeTorqueOff i PF527:SO.SafeTorqueOff. Napędy zatrzymają się w trybie bezpiecznym. 12. Ustaw oprogramowanie Studio 5000 w tryb offline. 12
Ćwiczenie 3. Dodanie i skonfigurowanie modułu wejść bezpiecznych na wyspie Point IO EtherNet/IP. 1. Przejdź do okna Controller Organizer. W drzewie konfiguracji we/wy wejdź we właściwości adaptera komunikacyjnego PointIO_AENTR. Zauważ, że adapter ma zadeklarowany rozmiar szyny wynoszący 4 moduły. Jednakże w konfiguracji we/wy są tylko trzy: 1734 AENTR, 1734 IB8 i 1734 OB8. Można więc dołożyć kolejny moduł. 2. Wróć do okna Controller Organizer. Kliknik prawym klawiszem na PointIO 4 Slot Chassis i wybierz opcję New Module... 3. Dodaj moduł 1734 IB8S. Dla uproszczenia nie musisz nadawać nazwy temu modułowi. Moduł powinien się pojawić w drzewie konfiguracji we/wy przypisany do adaptera 1734 AENTR na pozycji 3. 13
4. Otwórz okno właściwości modułu 1734 IB8S dwukrotnie klikając na nazwę modułu. Na zakładce General w polu Module Definition kliknij na przycisk Change. Ustaw następującą konfigurację zmiennych modułu: Input Data: Safety 8 wejść bezpieczeństwa Output Data: Test 4 wyjścia testu Input Status: Combined Status Power Muting Po zatwierdzeniu zmian zostaną utworzone zmienne jak poniżej: 5. Ponownie wejdź we właściwości modułu 1734 IB8S. Skonfiguruj kanały wejściowe, które będą używane w ćwiczeniu. Wejdź na zakładkę Input Configuration. Ustaw konfigurację wejść jak poniżej: Wejścia 0 i 1 Type: Single Mode: Safety Puls Test Test Source: 0 i 1 do tych wejść podłączony jest przycisk stopu awaryjnego. Wejście 2 i 3 Type: Single Mode: Safety Test Source: None do tych wejść podłączony bezkontaktowy wyłącznik bezpieczeństwa SensaGuard. 14
Wejście 4 i 5 Type: Single Mode: Safety Test Source: None do tych wejść podłączony rygiel bezpieczeństwa 440G LZ. Zauważ, że mimo, że przycisk stopu awaryjnego jak i wyłączniki są urządzeniami dwukanałowymi, to wejścia zostały skonfigurowane jako Single. Obsługa nadzorowania niezgodności obu kanałów bezpieczeństwa w urządzeniach będzie zrealizowana w naszym ćwiczeniu przez instrukcje programowe. Wejścia z podłączonym przyciskiem stopu awaryjnego mają konfigurację Safety Puls Test. Oznacza to, że wejście oczekuje na sygnał testowy z konkretnego wyjścia testu. W układzie dwukanałowym dzięki temu uzyskuje się wykrywanie zwarć poprzecznych między kanałami. Typowo realizuje się tak podłączenie urządzeń bezpieczeństwa z zestykami bezpotencjałowymi. Wejścia podłączone do wyłącznika SensaGuard i rygla 440G LZ mają konfigurację Safety. Oznacza to, że wejście oczekuje na sygnał z zewnętrznego źródła zasilania. Taką technikę zwykle stosuje się podłączając urządzenia bezpieczeństwa z wyjściami półprzewodnikowymi. 15
Ćwiczenie 4. Zaprogramowanie funkcji bezpieczeństwa. 1. Otwórz podprogram MainRoutine w Safety Tasku. 2. Wstaw instrukcję DCS (Dual Channel Input Stop). Będzie obsługiwać przycisk stopu awaryjnego w demo GuardLogix. Zestyki tego przycisku są podłączone do wejść modułu 1734 IB8S. Wstaw następujące parametry bloku: DCS utwórz nowy tag StopAwaryjny o typie DCI_STOP Safety Function wybierz EMERGENCY STOP (jest to tylko etykieta ułatwiająca identyfikację funkcji) Input Type wybierz EQUIVALENT ACTIVE HIGH Discrepancy Time (Msec) wstaw 100 Restart Type wybierz AUTOMATIC Cold Start Type wybierz AUTOMATIC Channel A wybierz wejście 0 w module 1734 IB8S Channel B wybierz wejście 1 w module 1734 IB8S Input Status wybierz tag CombinedInputStatus utworzony dla modułu 1734 IB8S Reset utwórz nowy tag ResetFault_Safety (ten tag służy do resetowania instrukcji po błędzie) 3. Wstaw kolejną instrukcję DCS (Dual Channel Input Stop). Będzie ona obsługiwać wyłącznik bezkontaktowy SensaGuard. Wyjścia tego wyłącznika są podłączone do wejść modułu 1734 IB8S. Zauważ, że zastosowanie tej instrukcji nie różni się niczym od użycia instrukcji dla przycisku stopu awaryjnego. Parametry nowego bloku wstaw takie jak wyżej, oprócz: Safety Function wybierz SAFETY GATE (jest to tylko etykieta ułatwiająca identyfikację funkcji) Channel A wybierz wejście 2 w pierwszym module 1734 IB8S Channel B wybierz wejście 3 w pierwszym module 1734 IB8S 4. Wstaw kolejną instrukcję DCS (Dual Channel Input Stop). Będzie obsługiwać rygiel 440G LZ. Wyjścia rygla są podłączone do wejść modułu 1734 IB8S. Parametry nowego bloku wstaw takie jak wyżej, oprócz: Channel A wybierz wejście 4 w pierwszym module 1734 IB8S Channel B wybierz wejście 5 w pierwszym module 1734 IB8S 16
5. Zgodnie z wymaganiami normy ISO 13849 1, dla wysokich poziomów bezpieczeństwa, funkcja resetu po aktywacji funkcji bezpieczeństwa powinna zadziałać przy zboczu opadającym sygnału na wejściu. Ma to na celu uniknięcie niezamierzonemu resetowaniu przy zablokowaniu przycisku resetu. W ćwiczeniu wykorzystamy utworzony uprzednio tak ResetFault_Safety, który również służy do resetowania instrukcji DCS. Zaprogramuj dwie linie jak poniżej z wykorzystaniem instrukcji OSF (One Shot Falling). 6. Utworzony nowy tag Zatrzymanie_Maszyny będzie zmienną, którą przypiszemy do funkcji Safe Torque Off w napędach Kinetix 5500 S2 i PowerFlex 527. 7. Rygiel 440G LZ wymaga podania sygnału do odryglowania. W ćwiczeniu polecenie odryglowania to naciśnięcie przycisku stopu awaryjnego lub otwarcie osłony blokującej (nieryglowanej) z wyłącznikiem SensaGuard. Ze względu na maksymalny możliwy czas zatrzymania napędów, rygiel powinien odryglować osłonę dopiero po odpowiednim czasie, który powinien być określony w czasie oceny ryzyka. Wstaw poniższe linie programowe, w której odliczamy 3 s po naciśnięciu przyciski stopu awaryjnego lub otwarciu osłony z wyłącznikiem SensaGuard. 8. Rygiel 440G LZ ma w demonstratorze podłączoną cewkę do wyjścia DO7 w module 1734 OB8. Tag CewkaRygla_Safety jest to zmienna o klasie Safety, więc nie można go zaliasować ze standardowym wyjściem modułu 1734 OB8. Jednakże zmienna o klasie Safety może być odczytana w standardowym zadaniu MainTask. 17
9. Otwórz podprogram Motion w MainTask. Wstaw linię, w której zmienna Safety zapisuje wyjście standardowe DO7 w module 1734 OB8. 10. W zadaniu bezpieczeństwa mamy jeszcze jedną funkcję bezpieczeństwa, która w demonstratorze otrzymuje sygnał podłączony do modułu wejść standardowych 1734 IB8. Jest to zmienna ResetFault_Safety. W standardowym zadaniu MainTask nie ma możliwości bezpośredniego zapisania zmiennej o klasie Safety. Jednakże oprogramowanie udostępnia odpowiednio zwalidowane narzędzie pozwalające na zmapowanie zmiennej klasy Standard na zmienną klasy Safety. Dzięki temu narzędziu każda zmiana zmiennej standardowej powoduje natychmiastową zmianę zmiennej bezpieczeństwa. 11. W ćwiczeniu zmapujemy utworzoną zmienną ResetFault do zmiennej ResetFault_Safety. Z menu Logic wybierz opcję Map Safety Tags... Następnie wstaw odpowiednie zmienne zgodnie z powyższym założeniem. 12. W podprogramie Motion dodaj linię programową, w której fizyczne wejście DI3 w module 1734 IB8 zapisuje tag ResetFault. 18
Ćwiczenie 5. Załadowanie programu. Testowanie programu bezpieczeństwa 1. Z menu Communication wybierz opcję Who Active. Otworzy się okno Who Active. 13. Zaznacz procesor 1769 L36ERMS. Jeżeli ścieżka w sterowniku jeszcze nie została określona, kliknij na Set Project Path. Uwaga: Jeżeli sterownik jest inny niż zalecany lub jeżeli masz pytania odnośnie sprzętu, skonsultuj się z instruktorem ćwiczenia. ` 2. Kliknij na przycisk Download w oknie Who Active Otworzy się okno Download. Kliknij na przycisk Download, aby wgrać program do sterownika. 3. Po zakończeniu wgrywania, pozostaw sterownik w trybie Program. 4. Zwróć uwagę, że przy modułe bezpieczeństwa może pojawić się trójkąt informujący o błędzie. Oznacza to, że ten moduł wymaga przeprowadzenia resetu przypisania do sterownika (Reset Ownership). 19
5. Wejdź we właściwości modułu, który ma błąd, dwukrotnie klikając na jego ikonę. Przejdź na zakładkę Safety. Zwróć uwagę, że moduł nie ma przypisanego właściciela. 6. Naciśnij przycisk Reset Ownership. Gdy pojawią się okna, w których należy potwierdzić chcęć zresetowania przypisania sterownika. 7. Po zakończeniu procesu przetwarzania, do modułu powinien zostać przypisany sterownik lokalny. Configuration Ownership: Remote (SNN numer sieci bezpieczeństwa) 8. Wprowadź sterownik w tryb RUN. 9. Wykonaj testy aplikacji bezpieczeństwa. Kolejno naciśnij przycisk stopu awaryjnego, otwórz wyłącznik SensaGuard. Zaobserwuj, że po 3 s następuje odryglowanie rygla 440G LZ. Naciśnięty przycisk stopu awaryjnego lub otwarty wyłącznik SensaGuard lub rygiel 440G LZ uniemożliwia uruchomienie napędów. Po odblokowaniu przycisku e stop i zamknięciu wyłącznika i rygla, naciśniecie przycisku resetu DI3 nie powoduje uruchomienia napędów. Dopiero puszczenie przycisku resetu DI3 spowoduje uruchomienie napędu. 20
Ćwiczenie 6. Wygenerowanie sygnatury bezpieczeństwa 1. Sygnatura bezpieczeństwa jest cyfrowym podpisem aplikacji bezpieczeństwa. 2. Wprowadź sterownik w tryb PROGRAM. Wejdź we właściwości kontrolera, np. klikając w ikonę: 3. W oknie właściwości kontrolera wejdź na zakładkę Safety. Zauważ, że nie ma żadnej sygnatury. Naciśnij przycisk Genarate. 4. Po wygenerowaniu sygnatury nie będzie można zmienić programu bezpieczeństwa. Edycja będzie wymagała wykasowania istniejącej sygnatury. Jednakże MainTask standardowy jest dostępny do modyfikacji. 21
GRATULACJE Ukończyłeś ćwiczenia z bezpieczeństwa maszynowego w sieci EtherNet/IP 22