Академический Документы
Профессиональный Документы
Культура Документы
4
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
1.4. Области памяти ПЛК и адресация каналов ввода/вывода
Выше отмечено, что операционная система ПЛК перед запуском задачи
автоматически обновляет входные переменные, а после окончания задачи
автоматически обновляет выходы значениями выходных переменных. В
действительности же, операционная система работает не с переменными, а с
областями памяти, отвечающими за входные и выходные каналы.
В зависимости от назначения, данные могут быть размещены в нескольких
областях (см. рис.1.3):
%I,%IW - область данных входных каналов;
%Q,%QW - область данных выходных каналов;
%M - область данных для внутренних булевых (Boolean) переменных;
%MW - область данных для внутренних числовых переменных;
%S - область данных для системных булевых переменных
%SW - область данных для системных числовых переменных;
%KW - область констант.
Unlocated - область нелокализованных данных
Ячейки памяти в каждой области адресуются различным образом. В области
%M и %MW каждая ячейка имеет свой номер. Например, %M0 - нулевая ячейка в
области %M, %MW100 - сотая ячейка в области %MW. Эти ячейки могут
использоваться для хранения промежуточных результатов.
В областях %I (дискретные входы), %IW (аналоговые входы), %Q (дискретные
выходы) и %QW (аналоговые выходы) каждая ячейка отвечает за конкретный канал
ПЛК, поэтому адресация ячейки совпадает с адресом канала. Адрес каналов в ПЛК
полностью зависит от его размещения в шасси, и состоит из последовательности
"N.M.C", где
N - номер шасси;
M - номер посадочного места в шасси, в котором размещен модуль;
C - номер канала в модуле.
Например, ячейки с адресами:
%I1.4.6 будет получать значения с 6-го дискретного входа, модуля на 4-й
позиции в шасси № 1;
%IW0.5.0 будет получать значение с 0-го аналогового входа, модуля на
5-й позиции в шасси № 0;
записав логическую единицу в ячейку %Q3.1.2, включится 2-й
дискретный выход на модуле в 1-м посадочном месте, 3-го шасси;
записав 5000 в ячейку %QW0.1.2, значение 2-го аналогового выхода
модуля, на 1-м посадочном месте, 0-го шасси, выставится равным 50% от
диапазона выходного сигнала.
При этом значения для аналоговых входов и выходов по умолчанию
масштабируются в диапазоне 0-10000 при значении сигнала 0-100%.
В областях %S (системные биты) и %SW (системные слова) находится
информация о состоянии контроллера. Например, бит %S0 сигнализирует о
выполнении первого цикла после включения ПЛК, а слово %SW49 содержит
значение текущего дня месяца.
Разработчик программы пользователя может указать для переменной адрес
ячейки памяти, где будут размещаться ее данные (т.е. привязать к адресу). Если
ячейка будет частью области входов, то переменная будет входной, и получать
5
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
входное значение автоматически. Если для переменной будет указана ячейка из
области выходов - то она будет выходной. Если записать значение в выходную
переменную, то по окончании задачи, оно будет автоматически записано в выходной
канал ПЛК. Если переменную привязать к ячейке %M или %MW - она будет
внутренней.
Адрес для переменной указывается в среде UNITY PRO. Все переменные,
которые будут привязаны к конкретной ячейке памяти называются
локализованными переменными, так как их размещение известно. В программе
пользователя разрешается прямой доступ к ячейкам памяти по адресу, поэтому
значение локализованной переменной можно изменить путем изменения значения в
ячейке памяти, на которую она ссылается.
Одно из удобств UNITY PRO – это отсутствие необходимости обязательного
указания адреса для переменной. В случае отсутствия значения в свойстве "Address",
UNITY PRO при компиляции разместит эту переменную в области
нелокализованных данных (см. рис.1.3). Такие переменные называются
нелокализованными. При этом адрес ячейки, в которой будет размещение данных,
будет неизвестен разработчику и может изменяться при компиляции.
1.5. Разработка, компиляция и загрузка проекта UNITY PRO
Проект UNITY PRO - это база данных определенного формата, содержащая
всю конфигурационную информацию для ПЛК и некоторую информацию для его
распределенной периферии.
Проект сохраняется на компьютере в виде одного файла формата *. STU.
Файлы формата *.STU несовместимы в различных версиях (даже от старшей к
младшей), потому, при переносе проекта, необходимо сохранить его в архивном
формате *.STA, совместимом с большинством версий.
Навигация по проекту проводится с использованием единого проводника
проекта (Project Browser (рис.1.5)).
Напомним, что ПЛК работает с исполнительным проектом, то есть со
скомпилированным кодом. Поэтому, для загрузки исполнительного проекта в ПЛК,
сначала его необходимо построить (Build-> Rebuild All Project). Далее по тексту
вместо термина "построить" будем пользоваться термином "скомпилировать".
Следует отметить, что исполнительный проект сохраняется на диске вместе с
файлом проекта UNITY PRO.
Для загрузки исполнительного проекта, сначала устанавливается соединение
UNITY PRO с ПЛК (команда PLC-> Connect), т.е. переход в режим онлайн (online), а
затем пересылка проекта в ПЛК (PLC-> Transfer Project to PLC). Соединение можно
установить с реальным ПЛК (PLC-> Standard Mode) или имитатором ПЛК (PLC->
Simulation Mode). Настройка адреса ПЛК/имитатора проводится в специальном окне,
вызываемом с меню PLC-> Set Address.
Важной особенностью ПЛК с OS UNITY является возможность изменения
исполнительного проекта в онлайн режиме без остановки ПЛК. Для этого в режиме
онлайн, после внесенных изменений, запускается команда частичной компиляции
(Build-> Build Changes). После компиляции в ПЛК автоматически загрузится вся
измененная часть.
Нужно обратить внимание на то, что скомпилированный исполнительный
проект нельзя выгрузить с ПЛК в среду UNITY PRO. Для возможности выгрузки
части исходного проекта с ПЛК (команда Upload Project), эта часть должна быть
6
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
включена в Upload Information (настраивается в PLC->Project Setting->PLC
embedded data).
конфигурация
аппаратной части ПЛК конфигурирование
аппаратной части
конфигурация модулей ПЛК и периферии
распределенной периферии
экземпляры
функциональных блоков
конфигурировани
конфигурация сетей е сети
конфигурация задач
разработка
секции программ программы
пользователя пользователя
анимационные таблицы отладка
операторские экраны программы
пользователя
документация по
проекту документирование
7
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
процессора. Далее, в разделе проекта "Configuration", используя графический
редактор аппаратной конфигурации указывается расположение модулей на шасси
контроллера (рис.1.6).
На втором этапе выполняется конфигурирование отдельных модулей и, в
зависимости от типа модуля, задаются их параметры.
Рис.1.8.Пример
8 конфигурации каналов
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
для модулей дискретных выходов может определяться состояние каналов при
остановке ПЛК, порядок реактивации защищенных выходов, рефлекторная
логика и т.д.;
для модулей аналоговых входов может определяться диапазон сигнала,
параметры масштабирования, фильтрация и т.д.;
для модулей аналоговых выходов может определяться состояние выходов при
остановке ПЛК.
В окне конфигурирования шасси доступна функция просмотра потребляемой
мощности модулей в соответствии с установленным модулем питания. Аппаратную
конфигурацию можно импортировать или экспортировать.
1.7. Создание переменных и экземпляров функциональных блоков.
Начать разработку программы пользователя
можно с определения переменных в редакторе
данных (Data Editor) (рис1.10). Создание переменных
также возможно из редакторов языков
программирования (LD, FBD, ST, IL, SFC), что даёт
дополнительное удобство при программировании. Для
каждой переменной указывается: имя переменной
(Name); тип переменной (Type); значение,
принимаемое переменной при инициализации ПЛК
(Value); адрес ячейки памяти (Address), где будет Рис.1.9.Конфигурирование
храниться значение этой переменной; комментарий данных
(Comment). Дополнительные свойства переменных доступны в окне свойств,
вызываемом с контекстного меню переменной.
9
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
В среде UNITY PRO также поддерживаются производные типы данных
(Derived Data Types), базирующиеся на элементарных типах. Производные типы
данных представлены структурными типами и массивами. Кроме библиотечных
производных типов данных, разработчик программы пользователя может создать
свои типы данных. Это делается в одноименном разделе проекта (см. тип "Bunker" на
рис.1.9)
Среда UNITY PRO наряду с функциями и процедурами, поддерживает
функциональные блоки. Функциональный блок (Function Block) можно представить
как единую структурную единицу, состоящую из программной процедуры и
структурированных данных. Структура и программа описана в типе
функционального блока (Function Block Types). Таким образом, функциональный
блок сохраняет промежуточные значения в своем теле. Поэтому для каждого
функционального блока создается свой экземпляр функционального блока (FB
Instance). При использовании функционального блока определённого типа сначала
создают его экземпляр, с уникальным в границах проекта именем, затем в программе
пользователя вызывают экземпляр по его имени. С этой точки зрения экземпляр
функционального блока это особая переменная, а тип FB - это особый тип
переменной. Механизм использования функциональных блоков очень похож на
использование объектов в объектно-ориентированном программировании.
Кроме библиотечных элементарных функциональных блоков (Elementary
Function Block), можно создавать пользовательские функциональные блоки. В
UNITY PRO они называются производными функциональными блоками (Derived
FB Type) и создаются в одноименном редакторе (см. тип "BunkerDFB" на рис.1.9)
Все переменные и экземпляры функциональных блоков являются
глобальными, т.е. доступными во всех программных частях проекта и на всех
языках.
1.8. Создание программы пользователя.
Программа пользователя может быть однозадачной (только MAST) или
многозадачной. Настройка параметров задач (периодичность, сторожевой таймер
WatchDog) проводится из контекстного меню выбранной
задачи (рис.1.12).
Программа пользователя состоит из секций (Section),
каждая из которых может быть написана на любом из
языков МЭК 61131-3: IL, LD, ST, FBD или SFC (SFC
только для MAST). Секции в пределах задачи выполняются
одна за другой, в порядке их размещения в разделе Sections
(на рис.1.11 сначала выполняется программа в секции
"Dozators", а затем в "DozatorsDFB"). При создании секции
(контекстное меню Sections-> New Section), для нее
указывается имя и язык. Рис.1.11. Создание
программы пользователя
10
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
1.9. Языки программирования.
При разработке программы пользователя могут
использоваться пять языков программирования,
соответствующие стандарту МЭК 61131-3: IL, LD,
ST, FBD или SFC.
11
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
12
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
значением переменных, прохождения сигнала и т.д.
Анимационные таблицы в табличной форме, а операторские экраны - в
графическом виде, позволяют наблюдать и изменять значения переменных при
выполнении программы пользователя.
Анимационные таблицы (см. рис.1.19) можно создавать самостоятельно, путем
ввода нужных переменных, или автоматически - путем вызова соответствующего
пункта контекстного меню для выделенных переменных или части кода. Их можно
хранить в проекте для дальнейшего использования (например "Vars_Outputs" и
"Vars_Inputs" на рис.1.18). Анимационные таблицы позволяют представлять данные
в разном формате, а также форсировать значение, изменять одновременно и проч.
13
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
Важной особенностью UNITY PRO является возможность использования
имитатора ПЛК (Simulator), что позволяет отладить работу программы
пользователя без имеющегося аппаратного обеспечения. Имитатор ПЛК работает
как обычный контроллер (за исключением определенных ограничений), используя
ресурсы компьютера и операционной системы Windows.
Имитатор ПЛК предоставляет доступ к своим данным, используя протокол
Modbus/TCP. Это дает возможность использовать его не только для отладки
программы UNITY PRO, а и проекта SCADA-программы (если она поддерживает
Modbus/TCP Client).
Используя специальные библиотечные функции UNITY PRO можно изменять
значения %I и %IW программным путем. Это можно использовать в программных
имитаторах объектов управления.
14
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
ПРАКТИЧЕСКАЯ ЧАСТЬ
1.11. Пример создания проекта с использованием ПЛК М340 и языка LD.
Постановка задачи.
Рассмотрим пример создания и отладки
проекта UNITY PRO для управления объектом в
соответствии со следующим алгоритмом
управления (рис.1.21).
При выбранном режиме Start напорный бак
заполняется жидкостью автоматически: при
отключении сигнализатора уровня LS1, включается
двигатель М1 насоса, при срабатывании LS2
двигатель насоса отключается.
При выбранном режиме Stop двигатель насоса
включается кнопкой ManPump, отключается насос
через 5 с. Рис.1.21.К постановке задачи.
15
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
17
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
13. Если программа содержит ошибки - исправить их и повторить пп.12-13 (двойной
клик по ошибке в Output Window переводит курсор в место ошибки).
14. Выбрать режим соединения с имитатором ПЛК (меню PLC-> Simulation Mode).
15. Скомпилировать проект (Build-> Rebuild All Project).
16. Соединиться (перейти в режим онлайн) с имитатором ПЛК (PLC-> Connect).
17. Загрузить исполнительный проект в имитатор ПЛК (PLC-> Transfer Project to PLC,
затем подтвердить кнопкой Transfer).
18. Запустить ПЛК в режим RUN (PLC-> RUN).
Таблица 1.1.
18
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
исходное состояние состояние датчиков ожидаемое поведение программы примечание
системы (при отладке изменяется
программистом)
Start LS1 LS2 ManP M1 Timer1.Q Timer1.ET
ump
бак пустой, режим FALSE FALSE FALSE FALSE FALSE FALSE 0 система остановлена
Stop
проверка режима Start
бак пустой, режим TRUE FALSE FALSE не TRUE FALSE 0 переход в режим Start,
важно
Stop насос включился
бак набирается, TRUE TRUE FALSE не TRUE FALSE 0 уровень растет, сработал
важно
режим Start сигнализатор нижнего
уровня, бак дальше
набирается
бак набирается TRUE TRUE TRUE не FALSE FALSE 0 уровень растет, сработал
важно
(уровень между сигнализатор верхнего
двумя уровня, насос
сигнализаторами), отключился
режим Start
бак набран, режим TRUE TRUE FALSE не FALSE FALSE 0 уровень падает,
важно
Start отключился
сигнализатор верхнего
уровня, насос не
включается
уровень падает, TRUE FALSE FALSE не TRUE FALSE 0 уровень упал ниже
важно
(уровень между предельного,
двумя отключился
сигнализаторами), сигнализатор нижнего
режим Start уровня, насос включился
проверка режима Stop
бак набирается, FALSE FALSE FALSE FALSE FALSE FALSE 0 переход в режим Stop,
режим Start система остановлена
состояние бака не FALSE не не TRUE TRUE TRUE 0 нажата кнопка ручного
важно важно
имеет значения, пуска насоса, насос
режим Stop включился
ручной пуск насоса, FALSE не не FALSE TRUE TRUE растет отпущена кнопка
важно важно
режим Stop ручного пуска насоса,
выдержка 5 с
прошло 5 секунд FALSE не не FALSE FALSE FALSE 0 насос отключился с
важно важно
после отпускания задержкой 5 с
кнопки, режим Stop
19
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
20
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
26. Открыть окно конфигурирования каналов модуля BMX DDM 16025 (двойной клик в
Project Browser-> 0: PLC BUS-> 0: BMX MBP 0400 -> 1: BMX DDM 16025)
27. Провести конфигурирование каналов в соответствии с рис.1.28 (клик по "Channel 0"
- для входов, клик по "Channel 16" - для выходов, изменения подтверждаются
командой меню Edit-> Validate)
28. При необходимости соединения с реальным ПЛК, выставить стандартный режим
подключения (меню PLC -> Standard Mode);
29. При необходимости соединения с реальным ПЛК М340 по USB, настроить адрес и
проверить соединение так, как на рис.1.29 (меню PLC-> Set Address, проверка
соединения - кнопка "Test Connection");
30. Скомпилировать проект (Build-> Rebuild All Project).
31. Соединиться (перейти в режим онлайн) с ПЛК (PLC-> Connect).
32. Загрузить исполнительный проект в реальный ПЛК (PLC-> Transfer Project to PLC,
затем подтвердить кнопкой Transfer).
33. Запустить ПЛК в режим RUN (PLC-> RUN).
21
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
1.12. Пример создания проекта с использованием ПЛК TSX Premium и языка
FBD.
Постановка задачи.
Рассмотрим пример создания и отладки проекта UNITY PRO для контура
стабилизации температуры (рис.1.30)
охлаждающей воды на выходе теплообменник
Программа в ПЛК должна обеспечить
функционирование контура стабилизации
температуры охлаждающей воды на выходе
теплообменника при следующих условиях:
- система управления включает в себя датчик
температуры ТТ-1а, клапан с пневмоприводом TV-1b,
ПЛК TSX Premium, операторскую панель (HMI);
- датчик температуры воды имеет встроенный
преобразователь 4-20 мА и настроен на диапазон 0-
150 С;
- пневмопривод регулирующего клапана имеет
встроенный позиционер и управляется сигналом 4-20
мА;
- регулятор должен реализовывать ПИ-закон
регулирования, и настраиваться средствами HMI;
- задание регулятору (SP) должен формировать
оператор средствами HMI (H-1); Рис.1.30.К постановке задачи.
- со стороны HMI регулятор должен иметь
возможность перевода в ручной режим, с возможностью изменения оператором
положения клапана (HC-1)
22
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
23
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
11. Создать переменные производных типов данных в соответствии с рис.1.34 (Project
Browser-> Variables & FB instances -> Derived Variables).
24
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
30. Открыть окно конфигурирования каналов модуля TSX AEY 414 (двойной клик в
Project Browser-> 0: X BUS-> 0: TSX RKY6 -> 1: TSX AEY 414), проделать
конфигурирование каналов в соответствии с рис.1.37 (сверху), изменения
подтверждаются командой меню Edit-> Validate.
31. Открыть окно конфигурирования каналов модуля TSX ASY 410 (двойной клик в
Project Browser-> 0: X BUS-> 0: TSX RKY6 -> 2: TSX ASY 410), проделать
конфигурирование каналов в соответствии с рис.1.37 (снизу), изменения
подтверждаются командой меню Edit-> Validate;
32. При необходимости соединения с реальным ПЛК, выставить стандартный режим
подключения (меню PLC -> Standard Mode);
27
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
33. При необходимости соединения с реальным ПЛК TSX Premium через порт TER,
выставить на кабеле-адаптере режим "TER DIRECT";
34. При необходимости соединения с реальным ПЛК TSX Premium через порт TER,
настроить адрес и проверить соединение как на рис.1.38 (меню PLC-> Set Address,
проверка соединения - кнопка "Test Connection")
35. Скомпилировать проект (Build-> Rebuild All Project).
36. Соединиться (перейти в режим онлайн) с ПЛК (PLC-> Connect)
37. Загрузить исполнительный проект в ПЛК (PLC-> Transfer Project to PLC, затем
подтвердить кнопкой Transfer)
38. Запустить ПЛК в режим RUN (PLC-> RUN)
28
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
1.13. Пример использования языка ST.
Варианты решения задачи с раздела 1.11.
Сравним различные варианты решения задачи из раздела 1.11 на языках LD, FBD и
аналогично им варианты на языке ST. Два варианта решения на LD
продемонстрированы в разделе 1.11, аналогичный код в ST представлен на рис.1.39-
1.40.
30
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
31
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
Модель роботы системы в Программа на SFC
виде сети Петри
32
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
Это русскоязычный вариант первого раздела пособия: Пупена О.М., Ельперін І.В.
"ПРОГРАМУВАННЯ ПРОМИСЛОВИХ КОНТРОЛЕРІВ В СЕРЕДОВИЩІ UNITY
PRO", готовящейся к изданию в первой половине 2013 года.
Этот вариант "быстрого старта" в будущем может быть дополнен или изменен
независимо от содержания пособия, и может свободно распространяться.
Все пожелания и предложения Вы можете отправлять на pupena_san@ukr.net или
высказать на страницах форумов:
http://forum.se-automation.in.ua/viewtopic.php?f=8&t=58
http://asutpforum.ru/viewtopic.php?f=60&t=2977
33