чно виконується в активному вікні.
Команда виконається, як тільки натиснута на панелі інструментів кнопка буде відпущена. Якщо ви помістіть покажчик мишки на кнопку панелі інструментів, то через невеликий проміжок часу побачите назва цієї кнопки в підказці.
Кнопки на панелі інструментів різні для різних редакторів CoDeSys. Отримати інформацію щодо призначення цих кнопок можна в описі редакторів.
Панель інструментів можна відключити, малюнок 46.
Малюнок 46 - Панель інструментів
Загальний вид вікна програми CoDeSys виглядає наступним чином, малюнок 47.
Малюнок 47 - Вікно програми CoDeSys
Блок-схема алгоритму функціонування в середовищі CoDeSys зображена на малюнку 48.
Малюнок 48 - Блок схема функціонування в середовищі CoDeSys
Як видно з блок-схеми, після включення мікроконтролера в нього завантажується програма, відбувається ініціалізація змінних, читання входів і опитування модулів. Так само є вибір перемикання між автоматичним і ручним режимом. У ручному режимі є можливість управління клапаном і керування МЕОФ. Потім відбувається запис вихідних даних і формування посилок по послідовним інтерфейсів. Після чого алгоритм зациклюється на читання входів або відбувається закінчення роботи.
.2 Розробка програми в середовищі CoDeSys
Запускаємо Codesys і створюємо новий проект на мові ST. Тарджет-файл для ARM9 на персональному комп'ютері вже встановлено, він автоматично вибирає потрібну бібліотеку. Зв'язок з контролером налагоджена.
PROGRAM PLC_PRG
reg_for_meof: VALVE_REG; (* Регулятор для управління ПДЗ *)
K, b: REAL; (* Коефіцієнти кривої регулювання *)
timer_for_valve1: TON; (* Таймер аварійного відключення *)
safety_valve_rs_manual: RS; (* для ручного управління клапаном *)
reference: REAL; (* Завдання кута повороту ПДЗ *) _VAR
(* при налагодженні фіксуємо сигнал з датчика положення МЕОФ і розраховуємо значення ain low ain high, спочатку приймемо що датчик 4-20 міліампер і при 4 ма - ПДЗ повністю закритий (0%), а при 20 ма - повністю відкритий (100%) - налаштовується в конфігурації ПЛК *) NOT auto_mode THEN (* якщо не автоматичний режим *) _open:=manual_more; (* Відкриваємо після натискання кнопки *) _close:=manual_less; (* Закриваємо після натискання кнопки *)
safety_valve_rs_manual (SET:=valve_open, RESET1:=valve_close, Q1 => safety_valve); (* Управління аварійним клапаном *)
ELSE
(* при налагодженні фіксуємо сигнал з датчика тиску і розраховуємо значення ain low ain high, спочатку приймемо що датчик 4-20 міліампер і при 4 ма - резервуар порожній (0%), а при 20 ма -сповнений (100%) - налаштовується в конфігурації ПЛК *)
IF pressure_sensor < WORD_TO_REAL (w_reference1) THEN reference:=100; END_IF; (* Якщо рівень менше «w_reference1», то відкриваємо заслінку на 100% *)
IF pressure_sensor> WORD_TO_REAL (w_reference1) THEN (* задаємо кут повороту - зменшуємо пропорц...