Назад към блога

SLC 500: Грешка за капан при препълване 0020: Отстраняване на фиксацията S:5/0

Диагностицирайте основната грешка 0020H в SLC 500, преди да изчистите S:5/0. Научете как работи промотирането в края на сканирането, идентифицирайте първата проблемна инструкция, задайте политика з...

Основната грешка 0020H на SLC 500 често се описва като грешка от препълване, но кодът обхваща повече от една неправилна инструкция ADD. Rockwell я определя като състояние на второстепенна грешка, което е останало активно, когато процесорът е достигнал END, TND или REF, и затова е било повишено до основна грешка. Диагностичната задача е да се установи кой статусен бит е причинил повишаването, да се определи коя операция го е активирала и да се реши дали контролираното възстановяване е безопасно.

Процесор Allen-Bradley SLC 500, използван за диагностициране на основна грешка 0020H

Грешка 0020H трябва да доведе до проверка на статусния файл, а не до автоматично заключение, че хардуерът на процесора е повреден.

Прочетете статусния файл, преди да изчистите каквото и да е

Запишете кода на грешката, каталожния номер на процесора, работния режим, часа, производственото състояние и стойностите на S:5 и S:6, преди да нулирате контролера. S:5/0 е капанът за математическо препълване. S:5/2 показва грешка в управляващ регистър от инструкции като FIFO, операции за изместване на битове или операции на секвенсор. Други битове на S:5 също могат да бъдат повишени в края на сканирането. Изчистването на процесора, преди да запишете тези стойности, унищожава доказателствата и увеличава вероятността същата повреда да се повтори.

Справочното ръководство за набора от инструкции на Rockwell SLC 500 посочва, че S:5/0 се задава при възникване на математическо препълване и че основна грешка 0020H се обявява, ако битът все още е зададен при изпълнение на END, TND или REF. Ръководството препоръчва да се провери битът след съответната инструкция, да се предприемат подходящи действия и едва след това да се изчисти S:5/0 чрез OTU или да се изчисти приложимата статусна дума.

Разберете както математическия резултат, така и капана

При ADD, SUB, MUL, DIV или NEG резултат, който не може да бъде представен в предназначението, задава аритметичния бит за препълване S:0/1 и капана S:5/0. При състоянието по подразбиране на S:2/14 положителният резултат е ограничен до 32767, а отрицателният — до -32768. Когато S:2/14 е зададен, вместо това в предназначението могат да бъдат записани 16-те най-малко значими бита. Тази настройка променя поведението на предназначението; тя не доказва, че резултатът на приложението е валиден.

DDV и някои инструкции за преобразуване или мащабиране имат допълнителни правила, затова проверката трябва да следва точното справочно описание на инструкцията. Деление на нула, невалидна дължина на управляваща структура или косвен адрес извън допустимия диапазон могат да доведат до различен статусен път. Не обобщавайте всяко събитие 0020H като „целочислено препълване“, без да проверите S:5 и инструкцията, изпълнена непосредствено преди задаването на бита.

Открийте първата проблемна операция

Прегледайте скорошните промени и съпоставете всяка инструкция, която може да зададе наблюдавания статусен бит. При математическо препълване проверете изчисленията за мащабиране, производствените суми, преобразуванията на единици, натрупаните стойности за време на работа, знаковите ограничения и междинните предназначения. Дадено изчисление може да е математически валидно в инженерни единици, но да е небезопасно, когато междинна стъпка се съхранява в 16-битово цяло число.

Проследявайте или записвайте входните операнди, стойностите на предназначенията, S:0/1 и S:5/0 около подозрителните инструкции. В офлайн тестова система възпроизведете гранични случаи непосредствено под, точно на и над допустимия диапазон. Ако няколко инструкции могат да активират капана в рамките на едно сканиране, добавете временни диагностични фиксатори, които идентифицират първото местоположение. Тези диагностични битове трябва да бъдат прегледани, именувани и премахнати или официално запазени, след като първопричината бъде установена.

Използвайте логика за възстановяване само при изрично определена политика

Безусловното OTU S:5/0 на последния ред може да предотврати повишаването в края на сканирането, но също така потиска спирането независимо от това кое изчисление е препълнило. Това може да е приемливо за некритичен брояч, чиято стойност се ограничава и за който се подава аларма. Не е приемливо, когато резултатът влияе върху движение, налягане, температура, дозиране, защита на оборудването или решение, свързано с безопасността.

Надеждната логика проверява резултата от инструкцията там, където се получава. Проверете операндите преди изпълнение, изберете предназначение с достатъчен диапазон, ограничете стойността само когато смисълът за процеса го позволява, задайте диагностична аларма, заместете стойността с документирана безопасна стойност и след това изчистете капана. Ако правилната реакция е спиране на последователността, запазете грешката, вместо да принуждавате процесора да продължи.

Рутината за потребителски грешки може да подпомогне контролирано възстановяване при избрани събития, а ръководството на Rockwell включва пример, който брои повторните случаи на 0020H и в крайна сметка позволява спиране. Този модел е по-информативен от безусловното изчистване, защото разграничава единично обработено събитие от повтарящ се дефект. Самата рутина за грешки трябва да бъде внимателно тествана; втора грешка в нея може да презапише диагностичната информация или да предотврати възстановяването.

Разграничете софтуерните грешки от хардуерните проблеми

Капанът за препълване обикновено насочва към данните в програмата и поведението на инструкциите, а не към повредено шаси. Въпреки това нестабилно захранване, проблеми с паметта или непреднамерени промени в програмата могат да променят данните и заслужават проверка, когато доказателствата го подкрепят. Проверете батерията на контролера и историята на захранването, сравнете изпълняваната програма с одобрения архив и проверете дали HMI, съобщение или външна система записва операндите, които участват.

Не заменяйте процесора SLC като първа реакция на повтарящо се математическо гранично състояние. Резервен процесор, който изпълнява същата програма със същите данни, ще възпроизведе грешката. Ако платформата е остаряла, управлявайте резервните части и миграцията съгласно жизнения план на обекта за PLC и PAC системи, но отделете това решение от непосредствения анализ на първопричината.

Докажете корекцията

Тествайте коригираната логика при нормални стойности, при двете гранични стойности на диапазона, при невалидни входове, загуба на комуникация, първо сканиране и всяко условие за нулиране. Потвърдете, че алармите идентифицират засегнатото изчисление, че заместената стойност е безопасна и че повторните събития се броят. Наблюдавайте S:5/0 и S:0/1 през представителен производствен цикъл и проверете дали процесорът просто не прикрива повтарящо се препълване.

Архивирайте RSS файловете преди и след промяната, доказателствата за грешката, резултатите от тестовете и обосновката за всяка логика за възстановяване. Съчетайте този запис с указанията на обекта за миграция на мащабирането от SLC при модернизиране на приложението. Грешка 0020H става управляем проблем, когато екипът я разглежда като прецизен проблем със статуса и качеството на данните, а не като бит, който трябва да бъде откачен веднага.

Оставяне на коментар

Имайте предвид, че коментарите трябва да бъдат одобрени, преди да се публикуват.