Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
стенд КИПиА.doc
Скачиваний:
44
Добавлен:
13.08.2019
Размер:
34.8 Mб
Скачать

9. Работа с программируемыми логическими контроллерами

Изучение работы программируемого логического контроллера рассмотрим на примере реализации задачи построения регулирующего приложения одноконтурного PID регулятора потока (рис. 30):

Рис. 30. Одноконтурный PID регулятор потока

Для решения поставленной задачи необходимо:

- изучить структуры программируемого логического контроллера (ПЛК):

  • модули;

  • программное обеспечение;

  • функции;

  • рабочие условия и т.п.

- изучить программирование ПЛК.

Контроллеры FCN/FCJ (FCN/FCJ) программируется с использованием стандарта IEC61131-3. Стандарт специфицирует следующие языки программирования PLC:

1. FBD (Function Block Diagram) – язык описания Функционально Блочных Схем осуществляет обработку данных используя модуляризацию различных функций в функциональные блоки и соединение блоков между собой посредством сигнальных связей. Благодаря поддержке средств разработки потоков данных, FDB наиболее подходит для решения задач непрерывного управления;

2. LD (Ladder Diagram) – язык описания Логических Диаграмм является наиболее широко используемым языком программирования для PLC. Использование символов контактов и обмоток электромагнитных реле, как базовых элементов, позволяет кодировать логические функции привычным для большинства пользователей образом;

3. SFC (Sequential Function Chart) – язык описания Последовательных Функциональных Карт удобен для построения приложений последовательного управления. Комбинация описания процессов последовательного управления средствами SFC и описания комбинационной логики средствами LD (управление не последовательного характера) позволяет строить изящные последовательные программы управления;

4. IL (Instruction List) – язык описания Листа Инструкций является стандартным мнемоническим языком. Благодаря возможности одним оператором с набором операндов, закодированным одной строкой, описать функцию процесса управления, можно получить лаконичную и довольно компактную программу. Но для построения сложных, комплексно связанных логических схем управления он не очень удобен;

5. ST (Structured Text) – язык описания Структурированного Текста является текстовым языком, подобным языкам высокого уровня, таким как PASCAL. Язык поддерживает приложения с множеством ветвлений, которые кодируются условными операторами типа IF-THEN-ELSE [17].

Примечание: Как правило, только один язык может быть использован для создания программы. Однако FBD и LD могут использоваться совместно.

Стандарт специфицирует незначительное количество базовых функций, которое расширено фирмой Yokogawa включая ряд функций высокого уровня подобных функциональным Блокам CS3000 (DCS).

Наряду со специфицированием языков программирования стандарт также определяет структуры данных (data structure) для всех данных которые дефинированы в системах управления. Данные могут быть связаны с функциональными блоками и их элементами (Tags) или объявлены как глобальные (global) или внешними переменными (external variables), которые также свойственны системе как системе в целом. Они включают в себя также и переменные ввода/вывода (I/O variables), которые по сути своей являются глобальными переменными.

Программирование системы поддерживается логическим конструктором (Logic Designer). Logic Designer / Разработчик Логики - это пакет программного обеспечения, выполняемый на РС общего назначения. Он используется для создания управляющих приложений для автономных контроллеров FCN/FCJ.

Logic Designer имеет следующие функции:

- управляющее приложение может создаваться на языках управления в соответствии с международным стандартом IEC 61131-3;

- поддерживаются пять типов языков, включая функциональную блок-схему, цепную схему и программирование SFC (проверка системных файлов). Они могут выбираться в соответствии с конкретными целями;

- управляющее логическое приложение может быть сконструировано из модулей (в дальнейшем применяется как POU); управляющее приложение может, таким образом, быть спроектировано иерархическим способом;

- поддержка различных папок приложений, которые являются наборами POU для различных целей управления;

- обеспечение редактора для каждого языка разработки;

- оборудован мощной функцией отладки.

Logic Designer обеспечивает следующие функции, существенно упрощающие отладку и поддержку управляющих приложений:

1. Software Wiring Function – связывание программных компонентов с модулями ввода/вывода с использованием определений коммутации позволяющих проводить отладку без подключения реальных внешних входных сигналов;

2. Online Layout и Value Display – значения переменных в программе могут отображаться и изменяться в процессе отладки;

3. Setting Breakpoints – внутри программы могут устанавливаться точки останова её выполнения. Впоследствии, после завершения отладки, пошаговый режим может быть отключен;

4. Logic Analyzer Function – функция логического анализатора позволяет записывать значения переменных в моменты времени с заданным интервалом и отображать их в виде графиков;

5. Watch Window – регистрация переменных в окне наблюдения переменных позволяет наблюдать за значениями переменных в рабочем режиме [17].

С его использованием создаётся проект (project), который содержит в себе конфигурационную информацию системы. Внутри проекта содержатся программы созданные и скомпонованные для всех FCN/FCJ в виде задач (tasks), которые определяют, как работают программы внутри FCN/FCJ.

Аппаратура настраивается при помощи конфигуратора ресурсов (Resource Configurator). При помощи него конфигурируется процессорный модуль (CPU) и модули ввода/вывода (I/O moduls) FCN/FCJ, допускается также и копирование данных из FCN/FCJ и сохранение их PC

Составим алгоритм выполнения работ (рис. 31):

Рис. 31. Алгоритм выполнения работ

