Allen-Bradley SLC 500 processor module used in legacy chassis systems prone to overflow trap faults

Błąd pułapki przepełnienia SLC 500 0020: naprawa zatrzasku S:5/0

Poważny błąd SLC 500 0020 oznacza, że pułapka przepełnienia S:5/0 została zatrzaśnięta po błędnych obliczeniach. Wyczyszczenie jej za pomocą OTU może pozwoli...

Co kilka dni SLC przechodzi w stan błędu. Błąd krytyczny 0020. Operatorzy wzruszają ramionami, utrzymanie ruchu kasuje błąd, produkcja rusza ponownie — aż ta sama pomyłka matematyczna znów wystąpi na nocnej zmianie. Ten schemat to działanie bitu pułapki przepełnienia S:5/0 dokładnie zgodnie z założeniami firmy Rockwell: bit zostaje zatrzaśnięty, aby nie można było udawać, że nieprawidłowe działanie arytmetyczne nigdy nie wystąpiło.

W sterowniku 5/04, takim jak 1747-L524, kod 0020 oznacza, że instrukcja wygenerowała wynik poza dozwolonym zakresem liczb całkowitych. Operacje na liczbach ze znakiem i długości 16 bitów mieszczą się w zakresie od −32768 do +32767. Przekroczenie tej granicy podczas ADD lub MUL, dzielenie przez zero, przejście poza bufor FIFO/LIFO albo wykonanie NEG dla wartości −32768 powoduje ustawienie przez procesor bitu S:5/0, po czym procesor pozostaje w stanie błędu, dopóki ten bit nie zostanie wyzerowany. Instrukcje obsługi z rodziny publikacji 1747-UM011 / 1747-UM001 opisują tę pułapkę; na hali produkcyjnej widać po prostu niepracujący procesor.

Moduł procesora Allen-Bradley SLC 500 używany w starszych systemach kasetowych, podatnych na błędy pułapki przepełnienia

Starsze procesory SLC nadal sterują wieloma maszynami dyskretnymi. Pułapki przepełnienia niemal zawsze wynikają z arytmetyki aplikacji, a nie z uszkodzonej płyty bazowej.

Instrukcja OTU, która zatrzymuje problem

W większości przypadków szybkiego przywracania pracy umieszcza się instrukcję OTU dla S:5/0, aby skanowanie mogło być kontynuowane po wystąpieniu pułapki. Kluczowe jest jej umiejscowienie. Umieść ją jako ostatni szczebel w LAD 2 — pliku, który obsługuje wywołania JSR — aby wszystkie podprogramy zakończyły działanie, zanim wyczyścisz zatrzask. W ten sposób przepełnienie zostanie wykryte podczas skanowania, a następnie bit zostanie wyzerowany tylko raz, przed przejściem procesora w stan bezczynności.

LAD 2 — ostatni szczebel
  S:5/0
