Создание программы (Program)
Теперь строим управляющее приложение, используя блоки организации программ (POU unit). Добавим POU программу в проект, а затем создадим управляющее приложение, использующее эту POU программу, на языках FBD и LD. Для открытия диалогового окна “Insert” необходимо щёлкнуть правой кнопкой мыши по папке “Logical POUs” в иерархической структуре проекта, а затем выбрать “Insert” → “Program”. Для примера введем имя программы “SINGLE_LOOP” в поле “Name:”, выберем язык программирования “FBD” в поле “Language”, и нажмем кнопку “OK”. Убедимся, что в иерархической структуре проекта создался POU с именем “SINGLE_LOOP” с тремя рабочими листами (рис. 34).
Рис. 34. Создание программы “SINGLE_LOOP”
Для того чтобы открыть кодовый рабочий лист, дважды необходимо щёлкнуть по кодовому листу “SINGLE_LOOP”. Щёлкнем по месту размещения функционального блока PID контроллера на рабочем листе. Функциональный блок будет размещён на указанном месте. Выберем библиотеку “<SD_NPASPOU_PF>” в комбинированном окне “Group:” фрейма “Edit Wizard” и двойным щелчком по “NPAS_PID ─ PID Controller” в перечне функциональных блоков во фрейме “Edit Wizard” вызовем диалоговое окно “Variable Properties”. Для примера введем имя функционального блока “FIC001” в комбинированное окно “Name:” и нажмем кнопку “OK”. Функциональный блок появляется на рабочем листе. Далее зарегистрируем функциональный блок стандартного аналогового входа и аналогового выхода, который выполняет обнаружение IOP алармов и преобразования входного сигнала. Для указания его позиции щёлкнем по месту его размещения на рабочем листе левее FIC001 Дважды щёлкнув по “NPAS_AI_ANLG ─ Standard Analog Input” в перечне функциональных блоков во фрейме “Edit Wizard”, вызываем диалоговое окно “Variable Properties”. NPAS_AI_ANLG также включён в библиотеку <SD_NPASPOU_PF>. Введем имя функционального блока “FIC001_AI001” в комбинированное окно “Name:” и нажмем кнопку “OK”. Функциональный блок появляется на рабочем листе. Аналогичным образом создаем NPAS_AO_ANLG.
Теперь соединим функциональные блоки (рис. 35), размещённые на рабочем листе. Выберем иконку Connect Objects на инструментальной панели управления Logic Designer, щёлкнем по зелёному кружочку на выходе “OUT” блока “FIC001_AI001” и выполняем то же самое над кружочком голубого цвета на входе “IN” блока “FIC001”. В результате произойдёт связка между выходным параметром блока FIC001_AI001 и входным параметром блока FIC001. Рис. 35. Соединение функциональных блоков
Теперь подключим переменную метки устройства AI001 к функциональному блоку стандартного аналогового входа FIC001_AI001. Дважды щёлкнем по кружочку голубого цвета на входе “IN” блока “FIC001_AI001”. Откроется диалоговое окно “Variable Properties”. Переменные меток устройств являются глобальными переменными. Для того, чтобы отобразить переменную метки устройства AI001 в перечне переменных, мы специфицируем ресурсы FCN/FCJ надлежащим образом. В окне “Global Variables Groups” в поле “Scope” в иерархической структуре выберем файл “Default” в следующей последовательности: [Physical hardware] → [Configuration] → [FCX01] →[Default]. В поле “Scope” выберем “Global” и отмаркируем “Show all variables of worksheet”. Щелчком активизируем комбинированное окно “Name” и выберем переменную “AI001” из перечня глобальных переменных ресурса (рис. 36), специфицированного в шаге 2, нажмем кнопку “OK”. Аналогично, подключим переменную метки устройства AO001. Рис. 36. Выбор переменных
Для того чтобы избежать внезапного изменения выходного сигнала при переключении режимов работы регулятора (безударное переключение), необходимо знать состояние функционального блока и модуля выхода и чтобы оно соответствовало состоянию и величине потребителя выходного сигнала. Однако стандарт IEC регламентирует только одностороннюю передачу данных между соединёнными функциональными блоками, от выходного параметра одного блока к входному параметру другого. Для обеспечения безударного переключения необходимо соединение для обратного чтения, по которому информация передаётся в обратную сторону, от подчинённого блока к ведущему. Определим соединения для обратного чтения, которые будут отслеживать состояние исполнительного механизма.
Определяем обратное чтение для состояния выхода исполнительного механизма FIC001_AO001. Дважды щёлкнем по кружочку голубого цвета на входе “RB_IN” блока “FIC001_AO001”, откроется диалоговое окно “Variable Properties”, в поле “Scope” выберем “Global”. Щелчком активизируем комбинированное окно “Name:” и выберем переменную “AO001_RB” из перечня глобальных переменных, нажмем кнопку “OK”: Итак, теперь мы имеем определённую переменную метки устройства для обратного чтения состояния AO001 в FIC001_AO001. Выполняем процедуру определения связи для обратного чтения состояния из FIC001_AO001 в FIC001 (рис. 37). Дважды щёлкнем по кружочку зелёного цвета на выходе “RB_OUT” блока “FIC001_AO001”, откроется диалоговое окно “Variable Properties”. Дважды щёлкнем по кружочку зелёного цвета на выходе “RB_OUT” блока “FIC001_AO001”, откроется диалоговое окно “Variable Properties”. Рис. 37. Обратное чтение состояния
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|