Логика на XOR стълба с три превключвателя: правилният дизайн за нечетен паритет
Коригирано ръководство за XOR стълбова логика с три превключвателя за платформите SLC 500 и Logix, обхващащо нечетен паритет, поетапно използване на вътрешни битове, ограниченията на XOR на ниво ду...
Три фиксиращи превключвателя, управляващи един изход, често се представят като упражнение по релейна логика, но същинският инженерен въпрос е по-точен: трябва ли изходът да е включен, когато нечетен брой входове са активни, или задействането на който и да е превключвател просто да обръща предишното състояние на изхода? Това са различни изисквания. Първото е комбинационна операция XOR, или нечетен паритет. Второто изисква запаметяване на състояние и детекция на фронт.
При три фиксиращи селекторни превключвателя обичайната спецификация е нечетен паритет: лампата свети при един или три затворени превключвателя и е изгасена при нула или два. Записването на това изискване преди начертаването на контактите предотвратява ситуация, при която правдоподобно изглеждащ ред реализира грешна булева функция.
XOR с три входа е истина, когато броят на активните входове е нечетен; тя не е същото като запаметена команда за превключване.
Започнете с осемте входни състояния
Очакваната последователност на изхода за входове S1, S2 и S3 е 0, 1, 1, 0, 1, 0, 0, 1, когато двоичните входни състояния преминават от 000 до 111. Казано по-просто, един затворен превключвател включва изхода, два затворени превключвателя го изключват, а и трите затворени превключвателя го включват отново.
Именно последното състояние често води до грешки в обясненията. XOR с три входа е функция на нечетен паритет, затова 111 трябва да даде истина. Реализация, която разпознава само „точно един вход е активен“, не е XOR; тя умишлено изключва състоянието с три активни входа. Обратно, OR-ването на трите израза за XOR по двойки дава различна функция: тя е истина винаги когато входовете не са еднакви, което включва състоянията с два активни входа и следователно също не отговаря на необходимата таблица на истинност.
Най-сигурната практика при въвеждане в експлоатация е таблицата на истинност да се използва като приемен тест. Не оценявайте програмата само по две или три удобни позиции на превключвателите.
Каскадно свързване на етапи с XOR на два входа
XOR е асоциативна операция, което позволява израза (S1 XOR S2) XOR S3. В програма за SLC 500 един вътрешен бит може да съхранява резултата от първия етап. Следващ ред комбинира този бит със S3. Така всеки ред има малка, лесна за проверка задача, а текущото състояние се диагностицира по-лесно.
При реализация с контакти всеки етап с XOR на два входа използва два паралелни пътя: първият проверява вход A като активен и вход B като неактивен; вторият проверява A като неактивен и B като активен. Двата пътя се обединяват в една бобина. Същият модел се повтаря с междинния бит и третия вход.
Междинният бит показва резултата S1 XOR S2, преди вторият етап да го комбинира със S3.
Примерен план за адресиране
В типичен обучителен проект на RSLogix 500 S1, S2 и S3 могат да бъдат I:1/0, I:1/1 и I:1/2. Първият ред записва B3:0/0 като междинен резултат, а вторият записва O:2/0 като команда за лампата. Тези адреси са само примери; реалното разпределение трябва да се определи от инсталираната конфигурация на входовете и изходите.
Междинният адрес трябва да има един записващ елемент. Повторното използване на B3:0/0 другаде или поставянето на друга изходна инструкция за O:2/0 по-късно в програмата може да презапише правилния резултат в рамките на същия цикъл. Проверете кръстосаните препратки и към двата адреса, преди да обвинявате XOR схемата.
XOR на ниво дума не е автоматично булев пряк път
Наборът от инструкции на SLC 500 включва инструкция XOR за побитово изключващо ИЛИ между операнди от тип дума. Ръководството за справка с набора от инструкции на SLC 500 на Rockwell Automation описва поддържаните операнди и дестинации. Тази инструкция е полезна за маски и пакетирани думи със статуси, но не отменя необходимостта да се определи кои входни битове участват в едно решение за паритет.
За три дискретни входа каскадната логика с контакти обикновено е по-ясна за персонала по поддръжката. Реализация на ниво дума може да бъде оправдана, когато програмата вече пакетира много статусни битове и изрично ги свежда до резултат за паритет, но стъпката на редукция все пак трябва да е видима и тествана.
Не бъркайте паритета с функция за превключване
Фиксирана трипътна осветителна схема променя изхода си всеки път, когато някой физически превключвател промени положението си. В чисто булеви термини изходът във всеки момент може да се представи чрез паритета на трите положения на превключвателите. Не е необходимо запаметено състояние, защото самите положения на превключвателите съхраняват състоянието.
Моментните бутони са различни. Ако натискането на който и да е от три бутона трябва да превключва лампа, PLC трябва да открива нарастващ фронт и да обръща запазен команден бит веднъж за всяко валидно натискане. Директното прилагане на XOR към три моментни входа описва само кои бутони са натиснати в текущия цикъл; то не запаметява предишното състояние на лампата.
Реалните бутони могат също да трептят. Следователно една схема за превключване изисква обработка на входовете, еднократен импулс, ясно определен собственик на запазения бит и дефинирано начално състояние. За свързани модели на работа с цикъла и обработка на данни ръководството за използване на стойността на един SLC таймер за настройване на друг таймер показва защо преместването на данни и редът на изпълнение трябва да бъдат изрично определени.
Въвеждайте логиката в експлоатация като функция, а не като картинка
Първо тествайте самостоятелно междинния бит за двата входа. Той трябва да е истина при 01 и 10 и лъжа при 00 и 11. След това тествайте крайния изход при всичките осем комбинации на трите входа. Записвайте наблюдаваното състояние, вместо да разчитате само на зеленото осветяване на реда, защото принудително зададени стойности, дублирани бобини и обновяването на онлайн дисплея могат да прикрият кой реално управлява изхода.
След това проверете поведението при включване, преходите между режимите на програмата, заместването на входове и реакцията при повредена или прекъсната полева верига. XOR може да открива несъответствие, но сам по себе си не е средство за диагностика на безопасността. Ако превключвателите участват в защитна функция, проектът изисква входове с клас за безопасност, наблюдение на несъответствията, откриване на неизправности и оценка на риска, съобразена с машината.
Хардуерните и миграционните варианти за наследени и съвременни контролери могат да бъдат разгледани в колекцията от PLC и PAC системи, но семейството на процесора, напрежението на входовете и изходите, адресирането и отговорността за програмата трябва да бъдат потвърдени, преди този пример да бъде адаптиран.
Защо версията с вътрешен бит е по-лесна за поддръжка
Един разширен ред може директно да изрази нечетен паритет с три входа, но изисква четири паралелни комбинации и става по-труден за проверка при добавяне на още условия. Каскадното свързване на етапи с два входа прави булевия замисъл очевиден, осигурява диагностична контролна точка и позволява ясно съпоставяне между адресите в RSLogix 500 и именуваните BOOL тагове в Logix Designer.
Редакционна позиция: най-доброто решение с релейна логика е това, чиято таблица на истинност, поведение на паметта и реакция при отказ могат да бъдат обяснени по време на предаване на системата на екипа по поддръжката. Вътрешният бит не е разхищение на памет, когато предотвратява объркването между нечетен паритет, логика „точно един“ и запаметено превключване като една и съща функция.
Често задавани въпроси
Трябва ли изходът да е включен, когато и трите превключвателя са затворени?
Да, ако изискването е XOR с три входа или нечетен паритет. Три активни входа са нечетен брой, затова изходът е истина. Ако 111 трябва да е лъжа, необходимата функция е „точно един“, а не XOR.
Може ли инструкцията XOR на SLC 500 да замени двата реда с релейна логика?
Тя изпълнява побитово XOR върху операнди от тип дума. Може да бъде част от решение с пакетирани битове, но трите отделни входни бита все пак трябва да бъдат подредени и сведени така, че целевият бит да представлява необходимия паритет. За малка дискретна схема двата етапа с контакти обикновено са по-ясни.
Добавя ли междинният бит закъснение от един цикъл?
Не, ако редът, който записва междинния бит, се изпълнява преди реда, който го чете, в същата подпрограма и задача. Вторият ред вижда стойността, записана по-рано в същия цикъл. Редът на изпълнение трябва да остане документиран и контролиран.
Какво се променя, ако полевите устройства са моментни бутони?
Превключването с моментен бутон изисква детекция на фронт и запаметено състояние на изхода. Самото комбинационно XOR не може да запомни дали лампата е била включена или изключена.
Подходящ ли е XOR за схема за безопасно гласуване?
Не сам по себе си. Обикновеният XOR оценява само булеви състояния. Приложенията за безопасност изискват валидирана архитектура за безопасност, диагностично покритие, времево наблюдение на несъответствията, подходящ хардуер и проверка спрямо приложимата оценка на риска.