04 серпня 2014 р., Автор статті: Кересі Ладіслав, Електротехніка, Інформаційні технології
Том 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, i. інструкція ввімкнена, тоді бітове значення встановлюється на TRUE. Якщо умовою введення є FALSE, i. інструкція не ввімкнена, тоді значення біта встановлюється на FALSE. Інструкція доступна лише мовою LD. Бітове значення залежить від наступних станів:
- У стані PRESCAN бітове значення - FALSE.
- Якщо статус драбини FALSE, то бітове значення FALSE.
- Якщо статус драбини має значення TRUE, тоді бітове значення має значення TRUE.
- У стані POSTSCAN бітове значення - FALSE.
На фіг. 5 - приклад встановлення значення тестового біта як функції біта умова_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;
Скидання бітового значення, як правило, виконується за допомогою інструкції Output unlatch (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. Допоміжний біт (так званий біт зберігання), який є параметром інструкції, використовується для запам'ятовування поточного стану вхідних даних для наступного циклу ПЛК, тому зміна відбувається, якщо поточним входом команди є 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. Після натискання та відпускання кнопки (КНОПКА_1) біт OUT встановлюється на TRUE протягом одного циклу.
Фіг. 13 Приклад інструкції OSF
Приклади використання інструкцій
Приклад 1 - операція І
На фіг. 14 показує два приклади операції АБО в поєднанні з операцією І. У драбині немає. 0, тег C буде TRUE, якщо A = TRUE і B = TRUE. У другому прикладі в сходах №. 1, тег F матиме значення TRUE, якщо D = TRUE та E = FALSE.
Фіг. 14 Приклади роботи І
Приклад 2 - АБО операція
На фіг. 15 показані два приклади операції І. У драбині немає. 0, тег D матиме значення TRUE, якщо A = TRUE і B = TRUE або C = FALSE і B = TRUE. Письмовою мовою тексту є напр. наступне:
D: = (А АБО НІ (C)) І B;
У другому прикладі в сходах №. 1, тег H матиме значення TRUE, якщо E = TRUE і F = FALSE або G = TRUE. Написання мовою тексту:
H: = (E А НЕ (F)) АБО G;
Фіг. 15 Приклади операції АБО в поєднанні з І
Висновок
У більшості випадків кожен виробник ПЛК має (або може мати) різний набір інструкцій, незалежно від того, є вони основними розрядними вказівками, або більш досконалими вказівками зв’язку, або самою інструкцією ПІД. Метою статті було ознайомити читачів з розрядними інструкціями програмного забезпечення RsLogix 5000.
Дякую
Цей внесок був створений завдяки підтримці фонду Tatra banka - E-Talent від фонду Tatra banka No. 2013et030.