Вы находитесь на странице: 1из 33

Пупена А.Н, Эльперин И.В.

UNITY PRO – быстрый старт

1. UNITY PRO – БЫСТРЫЙ СТАРТ


ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
1.1. Общие понятия
Программно-технические средства, входящие в состав автоматизированных
систем управления технологическими процессами, в общем случае можно отнести к
одной из следующих групп (рис.1.1):
 технические средства полевого уровня (датчики, исполнительные
механизмы и преобразователи и т.п.);
 промышленные контроллеры и регуляторы;
 устройства распределенной периферии (вынесенные за пределы
контроллеров устройства ввода/вывода, электроприводы, и т.п.)
 средства SCADA/HMI (компьютеры с программным обеспечением
супервизорного управления и сбора данных (SCADA), операторские панели
(HMI));
 инструментальные средства разработки и отладки (программаторы,
программное обеспечение для создания исполнительных программ,
конфигурирования и диагностики оборудования).

Рис.1.1.Среда UNITY PRO в инфраструктуре АСУТП


UNITY PRO - это программная среда конфигурирования, программирования,
отладки и диагностики исполнительной системы промышленных контроллеров
Modicon от Schneider Electric: Modicon M340, TSX Premium (включая Atrium) и
Quantum. Место UNITY PRO в инфраструктуре АСУТП показано на рис.1.1.
UNITY PRO является результатом развития и интеграции двух программных
продуктов:
1
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
 PL7 PRO – среда программирования контроллеров TSX Micro и TSX
Premium;
 Concept - среда программирования контроллеров Modicon Momentum и
Modicon Quantum.
Среда UNITY PRO может быть использована только для работы с ПЛК, в
которых функционирует операционная система UNITY (OS UNITY). То есть, TSX
Premium с операционной системой PL7, или Quantum с операционной системой
Concept, запрограммировать с использованием UNITY PRO невозможно.
Исключением могут быть некоторые из этих ПЛК, в которые предварительно
необходимо загрузить OS UNITY (для этих целей используется OS Loader).
Следует разделять понятия "среда разработки UNITY PRO" и "исполнительная
система UNITY" (см. рис.1.2). Исполнительная система UNITY - это программное
обеспечение, которое выполняется в контроллере. Исполнительная система
базируется на операционной системе UNITY (OS UNITY), которая уже находится
("прошита") в загрузчике ПЛК, и принимает участие во всех операциях контроллера.
Поэтому, даже если ПЛК не запрограммирован, или находится в режиме Stop
(остановка), операционная система UNITY всё равно функционирует, обеспечивая
диагностику и диалог через коммуникационные порты ввода/вывода. В режиме RUN
(выполнение) исполнительная система также выполняет программу пользователя
(ПРП), являющуюся частью исполнительного проекта, созданного в среде UNITY
PRO. Другими словами основная задача UNITY PRO - разработка исполнительного
проекта, который выполняется в контроллере.

Рис.1.2. Среда разработки UNITY PRO и исполнительная система UNITY


Следует также понимать, что среда UNITY PRO не принимает участие в
управлении, поэтому подключается к системе только при необходимости
использования одной из её функций. Основные функции UNITY PRO:
 конфигурирование аппаратной части исполнительного проекта ПЛК;
2
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
 конфигурирование аппаратной части распределенной периферии,
являющейся функциональной частью ПЛК (только для ряда устройств
распределенной периферии Schneider Electric)
 создание исполнительных программ пользователя (ПРП);
 загрузка проекта в ПЛК;
 выгрузка/загрузка проектных данных (Upload Information)
 управление операционным режимом ПЛК: старт, стоп, инициализация;
 отладка программы в ПЛК: просмотр и изменение переменных, изменение
части программы в онлайн и тд;
 диагностика работы ПЛК;
 имитация работы ПЛК для возможности отладки исполнительного проекта
без имеющегося аппаратного обеспечения.
1.2. Функциональная структура ПЛК
ПЛК обеспечивает обработку входной (входных переменных процесса) и
формирования выходной информации с объекта (выходных переменных процесса),
согласно программе пользователя, созданной разработчиком системы управления
(см. рис.1.3).

Рис.1.3.Функциональная структура ПЛК с операционной системой UNITY


Программа пользователя оперирует переменными ПЛК (Variables). Часть из
них содержит входные значения (входные переменные), часть содержит выходные
значения переменных процесса (выходные переменные), часть (внутренние
переменные) используются для хранения промежуточных результатов расчетов или
3
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
для обмена с другими устройствами по коммуникационным каналам, часть - для
общения с операционной системой ПЛК (системные переменные). Операционная
система UNITY обеспечивает взаимосвязь и порядок взаимодействия всех
составляющих ПЛК.
Алгоритм работы исполнительной системы зависит от операционного режима
работы ПЛК и настройки исполнительного проекта.
1.3. Операционные режимы роботы ПЛК
Программа пользователя в ПЛК должна функционировать в реальном времени.
Учитывая постоянно меняющееся состояние объекта (переменных процесса),
операционная система обеспечивает циклическое выполнение следующих действий
(рис.1.4):
 опрос входных каналов ПЛК и обновление входных переменных;
 выполнение программы пользователя, которая на основе входных и
