04 август 2014 г., Автор на статията: Körösi Ladislav, Електротехника, Информационни технологии
Том 7, номер 8 Добавяне на публикация
Целта на статията е да запознае читателя с основните битови инструкции на софтуера RsLogix 5000 на езика на стълбовидни диаграми (LD - Ladder diagram). Софтуерът RsLogix 5000 е инструментът за конфигуриране и програмиране на програмируем логически контролер (PLC) на Rockwell Automation за серията ControlLogix, CompactLogix, FlexLogix, SoftLogix5800 и DriveLogix.
Проучете дали е затворено (XIC) инструкция
Инструкцията XIC определя дали стойността на бита, който е посочен като параметър на инструкция, е равна на логическа единица (TRUE). Използва се за активиране на изхода ("изпълнение на инструкции"), ако битът е TRUE. Тази инструкция е достъпна само на езика за програмиране LD и не е достъпна на други езици (FBD, ST). Изходът на инструкцията зависи от битовата стойност, състоянието на стълбата, както и стъпките за изпълнение:
- В състоянието PRESCAN изходът на инструкцията е логическа нула (FALSE).
- Ако състоянието на стълбата е FALSE, тогава изходът на инструкциите е FALSE.
- Ако състоянието на стълбата е TRUE, тогава изходът на инструкцията е TRUE или FALSE според блок-схемата (фиг. 1).
- В състояние POSTSCAN стойността на инструкцията е FALSE.
Фиг. 1 блок-схема на инструкции XIC
Най-просто казано, изходът на инструкцията XIC е стойността на нейния параметър (бит). Пример за оценка на тестовия етикет е показан на ФИГ. 2. ФИГ. 2 вдясно е зелена анимирана логическа единица, която е изходът на инструкцията. Еквивалентът в текстовите езици е:
АКО тествате ТОГАВА
ИНАЧЕ
END_IF;
Фиг. 2 Пример за инструкция XIC
Проучете дали е отворена (XIO) инструкция
Инструкцията XIO определя дали стойността на параметъра на инструкцията (битова стойност) е равна на логическа нула (FALSE). Използва се за активиране на изхода, ако битът е зададен на FALSE. Тази инструкция, подобно на инструкцията XIC, не се предлага на други езици за програмиране. Изходът на инструкцията зависи от битовата стойност, както и от стъпките за изпълнение:
- В състоянието PRESCAN изходът на инструкцията е логическа нула (FALSE).
- Ако състоянието на стълбата е FALSE, тогава изходът на инструкцията е FALSE.
- Ако състоянието на стълбата е TRUE, тогава изходът на инструкцията е TRUE или FALSE според блок-схемата (фиг. 3).
- В състояние POSTSCAN стойността на инструкцията е FALSE.
Фиг. 3 Схема на инструкциите на XIO
Резултатът от инструкцията XIO е отрицателната стойност на нейния параметър (бит). На фиг. 4 вляво показва, че битовото състояние е 0 (FALSE) и изходът на инструкцията е 1 (TRUE), който е анимиран в зелено. Еквивалентът в текстовите езици е:
АКО не (тест) ТОГАВА
ИНАЧЕ
END_IF;
Фиг. 4 Примерна инструкция за XIO
Инструкция за енергизиране на изхода (OTE)
Инструкцията OTE задава стойността на бита (параметъра) в зависимост от входния сигнал (състояние) на инструкцията. Ако условието за въвеждане е TRUE, т.е. инструкцията е активирана, тогава битовата стойност е зададена на TRUE. Ако условието за въвеждане е FALSE, т.е. инструкцията не е активирана, тогава битовата стойност е зададена на FALSE. Инструкцията е достъпна само на LD език. Битовата стойност зависи от следните състояния:
- В състоянието PRESCAN битовата стойност е FALSE.
- Ако състоянието на стълбата е FALSE, тогава битовата стойност е FALSE.
- Ако състоянието на стълбата е TRUE, тогава битовата стойност е TRUE.
- В състоянието POSTSCAN битовата стойност е FALSE.
На фиг. 5 е пример за задаване на стойността на тестовия бит като функция на бита condition_1. В първия пример входът за инструкция OTE е FALSE, тъй като инструкцията XIC с параметъра condition_1 извежда инструкцията като FALSE. Във втория пример входът за инструкция OTE е TRUE, тъй като инструкцията XIC с параметъра condition_1 извежда TRUE. В езиците за програмиране на текст еквивалентната инструкция е:
Фиг. 5 Пример за инструкция за OTE
Инструкция за изходно заключване (OTL)
Инструкцията задава стойността на бита (параметъра) на TRUE с валидно условие за въвеждане. Инструкцията не се предлага на други езици за програмиране. Условия, които могат да възникнат:
- В състоянието PRESCAN битовата стойност не се променя.
- Ако състоянието на стълбата е FALSE, тогава битовата стойност не се променя.
- Ако състоянието на стълбата е TRUE, тогава битовата стойност е зададена на TRUE.
- В състоянието POSTSCAN битовата стойност не се променя.
На фиг. 6 е пример за OTL инструкция за промяна на условието за въвеждане на условие_1 от FALSE на TRUE и след това обратно на FALSE. От последния пример се вижда, че стойността на тестовия маркер не се променя след изтичане на условието. Еквивалентът на инструкция в текстов език за програмиране е:
АКО условие_1 ТОГАВА
тест: = TRUE;
END_IF;
Нулирането на битова стойност обикновено се извършва с инструкция за отключване на изхода (OTU). Разбира се, други инструкции също могат да нулират състоянието. Те включват вече описаната инструкция OTE, която замества битовото състояние въз основа на условието за въвеждане.
Фиг. 6 Пример за инструкция за OTL
Инструкция за отключване на изхода (OTU)
Инструкцията задава (нулира, нулира) битовата стойност на FALSE с валидно условие за въвеждане. Инструкциите, както и OTL, не са налични на други езици за програмиране. Условия, които могат да възникнат:
- В състоянието PRESCAN битовата стойност не се променя.
- Ако състоянието на стълбата е FALSE, тогава битовата стойност не се променя.
- Ако състоянието на стълбата е TRUE, тогава битовата стойност е зададена на FALSE.
- В състоянието POSTSCAN битовата стойност не се променя.
На фиг. 7 е пример за инструкция на OTU за промяна на условието за въвеждане на условие_1 от FALSE на TRUE. В първия пример тестът на маркера не е модифициран, тъй като условието за въвеждане на инструкцията OTU не е валидно. Във втория пример, при валидно условие, битовата стойност беше нулирана. Еквивалентът на инструкция за OTU в език за текстово програмиране е:
АКО условие_1 ТОГАВА
тест: = FALSE
END_IF;
Фиг. 7 Пример за инструкция за OTU
Инструкция с един изстрел (ONS)
Инструкцията ONS се използва за откриване на предния ръб на входния сигнал, т.е. когато входното състояние се промени от FALSE на TRUE, то извежда стойността TRUE. В противен случай изходът на инструкцията е FALSE. Допълнителният бит (така нареченият бит за съхранение), който е параметър на инструкцията, се използва за запомняне на текущото състояние на входа за следващия PLC цикъл, следователно промяната настъпва, ако текущият вход към инструкцията е TRUE и помощният бит е FALSE. Трябва да се отбележи, че не е подходящо да се записва в променливата на паметта, използвана за съхраняване на спомагателния бит от друго място в програмата, в противен случай инструкцията ONS няма да осигури адекватен резултат. Изходът на инструкцията влияе върху потока на сигнала в текущата стълба, така че се използва за условно изпълнение на други инструкции. Последователност на състоянията:
- В състоянието PRESCAN стойността на спомагателния бит е зададена на TRUE и изходът на инструкцията на FALSE. Това условие гарантира, че възниква погрешно откриване.
- Ако състоянието на стълбата е FALSE, тогава стойността на спомагателния бит и изхода на инструкцията са зададени на FALSE.
- Ако състоянието на стълбата е TRUE, тогава инструкцията се изпълнява съгласно блок-схемата (фиг. 8).
- В състоянието POSTSCAN помощната битова стойност и изходът на инструкция са зададени на FALSE.
Еквивалентната команда в текстовия език е
ИЗХОД: = TLACIDLO_1 И (НЕ (SB_1));
SB: = БУТОН_1;
където BUTTON_1 е входът към инструкцията, SB_1 е помощният бит и OUT е изходът на инструкцията.
Фиг. 8 блок-схема на инструкции за ONS
Пример за използване на инструкцията ONS на LD език е показан на ФИГ. 9. Примерът е идентичен по отношение на функционалността на горния в езика за програмиране на текст. Битът OUT ще има статус TRUE за един цикъл само ако TLACIDLO_1 = TRUE и SB_1 = FALSE (т.е. TLACIDLO_1 от предишния цикъл е имал статус FALSE). Използвайки инструкцията ONS, също така е възможно да се открие работещ ръб, т.е. промяна на входния сигнал от TRUE на FALSE, така че да се използва отрицателен сигнал на входа ONS (фиг. 10).
Фиг. 9 Пример за инструкция за ONS
Фиг. 10 Пример за инструкция за ONS за откриване на бягащ ръб
Инструкция за нарастване с един изстрел (OSR)
Инструкцията OSR, подобно на инструкцията ONS, се използва за откриване на преден ръб. За разлика от ONS, изходът на инструкцията се записва в параметър (т.нар. Изходен бит). Отново не е препоръчително да използвате променливата, използвана за съхраняване на спомагателния бит другаде в програмата. На фиг. 9 и 11 са еквивалентни примерни програми. Последователност на състоянията:
- В състоянието PRESCAN стойността на бита за съхранение е зададена на TRUE, а изходният бит на FALSE. В същото време изходът на инструкциите, който влияе върху потока на сигнала, е зададен на FALSE.
- Ако състоянието на стълбата е FALSE, тогава стойността на спомагателния бит и изхода за инструкция са зададени на FALSE. Изходният бит не се променя.
- Ако състоянието на стълбата е TRUE, тогава инструкцията се изпълнява съгласно блок-схемата, както при инструкцията ONS (Фиг. 8).
- В състоянието POSTSCAN помощната битова стойност и изходът на инструкция са зададени на FALSE. Изходният бит не се променя.
Фиг. 11 Пример за инструкция за OSR
Инструкция за падане с един изстрел (OSF)
Инструкцията OSF открива текущ ръб на входния сигнал. Той има същите параметри (бит за съхранение и изходен бит) като инструкцията за OSR. Не е препоръчително да пишете в променлива, използвана за съхраняване на спомагателен бит от друго място в програмата. Последователността на състоянията на инструкциите е следната:
- В състоянието PRESCAN стойността на бита за съхранение е зададена на TRUE, а изходният бит на FALSE. В същото време изходът на инструкциите, който влияе върху потока на сигнала, е зададен на FALSE.
- Ако състоянието на стълбата е FALSE, тогава инструкцията се изпълнява съгласно блок-схемата (фиг. 12).
- Ако състоянието на стълбата е TRUE, тогава стойността на спомагателния бит и изхода на инструкцията са зададени на TRUE. Изходният бит е зададен на FALSE.
- В състояние POSTSCAN изходът на инструкциите е зададен на FALSE.
Фиг. 12 Схема на инструкциите на OSF
Пример за инструкция на OSF е показан на ФИГ. 13. След натискане и след това освобождаване на бутона (BUTTON_1), битът OUT се задава на TRUE за един цикъл.
Фиг. 13 Пример за инструкция за OSF
Примери за използване на инструкции
Пример 1 - И операция
На фиг. 14 показва два примера за операция ИЛИ в комбинация с операция И. В стълбата No. 0, C тагът ще бъде TRUE, ако A = TRUE и B = TRUE. Във втория пример в стълба №. 1, F тагът ще бъде TRUE, ако D = TRUE и E = FALSE.
Фиг. 14 Примери за операция И
Пример 2 - ИЛИ операция
На фиг. 15 показва два примера за операцията И. В стълбата No. 0, таг D ще бъде TRUE, ако A = TRUE и B = TRUE или C = FALSE и B = TRUE. Писането на текстов език е напр. следното:
D: = (A ИЛИ НЕ (C)) И B;
Във втория пример в стълба №. 1, H тагът ще бъде TRUE, ако E = TRUE и F = FALSE или G = TRUE. Писане на език на текст:
H: = (E И НЕ (F)) ИЛИ G;
Фиг. 15 Примери за операция ИЛИ в комбинация с И
Заключение
В повечето случаи всеки производител на PLC има (или може да има) различен набор от инструкции, независимо дали са основни битови инструкции или по-усъвършенствани инструкции за комуникация или самата PID инструкция. Целта на статията беше да запознае читателите с битовите инструкции на софтуера RsLogix 5000.
Благодаря
Този принос е създаден благодарение на подкрепата на фондация Tatra banka - E-Talent от фондация Tatra banka No. 2013et030.