1. Запустите среду программирования CIMPLICITY Machine Edition. Для этого в операционной среде Windows активируйте «Start» («Пуск») → «Programs» («Программы») → CIMPLICITY Machine Edition → CIMPLICITY Machine Edition. Во время запуска среды CIMPLICITY Machine Edition появится окно «CIMPLICITY Machine Edition», в котором необходимо задать проект, который будет открыт при запуске среды программирования CIMPLICITY Machine Edition – существующий или новый. При создании нового проекта в поле «Create a new project using» («Создать новый проект используя») включите опцию строки «Empty project» («Пустой проект»). Если необходимо запустить сохраненный ранее проект, включите опцию строки «Open an existing project» («Открыть существующий проект») и в списке имеющихся проектов выделите тот, который желаете открыть. Если в списке проектов нет нужного проекта, отметьте точкой пункт «All Projects» («Все проекты») под списком. Если и в этом случае не окажется необходимого проекта, это означает, что проекта нет на персональном компьютере или он был удален. В этом случае необходимо запустить новый проект.
Нажмите кнопку «ОК». При создании нового проекта откроется окно «New Project» («Новый проект»), в котором необходимо задать имя создаваемого проекта в строке «Project Name» («Имя проекта»). Каждый создаваемый проект должен иметь уникальное имя. Имя проекта нужно записать латинскими буквами. Если открывается существующий проект, в среде программирования CIMPLICITY Machine Edition загрузится последний сохраненный вариант проекта.
При запуске CIMPLICITY Machine Edition загружаются средства конфигурирования и программирования ПЛК, которые открываются в соответствующих окнах. Каждое средство конфигурирования и программирования может быть запущено или закрыто через меню «Tools» («Инструменты») путем включения соответствующих опций меню.
Кроме отмеченных средств открывается рабочая панель, которая служит для непосредственного редактирования и отображения выполняемых действий по конфигурированию и программированию контроллеров.
Основным средством управления процессом разработки прикладных программ является окно навигатора («Navigator»).
2. На следующем шаге выполняется конфигурирование контроллера –задаются семейство программируемых ПЛК, а также тип и порядок подключения используемых технических средств. Чтобы задать семейство программируемых контроллеров, необходимо в меню «Project» («Проект») активировать опцию «Add Target» («Добавить целевую задачу») → «GE Fanuc PLC» («ПЛК GE Fanuc») → «VersaMax PLC» («ПЛК VersaMax»). При этом в окне навигатора на закладке управления текущим проектом, которая отмечена значком , появится целевая задача «Target1» (имя целевой задачи можно изменить). Под названием созданной целевой задачи содержится список средств программирования и конфигурирования выбранного семейства контроллеров VersaMax, включающий:
- списки просмотра данных (Data Watch List);
- средство конфигурирования аппаратной части (Hardware Configuration);
- редактор программ на языке списка команд (IL Block);
- редактор программ на языке релейной логики (LD Block);
- таблицы просмотра адресов (Reference View Tables).
Для выбора состава технических средств, входящих в состав программируемого логического контроллера, войдите в подпрограмму конфигурирования аппаратной части контроллера («Hardware Configuration»). Для этого наведите указатель мыши на строку «Hardware Configuration» под именем целевой задачи и два раза щелкните ЛК мыши. При этом под строкой «Hardware Configuration» появится другая строка «Main Rack» («Основная стойка»). Наведите указатель мыши на строку «Main Rack» и два раза щелкните ЛК мыши. Под строкой «Main Rack» появятся еще две строки: «PWR (IC200PWR001)» - задает тип источника питания контроллера (по умолчанию установлен источник питания IC200PWR001) и «Slot 0 (IC200CPU001)» - задает тип процессорного модуля (по умолчанию установлен процессорный модуль IC200CPU001). Для питания системы автоматического регулирования используется блок питания IC200PWR101, поэтому следует изменить тип модуля питания, записанного в строке PWR. С этой целью наведите указатель мыши на строку «PWR (IC200PWR001)» и щелкните правой кнопкой мыши. Появится контекстное меню, в котором необходимо выбрать пункт «Replace Module…» («Заменить модуль…»). В появившемся диалоговом окне «Module Catalog» («Список модулей») выберите блок питания IC200PWR101 и нажмите кнопку «ОК» для подтверждения выбора. На рабочей панели откроется таблица, в которой приводятся характеристики выбранного модуля питания.
На следующем шаге необходимо задать модули ввода/вывода, которые будут использоваться в системе автоматического регулирования. В качестве модулей ввода/вывода используются:
- модуль аналогового ввода/вывода смешанного типа IC200ALG430 (содержит 4 аналоговых входа для подключения сигналов постоянного тока с диапазоном 4…20 мА и 2 аналоговых выхода постоянного тока с диапазоном 4…20 мА);
- модуль дискретного ввода/вывода смешанного типа IC200MDD845 (содержит 16 дискретных входов для сигналов постоянного тока на 24 В и 8 дискретных выходов постоянного тока на 24 В).
Модули ввода/вывода устанавливаются на несущую панель IC200CHS002, поэтому, перед тем как задавать тип используемых модулей ввода/вывода, необходимо задать тип используемых несущих панелей. Для этого наведите указатель мыши на строку «Slot 0 (IC200CPU001)» и щелкните правой кнопкой мыши. В появившемся контекстном меню выберите команду «Add Carrier/Base…» («Добавить Несущую панель/Базовую плату…»). В появившемся окне «Module Catalog» («Список модулей») выберите несущую панель IC200CHS002 и нажмите кнопку «ОК». После выбора типа несущей панели в списке элементов основной стойки («Main Rack») появится новая строка «Slot 1 ()» («Слот 1 ()»), которая показывает, что готово новое место для установки модуля ввода/вывода (несущая панель подключена к процессорному модулю). Чтобы задать тип модуля ввода/вывода, который будет установлен в первый слот несущей панели, наведите указатель мыши на строку «Slot 1 ()» и щелкните правой кнопкой мыши. В появившемся контекстном меню выберите команду «Add Module…» («Добавить модуль…»). Откроется окно «Module Catalog» («Список модулей»), в котором необходимо перейти на закладку «Analog Mixed» («Аналоговые смешанного типа») и выбрать модуль IC200ALG430. Для подтверждения выбора нажмите кнопку «ОК».
Аналогичным образом нужно установить новую несущую панель IC200CHS002 и модуль дискретного входа/выхода смешанного типа IC200MDD845. Для этого наведите указатель мыши на строку «Slot 1 (IC200ALG430)» и щелкните правой кнопкой мыши. В появившемся контекстном меню выберите команду «Add Carrier/Base…» («Добавить Несущую панель/Базовую плату…»). В появившемся окне «Module Catalog» («Список модулей») выберите несущую панель IC200CHS002 и нажмите кнопку «ОК». После выбора типа несущей панели в списке элементов основной стойки («Main Rack») появится новая строка «Slot 2 ()» («Слот 2 ()»), которая показывает, что готово новое место для установки модуля ввода/вывода (несущая панель подключена к первой несущей панели). Чтобы задать тип модуля ввода/вывода, который будет установлен во второй слот, наведите указатель мыши на строку «Slot 2 ()» и щелкните правой кнопкой мыши. В появившемся контекстном меню выберите команду «Add Module…» («Добавить модуль…»). Откроется окно «Module Catalog» («Список модулей»), в котором необходимо перейти на закладку «Discrete Mixed» («Дискретные смешанного типа») и выбрать модуль IC200MDD845. Для подтверждения выбора нажмите кнопку «ОК».
При установке новых модулей ввода/вывода на рабочей панели откроются таблицы, в которых приводятся характеристики выбранных модулей.
На этом конфигурация аппаратной части системы автоматического регулирования закончена.
3. После конфигурирования контроллера можно приступать к разработке прикладной программы. Перейдите в редактор программ на языке релейной логики («LD Blocks»). С этой целью в списке средств конфигурирования и программирования контроллера в окне навигатора наведите указатель мыши на строку «LD Blocks» и два раза щелкните ЛК мыши. Под строкой «LD Blocks» появится строка «_MAIN» («_Главная»). Наведите указатель мыши на строку «_MAIN» и два раза щелкните ЛК мыши. При этом на рабочей панели откроется окно редактора прикладных программ на языке релейной логики.
Составьте прикладную программу в соответствии с блок-схемой, приведенной на рис. 6.
Рис. 6. Блок-схема прикладной программы на языке релейной логики.
При составлении прикладной программы необходимо выполнить следующую последовательность действий:
· Для вставки нового функционального блока переместите указатель мыши в ту область экрана, где нужно установить блок и два раза щелкните ЛК мыши. Откроется диалоговое окно, в котором содержится полный список библиотечных элементов среды программирования CIMPLICITY Machine Edition. Выберите нужный функциональный блок (наведите на него указатель мыши) и дважды щелкните ЛК мыши. В окне редактора прикладных программ в указанном месте появится выбранный функциональный блок. Функциональный блок можно также выбрать путем набора его полного имени в строке над списком. При этом в списке библиотечных элементов автоматически выделится соответствующий блок. Чтобы поместить выбранный функциональный блок в редактор прикладных программ, необходимо нажать на клавиатуре кнопку Enter.
· Для вставки на схеме нормально разомкнутого контакта (на схеме обозначается ) в списке библиотечных элементов выберите инструмент «NOCON».
· Для вставки на схеме нормально замкнутого контакта (на схеме обозначен ) в списке библиотечных элементов выберите инструмент «NCCON».
· Чтобы нарисовать катушку реле (на схеме обозначается ), в списке библиотечных элементов выберите пункт «COIL».
· Чтобы нарисовать линии соединения наведите указатель мыши на соответствующий выход блока или элемента, нажмите правую кнопку мыши и, удерживая ее нажатой, переместите указатель к необходимому входу блока или элемента. Отпустите правую кнопку мыши.
· Для задания значений констант выделите область напротив соответствующего входа или выхода блока (наведите указатель мыши в соответствующую область и щелкните ЛК мыши – при этом область выделится пунктирной линией) и введите с клавиатуры необходимое число. Откроется окно «Enter the name of a variable or expression» («Введите имя переменной или выражение»), содержащее список используемых переменных и регистров памяти, а в строке над списком будет написано значение, которое было введено с клавиатуры. Нажмите клавишу Enter, чтобы присвоить соответствующему входу необходимое значение.
· Чтобы в редакторе прикладных программ задать адрес регистра, выделите область напротив соответствующего входа или выхода блока (наведите указатель мыши в соответствующую область и щелкните ЛК мыши – при этом область выделится пунктирной линией). Дважды щелкните ЛК мыши по выделенному полю. Откроется окно, содержащее список используемых переменных и регистров памяти. В строке над списком ведите с помощью клавиатуры адрес регистра. Необходимо помнить, что адреса начинаются с идентификатора, перед которым должен стоять символ «%». Например, если необходимо ввести адрес 100 регистра общего назначения, необходимо написать «%R100». Нажмите клавишу Enter, чтобы подать на соответствующий вход значение, хранящееся в указанном регистре.
Блок-схема (см. рис. 6) требует пояснений. Блок «BLC CLR WORD» предназначен для очистки содержимого 40 регистров памяти общего назначения для хранения конфигурационных данных блока PID_ISA. Функциональные блоки «BLCMOV INT» предназначены для записи конфигурационных данных в 7 последовательно расположенных регистров памяти (в соответствии с числом входов). При этом выход Q задает адрес регистра, начиная с которого будут записываться данные, подаваемые на входы IN1…IN7. Так, например, в первом блоке «BLCMOV INT» на выходе Q задан адрес регистра %R00102. Это значит, что в регистр %R00102 будет записано число, поданное на вход IN1, в регистр %R00103 будет записано число, поданное на вход IN2, и так далее. При этом в соответствии с табл. 3 вход IN1 первого блока «BLCMOV INT» задает период выборки (ПИД-алгоритм выполняется каждый цикл), IN2 и IN3 задают соответственно верхнюю и нижнюю границу зоны нечувствительности, IN4 задает коэффициент пропорциональности (), IN5 задает постоянную времени дифференцирования (), IN6 задает время интегрирования (), IN7 задает величину смещения выхода CV.
Входы IN1 и IN2 второго блока «BLCMOV INT» задают соответственно верхнюю и нижнюю границы изменения регулирующего воздействия (диапазон изменения выходного регулирующего воздействия составляет 0…10000), остальные настроечные параметры блока PID_ISA задаются равными 0.
Функциональные блоки «SCALE INT» предназначены для масштабирования входного сигнала от датчика температуры, поступающего через аналоговый вход %AI00001 на вход блока (первый блок), и выходного сигнала CV блока PID_ISA, который после масштабирования подается на аналоговый выход %AQ00001 (второй блок). Значения, подаваемые на входы IHI и ILO, задают соответственно верхний и нижний пределы изменения входного сигнала (из регистра %AI00001). Значения, подаваемые на входы OHI и OLO, задают соответственно верхний и нижний пределы изменения выходного сигнала блока «SCALE INT» (значение, которое будет храниться в регистре %R00001). Численные значения, подаваемые на входы первого блока «SCALE INT» определены в результате эксперимента. Так, значению 21913 во входном регистре %AI00001 соответствует температура в печи 110 °С, а значению 5734 во входном регистре %AI00001 соответствует температура в печи 20 °С. Чтобы не усложнять программу дополнительными элементами (блоками преобразования из целочисленных переменных в вещественные и обратно) и при этом обеспечить высокую точность, в программе используются блоки масштабирования целочисленных данных, при этом количество десятичных разрядов увеличено на 2. То есть два последних числа в преобразованном значении (которое будет храниться в регистре %R00001) будут соответствовать сотым долям градуса Цельсия. Поэтому на вход OHI подается значение 11000, что соответствует температуре 110,00 °С, а на вход OLO подается значение 2000, что соответствует температуре 20,00 °С. Аналогичным образом производится масштабирование выходного регулирующего воздействия блока PID_ISA. При этом выход регулятора изменяется от 0 до 100% (два последних разряда в значении, подаваемом на вход IHI, задают сотые доли процента).
Значения булевых переменных, хранящихся в регистрах %М00001 и %М00002, сигнализируют о правильности работы функциональных блоков «BLCMOV INT» и «PID_ISA».
4. После завершения разработки прикладной программы необходимо проверить ее на наличие ошибок. Для этого активируйте команду «Validate All» («Проверить все») в меню «Project» («Проект»). Процесс проверки правильности составления прикладной программы отображается в окне «Feedback Zone» («Информационная зона»). Если программа выполнена правильно, то на закладке «Build» («Разработка») в окне «Feedback Zone» должна появится надпись «<имя целевой задачи> - 0 error(s), 0 warning(s)». В противном случае появится сообщения, сигнализирующие о наличии ошибок, или предупреждения о некорректном составлении прикладной программы, которые необходимо устранить, прежде чем приступать к следующему шагу программирования контроллеров.
Проверку правильности составления прикладной программы можно также осуществить с помощью команды «Validate “<имя целевой задачи>”» в меню «Target» («Целевая задача»). Правильность составления программы также отслеживается в окне «Feedback Zone».
5. Если прикладная программа составлена без ошибок, или после того, как в программе будут исправлены все ошибки, необходимо загрузить ее в контроллер. Предварительно необходимо очистить память ПЛК. Для этого активируйте команду «Clean Build Folder “<имя целевой задачи>”». После того, как память контроллера будет очищена, активируйте команду «Download “<имя целевой задачи> to PLC…”» в меню «Target» («Целевая задача») или нажмите клавишу F8 на клавиатуре. Появится окно «Building in Progress» («Процесс создания»). После загрузки прикладной программы в контроллер окно «Building in Progress» закроется. В процессе загрузки могут появиться предупредительные сообщения об ошибках. Необходимо исправить эти ошибки и повторить процедуру загрузки снова. По окончании загрузки прикладной программы в ПЛК необходимо запустить ее на исполнение. Для этого следует активировать кнопку на панели инструментов CIMPLICITY Machine Edition.
6. Среда программирования CIMPLICITY Machine Edition позволяет в режиме реального времени в редакторе прикладной программы отслеживать текущее состояние переменных. Для этого необходимо установить режим обмена данными с контроллером с помощью кнопки (online/offline) на панели инструментов. При успешном завершении процесса соединения с контроллером в редакторе прикладных программ в режиме реального времени будут отображаться текущие значения измеряемых параметров и состояние элементов программы. Однако такая форма наблюдения за работой элементов программы неудобна, так как не дает визуального представления о характере изменения значений переменных во времени. Контролировать процесс изменения значений переменных удобно с помощью трендов (временных диаграмм). Отображение временных диаграмм изменения технологических параметров производится с помощью системы визуализации (Data Monitor). Чтобы перейти в систему визуализации, необходимо в окне навигатора переключиться на закладку утилит, отмеченную значком , и открыть окно визуального представления данных (наведите указатель мыши на пункт и дважды щелкните ЛК мыши). На рабочей панели откроется окно просмотра временных диаграмм.
Наведите указатель мыши на временную диаграмму и щелкните правой кнопкой мыши. В появившемся контекстном меню выберите команду «Add» («Добавить»). Откроется окно «Variable» («Переменная»), содержащее список используемых в проекте переменных. В качестве переменной для отображения на временной диаграмме выберите «R0002» (регистр, в котором хранится значение выхода функционального блока PID_ISA), для чего дважды щелкните ЛК мыши по строке «R0002» в списке переменных.
Аналогичным образом выведите на временную диаграмму значение переменной, хранящееся в регистре «R0001» (текущее значение регулируемого параметра).
7. Исследование работы функционального блока PID_ISA заключается в том, чтобы определить реакцию ПИД-регулятора (функционального блока PID_ISA) на скачкообразное изменение сигнала задания. Прежде чем проводить исследование необходимо проделать следующие подготовительные операции. Чтобы объект регулирования не оказывал влияние на процесс исследования, необходимо в прикладной программе исключить связь с объектом. Для этого в первом функциональном блоке «SCALE INT» (который стоит перед блоком «PID_ISA») на выходе OUT изменить название регистра на %R00010. Затем запишите в регистр %R00001 (вход PV блока PID_ISA) значение 5000. Для этого наведите курсор мыши на область перед входом PV блока PID_ISA (этот вход связан с регистром %R00001), щелкните правой кнопкой мыши и в появившемся контекстном меню выберите команду «Write value» («Записать значение»). В появившемся диалоговом окне введите значение 5000 и нажмите клавишу «Enter». В этом случае значения сигналов, подаваемых на входы SP и PV, будут равны 5000, то есть сигнал рассогласования равен 0 и выход блока PID_ISA не изменяется. В CIMPLICITY Machine Edition имеется возможность быстрого переключения между редактором прикладных программ и окном визуализации временных диаграмм. Для этого на рабочей панели имеются закладки открытых (используемых) окон. Чтобы перейти в редактор прикладных программ, достаточно навести указатель мыши на закладку «_MAIN» и щелкнуть ЛК мыши. Переключение в окно визуализации временных диаграмм осуществляется с помощь закладки «Data Monitor..».
8. Исследование П-алгоритма регулирования. Чтобы блок PID_ISA работал в соответствии с П-законом регулирования, необходимо из ПИД-алгоритма устранить И- и Д- составляющие. Для этого в первом функциональном блоке «BLKMOV INT» на входе IN5 необходимо установить 0 (постоянная времени дифференцирования равна 0), а на входе IN6 – 0 (постоянная времени интегрирования стремится к ). Загрузите полученную программу в контроллер и запустите проект на исполнение. Установите режим обмена данными с контроллером с помощью кнопки (online/offline) на панели инструментов. Откройте окно отображения временной диаграммы и убедитесь, что на ней отображаются значения переменных, хранящиеся в регистрах %R00001 и %R00002. Снова перейдите в окно редактора прикладных программ и задайте скачкообразное изменение сигнала рассогласования. Для этого измените величину регулируемого параметра с 5000 до 7000 (на вход PV блока «PID_ISA» необходимо записать число 7000, что соответствует изменению температуры в печи с 50 до 70 °С). Переключитесь в окно отображения временных диаграмм и посмотрите реакцию П-регулятора на скачкообразное изменение сигнала рассогласования. Снова перейдите в окно редактирования прикладных программ и установите сигнал рассогласования равным 0 (на входе PV блока «PID_ISA» снова задайте 5000). Сохраните временную диаграмму отклика ПИД-регулятора на скачкообразное изменение сигнала рассогласования.
9. Исследование ПИ-алгоритма регулирования. Чтобы блок PID_ISA работал в соответствии с ПИ-законом регулирования, необходимо в ПИД-алгоритме задать П- и И- составляющие. Д-составляющая должна быть равна 0. Для этого в первом функциональном блоке «BLKMOV INT» на входе IN5 должен быть установлен 0 (постоянная времени дифференцирования равна 0), а на входе IN6 – 100 (постоянная времени интегрирования равна 10 с). Загрузите полученную программу в контроллер и запустите проект на исполнение. Установите режим обмена данными с контроллером с помощью кнопки (online/offline) на панели инструментов. Откройте окно отображения временной диаграммы и убедитесь, что на ней отображаются значения переменных, хранящиеся в регистрах %R00001 и %R00002. Снова перейдите в окно редактора прикладных программ и задайте скачкообразное изменение сигнала рассогласования. Для этого измените величину регулируемого параметра с 5000 до 7000 (на вход PV блока «PID_ISA» необходимо записать число 7000, что соответствует изменению температуры в печи с 50 до 70 °С). Переключитесь в окно отображения временных диаграмм и посмотрите реакцию ПИ-регулятора на скачкообразное изменение сигнала рассогласования. Снова перейдите в окно редактирования прикладных программ и установите сигнал рассогласования равным 0 (на входе PV блока «PID_ISA» снова задайте 5000). Сохраните временную диаграмму отклика ПИ-регулятора на скачкообразное изменение сигнала рассогласования.
10. Исследование ПИД-алгоритма регулирования. Чтобы блок PID_ISA отрабатывал ПИД-закон регулирования, необходимо задать все составляющие ПИД-алгоритма. Установите Д-составляющую равной
10 с и И-составляющую равной 10 с. Для этого в первом функциональном блоке «BLKMOV INT» на входе IN5 должен быть установлен 1000 (постоянная времени дифференцирования равна 10 с), а на входе IN6 – 100 (постоянная времени интегрирования равна 10 с). Загрузите полученную программу в контроллер и запустите проект на исполнение. Установите режим обмена данными с контроллером с помощью кнопки (online/offline) на панели инструментов. Откройте окно отображения временной диаграммы и убедитесь, что на ней отображаются значения переменных, хранящиеся в регистрах %R00001 и %R00002. Снова перейдите в окно редактора прикладных программ и задайте скачкообразное изменение сигнала рассогласования. Для этого измените величину регулируемого параметра с 5000 до 7000 (на вход PV блока «PID_ISA» необходимо записать число 7000, что соответствует изменению температуры в печи с 50 до 70 °С). Переключитесь в окно отображения временных диаграмм и посмотрите реакцию ПИД-регулятора на скачкообразное изменение сигнала рассогласования. Снова перейдите в окно редактирования прикладных программ и установите сигнал рассогласования равным 0 (на входе PV блока «PID_ISA» снова задайте 5000). Сохраните временную диаграмму отклика ПИД-регулятора на скачкообразное изменение сигнала рассогласования.
11. Сохраните проект, для чего в меню «File» («Файл») выберите команду «Save Project» («Сохранить проект»).