Для создания управляющих приложений, исполняемых в FCN/FCJ, используется Logic Designer. Запуск Logic Designer может быть выполнен двойным щелчком по иконке на рабочем столе.

Создание нового проекта (New Project)

Для создания нового проекта необходимо выбрать опцию “New Project” в выпадающем меню “File” панели команд управления. Logic Designer предлагает выбрать тип управляющего приложения для разработки. Для данного задания выберем “STARDOM NPAS”, что позволяет использовать объекты NPAS POU из библиотеки PAS Portfolio, в частности PID Controller и нажмем кнопку “OK”.

Специфицирование целевого FCN/FCJ (через специфицирование IP адреса)

Для открытия целевого диалогового окна “Target - FCX” произведем двойной щелчок по папке “TargetSetting” в иерархической структуре проекта. Введем “192.168.0.1” в графу “Host Name/IP Address” и нажмем кнопку “OK”.

Определение переменных меток устройства (Device Label Variables)

Для определения логического имени входов/выходов, так называемые переменные меток устройств для входов/выходов, используемых в управляющем приложении.

В соответствии с требованием задачи определим две переменные меток устройства (рис. 32):

Рис. 32. Переменные меток устройства

Для открытия диалогового окна “Defining device label variables” (рис. 33) произведем двойной щелчок по папке “DeviceLabelDefinition” в иерархической структуре проекта и введем переменные меток устройства:

Рис. 33. Диалоговое окно “Defining device label variables”

Создание программы (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. Обратное чтение состояния

Присвоение значений инженерным параметрам

Присваиваемые инженерные параметры могут быть использованы для установки комментариев, верхнего предела гистерезиса, нижнего предела гистерезиса и другой информации для NPAS POU при создании управляющего приложения. Все инженерные параметры NPAS POU являются заранее предопределяемыми со значениями по умолчанию. Значения по умолчанию могут быть изменены, как требуется пользователю, путём использования специальных, определённых пользователем, переменных, описанных как “Variable for assigning values to engineering parameters”.

Определение переменных для доступа к параметрам

Доступ к параметрам может быть использован для отображения или установки значений PV, SV, MV, MODE, PH, PL, P, I, D и других параметров в течение процесса управления. Для того чтобы прочитать или записать значения параметров из других приложений, используются определённые пользователем переменные со ссылками на них, как на переменные для чтения и записи доступных параметров ("Variable for reading and writing access parameters").

Проверка и сохранение созданного контура регулирования

Мы закончили создание контура регулирования (рис. 38). Последнее, что необходимо выполнить - это провести проверку созданного контура регулирования. Сохраним результаты работы.

Рис. 38. Контур регулирования

Загрузка и запуск FCN/FCJ

Манипуляции по построению проекта (Building a Project) (рис. 39)

Построим создаваемый проект для конвертирования его в исполняемый код FCN/FCJ. Выберем опцию “Rebuild Project” из выпадающего меню “Build” панели команд управления. Выводится окно сообщений, показывающее процесс компиляции.

Когда компиляция завершается, её результат индицируется в окне сообщений. Если индицируется отсутствие ошибок, то это означает, что компиляция прошла успешно.

Рис. 39. Манипуляции по построению проекта (Building a Project)

Манипуляции по загрузке проекта (Downloading a Project) (рис. 40)

Загрузим законченный проект в FCN/FCJ. Выберем опцию “Project Control” в выпадающем меню “Online” панели команд управления. Откроется диалоговое окно меню Project Control, нажмем кнопку “Download”. Откроется диалоговое окно загрузки “Download” (рис. 41), нажмем кнопку “Download” в поле “Project” Если ранее уже был загружен другой проект, на экран выводится сообщение с просьбой подтвердить перезагрузку существующего проекта. Выберем “Yes” и процесс загрузки отобразится на панели состояния. Дожидаемся пока процесс загрузки завершится (когда “100% is downloaded”).

Рис. 40. Манипуляции по загрузке проекта (Downloading a Project)

Рис. 41. Диалоговое окно загрузки “Download”

Манипуляции при запуске проекта (Starting a Project)

Загруженное управляющее приложение не выполняется сразу. Для выполнения проекта необходимо выбрать один из трёх режимов запуска (табл.1). Для этого специфицируем один из следующих трёх режимов отладки, в зависимости от того, как необходимо нам предустанавливать значения переменных. Выбираем режим Cold.

Таблица 1

Режимы запуска проекта

Тестирование

Манипуляции по проверке работы (Checking Operation)

Проверим, что управляющее приложение, которое исполняется в FCN/FCJ, работает корректно.

Для проверки работы сначала необходимо переключить Logic Designer в режим отладки. Переключение в режим отладки Logic Designer используется при отладке управляющего приложения, исполняющегося в FCN/FCJ, и позволяет наблюдать его состояние. Переключаем в режим отладки: открываем кодовый лист “SINGLE_LOOP”; щёлкаем по иконке Debug on/off на инструментальной панели управления Logic Designer. В режиме отладки нижняя часть окна Logic Designer окрашивается зелёным цветом. Кроме того, переменные типа BOOL окрашиваются голубым цветом, если находятся в состоянии FALSE, или соответственно красным, если находятся в состоянии TRUE. Переменные прочих типов окрашиваются в зелёный цвет, соответственно и их значения, отображаемые под именами переменных.

Задача построения управляющего приложения одноконтурного PID регулятора потока выполнена (рис. 42).

Рис. 42. Готовый кодовый лист PID регулятора