Chyba přetečení Overflow Trap 0020 v SLC 500: Oprava západky S:5/0
Závažná chyba SLC 500 0020 znamená, že se po chybné matematické operaci aktivovala záchytná bitová značka přetečení S:5/0. Její vynulování pomocí OTU může ud...
Každých pár dní SLC přejde do poruchy. Závažná chyba 0020. Operátoři pokrčí rameny, údržba ji smaže a výroba pokračuje — dokud stejná matematická chyba znovu neudeří na noční směně. Tento vzorec způsobuje bit pasti přetečení S:5/0, který dělá přesně to, k čemu jej Rockwell navrhl: nastaví se a nedovolí vám předstírat, že k chybnému výpočtu nikdy nedošlo.
U procesoru 5/04, například 1747-L524, znamená chyba 0020, že instrukce vytvořila výsledek mimo povolený rozsah celého čísla. Práce se znaménkovými 16bitovými hodnotami probíhá v rozsahu −32768 až +32767. Pokud tuto hranici překročíte pomocí ADD nebo MUL, dělíte nulou, projdete FIFO/LIFO za hranice jeho vyrovnávací paměti nebo provedete NEG nad hodnotou −32768, procesor nastaví S:5/0 a zůstane v poruše, dokud tento bit něco nevynuluje. Manuály řady 1747-UM011 / 1747-UM001 tuto past popisují; na výrobní lince obsluha jednoduše vidí nefunkční CPU.
Starší procesory SLC stále řídí mnoho diskrétních strojů. Pasti přetečení téměř vždy způsobuje aplikační matematika, nikoli dosluhující základní deska.
OTU, který zastaví řetězec poruch
Většina rychlých obnovení provozu umístí OTU na S:5/0, aby skenování mohlo po pasti pokračovat. Rozhodující je umístění. Umístěte jej jako poslední řádek v LAD 2 — v souboru, který obsahuje vaše volání JSR — aby se nejprve dokončily všechny podprogramy a teprve potom se západka vynulovala. Přetečení tak bude během skenování detekováno a následně jednou vynulováno před přechodem do nečinnosti.
LAD 2 — poslední řádek S:5/0 ----] [----(OTU)----
Umístíte-li stejný OTU do podprogramu, ve kterém k přetečení dochází, vytvoříte nový režim poruchy: vynulování proběhne příliš brzy, později během stejného skenu dojde k dalšímu přetečení a procesor okamžitě znovu přejde do poruchy. Nebo se OTU aktivuje v části programu, která během daného skenu chybný výpočet vůbec neprovede, takže si myslíte, že jste problém „opravili“, zatímco skutečný řádek programu dál dvakrát týdně vyvolává poruchu.
| Položka | Použití |
|---|---|
| Bit |
S:5/0 past přetečení (se západkou) |
| Instrukce | OTU |
| Soubor | LAD 2 (hlavní) |
| Umístění | Po každém JSR, poslední řádek |
Proveďte stažení programu, přepněte klíčem do RUN a sledujte, zda S:5/0 během několika směn zůstane vynulovaný. Pokud zůstane klid, získali jste čas — nikoli uzavření analýzy kořenové příčiny.
Najděte matematickou operaci, která skutečně přetekla
Považujte OTU za bezpečnostní pás. Potom začněte hledat:
- Jakékoli nedávné změny, které se dotýkají celých čísel — počty dávek, škálované analogové hodnoty přesunuté do souborů N, „dočasné“ MUL pro převod jednotek
- ADD / SUB / MUL / DIV / DDV bez omezení rozsahu
- Místa, kde měly být použity LADD / LMUL (32bitové operace), jakmile hodnoty opustily bezpečný 16bitový rozsah
- NEG nad hodnotou, která může být −32768
- Délku FIFO/LIFO v porovnání s kapacitou vyrovnávací paměti, kterou jste skutečně vyhradili
Související stavové bity, které se vám při hledání chyby mohou hodit: S:5/1 povolení pasti přetečení, S:1/0 první sken, S:2/0 porucha procesoru. Při online úpravách pasti bezhlavě nemažte, dokud nevíte, který řádek programu způsobuje problém.
Kontrola reality hardwaru
CPU 5/04 třídy 1747-L524 jsou již hluboko za hranicí zastaralosti. Pokud má skříň zůstat v provozu, mějte na skladě ověřený náhradní procesor 5/04 — provozy, které tuto řadu stále nakupují, často pořizují moduly jako 1747-L542. Menší stroje někdy přecházejí na 5/03, například 1747-L532, ale to je projektové rozhodnutí, nikoli oprava přetečení. Z dlouhodobého hlediska většina provozů převádí proces na CompactLogix nebo ControlLogix a pasti 16bitové matematiky vyřazuje spolu s platformou. Strategie náhradních dílů pro smíšené flotily Logix stále závisí na tom, jak máte skladovány systémy PLC a PAC.
Než bude tato migrace dokončena, je postup jednoduchý: OTU na posledním řádku LAD 2 a potom ověřit, která operace ADD/MUL lže o svém rozsahu.
O autorovi
Mark Townsend | Senior Automation Engineer – systémy Allen-Bradley
Mark Townsend je seniorní automatizační inženýr s více než 18 lety zkušeností s platformami Allen-Bradley, včetně ControlLogix, CompactLogix a starších systémů SLC-500. Ve své každodenní práci se věnuje logice RSLogix / Studio 5000 a uvádění HMI FactoryTalk View do provozu na stárnoucích i smíšených flotilách.