внутренних переменных формирует значения выходных переменных;
 запись значений выходных переменных в выходные каналы ПЛК.
В начале цикла формируется так называемый образ
процесса – это значение всех входных каналов,
отражающих состояние объекта управления в данный
момент.
В режиме RUN программа пользователя, на основе
данных образа процесса и промежуточных результатов
работы на предыдущих циклах, меняет значения
выходных переменных. Следует отметить, что в момент
изменения выходных переменных, запись на выходные
каналы не производится. Это делается в конце цикла для
всех выходных переменных. Дополнительно
операционная система занимается внутренней
обработкой, в которую входят диагностика, работа с
коммуникационными каналами, изменение программы
при отладке и т.д.. Следует обратить внимание на то, что
цикличность обеспечивает сама операционная система, а
длительность цикла варьируется от нескольких
миллисекунд до нескольких десятков миллисекунд, в
зависимости от программы пользователя.
В режиме STOP контроллер не выполняет Рис.1.4.Диаграмма
программу пользователя и не обновляет выходы. функционирования
Значения выходных каналов в этом режиме зависит от их ПЛК
конфигурации.
Приведенный алгоритм справедлив для циклического режима выполнения
основной задачи ПЛК, называемой MAST. Возможно также периодическое
выполнение задачи MAST, а также использования других типов задач (FAST, Event,
Timer, Aux). Задача - это отдельная часть программы, которая запускается
операционной системой по определенному событию. В циклическом режиме задача
MAST запускается сразу по окончании ее выполнения в предыдущем цикле, а в
периодическом режиме - по внутреннему системному таймеру, настроенному на
определенные промежутки времени.

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).
конфигурация
аппаратной части ПЛК конфигурирование
аппаратной части
конфигурация модулей ПЛК и периферии
распределенной периферии

производные типы данных

производные типы конфигурировани


функциональных блоков е работы с
переменные данными

экземпляры
функциональных блоков
конфигурировани
конфигурация сетей е сети
конфигурация задач
разработка
секции программ программы
пользователя пользователя
анимационные таблицы отладка
операторские экраны программы
пользователя
документация по
проекту документирование

Рис.1.5.Структура проекта UNITY PRO и предназначение разделов


Разработка проекта UNITY PRO может проводиться в различной
последовательности, и носит итерационный характер. Один из возможных вариантов
последовательности разработки и отладки проекта состоит из следующих этапов:
1. конфигурирование аппаратной части ПЛК и распределенной периферии;
2. создания переменных, экземпляров функциональных блоков,
производных типов данных, производных функциональных блоков;
3. создание программы пользователя;
4. отладка программы пользователя на ПЛК или имитаторе ПЛК;
5. привязка переменных к входным/выходным каналам ПЛК, отладка
программы пользователя с реальным ПЛК в составе системы
управления;
Конфигурирование аппаратной части может быть проведено и после
предварительной отладки программы, например на 5-м этапе, поскольку UNITY
PRO имеет встроенный имитатор ПЛК.
Для разработки каждой части проекта используется свой редактор,
вызываемый из соответствующего раздела проводника проекта (рис.1.5).
1.6. Конфигурирование аппаратной части ПЛК
Конфигурирование аппаратной части выполняется в несколько этапов. При
создании проекта выбирается тип ПЛК (M340/Premium/Quantum) и процессорного
модуля. Позже, на любой стадии создания проекта, можно будет изменить модель

7
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
процессора. Далее, в разделе проекта "Configuration", используя графический
редактор аппаратной конфигурации указывается расположение модулей на шасси
контроллера (рис.1.6).
На втором этапе выполняется конфигурирование отдельных модулей и, в
зависимости от типа модуля, задаются их параметры.

Рис.1.6.Редактор аппаратной конфигурации


Для процессорного модуля задаётся ряд функций: поведение ПЛК при его
запуске и останове, параметры защиты карты памяти, выделение локализованных
областей памяти и т.д. (рис.1.7).

Рис.1.7. Пример конфигурации процессорного модуля


При конфигурировании модулей входов или выходов определяются свойства
отдельных каналов, такие как
привязка к задачам, настройка
диапазонов и т.д. Кроме того:
 для модулей дискретных входов
могут определяться степень
фильтрации сигнала, вызов задачи
Event, активация диагностики
питания датчиков, полярность
сигналов и т.д.;

Рис.1.8.Пример
8 конфигурации каналов
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
 для модулей дискретных выходов может определяться состояние каналов при
остановке ПЛК, порядок реактивации защищенных выходов, рефлекторная
логика и т.д.;
 для модулей аналоговых входов может определяться диапазон сигнала,
параметры масштабирования, фильтрация и т.д.;
 для модулей аналоговых выходов может определяться состояние выходов при
