Разработка управляющих алгоритмов и программ

Продолжая разработку проекта, необходимо создать шаблоны программ, реализующие управляющие алгоритмы. Для этого в окне навигатора проекта необходимо выбрать слой «Шаблоны_программ» и с помощью контекстного меню создать компонент Программа#! (рис. 3.30).

II

^3 Создать компонент ?

ИЙ Программа

$3 Создать группу ?

II

Рис. 3.30. Создание программы

FBD-диаграмма

Для разработки программ Trace Mode поддерживает языки стандарта IEC 61131-3 по программированию контроллеров.

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

Элементарным звеном разработки программ на языке FBD является функциональный блок, представляющий собой графическое изображение вызова функций. Функциональный блок характеризуется выполняемой функцией, номером, входами и выходами. Функциональные блоки, встроенные в систему, сгруппированы в несколько разделов. Назначение входов и выходов блока определяется его функцией. Исключением является первый вход запуска/блокировки (RUN), который всегда управляет пересчетом блока.

Сначала для компоненты «FBD-диаграмма» в окне редактора шаблонов программ создадим «Аргументы». Для этого достаточно из дерева проектов (базы каналов) перетащить требуемые каналы, указав при этом атрибут привязки. Атрибуты, требующиеся нам для разработки программы управления процессом водоподготовки, представлены в табл. 3.2.

Таблица 3.2

Атрибуты FBD программы

Имя

Тип

Тип данных

Привязка

1

2

3

4

Уровень_1_К

IN

REAL

:^F Уровень_1:Реальное значение

(Система.АРМ

оператора.Каналы.Водоподготовка)

Уровень_2_К

IN

REAL

:^F Уровень_2:Реальное значение

(Система.АРМ

оператора.Каналы.Водоподготовка)

ДНВ-R

IN

UINT

ДНВ: Реальное значение (Система. АРМ оператора.Каналы.Водоподготовка)

ДВВ-R

IN

UINT

ДВВ: Реальное значение (Система. АРМ оператора.Каналы.Водоподготовка)

ДВН-R

IN

UINT

ДВН:Реальное значение (Система. АРМ оператора.Каналы.Водоподготовка)

ДНН-R

IN

UINT

Цз; ДНИ: Реальное значение

(Система.АРМ

оператора.Каналы .Водоподготовка)

KpaH_l_R

IN

UINT

Кран_1:Реальное значение

(Система.АРМ

оператора.Каналы .Водоподготовка)

KpaH_2_R

IN

UINT

:^R Кран_2:Реальное значение

(Система.АРМ

оператора.Каналы.Водоподготовка)

Продолжение табл. 3.2

1

2

3

4

KpaH_3_R

IN

