Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UNITY PRO FastStart RU.pdf
Скачиваний:
322
Добавлен:
16.02.2016
Размер:
3.43 Mб
Скачать

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

для модулей дискретных выходов может определяться состояние каналов при остановке ПЛК, порядок реактивации защищенных выходов, рефлекторная логика и т.д.;

для модулей аналоговых входов может определяться диапазон сигнала, параметры масштабирования, фильтрация и т.д.;

для модулей аналоговых выходов может определяться состояние выходов при остановке ПЛК.

Вокне конфигурирования шасси доступна функция просмотра потребляемой мощности модулей в соответствии с установленным модулем питания. Аппаратную конфигурацию можно импортировать или экспортировать.

1.7.Создание переменных и экземпляров функциональных блоков.

Начать разработку программы пользователя можно с определения переменных в редакторе данных (Data Editor) (рис1.10). Создание переменных также возможно из редакторов языков программирования (LD, FBD, ST, IL, SFC), что даёт дополнительное удобство при программировании. Для каждой переменной указывается: имя переменной (Name); тип переменной (Type); значение, принимаемое переменной при инициализации ПЛК (Value); адрес ячейки памяти (Address), где будет храниться значение этой переменной; комментарий (Comment). Дополнительные свойства переменных вызываемом с контекстного меню переменной.

Рис.1.9.Конфигурирование данных

доступны в окне свойств,

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

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

9

Рис.1.11. Создание программы пользователя

Пупена А.Н, Эльперин И.В. 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.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)

операторские экраны (Operator Screens)

Спомощью анимированных средств редакторов программ пользователя можно в режиме online наблюдать за

12

Рис.1.18.

Анимационные таблицы и экраны

Пупена А.Н, Эльперин И.В. 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

Рис.1.22.Аппаратная конфигурация

0400 (в окне PLC BUS -> контекстное

 

меню шасси-> 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) должен формировать

Рис.1.30.К постановке задачи.

оператор средствами HMI (H-1);

 

- со стороны 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