остановке ПЛК.
В окне конфигурирования шасси доступна функция просмотра потребляемой
мощности модулей в соответствии с установленным модулем питания. Аппаратную
конфигурацию можно импортировать или экспортировать.
1.7. Создание переменных и экземпляров функциональных блоков.
Начать разработку программы пользователя
можно с определения переменных в редакторе
данных (Data Editor) (рис1.10). Создание переменных
также возможно из редакторов языков
программирования (LD, FBD, ST, IL, SFC), что даёт
дополнительное удобство при программировании. Для
каждой переменной указывается: имя переменной
(Name); тип переменной (Type); значение,
принимаемое переменной при инициализации ПЛК
(Value); адрес ячейки памяти (Address), где будет Рис.1.9.Конфигурирование
храниться значение этой переменной; комментарий данных
(Comment). Дополнительные свойства переменных доступны в окне свойств,
вызываемом с контекстного меню переменной.

Рис.1.10. Пример переменных в редакторе данных.


При работе с внешними переменными проявляется особенность UNITY PRO
по сравнению с PL7 PRO. В среде PL7 PRO, в программе пользователя
непосредственно использовались внешние переменные с адресами %I, %IW, %Q,
%QW, что требовало предварительного определения конфигурации ПЛК. В среде
UNITY PRO сначала создается переменная, а позже может быть указана ее привязка
к внешнему адресу. Это создает возможность разработки программы пользователя
без его привязки к конкретной аппаратной конфигурации ПЛК.

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. Создание
программы пользователя

Рис.1.12. Настройка задачи MAST

10
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
1.9. Языки программирования.
При разработке программы пользователя могут
использоваться пять языков программирования,
соответствующие стандарту МЭК 61131-3: IL, LD,
ST, FBD или SFC.

Язык IL (Instruction List), представляет собой


список инструкций, выполняющийся
последовательно, подобно языку Ассемблера
(рис.1.13). Рис.1.13. Фрагмент программы
на языке IL
Язык LD (Ladder Diagram) - это графический язык программирования,
представляющий собой
диаграмму релейно-
контактной логики
(рис.1.14). Это один из
языков программирования
контроллеров, которые
впервые были
использованы для замены
релейно-контактных схем
управления. В
отечественной технике
язык LD называется Рис.1.14. Фрагмент программы на языке LD
"Языком релейно-
контактных схем" (РКС). Пример разработки стартового проекта с использованием
языка LD приведен в разделе 1.11.

Язык FBD (Function Block Diagram) - графический язык программирования,


позволяющий создавать программы в виде взаимосвязанных информационными
связями функций, процедур и функциональных блоков (рис.1.15). Пример
разработки стартового проекта с использованием языка FBD приведен в разделе
1.12.

Рис.1.15. Фрагмент программы на языке FBD

11
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт

Язык ST (Structured Text,


структурированный текст) - это
текстовый язык, подобный
PASCAL, C, BASIC и т.п.
(рис.1.16). Пример
использования языка ST
приведен в разделе 1.13.

Рис.1.16. Фрагмент программы на языке ST


Язык SFC (Sequential Function Charts) - графический язык программирования, в
котором поведение системы задается:
последовательностью шагов, где указываются
необходимые действия; переходов между
шагами, содержащими условия. В среде PL7
используется подобный язык с названием
Grafcet. Основой для разработки SFC
являются сети Петри - математический
аппарат для моделирования поведения
динамических систем.
Пример использования языка SFC
приведен в разделе 1.14.

Рис.1.17. Фрагмент программы на


языке SFC

1.10. Отладка программы пользователя


В среде UNITY PRO для проверки работы программы пользователя доступны
средства отображения и ввода данных, а также средства
отладки (Debug).
Средства отображения и ввода данных можно условно
разделить на:
 анимационные средства редакторов программ в онлайн
режиме (Program Animation)
 анимационные таблицы (Animation Tables)
Рис.1.18.
 операторские экраны (Operator Screens) Анимационные
С помощью анимированных средств редакторов таблицы и экраны
программ пользователя можно в режиме online наблюдать за

12
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
значением переменных, прохождения сигнала и т.д.
Анимационные таблицы в табличной форме, а операторские экраны - в
графическом виде, позволяют наблюдать и изменять значения переменных при
выполнении программы пользователя.
Анимационные таблицы (см. рис.1.19) можно создавать самостоятельно, путем
ввода нужных переменных, или автоматически - путем вызова соответствующего
пункта контекстного меню для выделенных переменных или части кода. Их можно
хранить в проекте для дальнейшего использования (например "Vars_Outputs" и
"Vars_Inputs" на рис.1.18). Анимационные таблицы позволяют представлять данные
в разном формате, а также форсировать значение, изменять одновременно и проч.

Рис.1.19. Пример анимационной таблицы


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

Рис.1.20. Пример операторского экрана


Средства отладки Debug позволяют указать точки останова выполнения
программы пользователя (BreakPoint) и пошагового выполнения её секций.

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.К постановке задачи.

Этап 1 – создание проекта и аппаратной конфигурации.


