logo
Разработка Web-интерфейса для АСУ ДНС Ватьеганского месторождения в инструментальном пакете Trace Mode 6

2.3.1 Разработка FBD - программ

Язык функциональных блоков (Техно FBD со встроенным языком Техно LD, Ladder Diagram) является визуальным языком программирования алгоритмов. Программа, созданная на этом языке, называется FBD-программой.

Для разработки FBD-программ в редакторе базы каналов предусмотрены два окна - FBD программы и LD программы. Для входа в первое из них нужно выполнить команду FBD программы меню Окна или нажать сочетание клавиш ALT-3 или нажать ЛК на иконке панели инструментов.

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

Имя и комментарий - эти два атрибута используются для идентификации программы. Имя может включать в себя до 8 символов, а комментарий - до 128. В имени программы не могут использоваться служебные символы (например, "*"). Имя программы не может начинаться с цифры.

Имя FBD-программы используется для ссылок на нее. Комментарий - это дополнительная информация о назначения программы. Он выводится во всех диалогах, ссылающихся на FBD-программы [14].

Компоненты FBD-программ:

- переменная

Переменные FBD-программы могут быть внутренние или внешние. Внешние переменные называются аргументами. Суммарное количество переменных в одной программе не может превышать 254.

Каждая переменная имеет числовой индекс, который используется при ссылках на нее. Индексы переменных выводятся радом с аргументами и константами в диалоге Реквизиты при подключении программы к каналу. Они могут быть изменены при редактировании программы.

- функциональный блок

Элементарным звеном FBD-программ является функциональный блок.

Блок - это графическое изображение вызова одной из функций. Это могут быть либо стандартные, встроенные в систему функции, либо разработанные пользователем. Функциональные блоки, встроенные в систему, сгруппированы в несколько разделов.

- входы и выходы блока

Каждый блок в зависимости от выполняемой им функции имеет определенное количество входов и выходов. Входы всегда расположены слева, а выходы - справа.

Вход блока может быть связан с переменной или константой, а может быть свободным.

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

В режим эмуляции программы рядом с каждым входом и выходом выводится его значение. При этом для входов выводимые значения заменяют их обозначения.

Все разработанные программы данного проекта представлены в приложении Е. Основная цель создания FBD-программ - возможность эмуляции реальных сигналов.

Подпрограммы генерации сигналов состоят в основном из двух блоков: генератора (GSIN) и масштабирования (SCALE), в некоторых подпрограммах присутствует блок округления до сотых (NDGT).

Блок GSIN

Этот функциональный блок генерирует синусоидальный сигнал единичной амплитуды. Период колебаний (в секундах) задается значением входа PT. Во всех подпрограммах его значение задается равным 100.

Блок SCALE

Выход этого блока рассчитывается по формуле: Q = INP * MUL + ADD . На вход INP подается сигнал с генератора GSIN. Значение MUL принимается исходя из того в каких пределах должен изменяться сигнал, чаще всего он равен MUL = (MAX+MIN)/2, где MAX - максимальное значение сигнала, MIN - минимальное значение сигнала. Вход ADD определяется как MAX - MUL.

Блок NDGT

На выходе Q формируется округленное значение входа INP. Значение входа NDG задает точность округления:

-2 - до сотен;

-1 - до десятков;

0 - до целых;

1 - до первого разряда после запятой;

2 - до второго разряда после запятой;

3 - до третьего разряда после запятой;

4 - до четвертого разряда после запятой.

В разработанных программах NDG = 2.

Подпрограммы ПИД-регулирования представлены также в приложении Е. В нее входят следующие блоки: (-), PID, DZONE, SEL.

Блок (-) вычисляет рассогласования регулируемой величины с заданием (входы AS и AD соответственно). Величина рассогласования подается на вход INP блока DZONE, который реализует функцию зоны нечувствительности. Величина зоны нечувствительности подается на вход DLT. Выход блока DZONE подается на вход INP блока, реализующего вычисление величины управляющего воздействия. Для переключения контура на ручной режим используется функциональный блок SEL. На его вход IN0 подается выход блока, а на вход IN1 - величина ручного управления выходом регулятора. Управление переключением режимов осуществляется входом IG блока SEL.