Программирование ПЛК GE Fanuc семейства VersaMax. Разработка системы автоматического регулирования температуры печи.
Цель работы:
- изучение контроллеров семейства VersaMax фирмы GE Fanuc;
- ознакомление с программным обеспечением CIMPLICITY Machine Edition для разработки прикладных программ контроллеров GE Fanuc;
- получение практических навыков разработки прикладных программ для контроллеров семейства VersaMax фирмы GE Fanuc в инструментальной среде программирования CIMPLICITY Machine Edition;
- изучение функционального блока PIDISA, реализующего ПИД-закон регулирования;
- разработка системы автоматического регулирования температуры в печи на базе контроллеров семейства VersaMax;
- определение настроечных параметров ПИ-регулятора для разработанной САР температуры в печи;
- исследование характеристик САР, определение показателей качества переходных процессов.
Теоретический материал
Комплекс технических средств семейства VersaMax производится фирмой GE Fanuc и является недорогим решением для построения систем автоматического управления с небольшим количеством обрабатываемых точек ввода/вывода (до 2048 каналов ввода/вывода). Кроме того, компактность, высокие коммуникационные возможности, низкая стоимость и высокая надежность работы элементов в совокупности с модульным принципом построения систем автоматического управления позволяют использовать их в качестве устройств сопряжения с объектом (УСО) в автоматизированных системах большой и средней мощности.
Комплекс технических средств семейства VersaMax включает следующие компоненты для разработки систем автоматического управления:
- процессорные модули – осуществляют непосредственную обработку данных на основе заложенных алгоритмов функционирования;
- модули питания;
- коммуникационные модули – обеспечивают информационный обмен данными с другими техническими средствами по специализированным протоколам связи;
- модули ввода/вывода – обеспечивают непосредственный прием и первичную обработку данных от датчиков технологической информации, обеспечивают обмен данными с процессорным модулем по общей шине, а также преобразуют управляющие команды процессорного модуля в электрические сигналы управления исполнительными устройствами;
- базовые модули для установки модулей ввода/вывода и обеспечения связи с процессорным модулем.
Фирмой GE Fanuc выпускается обширная номенклатура по каждому компоненту комплекса технических средств семейства VersaMax.
На рис. 1 показана обобщенная структура системы автоматического управления на основе программируемых логических контроллеров.
Рис. 1. Структура ПЛК.
Прикладная программа выполняется в ПЛК непрерывно и циклично. Наряду с выполнением заложенной программы ПЛК осуществляет ввод/вывод данных, сервисные и диагностические функции, а также связь с другими устройствами.
Основным режимом работы ПЛК является режим стандартного цикла. В этом режиме новый цикл выполнения задач в ПЛК начинается сразу после окончания предыдущего цикла.
ПЛК также может работать в режиме фиксированного цикла. В этом режиме на выполнение каждого цикла задач в ПЛК отводится одинаковый (фиксированный) промежуток времени.
Структура цикла выполнения задач в ПЛК VersaMax показана на рис. 2.
Рис. 2. Структура цикла выполнения задач в ПЛК VersaMax.
Память контроллера поделена на области, каждая их которых предназначена для хранения определенного вида переменных или констант. Каждая область памяти распознается по буквенному идентификатору, который указывается в виде префикса при адресации к конкретной ячейке памяти. Назначение областей памяти для хранения данных и их идентификаторы приводится в табл. 1.
Таблица 1. Области памяти ПЛК и их идентификаторы.
Тип | Описание | Функция |
%I | Регистр для хранения дискретных входных величин | Состояние входного дискретного сигнала, в течение последнего выполненного цикла программы. |
%Q | Регистр для хранения дискретных выходных величин | Состояние выходного дискретного сигнала, установленное программой в течение последнего выполненного цикла программы. |
%M | Регистр для хранения внутренней булевой переменной (1 разряд) | Ячейка памяти для хранения информации, используемой только внутри программы. |
%S | Регистр для хранения системных переменных (1 разряд) | Системные булевые сигналы состояний отдельных частей ПЛК |
%T | Регистр для хранения временных переменных (1 разряд) | Внутренний регистр для хранения булевых значений, используется для тех же функций, что и регистры %М, за исключением того, что при отключении питания их значения не сохраняются. |
%R | Регистр общего назначения для хранения 16-разрядных слов | Область памяти, используемая для хранения численных данных. |
%AI | Регистр для хранения данных аналоговых входов (16-разрядное слово) | Регистр, хранящий значение аналоговых входов. |
%AO | Регистр для хранения данных аналоговых выходов (16-разрядное слово) | Регистр, хранящий значение аналоговых выходов. |
%G | Регистр для хранения глобальных переменных (используемых в различных программах) данных | Регистры для хранения данных глобального класса – используются для раздельного использования одних и тех же данных различными ПЛК. |
Установка включает:
- объект регулирования – печь с электрическим нагревателем и вентилятором;
- датчик температуры – термометр сопротивления;
- систему автоматического регулирования на базе КТС VersaMax, включающую:
· процессорный модуль IC200CPU001;
· модуль питания IC200PWR001;
· базовые модули IC200CHS012;
· модуль ввода/вывода аналоговый IC200 смешанного типа (имеются как входные, так и выходные каналы);
· модуль ввода/вывода дискретный IC200MDD841 смешанного типа (имеются как входные, так и выходные каналы);
- рабочая станция (персональный компьютер) с программным обеспечением CIMPLICITY Machine Edition – для разработки прикладных программ, конфигурирования системы автоматического регулирования, загрузки программ в контроллер и наблюдения за процессом обработки информации в контроллере;
- исполнительное устройство – преобразователь выходного сигнала системы автоматического регулирования (сигнал постоянного тока с диапазоном 4…20 мА) в напряжение, подводимое к нагревательному элементу печи.
Структурная схема системы автоматического регулирования температуры печи показана на рис. 3.
Рис. 3. Система автоматического регулирования температуры печи.
В качестве объекта регулирования используется печь, имеющая нагревательный элемент и вентилятор (для увеличения скорости охлаждения печи).
Регулируемым параметром в системе автоматического регулирования является температура печи, измеряемая с помощью датчика температуры.
Автоматический регулятор формируется в контроллере VersaMax IC200CPU001 программным образом с помощью функционального блока PID_ISA, реализующего ПИД-закон регулирования.
Заданное значение регулируемого параметра (уставка регулирования) также устанавливается программным образом при формировании автоматического регулятора.
Регулирующее воздействие формируется на аналоговом выходе системы автоматического управления в соответствии с ПИД-законом регулирования и представляет собой сигнал постоянного тока с диапазоном 4…20 мА.
Исполнительное устройство воздействует на материальный поток Q таким образом, чтобы стабилизировать температуру в печи. В качестве исполнительного устройства используется преобразователь постоянного тока в напряжение. Изменение температуры печи осуществляется за счет увеличения или уменьшения напряжения, подводимого к нагревательному элементу. В этом случае в качестве материального потока выступает электрический ток, протекающий через нагревательный элемент печи.
Разработка прикладных программ и конфигурирование контроллеров производится с помощью инструментальной среды программирования CIMPLICITY Machine Edition на языке релейной логики (LD) или языке списка команд (IL). Следует отметить, что язык релейной логики в среде CIMPLICITY Machine Edition включает в себя не только элементы релейной логики, но и функциональные блоки, т.е. объединяет в себе преимущества обоих языков программирования.
Для разработки прикладных программ и связи с контроллерами VersaMax в среде CIMPLICITY Machine Edition предусмотрены следующие средства:
- Навигатор (Navigator) – средство управления процессом разработки прикладных программ в инструментальной среде CIMPLICITY Machine Edition.
- Управление вводом/выводом (Control I/O) – средство настройки и конфигурирования устройств ввода/вывода и их драйверов.
- Информационная зона (Feedback Zone) – показывает информацию о действиях и событиях, произошедших во время работы в среде программирования CIMPLICITY Machine Edition. Там же отображаются результаты выполненных операций.
- Инспектор (Inspector) – средство, в котором отображаются свойства и текущие настройки выделенных элементов или объектов.
- Просмотр данных (Data Watch) – средство отладки, позволяющее следить за состоянием переменных и задавать им фиксированные значения.
- Просмотр данных (Data Monitor) – средство просмотра значений переменных с помощью временных диаграмм.
- Набор инструментальных средств (Toolchest) – средство, содержащее полный список элементов и объектов для разработки прикладных программ, которые сгруппированы по классам. Данное средство предназначено для быстрого поиска и использования элементов программирования и конфигурирования.
- Помощник (Companion) – средство предоставления краткой информации по выделенному элементу или объекту.
- Информационное окно (Info Viewer) – средство предоставления информации по компонентам среды программирования CIMPLICITY Machine Edition.
- Редактор логики – основной элемент программного пакета, в котором составляются прикладные программы.
- Конфигурация аппаратной части (Hardware Configuration) – графическое средство, позволяющее в удобной форме выполнить конфигурацию аппаратной части контроллера.
- Таблица просмотра адресов (Reference View Table) – средство, позволяющее просматривать и следить за состоянием областей памяти ПЛК.
Кроме перечисленных средств инструментальная среда программирования CIMPLICITY Machine Edition включает также другие средства разработки прикладных программ и конфигурирования ПЛК, которые выходят за рамки выполнения данной лабораторной работы.
Как отмечалось ранее, автоматический регулятор в САР температуры печи формируется программным образом с помощью функционального блока PID_ISA. Внешний вид блока PID_ISA приведен на рис. 4.
Рис. 4. Функциональный блок PID_ISA
В табл. 2 приведен список входов и выходов блока PID_ISA и их назначение.
Таблица 2. Назначение входов и выходов блока PID-ISA.
Вход/ выход | Допустимые значения | Описание |
enable | Булевый вход. Имитирует питание функционального блока. | Разрешает работу блока PID_ISA при наличии на входе «1». |
SP | Данные, хранящиеся в регистрах I, Q, M, T, G, R, AI, AQ | Заданное значение регулируемого параметра. |
PV | Данные, хранящиеся в регистрах I, Q, M, T, G, R, AI, AQ | Текущее значение регулируемого параметра. |
MAN | Булевый вход. | При подаче «1» - блок PID_ISA переводится в режим ручного управления. «0» - автоматический режим. |
UP | Булевый вход. | В ручном режиме управления при каждом появлении на входе «1» выход блока PID_ISA увеличивается на 1. |
DN | Булевый вход. | В ручном режиме управления при каждом появлении на входе «1» выход блока PID_ISA уменьшается на 1. |
Address | Данные, хранящиеся в регистрах общего назначения R | Адрес начального регистра области памяти (состоящей из 40 регистров), в которой хранятся настроечные параметры блока PID_ISA. |
ОК | Булевый вход. | Если блок PID_ISA сконфигурирован без ошибок, на этом выходе появится «1». |
CV | Данные, хранящиеся в регистрах I, Q, M, T, G, R, AI, AQ | Выход блока PID_ISA, на котором формируется регулирующее воздействие. |
Под хранение параметров настройки блока PID_ISA в памяти контроллера отводится 40 регистров (16-разрядных). Перечень регистров и их назначение приведены в табл. 3.
Таблица 3. Регистры блока PID_ISA и их назначение.
Адресс | Параметр | Единицы измерения | Диапазон допустимых значений | Описание |
Начальный адресс | Номер регулятора | Целое число | 0…255 | Необязательный параметр. Обеспечивает идентификацию блока регулирования в системе автоматического управления. |
Начальный адрес+1 | Алгоритм | - | Устанавливается ПЛК | 1 – алгоритм ISA 2 – алгоритм IND |
Начальный адрес+2 | Период выборки | 10 мс | 0 (каждый цикл) …65535 (10,9мин) | Наименьшее время между выполнением ПИД-алгоритма, кратное 10 мс. |
Начальный адрес+3 | Верхняя граница зоны нечувстви-тельности | Единицы измерения регули-руемой величины | 0…32000 | Верхняя граница зоны нечувствительности. Блок PID_ISA будет обрабатывать сигнал рассогласования только в том случае, если величина рассогласования будет превышать верхнюю границу зоны нечувствительности. |
Начальный адрес+4 | Нижняя граница зоны нечувстви-тельности | Единицы измерения регули-руемой величины | 0…32000 | Нижняя граница зоны нечувствительности. Блок PID_ISA будет обрабатывать сигнал рассогласования только в том случае, если величина рассогласования будет меньше нижней границы зоны нечувствительности. |
Начальный адрес+5 | Коэффициент пропорциона-льности | 0…327,67% | Задает насколько изменится величина регулирующего воздействия на выходе CV при изменении регулируемого параметра PV на 100 единиц. | |
Начальный адрес+6 | Коэффициент дифференци-рования | 0,01 с | 0…327,67 с | Задает насколько изменится величина регулирующего воздействия на выходе CV при изменении регулируемого параметра PV или сигнала рассогласования на 1 единицу каждые 10 мс. |
Начальный адрес+7 | Коэффициент интегри-рования | Повторов в 1000 с | 0…32,767 повторов/с | Задает насколько изменится величина регулирующего воздействия на выходе CV, если на вход блока PID_ISA будет подан постоянный сигнал рассогласования, равный единице. |
Начальный адрес+8 | Смещение выхода | Единицы измерения регулирую-щего воздействия | -32000…+32000 | Задает величину, добавляемую к значению выхода CV. |
Начальный адрес+9 | Верхняя граница регулирую-щего воздействия CV | Единицы измерения регулирую-щего воздействия | -32000…+32000 | Задает верхнее допустимое значение величины CV. |
Начальный адрес+10 | Нижняя граница регулирую-щего воздействия CV | Единицы измерения регулирую-щего воздействия | -32000…+32000 | Задает нижнее допустимое значение величины CV. |
Начальный адрес+11 | Минимальное время полного пробега | с/полный пробег | 0 (нет) … 32000 с | Задает минимальное время, за которое выходное регулирующее воздействие СV может измениться от 0 до 100 %. |
Начальный адрес+12 | Регистр хранения параметров конфигу-рирования. | Используются 5 младших разрядов. Остальные устанавливаются в 0. | Разряд 0 – задает способ вычисления сигнала рассогласования: если установлен 0, то Е=(SP-PV), если 1 – Е=(PV-SP). Разряд 1 – задает полярность величины регулирующего воздействия CV: если установлен 0, то CV не инвертируется, 1 – CV инвертируется. Разряд 2 – задает способ формирования дифференциальной составляющей алгоритма: 0 – дифференциальная составляющая формируется по величине сигнала рассогласования, 1- по величине текущего значения регулируемого параметра PV. Разряд 3 – определяет влияние зоны нечувствительности: 0 – при формировании выходного регулирующего воздействия учитывается зона нечувствительности, 1 – зона нечувствительности не учитывается. Разряд 4 – определеяет способ формирования коррекции интегратора при достижении границ диапазона: 0 – при достижении границ диапазона выхода регулятора фиксируется граничное значение; 1 – при достижении границы регулятор возвращается к исходному значению, с которого начиналось интегрирование. | |
Начальный адрес+13 | Управляющее воздействие в ручном режиме | Единицы измерения регулирую-щего воздействия | От нижней границы регулирующего воздействия CV до верхней. | Отслеживает выходное значение CV блока PID_ISA в автоматическом режиме, в ручном режиме задает значение выхода CV блока PID_ISA. |
Начальный адрес+14 | Регистр хранения управляю-щего слова | Кодовая комбинация | Если в младшием регистре 0, слово формируется самим ПЛК | Разряд 0 – позволяет (если 1) или запрещает (если 0) формирование управляющего слова внешним устройством. Разряд 1 – переводит вблок в ручной (если 1) или автоматический (если 1) режим работы. Разряд 2 – разрешает (если 1) или запрещает (если 0) работу блока PID_ISA. Разряд 3 – если 1 и блок PID_ISA переведен в ручной режим, то в каждом цикле обработки программы выход CV будет увеличиваться на 1, в противном случае – изменения CV не будет. Разряд 4 - если 1 и блок PID_ISA переведен в ручной режим, то в каждом цикле обработки программы выход CV будет уменьшаться на 1, в противном случае – изменения CV не будет. |
Начальный адрес+15 | Регистр внутреннего использова-ния для хранения уставки SP. | - | Устанавливается ПЛК | Отслеживает заданное значение регулируемой величины SP. Если разряд 0 регистра хранения управляющего слова установлен в 1 – величина SP задается от внешнего устройства. |
Начальный адрес+16 | Регистр внутреннего использо-вания для хранения значения выходного управляю-щего воздействия CV. | - | Устанавливается ПЛК. | Отслеживает значение выходного управляющего воздействия CV блока PID_ISA, реализующего ПИД-закон регулирования. |
Начальный адрес+17 | Регистр внутреннего использо-вания для хранения значения входного регулируе-мого сигнала PV. | - | Устанавливается ПЛК. | Отслеживает значение входного значения сигнала регулируемой величины PV блока PID_ISA, реализующего ПИД-закон регулирования. Если разряд 0 регистра хранения управляющего слова установлен в 1 – величина PV задается от внешнего устройства. |
Начальный адрес+18 | Регистр внутреннего использо-вания для хранения значения сигнала выходного регулирую-щего воздействия перед инверти-рованием (если задано). | - | Устанавливается ПЛК. | Если в блоке PID_ISA задано инвертирование выходного управляющего воздействия, в этом регистре хранится не инвертированное значение выходного управляющего воздействия. В противном случае значение этого регистра полностью совпадает со значением регистра для хранения выходного управляющего воздействия CV. |
Начальный адрес+19 | Регистр для хранения значения дифференци-альной составляя-ющей. | |||
Начальный адрес+20 | Регистр памяти для внутреннего исполь-зования. | - | - | Используется контроллером для хранения промежуточных значений. |
Начальный адрес+21 | Регистр памяти для внутреннего исполь-зования. | - | - | Используется контроллером для хранения промежуточных значений. |
Начальный адрес+22 | Регистр для хранения значения времени полного пробега выходного управляя-ющего воздействия CV. | - | - | - |
Начальный адрес+23 до начальный адрес+25 | Регистр для хранения системного времени. | - | - | Регистр для хранения внутреннего системного времени (время последнего выполнения блока PID_ISA). |
Начальный адрес+26 | Регистр для хранения остатка интегральной составляя-ющей. | - | - | Содержит остаток, используемый в интеграторе при рассогласовании, равном нулю. |
Начальный адрес+27 | Регистр для хранения нижней границы диапазона значений регулируемой величины PV и заданного значения регулиру-емого параметра SP. | Единицы измерения сигнала PV | -32000…+32000 | Содержит значение нижней границы сигналов PV и SP. |
Начальный адрес+28 | Регистр для хранения верхней границы диапазона значений регулируемой величины PV и заданного значения регулиру-емого параметра SP. | Единицы измерения сигнала PV | -32000…+32000 | Содержит значение верхней границы сигналов PV и SP (должно быть больше значения, записанного в регистр для хранения нижней границы диапазона PV и SP). |
Начальный адрес+29 до начальный адрес+39 | Резервные регистры | - | - | Регистры с 29 по 34 зарезервированы для внутреннего использования. Регистры с 35 по 39 зарезервированы для использования внешними устройствами. |
Для настройки блока PID_ISA достаточно записать конфигурационные данные лишь в часть регистров (обычно конфигурируются не более 13 регистров – со 2 по 14), остальные предназначены для внутреннего использования и устанавливаются контроллером самостоятельно, поэтому их задавать не нужно.
ПИД-закон регулирования, реализуемый блоком PID_ISA, определяется следующей зависимостью:
(1)
где: - значение выходного управляющего воздействия ПИД регулятора; - коэффициент пропорциональности; - сигнал рассогласования (если не задано инвертирование, , где: - заданное значение регулируемого параметра, - текущее значение регулируемого параметра); - постоянная времени интегрирования; - постоянная времени дифференцирования; - зона нечувствительности; - шаг дискретизации выполнения блока PID_ISA.
Следует отметить, что выполнение ПИД-алгоритма производится с некоторым шагом дискретизации , поэтому при технической реализации интегральной составляющей ПИД алгоритма интеграл заменяется суммой , где: - значение сигнала рассогласования на текущем шаге интегрирования. Дифференциальная составляющая в блоке PIFD_ISA определяется следующей зависимостью: , где: - значение сигнала рассогласования на текущем шаге дифференцирования; - значение сигнала рассогласования на предыдущем шаге дифференцирования.
На рис. 5 представлена структурная схема ПИД-алгоритма, реализованного в блоке PID_ISA.
Рис. 5. Структурная схема алгоритма ПИД, реализуемого блоком PID_ISA.
Практическая часть
Практическая работа состоит из двух частей. Первая часть предполагает приобретение навыков разработки прикладных программ в среде программирования CIMPLICITY Machine Edition и изучение работы ПИД-алгоритма, реализуемого блоком PID_ISA. Во второй части работы выполняется идентификация динамических свойств объекта регулирования и на их основе определяются настроечные параметры регулятора, обеспечивающие приемлемое качество переходных процессов регулирования температуры печи.