Для решения данной задачи можно выбрать ПЛК M340 с процессорным
модулем BMX P34 1000. Необходимо также 4 дискретных входа (переключатель
Start/Stop, сигнализаторы уровня LS1 и LS2,
кнопка ManPump) и 1 дискретный выход
(пускатель двигателя насоса M1). Для этого
можно выбрать модуль дискретных
входов/выходов BMX DDM 16025
1. Создать проект (File-> New).
2. Выбрать модуль BMX P34 1000.
3. Показать окно проводника проекта
(выставить опцию Tools-> Project
Browser)
4. Открыть окно конфигурации PLC BUS (в
Project Browser-> 0: PLC BUS)
5. Изменить основное шасси на BMX XBP
0400 (в окне PLC BUS -> контекстное
Рис.1.22.Аппаратная конфигурация
меню шасси-> Replace Rack)
6. На первом посадочном месте (см.рис.1.22) выбрать модуль BMX DDM 16025
(двойной клик по 1-м посадочном месте);
7. Записать на диск проект с названием "LD_EXMPL" (File -> Save)

Этап 2 – создание переменных и экземпляров функциональных блоков.


Для сигнализаторов LS1 и LS2 а также переключателя "Start / Stop" необходимо
создать входные переменные типа EBOOL, а для пускателя - выходную переменную
М1. Однако, для удобства настройки есть смысл сначала создать их
нелокализованными, то есть не привязанными к адресам входов и выходов.
В программе будет использоваться таймер с задержкой на отключение. Для
этого в UNITY PRO можно использовать библиотечный функциональный блок типа
TOF. Для функционального блока нужно создать экземпляр
8. В проекте "LD_EXMPL" создать переменные в соответствии с рис.1.23 (Project
Browser-> Variables & FB instances -> Elementary Variables).
9. Создать экземпляр функционального блока типа TOF с названием Timer1 согласно
рис.1.24 (Project Browser-> Variables & FB instances -> Elementary FB instances).

15
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт

Рис.1.23. Переменные в редакторе данных.

Рис.1.24. Экземпляр таймера TOF в редакторе данных.


Этап 3 – создание программы пользователя на языке LD.
Сначала рассмотрим решение задачи на релейно-контактной схеме (рис.1.25).
Переключатель SA1 с двумя позициями "Start"/"Stop" нужен для выбора режима
работы установки. Кнопка SB2 с надписью "ManPump" используется для ручного
включения насоса. Также задействованы две группы нормально-замкнутых
контактов реле сигнализаторов уровня LS1 и LS2, которые размыкаются при
достижении жидкостью определенного уровня. Контактор К1 используется для
запуска двигателя М1 привода насоса воды, задействованы также дополнительные
контакты контактора. Для реализации задачи также нужно реле времени KT1 с
задержкой на отключение.
При положении переключателя SA1 в позиции "Start", а также замкнутыми LS1
и LS2 (напорный бак пустой), ток пойдёт через катушку контактора К1, которая
замкнет цепь питания двигателя М1 привода насоса (на схеме силовую цепь
двигателя не показано). Одновременно с ним замкнутся дополнительные контакты
контактора К1 что обеспечит подхват цепи управления двигателем, даже если LS1
разомкнется. При достижении верхнего уровня отключатся контакты LS2, что
приведет к размыканию электрической цепи контактора К1, т.е. остановки двигателя
насоса. Когда уровень в бачке упадет ниже верхней границы, LS2 снова замкнётся,
но цепь катушки контактора будет разомкнутой: LS1 разомкнут так как уровень
выше сигнализатора, дополнительные контакты К1 разомкнуты, так как не сработала
его катушка. Таким образом, двигатель включится только при повторном замыкании
LS1, что произойдет при падении уровня ниже нижнего предела. При положении
переключателя SA1 в позиции "Stop", цепь катушки контактора К1 замыкается
только через контакты реле времени КТ1. Контакты реле замыкаются сразу, при
16
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
прохождении через него тока, т.е. после замыкания кнопки SB2 ("ManPump"). После
отпускания кнопки, она разомкнет цепь с КТ1, а через заданное время размыкаются
и контакты этого реле.
Релейно-контактная схема Программа на языке LD

Рис.1.25.Пример решения с использованием языка LD.


На языке LD программа выглядит очень похожей на релейно-контактную
схему. Состояние нормально разомкнутых контактов "-| |-" и нормально замкнутых
контактов "-|/|-" управляются переменными типа EBOOL, принимающими значения
TRUE (логическая 1) или FALSE (логический 0). То есть, если на нормально-
разомкнутый контакт "-| |-" действует переменная ManPump, то этот контакт
замыкается при ManPump = TRUE и размыкается при ManPum=FALSE. А если на
нормально замкнутый контакт "-|/|-" действует переменная LS1, то этот контакт
замыкается при LS1=FALSE и размыкается при LS1=TRUE. Соединенные контакты
организуют цепи, соединяющие условную фазу с условным нулем через
исполнительные элементы. В качестве исполнительных элементов могут
использоваться различного рода катушки или блоки (функциональные блок,
функции и др.). В приведенной программе используется нормально разомкнутая
катушка "-( )-", которая воздействует на переменную М1. Если через цепь катушки
проходит условный ток, то переменная M1=TRUE, иначе (если ток не проходит) -
M1=FALSE.
В качестве исполнительного элемента в программе также используется
функциональный блок таймера "Timer1" типа TOF (таймер с задержкой на
отключение). Выход таймера Timer1.Q - используется как нормально разомкнутый
контакт в цепи катушки М1. Таймер настроен на 5 секунд путем задания на входе PT
=t#5s, где "t#" указывает на то, что используется временная константа.
Для выполнения программы будем использовать только основную задачу
MAST.
10. В проекте "LD_EXMPL", в задаче MAST создать секцию с названием "Intro_LD" на
языке LD: в Project Browser->Program->Tasks->MAST->контекстное меню Sections -
> New Section; Name = "Intro_LD"; Language = "LD";
11. В секции набрать программу в соответствии с рис.1.25: контакты и катушки
находятся на панели инструментов, для контактов и катушек выбор переменных
проводится по двойному клику; вставка экземпляра Timer1 проводится командой
панели инструментов или из меню Edit-> Data Selection;
12. Проверить правильность набора программы (Build-> Analyze, после чего проверить
сообщения в Output Window);

17
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
13. Если программа содержит ошибки - исправить их и повторить пп.12-13 (двойной
клик по ошибке в Output Window переводит курсор в место ошибки).

Этап 3 – альтернативный вариант решения задачи.


Одну и ту же программу можно реализовать разными способами. На рис.1.26
показан вариант программы на LD, реализованной с использованием катушек -(S)- и
-(R)- а также таймера TON с задержкой на включение. Катушка -(S)- имеет
особенность фиксировать своё включенное состояние. То есть, после прохода тока
через цепь катушки, значение привязанной к ней переменной становится равным
TRUE. Если после этого в цепи катушки "не будет тока", переменная останется в
TRUE. Для того, чтобы обнулить переменную, нужно использовать катушку -(R)-,
привязанную к той же переменной. Таким образом, в большинстве корректно
написанных программ вместе с катушкой -(S)- с такой же переменной должна быть и
катушка -(R)-.

Рис.1.26. Альтернативный вариант решения задачи

Этап 4 – отладка программы пользователя.


Наладку программы пользователя будем проводить на имитаторе ПЛК. В любом
случае, перед загрузкой необходимо сделать компиляцию.

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 приведена
последовательность действий и ожидаемая реакция на них программы пользователя.

Таблица 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

В редакторе LD выделить все элементы программы (меню Edit-> Select All).


19. Создать анимационную таблицу по выделенным данным (меню Services-> Initialize
Animation Table).
20. Включить в анимационной таблице режим модификации (кнопка Modification).
21. Согласно таблице 1.1 изменять значения датчиков и проверять поведение системы
(значения переменных изменяются в поле Value).

Этап 5 – привязка переменных к входным/выходным каналам ПЛК.


Входные и выходные переменные необходимо привязать к входным и выходным
каналам. Выбранный модуль дискретных входов/выходов BMX DDM 16025
находится на 1-м посадочном месте в 0-м шасси (см. рис.1.22). По правилам
адресации каналов в модулях М340, первые 16 каналов (0-15) смешанных
дискретных модулей будут входными, а остальные - выходными. Даже если
количество входных каналов менее 16-ти, номер первого выходного канала будет
начинаться все равно из 16.
Таким образом, переменные могут быть привязаны к каналам так, как показано на
рис.1.27.

19
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт

Рис.1.27. Входные/выходные переменные в редакторе данных


22. Отсоединиться от имитатора ПЛК (PLC-> Disconnect).
23. В переменных проекта изменить значение поля Address согласно рис.1.27 (Project
Browser-> Variables & FB instances -> Elementary Variables).
24. Проверить правильность сделанных изменений (Build->Analyze, после чего
проверить сообщения в Output Window);
25. Если есть ошибки - исправить их и повторить п.24.
Учитывая, что программа пользователя выполняется в задаче MAST,
обновление входных переменных должно проводиться в начале именно этой задачи.
По той же причине обновление выходов значениями выходных переменных должно
проводиться в конце задачи MAST. Для этого каналы модуля BMX DDM 16025 в
аппаратной конфигурации ПЛК настраиваются на задачу MAST (рис.1.28).

Рис.1.28. Конфигурация входных и выходных каналов дискретного модуля:


справа – входы, слева – выходы.
Согласно условиям безопасности, выходной канал 0.1.16, отвечающий за пуск
насоса, при остановке ПЛК должен быть в значении FALSE. Поэтому для данного
канала в аппаратной конфигурации необходимо выставить режим Fallback Mode =
Fallback (при остановке ПЛК выходы выставить в значение Fallback Value), а
Fallback Value = 0.
Для контроля за питанием каналов модуля необходимо выставить опцию Supply
Monitoring. При такой конфигурации, выход значения напряжения питания датчиков
за диапазон будет сигнализироваться индикаторами модуля (индикатор "I/O") и
специальными диагностическими переменными.

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).

Рис.1.29. Настройка соединения с реальным ПЛК по USB.

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)

Этап 1 – создание проекта аппаратной конфигурации


Для решения данной задачи можно
выбрать ПЛК TSX Premium с процессорным
модулем TSX P57 104M. Необходимо также
один аналоговый вход (датчик температуры)
и один аналоговый выход (клапан). Для
этого можно выбрать аналоговый входной
модуль TSX AEY 414 (4 канала) и
аналоговый выходной модуль TSX ASY 410
(4 канала), поддерживающие работу с
сигналами 4-20 мА.

1. Создать проект (File-> New).