UINT

  • (^g Кран_3:Реальное значение
  • (Система.АРМ

оператора.Каналы.Водоподготовка)

Поток_1_И

IN

REAL

  • (^F Поток_1:Реальное значение
  • (Система.АРМ

оператора. Каналы .Водоподготовка)

noTOK_2_R

IN

REAL

Поток_2:Реальное значение (Система.АРМ

оператора. Каналы .Водоподготовка)

noTOK_3_R

IN

REAL

Поток_3:Реальное значение (Система.АРМ

оператора. Каналы .Водоподготовка)

Hacoc_l_R

IN

UINT

Насос_1 :Реальное значение (Система.АРМ

оператора. Каналы .Водоподготовка)

Уровень_1_1п

OUT

REAL

Уровень_1: Входное значение (Система.АРМ

оператора. Каналы .Водоподготовка)

Уровень_2_1п

OUT

REAL

Уровень_2: Входное значение (Система.АРМ

оператора. Каналы .Водоподготовка)

ДНН_1п

OUT

UINT

ДНИ:Входное значение (Система.АРМ

оператора. Каналы .Водоподготовка)

Кран_2_1п

OUT

UINT

Кран_2: Входное значение (Система.АРМ

оператора. Канал ы. Водоподготовка)

Hacoc_l_In

OUT

UINT

^|6 Насос_1:Входное значение

(Система.АРМ

оператора. Каналы .Водоподготовка)

Кран_1_1п

OUT

UINT

Кран_1: Входное значение (Система.АРМ

оператора. Каналы .Водоподготовка)

ДВН_1п

OUT

UINT

  • (^6 ДВН:Входное значение
  • (Система.АРМ

оператора. Каналы .Водоподготовка)

Окончание табл. 3.2

1

2

3

4

Кран_3_1п

OU т

UINT

Кран_3:Входное значение (Система.АРМ

оператора.Каналы.Водоподготов!

са)

ДНВ_1п

ои т

UINT

  • (4|6 ДНВ: Входное значение
  • (Система.АРМ

оператора. Каналы. Водоподготов!

са)

Т емпература_ 1 _ In

ои т

REA

L

Температура_1:Входное значение (Система.АРМ

оператора. Каналы .Водоподготов!

са)

Т емпература_2_

In

ои т

REA

L

(^F Температура_2:Входное значение (Система.АРМ

оператора. Каналы .Водоподготов!

са)

Тэн_1_1п

ои т

UINT

  • (4|6 Тэн_1: Входное значение
  • (Система.АРМ

оператора. Каналы .Водоподготов!

са)

Тэн_2_1п

ои т

UINT

Тэн_2:Входное значение (Система.АРМ

оператора. Каналы. Водоподготов!

са)

Toh_1_R

IN

UINT

(4|6 Тэн_1: Реальное значение (Система.АРМ

оператора. Каналы. Водоподготов!

са)

Тэн_2_К

IN

UINT

^6 Тэн_2:Реальное значение

(Система.АРМ

оператора.Каналы.Водоподготов!

са)

Т емпература_ 1 _ R

IN

REA L

Температура_1: Реальное значени (Система.АРМ

оператора.Каналы.Водоподготов!

са)

Т емпература_2_

R

IN

REA

L

*Я|= Температура_2: Реальное значени (Система.АРМ

оператора. Каналы .Водоподготов!

са)

Следующим шагом создадим переменную в пункте «Глобальные переменные». Эта переменная выступает в качестве номера этапа технологического процесса (у нас их три - наполнение С1, перекачка воды из С1 в С2, слив С2) (рис. 3.31).

Щ Программа#!

Ё5’ X К к

Структура программы

Комментарии

Имя Тип данных [] Начальное значение Комментарий

^Программа#!

^Аргументы

[^Локальные переменные

CTAR_OOO^]REAL 0

И) Глобальные переменные

[^Функции

^Структуры

^Внешние библиотеки

Рис. 3.31. Создание глобальной переменной

Далее приступаем к созданию шаблона программы, указав предварительно в диалоговом окне язык программирования FBD (рис. 3.32).

Выбор языка программирования

Рис. 3.32. Выбор языка программирования

В открывшемся окне редактора программ выбираем кнопку /Я-

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

Программу представим в виде следующих частей:

- формирование значений уровня воды в обеих емкостях;

сигнализация и формирование номера этапа технологического процесса;

  • - формирование управляющих сигналов на крановые задвижки и насос;
  • - имитирующая программа для контроля и регулирования температуры воды.

Рассмотрим каждую часть.

На рис. 3.33 представлен фрагмент программы, отвечающий за формирование значений уровня воды в обеих емкостях.

Значение уровня воды в емкости С1 в любой момент времени определяется текущим значением уровня, потоком воды наполняющим емкость (канал Поток_1 с положительным знаком), и потоком, перекачивающим воду в емкость С2 (канал Поток_2 с отрицательным знаком).

При этом поток воды, наполняющий емкость, возможен только при открытой крановой задвижке В1 (Кран_1=1). Поток 2 возможен только при наличии трех сигналов: «открыта крановая задвижка В2 (Кран_2=1)», «включен насос (Насос_1=1)» и «емкость С1 не пуста (ДНН_1=0)».

Управляемые таким образом логикой сигналы двух потоков суммируются с текущим значением уровня и передаются в аргумент, который связан с входным значением уровня в емкости С1 (Уровень_ 1_1п). Для выборки аргумента используем схему, заменяющую отрицательное значение уровня на нулевое (блок, реализующий функцию выбора максимального значения, на второй вход которого подается 0).

Формирование значений уровня воды в обеих емкостях

Рис. 3.33. Формирование значений уровня воды в обеих емкостях

По аналогичной схеме формируется значение уровня в емкости С2. Значение уровня воды в емкости С2 в любой момент времени определяется текущим значением уровня, потоком воды из емкости С1 (сформированный и описанный выше поток с положительным знаком) и потоком слива воды из емкости С2 (канал Поток_3 с отрицательным знаком).

Логические условия для потока, наполняющего емкость С2, остались те же - только при наличии трех сигналов: открыта крановая задвижка В2 (Кран_2=1)», «включен насос (Насос_1=1)» и «емкость С1 не пуста (ДНН_1=0)». Поток воды из емкости С2 возможен только при открытой крановой задвижке ВЗ (Кран_3=1).

Управляемые таким образом логикой, сигналы двух потоков суммируются с текущим значением уровня С2 и передаются в аргумент, который связан с входным значением уровня в емкости С2 (Уровень_2_1п).

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

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

  • - инверсия - реализует логическую функцию НЕ;
  • - логическое умножение четырех элементов (выход равен 1, если все входы одновременно отличны от 0);
  • - инверсия знака (меняет знак значения на входе);
  • - сложение четырех элементов;
  • - выбор из двух (отправляет на выход один из двух входных сигналов в зависимости от значения номера);
  • - выбор максимального значения.

На рис. 3.34 представлен фрагмент программы, отвечающий за сигнализацию и формирование номера этапа технологического процесса.

Если уровень в емкости С1 меньше 1,5 м, то это - первый этап процесса и значение 0 присваивается глобальной переменной GVAR_000, в которой хранится значение номера этапа техпроцесса.

При достижении уровня в емкости С1 значения 1,5 м начинается второй этап (GVAR_000 становится равной 1), и одновременно формируется сигнал ДВН. Второй этап продолжается, пока уровень в емкости С1 не достигнет значения минимальной отметки в 0,005 - это приводит к переходу на третий этап (GVAR_000 становится равной 2), и формируется сигнал ДНИ.

Третий этап продолжается, пока уровень в С2 не достигнет значения минимальной отметки в 0,005 - это приводит к циклическому переходу снова на первый этап (GVAR_000 становится равной 0), и формируется сигнал ДНВ.

Сигнализация и формирование номера этапа технологического процесса

Рис. 3.34. Сигнализация и формирование номера этапа технологического процесса

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

  • - больше или равно;
  • - меньше или равно;
  • - выбор из двух;
  • - пересылка;
  • - выбор из трех.

На рис. 3.35 представлен фрагмент программы, отвечающий за формирование управляющих сигналов на крановые задвижки и насос.

В этой части программы в зависимости от значения глобальной переменной номера этапа технологического процесса изменяются состояния задвижек (открыта/закрыта) и насоса (включен/выключен).

Формирование управляющих сигналов

Рис. 3.35. Формирование управляющих сигналов

на крановые задвижки

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

  • - пересылка;
  • - выбор из трех.

На рис. 3.36 представлен фрагмент программы, отвечающий за контроль и регулирование температуры воды в емкости С1. Поскольку требования в задании на разработку относительно этой части системы отсутствуют, то она носит имитирующий характер.

Будем считать, что нагреватель в емкости С1 включается (на вход Тэн_1 подается значение 1) при достижении уровня в 0,3 м (когда электроды окажутся покрыты водой) и отключается соответственно при снижении уровня ниже этой отметки. При включении нагревателя температура с начального значения в 20°С начинает постепенно возрастать (на 1°С за цикл пересчета), но не выше 60°С (достигнув этого значения, она поддерживается на этом уровне). После выключения нагревателя значение температуры также постепенно начинает снижаться с той же скоростью, но не ниже 20°С.

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

Контроль и регулирование температуры воды в емкости С1

Рис. 3.36. Контроль и регулирование температуры воды в емкости С1

(флагами в нем являются: состояние нагревателя, достижение температуры 20°С и достижение температуры 60°С), по которому в дальнейшем осуществляется мультиплексирование для формирования значения в канале температуры.

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

  • - больше или равно;
  • - меньше или равно;
  • - равенство;
  • - инверсия;
  • - логическое умножение;
  • - вычитание;
  • - сложение;
  • - упаковка битов;
  • - выбор из семи.

Фрагмент программы, отвечающий за контроль и регулирование температуры воды в емкости С2, аналогичен рассмотренному.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >