Грешка при онлайн редактиране на MicroLogix 1400 с инструкцията MUL
Отстранете неизправност при онлайн редактиране на MUL в MicroLogix 1400, като разграничите причините, свързани с типа на операнда, файла с данни, паметта, софтуера и комуникациите, след което прове...
MicroLogix 1400 може да верифицира проект офлайн, но да отхвърли стъпало с MUL при онлайн редактиране. Изкушаващо е вината да се припише на EtherNet/IP или да се приеме, че десетичната константа винаги е причината. Самото съобщение за грешка не доказва нито един от тези изводи. Редактирането по време на работа добавя ограничения, които не съществуват офлайн, а аритметичната инструкция трябва също да разреши съвместими типове на изходните и целевите данни в съществуващите файлове с данни на контролера.
Практическото решение е контролирана диагностика. Запазете текущата програма, запишете точните версии на контролера и софтуера, установете какво е променено в стъпалото и определете дали повредата е свързана с механизма за редактиране или със самата математика. Така се предотвратява превръщането на сесията за отстраняване на неизправности в поредица от несвързани промени, които трудно могат да бъдат отменени или валидирани.
Променяйте по един операнд и запазете оригиналното стъпало за сравнение, докато редакцията не бъде тествана и сглобена.
Започнете с ограниченията на контролера при онлайн редактиране
Ръководството за потребителя на MicroLogix 1400 на Rockwell Automation различава редактирането офлайн от редактирането онлайн. При работа онлайн не могат да се създават или изтриват програмни файлове, да се променя размерът на файловете в таблицата с данни, да се променя конфигурацията на I/O или да се изменят няколко настройки за защита. В ръководството също се предупреждава, че приемането, сглобяването или отказването на редакции може да увеличи времето на сканиране и латентността на прекъсванията, а наличната програмна памет ограничава обема редактирана логика, който може да съществува едновременно преди сглобяването.
Тези ограничения пряко засягат предложеното решение с плаваща запетая. Ако програмата вече съдържа файл F с достатъчен размер, техникът може да използва съществуващ елемент. Ако файлът Float не съществува или са необходими повече елементи, създаването или увеличаването му изисква офлайн промяна и изтегляне. Опитът да се реши проблем с операндите чрез измисляне на F8:7 по време на редактиране в движение ще се провали по друга причина, дори ако аритметичният проект иначе е правилен.
Установете дали повредата следва стъпалото или връзката
Преди да променяте математиката, приемете безобидна разрешена промяна в тестова зона или потвърдете, че друга планирана редакция може да бъде приета при същата процедура за поддръжка. Ако всяка редакция се проваля, проверете съвместимостта на софтуера за програмиране, режима на контролера, програмната памет, правата за редактиране и стабилността на комуникациите. Прекъсване на мрежата може да прекрати сесията за редактиране, но стабилната онлайн връзка не гарантира, че заявеното стъпало е допустимо.
Запишете пълния текст на грешката и състоянието на зоните за вмъкване и замяна. Отменяйте неуспешните редакции правилно, преди да започнете нов опит. Потвърдете, че поне едно изтегляне с проверена програма е установило базовата линия за онлайн редактиране, описана в ръководството за потребителя, и проверете дали проектът, отворен на работната станция, съответства на образа в контролера.
Работете целенасочено с дробни множители
Множител като 0.7 представлява дробна стойност. Съхраняването на този коефициент в съществуващ елемент Float прави типа му явен и позволява на поддръжката да документира или коригира коефициента чрез контролиран адрес на данни. Промяната на изходния операнд обаче е само половината от инженерното решение. Целевият операнд определя дали дробният резултат ще бъде запазен или преобразуван в целочислено представяне.
Ако целевият операнд е целочислен файл N, тествайте поведението на контролера при преобразуване в целия работен диапазон. Не извеждайте резултата от един-единствен пример, като например десет, умножено по 0.7. Проверете положителни, отрицателни, близки до нулата, максимални и минимални стойности и прегледайте обработката на математическия статус, използвана от приложението. Ако последващата логика изисква дробна разделителна способност, използвайте подходяща целева стойност Float и преобразувайте само на границата, където действително е необходима целочислена стойност.
Съществуващ адрес Float може да направи десетичния коефициент явен, но типът и диапазонът на целевата стойност все пак изискват цялостно тестване.
Използвайте безопасна последователност за корекция
Първо качете или по друг начин запазете работещата програма и запишете каталожния номер на контролера, серията, версията на фърмуера, версията на RSLogix 500, свободната памет и работния режим. След това намерете съществуващ елемент Float, който не се използва, документиран е и е наличен без промяна на размера на файла. Инициализирайте го с необходимия инженерeн коефициент чрез одобрената процедура на обекта и потвърдете стойността онлайн.
Променете само изходния операнд на MUL, който представлява коефициента. Оставете първоначалната целева стойност за първия тест за компилиране, освен ако изискванията за точност вече не налагат целева стойност Float. Приемете и тествайте редакцията, докато машината е в безопасно състояние. Сравнете резултата с независимо изчисление при няколко входни стойности, преди да сглобите редакцията. Ако се въвежда целева стойност Float, проследете всеки потребител на старата целочислена стойност, преди да променяте адресите.
Когато няма подходящ елемент Float, прекратете редактирането в движение. Добавете или увеличете файла с данни офлайн, проверете целия проект, планирайте изтеглянето и определете план за връщане назад. Това неудобство е по-малко от риска да внедрите непроверено математическо заобиколно решение в работеща машина.
Обмислете мащабиране с целочислено съотношение само ако диапазонът го позволява
Някои приложения могат да представят 0.7 като съотношение седем към десет. Умножаването по числителя и деленето на знаменателя може да избегне зависимостта от Float, но редът на операциите, междинният диапазон, знакът и закръглянето се превръщат в проектни решения. Първоначалното умножение запазва по-голяма разделителна способност, но може да доведе до препълване на междинно целочислено значение. Първоначалното деление намалява риска от препълване, но по-рано изхвърля информация.
Използвайте междинен тип данни с подходящ диапазон, поддържан от контролера, и потвърдете точното поведение на инструкциите в справочното ръководство за MicroLogix. Математиката със съотношения не е автоматично по-безопасна от математиката с плаваща запетая; тя е полезна само когато необходимата разделителна способност и пълният диапазон са документирани и тествани.
Валидирайте машината, а не само компилатора
Приетото стъпало доказва синтактичната коректност и допустимостта на редакцията, но не и правилността на процеса. Проследявайте източника, коефициента, междинната стойност, целевата стойност, съответните статусни битове и физическата величина, засегната от изчислението. Тествайте граничните стойности и загубата на източника на данни. Потвърдете, че алармите, блокировките, мащабирането на HMI, стойностите в архиватора и всяка PID логика или логика за сравнение интерпретират резултата по предназначение.
Наблюдавайте времето за сканиране по време на теста и сглобяването. Избягвайте извършването на поредица от редакции, докато процесът се променя бързо, и не използвайте принудителни стойности като заместител на контролиран план за изпитване. Ако комуникациите останат нестабилни, възстановете известно състояние и отстранете мрежовия проблем, преди да подновите онлайн промените.
Съвместима справка за контролера е налична в страницата на продукта MicroLogix 1400, а свързаните платформи са групирани в PLC и PAC системи. Съобразете точния каталожен номер, захранващата конфигурация, I/O, фърмуера и изискванията на проекта, преди да използвате резервен хардуер.
Инженерен поглед
Най-надеждната корекция не е „заменете всеки десетичен литерал с F8“. Тя се състои в установяване дали редакцията изисква промяна във файл с данни, изрично задаване на числовите типове и доказване на резултата в целия му инженерeн диапазон. Този подход решава проблема с компилирането, без да прикрива грешка в мащабирането, която може да бъде по-вредна от отхвърленото стъпало.