2. Выбрать процессорный модуль TSX P57
Рис.1.31.Аппаратная конфигурация
104M.
3. Показать окно проводника проекта
(выставить опцию Tools-> Project Browser)
4. Открыть окно конфигурации X BUS (в Project Browser-> 0: X BUS)
5. Изменить основное шасси на TSX RKY 6 (в окне X BUS -> контекстное меню
шасси-> Replace Rack)
6. На первом посадочном месте выбрать модуль TSX AEY 414 (двойной клик по 1-м
посадочном месте);
7. На втором посадочном месте выбрать модуль TSX ASY 410 (двойной клик по 2-м
посадочном месте);
8. Записать проект на диск с названием "FBD_EXMPL" (File -> Save)

22
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт

Этап 2 – создание переменных и экземпляров функциональных блоков.


За входные и выходные аналоговые каналы отвечают ячейки памяти из области
данных соответственно %IW и %QW, значения в которых сохраняется в формате
INT, в диапазоне от 0 до 10000. То есть, для значений температуры и клапана
необходимо создать переменные типа INT. Однако для реализации ПИ-регулятора
будет использоваться библиотечный функциональный блок типа PI_B, работающий
с реальными масштабируемыми переменными типа REAL. Поэтому необходимо
создать 4-ре переменные: TT1a и TT1a_R (масштабированное) - для датчика
температуры, TV1b и TV1b_R (масштабированное) - для клапана (рис.1.32).
Необходимо также создать переменные: TC1_SP - для формирования задания
регулятору, и TC1_AUTO - для управления режимом регулятора.
Для удобства отладки программы пользователя все переменные создадим
нелокализованными, то есть не привязанными к адресам.
9. В проекте "FBD_EXMPL" создать переменные в соответствии с рис.1.32 (Project
Browser-> Variables & FB instances -> Elementary Variables).

Рис.1.32. Переменные в редакторе данных


Для решения задачи удобно пользоваться библиотечными функциональными
блоками типа PI_B (ПИ-регулятор) и SCALING (масштабирование). Для
масштабирования входного значения температуры создадим экземпляр TY1a, для
выходного значения клапана - экземпляр TY1b, для ПИ-регулятора температуры -
экземпляр TC1 (рис.1.33).
10. Создать экземпляры функциональных блоков в соответствии с рис.1.33 (Project
Browser-> Variables & FB instances -> Elementary FB instances)

Рис.1.33. Экземпляры функциональных блоков в редакторе данных


Для настройки блоков регулятора и масштабирования используются входы
PARA: для PI_B - типа Para_PI_B, для SCALING - типа Para_SCALING. Таким
образом, необходимо создать еще переменные (рис.1.34).

23
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
11. Создать переменные производных типов данных в соответствии с рис.1.34 (Project
Browser-> Variables & FB instances -> Derived Variables).

Рис.1.34. Переменные производных типов (DDT) в редакторе данных.


Этап 3 – создание программы пользователя на языке FBD.
Программу для контура регулирования можно реализовать одной FBD-цепью
(рис.1.35). В центре контура находится ПИ-регулятор (TC1 типа PI_B), задание для
которого (SP) формируется переменной TC1_SP, а текущее значение (PV)
формируется выходом блока масштабирования температуры (TY1a). Значение
выхода регулятора через блок масштабирования TY1b подается на клапан TV1b. К
входу/выходу OUT блока TC1 привязана переменная TV1b_R, дающая возможность
отслеживать и управлять выходом регулятора в ручном режиме средствами HMI.
Переключение режима регулятора производится входом блока MAN_AUTO, к
которому привязана переменная TC1_AUTO. Для настройки ПИ-регулятора, к его
входу PARA подключается переменная TC1_PARA.
Каналы масштабирования значений температуры и клапана, кроме блоков типа
SCALING, в параметрах которых (PARA) задаются входные и выходные диапазоны,
включают функции преобразования типов значений INT в REAL и наоборот.

24
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт

Рис.1.35. Пример решения задачи с использованием языка FBD.