----] [----(OTU)----

Umieszczenie tej samej instrukcji OTU wewnątrz podprogramu, w którym występuje przepełnienie, tworzy nowy tryb awarii: bit zostaje wyzerowany zbyt wcześnie, później w tym samym skanowaniu znów dochodzi do przepełnienia, a procesor natychmiast ponownie przechodzi w stan błędu. Albo OTU zostaje wykonana na ścieżce, na której podczas danego skanowania nie występuje błędna arytmetyka, więc wydaje ci się, że problem został „naprawiony”, podczas gdy rzeczywisty szczebel nadal wywołuje awarię dwa razy w tygodniu.

Element Zastosowanie
Bit S:5/0 zatrzask pułapki przepełnienia
Instrukcja OTU
Plik LAD 2 (główny)
Pozycja Po każdym JSR, ostatni szczebel

Wykonaj pobieranie programu, przełącz sterownik w tryb RUN i obserwuj, czy S:5/0 pozostaje wyzerowany przez kilka zmian. Jeśli bit pozostaje nieaktywny, zyskałeś czas — nie oznacza to jednak usunięcia przyczyny źródłowej.

Znajdź rzeczywiste źródło przepełnienia

Traktuj OTU jak pas bezpieczeństwa. Następnie rozpocznij poszukiwania:

  • Wszelkie niedawne zmiany dotyczące liczb całkowitych — liczniki partii, przeskalowane sygnały analogowe zapisywane w plikach N, „tymczasowe” użycie MUL do przeliczania jednostek
  • ADD / SUB / MUL / DIV / DDV bez ograniczeń zakresu
  • Miejsca, w których po wyjściu wartości poza komfortowy zakres 16 bitów powinny być użyte instrukcje LADD / LMUL (32-bitowe)
  • NEG dla wartości, która może osiągnąć −32768
  • Długość FIFO/LIFO w porównaniu z faktycznie zarezerwowanym buforem

Powiązane bity stanu, które warto znać podczas diagnostyki: S:5/1 — zezwolenie na pułapkę przepełnienia, S:1/0 — pierwszy skan, S:2/0 — błąd procesora. Nie kasuj pułapek bez zastanowienia podczas edycji online, jeśli nie wiesz, który szczebel powoduje problem.

Kontrola stanu sprzętu

Procesory 5/04 klasy 1747-L524 są już głęboko wycofywane z eksploatacji. Jeśli kaseta ma pozostać w użyciu, trzymaj na półce sprawny moduł 5/04 na wymianę — zakłady, które nadal kupują urządzenia z tej rodziny, często wybierają moduły takie jak 1747-L542. Mniejsze maszyny czasem migrują poziomo do modelu 5/03, takiego jak 1747-L532, ale jest to decyzja projektowa, a nie rozwiązanie problemu przepełnienia. W dłuższej perspektywie większość zakładów przenosi proces na platformę CompactLogix lub ControlLogix i eliminuje pułapki związane z arytmetyką 16-bitową wraz ze zmianą platformy. Strategia zapasów dla mieszanych flot sterowników Logix nadal powinna uwzględniać sposób, w jaki zaopatrujesz się w systemy PLC i PAC.

Do czasu zakończenia migracji zasada jest prosta: OTU na końcu LAD 2, a następnie udowodnij, która instrukcja ADD/MUL błędnie zakłada zakres wartości.

O autorze

Mark Townsend | Starszy inżynier automatyki – systemy Allen-Bradley

Mark Townsend jest starszym inżynierem automatyki z ponad 18-letnim doświadczeniem w pracy z platformami Allen-Bradley, obejmującym ControlLogix, CompactLogix oraz starsze systemy SLC-500. Na co dzień zajmuje się logiką RSLogix / Studio 5000 oraz uruchamianiem interfejsów HMI FactoryTalk View w starzejących się i mieszanych flotach urządzeń.

Błąd pułapki przepełnienia SLC 500 0020: naprawa zatrzasku S:5/0

Poważny błąd SLC 500 0020 oznacza, że pułapka przepełnienia S:5/0 została zatrzaśnięta po błędnych obliczeniach. Wyczyszczenie jej za pomocą OTU może pozwolić procesorowi działać dalej, ale tylko j...

Co kilka dni SLC przechodzi w stan błędu. Błąd krytyczny 0020. Operatorzy wzruszają ramionami, utrzymanie ruchu kasuje błąd, produkcja rusza ponownie — aż ta sama pomyłka matematyczna znów wystąpi na nocnej zmianie. Ten schemat to działanie bitu pułapki przepełnienia S:5/0 dokładnie zgodnie z założeniami firmy Rockwell: bit zostaje zatrzaśnięty, aby nie można było udawać, że nieprawidłowe działanie arytmetyczne nigdy nie wystąpiło.

W sterowniku 5/04, takim jak 1747-L524, kod 0020 oznacza, że instrukcja wygenerowała wynik poza dozwolonym zakresem liczb całkowitych. Operacje na liczbach ze znakiem i długości 16 bitów mieszczą się w zakresie od −32768 do +32767. Przekroczenie tej granicy podczas ADD lub MUL, dzielenie przez zero, przejście poza bufor FIFO/LIFO albo wykonanie NEG dla wartości −32768 powoduje ustawienie przez procesor bitu S:5/0, po czym procesor pozostaje w stanie błędu, dopóki ten bit nie zostanie wyzerowany. Instrukcje obsługi z rodziny publikacji 1747-UM011 / 1747-UM001 opisują tę pułapkę; na hali produkcyjnej widać po prostu niepracujący procesor.

Moduł procesora Allen-Bradley SLC 500 używany w starszych systemach kasetowych, podatnych na błędy pułapki przepełnienia

Starsze procesory SLC nadal sterują wieloma maszynami dyskretnymi. Pułapki przepełnienia niemal zawsze wynikają z arytmetyki aplikacji, a nie z uszkodzonej płyty bazowej.

Instrukcja OTU, która zatrzymuje problem

W większości przypadków szybkiego przywracania pracy umieszcza się instrukcję OTU dla S:5/0, aby skanowanie mogło być kontynuowane po wystąpieniu pułapki. Kluczowe jest jej umiejscowienie. Umieść ją jako ostatni szczebel w LAD 2 — pliku, który obsługuje wywołania JSR — aby wszystkie podprogramy zakończyły działanie, zanim wyczyścisz zatrzask. W ten sposób przepełnienie zostanie wykryte podczas skanowania, a następnie bit zostanie wyzerowany tylko raz, przed przejściem procesora w stan bezczynności.

LAD 2 — ostatni szczebel
  S:5/0
----] [----(OTU)----

Umieszczenie tej samej instrukcji OTU wewnątrz podprogramu, w którym występuje przepełnienie, tworzy nowy tryb awarii: bit zostaje wyzerowany zbyt wcześnie, później w tym samym skanowaniu znów dochodzi do przepełnienia, a procesor natychmiast ponownie przechodzi w stan błędu. Albo OTU zostaje wykonana na ścieżce, na której podczas danego skanowania nie występuje błędna arytmetyka, więc wydaje ci się, że problem został „naprawiony”, podczas gdy rzeczywisty szczebel nadal wywołuje awarię dwa razy w tygodniu.

Element Zastosowanie
Bit S:5/0 zatrzask pułapki przepełnienia
Instrukcja OTU
Plik LAD 2 (główny)
Pozycja Po każdym JSR, ostatni szczebel

Wykonaj pobieranie programu, przełącz sterownik w tryb RUN i obserwuj, czy S:5/0 pozostaje wyzerowany przez kilka zmian. Jeśli bit pozostaje nieaktywny, zyskałeś czas — nie oznacza to jednak usunięcia przyczyny źródłowej.

Znajdź rzeczywiste źródło przepełnienia

Traktuj OTU jak pas bezpieczeństwa. Następnie rozpocznij poszukiwania:

  • Wszelkie niedawne zmiany dotyczące liczb całkowitych — liczniki partii, przeskalowane sygnały analogowe zapisywane w plikach N, „tymczasowe” użycie MUL do przeliczania jednostek
  • ADD / SUB / MUL / DIV / DDV bez ograniczeń zakresu
  • Miejsca, w których po wyjściu wartości poza komfortowy zakres 16 bitów powinny być użyte instrukcje LADD / LMUL (32-bitowe)
  • NEG dla wartości, która może osiągnąć −32768
  • Długość FIFO/LIFO w porównaniu z faktycznie zarezerwowanym buforem

Powiązane bity stanu, które warto znać podczas diagnostyki: S:5/1 — zezwolenie na pułapkę przepełnienia, S:1/0 — pierwszy skan, S:2/0 — błąd procesora. Nie kasuj pułapek bez zastanowienia podczas edycji online, jeśli nie wiesz, który szczebel powoduje problem.

Kontrola stanu sprzętu

Procesory 5/04 klasy 1747-L524 są już głęboko wycofywane z eksploatacji. Jeśli kaseta ma pozostać w użyciu, trzymaj na półce sprawny moduł 5/04 na wymianę — zakłady, które nadal kupują urządzenia z tej rodziny, często wybierają moduły takie jak 1747-L542. Mniejsze maszyny czasem migrują poziomo do modelu 5/03, takiego jak 1747-L532, ale jest to decyzja projektowa, a nie rozwiązanie problemu przepełnienia. W dłuższej perspektywie większość zakładów przenosi proces na platformę CompactLogix lub ControlLogix i eliminuje pułapki związane z arytmetyką 16-bitową wraz ze zmianą platformy. Strategia zapasów dla mieszanych flot sterowników Logix nadal powinna uwzględniać sposób, w jaki zaopatrujesz się w systemy PLC i PAC.

Do czasu zakończenia migracji zasada jest prosta: OTU na końcu LAD 2, a następnie udowodnij, która instrukcja ADD/MUL błędnie zakłada zakres wartości.

O autorze

Mark Townsend | Starszy inżynier automatyki – systemy Allen-Bradley

Mark Townsend jest starszym inżynierem automatyki z ponad 18-letnim doświadczeniem w pracy z platformami Allen-Bradley, obejmującym ControlLogix, CompactLogix oraz starsze systemy SLC-500. Na co dzień zajmuje się logiką RSLogix / Studio 5000 oraz uruchamianiem interfejsów HMI FactoryTalk View w starzejących się i mieszanych flotach urządzeń.

Zostaw komentarz

Pamiętaj, że komentarze muszą zostać zatwierdzone przed ich opublikowaniem.