12. В проекте "FBD_EXMPL", в задаче MAST создать секцию с названием "Intro_FBD" на
языке FBD: в Project Browser -> Program-> Tasks-> MAST-> контекстное меню
Sections -> New Section; Name = "Intro_FBD"; Language = "FBD".
13. В секции набрать программу в соответствии с рис.1.35: выбор функций
(INT_TO_REAL и REAL_TO_INT) проводится командой из панели инструментов или
из меню Edit-> FFB Input Assistant; вставка экземпляров функциональных блоков
(TY1a, TY1b, TC1) проводится командой из панели инструментов или из меню Edit->
Data Selection; соединения блоков проводится с использованием элемента Link
(F6);
14. Проверить правильность набора программы (Build-> Analyze, после чего проверить
сообщения в Output Window);
15. Если программа содержит ошибки - исправить их и повторить пп.13-14 (двойной
клик по ошибке в Output Window переводит курсор в место ошибки

Этап 4 – отладка программы пользователя.


Настройка программы пользователя будем проводить на имитаторе ПЛК. В любом
случае, перед загрузкой необходимо сделать компиляцию.
16. Выбрать режим соединения с имитатором ПЛК (меню PLC-> Simulation Mode).
17. Скомпилировать проект (Build-> Rebuild All Project).
18. Соединиться (перейти в режим онлайн) с имитатором ПЛК (PLC-> Connect).
19. Загрузить исполнительный проект в имитатор ПЛК (PLC-> Transfer Project to PLC,
затем подтвердить кнопкой Transfer).
20. Запустить ПЛК в режим RUN (PLC-> RUN).

Проверка работы данной программы пользователя сводится к проверке работы


блоков ПИ-регулятора и масштабирования. В ручном режиме (TC1_AUTO=0) выход
ПИ-регулятора (OUT) не меняется, а следовательно не меняется и значение
переменной TV1b_R, так как связь для этого типа параметра функционального блока
является двухсторонней. Таким образом, в ручном режиме наладчик может изменять
значение выхода регулятора, изменяя TV1b_R. После блоков масштабирования
реальное значение TV1b_R в диапазоне 0-100% должно превратиться в
соответствующее целочисленное значение TV1b в диапазоне 0-10000. Изменяя
значение целочисленной переменной TT1a (0-10000) можно проверить правильность
работы блоков масштабирования, которые должны превратить его в
соответствующее значение TT1a_R (0-150С).
В автоматическом режиме (TC1_AUTO=1), выход регулятора OUT начнет
менять свое значение в соответствии с настройками (задаются в TC1_PARA).
Учитывая обратный режим работы регулятора (TC1_PARA.rev_dir = 1) при SP> PV
(переохлаждение), выход OUT должен уменьшаться.
25
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
21. В редакторе FBD выделить все элементы программы пользователя (при открытом
редакторе FBD, меню Edit-> Select All).
22. Создать анимационную таблицу по выделенным данным (меню Services-> Initialize
Animation Table).
23. Включить в анимационной таблице режим модификации (кнопка Modification).
24. Для переменных в поле Value выставить значения: TC1_AUTO = 0, TT1a = 5000,
TV1b_R = 50.0, при этом значения других переменных должны быть равными:
TT1a_R = 75.0, TV1b = 5000;
25. Для переменных в поле Value выставить значения: TT1a = 5000, TC1_SP = 80,
TC1_AUTO = 1, при этом значения других переменных должны быть: TT1a_R = 75.0,
TV1b_R - уменьшается, TV1b = TV1b_R * 100;

Этап 5 – привязка переменных к входным/выходным каналам ПЛК.


Входные и выходные переменные необходимо привязать к входным и выходным
каналам. Кроме того, ряд переменных, принимающих участие в обмене со
средствами HMI, необходимо привязать к ячейкам области памяти %MW (в случае
использования операторских панелей Magelis от Schneider Electric это делать не
обязательно).
Выбранный модуль аналоговых входов TSX AEY 414 находится на 1-м посадочном
месте в 0-м шасси (см. рис.1.31), модуль аналоговых выходов TSX ASY 410 - на 2-м
посадочном месте. Если задействовать 0-е каналы, то переменная TT1a будет
привязана к ячейке %IW0.1.0, а TV1b – к %QW0.2.0 (рис.1.36).
Масштабированные значения (TT1a_R, TV1b_R), задание (TC1_SP), режим
регулятора (TC1_AUTO) и параметры блоков необходимо привязывать к ячейкам
области внутренних данных %MW. При этом переменные INT занимают одну
ячейку, REAL - две ячейки, BOOL - один бит ячейки, а для структур DDT (типов
Para_PI_B и Para_SCALING) указывается только начальная ячейка.

Рис.1.36. Локализованные переменные в редакторе данных


26. Отсоединиться от имитатора ПЛК (PLC-> Disconnect).
27. В переменных проекта изменить значение поля Address, согласно рис.1.36 (Project
Browser-> Variables & FB instances).
28. Проверить правильность изменений (Build-> Analyze, после чего проверить
сообщения в Output Window);
29. Если есть ошибки - исправить их и повторить п.28.
Учитывая, что программа пользователя выполняется в задаче MAST, обновление
входных переменных должно проводиться в начале именно этой задачи. По той же
причине обновление выходов значениями выходных переменных должно
проводиться в конце задачи MAST. Для этого каналы модулей TSX AEY 414 и TSX
26
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
ASY 410 в аппаратной конфигурации ПЛК настраиваются на задачу MAST
(рис.1.37).

Рис.1.37. Конфигурация каналов модулей: вверху – входного модуля TSX AEY


414, внизу – выходного TSX ASY 410.
Для входного аналогового канала 0.1.0 указывается диапазон (Range = 1..5V/4-
20mA), а также степень фильтрации (Filter = 2). Опция Terminal block detection
указывает на то, что отсутствие клеммной колодки на модуле будет
сигнализироваться индикаторами модуля (индикатор "I/O") и специальными
диагностическими переменными.
Для выходного аналогового канала 0.2.0 указывается диапазон (Range = 4-
20mA). Режим Maintain (опция Fallback Mode не выставлена) указывает на то, что
при остановке ПЛК выход модуля останется без изменений (заморозится).

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)

Рис.1.38. Настройка соединения с реальным ПЛК через порт TER.

28
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
1.13. Пример использования языка ST.
Варианты решения задачи с раздела 1.11.
Сравним различные варианты решения задачи из раздела 1.11 на языках LD, FBD и
аналогично им варианты на языке ST. Два варианта решения на LD
продемонстрированы в разделе 1.11, аналогичный код в ST представлен на рис.1.39-
1.40.

Рис.1.39. Первый вариант реализации задачи: на LD та ST.

Рис.1.40. Второй вариант реализации задачи: на LD и ST.


На рис.1.41 представлены варианты решения на FBD и ST с использованием
RS-триггера и блока выбора SEL. В программе используются 3 элемента: Timer1
(таймер с задержкой на отключение), RS Trigger RS_0 (триггер ВКЛ/ОТКЛ), SEL
(управляемый переключатель). Для выбора режима управления двигателем (Start /
Stop) катушка реле пускателя M1 подключается к выходу элемента с функциями
переключателя (SEL). Состоянием переключателя управляет вход G. Если на входе
G=0, переключатель находится в нормальном состоянии, то есть его выход
соединяется с входом IN0. Если G=1, то выход переключается на вход IN1. Таким
образом, в режиме Stop (Start = 0) двигатель будет управляться таймером, который
будет реализовывать задержку на отключение через 5 с.
В режиме Start двигателем будет управлять RS Trigger. Выход триггера
руководствуется двумя входами: S - установить и запомнить на выходе логическую
"1"; R1 - сбросить и запомнить на выходе логический "0". Символ 1 после R ("R1")
29
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
означает, что R имеет приоритет над S. Кружочек на соединении S - это знак
инверсии, т.е. при LS1=TRUE на входе S=FALSE, а при LS1=FALSE на входе
S=TRUE. Таким образом, при отключении сигнализатора LS1 (напорный бак пустой)
на входе триггера появится логическая "1", что приведет к запуску двигателя, а при
замыкании LS2 (напорный бак полный) на выходе появится логический 0 - есть
остановка двигателя. Если по техническим неисправностям сигнализатор нижнего
уровня будет разомкнут, а верхний замкнут, то двигатель все равно отключится, так
как вход имеет высший приоритет, чем S.

Рис.1.41. Третий вариант реализации задачи: на FBD та ST.


Конечно же, это не все варианты решения поставленной задачи, однако можно
сделать определенные выводы о гибкости и компактности языка ST. Тем не менее, в
наглядности язык ST во многих случаях уступает графическим языкам.

Вариант решения задач с раздела 1.12.


Программа для решения задачи из раздела 1.12 на языке ST может выглядеть как на
рис.1.42.

Рис.1.42. Вариант реализации задачи с раздела 1.12 на языке ST.

1. Сделать пункты 1-11 из раздела 1.12.


2. В задаче MAST создать секцию с названием "Intro_ST" на языке ST: в Project
Browser -> Program-> Tasks-> MAST-> контекстное меню Sections -> New Section;
Name = "Intro_ST"; Language = "ST"
3. В секции набрать программу в соответствии с рис.1.42: название функций
(INT_TO_REAL и REAL_TO_INT) набираются с клавиатуры, или выбираются
командой из панели инструментов, или выбираются из меню Edit-> FFB Input
Assistant; название экземпляров функциональных блоков (TY1a, TY1b, TC1)
набирается с клавиатуры или вставляется командой с панели инструментов, или
вставляется с меню Edit-> Data Selection;
4. Сделать пункты 14-38 из раздела 1.12.

30
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт

1.14. Пример использования языка SFC.


Рассмотрим пример программы на языке SFC для решения следующей задачи
(рис.1.43).
После нажатия кнопки START, клапан kl1 открывается и аппарат заполняется
жидкостью до срабатывания LS2. После этого включается мешалка, и открывается клапан
kl2 для подачи ферментов. После срабатывания датчика LS3, клапаны и мешалка
отключаются, открывается клапан kl3, и продукт сливается из аппарата.
Когда аппарат пустой (LS1 отключен) клапан kl3 закрывается, и система переходит в
исходное состояние.

Опишем поведение системы, используя


механизм сети Петри (рис.1.44). Система может
находиться в 4-х состояниях (шагах): ожидание
старта (исходное состояние), наполнение
жидкостью, добавление ферментов, слив
продукта. Во время каждого состояния положения
исполнительных механизмов четко определено:
например при наполнении жидкостью kl1 должен
открыться. Переход из состояния в состояние
происходит по определенным условиям: например
система переходит в состояние "наполнение
жидкостью" только после состояния "ожидания Рис.1.43.К постановке задачи.
старта" и условия перехода "если нажата Start".
Таким образом, состояния в сети Петри являются позициями, а условия -
переходами. Когда активируется определенный шаг, он получает маркер от
деактивируемого шага. На рис.1.44 маркер находится у шага "Наполнение
жидкостью". Сравните программу управления, написанную на языке SFC, с моделью
системы базирующуюся на сети Петри.

31
Пупена А.Н, Эльперин И.В. UNITY PRO – быстрый старт
Модель роботы системы в Программа на SFC
виде сети Петри

Рис.1.44.Пример решения задачи с использованием Петри и 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

Вам также может понравиться