Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

SCADA система Trace Mode 6. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
FBD-программа может выступать в роли основной программы,
функции и функции-блока.
Для создания FBD-программы и подключения ее к проекту нужно выполнить следующие операции:
– разместить необходимые функциональные блоки в рабочем поле FBD-редактора;
– соединить нужные входы и выходы блоков, образовав единую диаграмму;
задать аргументы, переменные и константы программы;
привязать входы/выходы FBD-диаграммы к аргументам, переменным и константам программы;
скомпилировать программу.
4.28. Размещение FBD-блоков в рабочем поле редактора
Рабочее поле FBD-редактора с помощью сетки разбито на участки. На одном участке можно разместить один функциональный блок.
Выбрать нужный функциональный блок для размещения можно с помощью специального навигатора, показанного на рисунке 18.
Открыть/закрыть окно навигатора функциональных блоков можно с помощью кнопки панели инструментов FBD-редактора.
41
Рис. 18. Навигатор FBD-блоков
В нижней части навигатора находятся кнопки выбора группы блоков (Логические, Арифметические и т.п.), в рабочем поле навигатора отображаются блоки, которые входят в выбранную группу. Чтобы получить справку о блоке, нужно дважды нажать ЛК на его изображении в навигаторе.
Чтобы поместить блок на участок рабочего поля FBD-редактора, нужно нажать ЛК на изображении блока в навигаторе и, удерживая кнопку нажатой, переместить курсор на нужный участок, после чего кнопку отпустить (метод drag-and-drop).
4.29. Редактирование диаграммы FBD-блоков
Для выделения элемента FBD-диаграммы (функционального блока, входа или выхода блока, связи между блоками, графического изображения привязки входа/выхода FBD-диаграммы к аргументу/переменной программы, метки) нужно с помощью мыши установить на него курсор и нажать ЛК. Выделенный элемент
42
обозначается цветом, заданным в параметрах FBD-редактора. Для выделения группы элементов нужно с помощью мыши обвести их контурным прямоугольником (нажать ЛК в некоторой точке рабочего поля редактора и, удерживая кнопку нажатой, переместить курсор в направлении диагонали будущего прямоугольника, после чего кнопку отпустить).
Создание связей между блоками производится методом drag-and­drop (выделить вход/выход блока, нажать ЛК на изображении этого входа/выхода и, удерживая кнопку нажатой, переместить курсор на изображение выхода/входа другого блока, после чего кнопку отпустить). Созданная связь обозначается на диаграмме линией.
Блоки можно перемещать на другие участки рабочего поля FBD­редактора методом drag-and-drop, при этом созданные связи сохраняются.
Кроме панели инструментов, для редактирования диаграмм
BD-редактор снабжен набором контекстных меню, доступных по
F
нажатию ПК после выделения элемента диаграммы. Помимо типовых инструментов для редактирования, работы с буфером обмена и закладками, панель инструментов и меню включают следующие команды:
Привязать – перейти в режим привязки выделенного входа/выхода к аргументу/переменной программы;
Инвертировать – инвертировать вход/выход блока
Создать метку – при выполнении этой команды для участка
размещения выделенного блока создается метка.
После выделения метки (рисунок справа) возможно, ее удаление с помощью стандартного инструмента или контекстного меню.
Для перехода к редактированию метки нужно дважды нажать на ней ЛК.
4.30. Привязка входов и выходов FBD-диаграммы
Не участвующие в межблочных связях входы и выходы функциональных блоков (такие входы/выходы называются свободными) могут выступать в качестве входов и выходов FBD- диаграммы. Они могут быть привязаны к аргументам или переменным, заданным для данной FBD-программы с помощью табличных редакторов, а также к глобальным переменным.
43
Привязки могут быть заданы также для выходов, участвующих в межблочных связях.
FBD-диаграмма должна иметь, по меньшей мере, одну привязку.
Для привязки входа/выхода FBD-диаграммы нужно выделить этот вход/выход и нажать кнопку на панели инструментов или нажать ПК и выполнить команду Привязать из контекстного меню. При этом возле выделенного входа/выхода выводится окно со списком доступных для привязки аргументов/переменных, показанное на рисунке ниже. Для входа в этом окне можно также задать постоянное значение (с помощью клавиатуры).
Вход/выход функционального блока называется определенным, если он участвует в межблочных связях или для него задана привязка. Вход, для которого задано постоянное значение, также является определенным.
На рисунке 19 показан вид диаграммы после привязки ее входов и выходов.
Рис.19. Вид FBD-диаграммы
Данная диаграмма является графическим представлением следующей математической функции:
FUNCTION_000(ARG_000, ARG_001)=20*(ARG_000+ARG_001).
Эта FBD-функция может быть использована, например, в ST­программе:
/
/ d = 20 * (VAR_000 + VAR_001)
d = FUNCTION_000(VAR_000, VAR_001);
44
Функция (SFC-условие) на языке Техно FBD не возвращает значений, если ни один из выходов FBD-диаграммы не привязан к имени функции (SFC-условия).
4.31. Описание FBD блоков
Раздел 'Логические'
НЕ (!X)
ИЛИ (X || Y)
И (X && Y)
4 НЕ (!)
Логическое сложение четырех элементов (||)
Логическое умножение четырех элементов (&&)
На вход блоков этого раздела можно подавать числовые значения, а также значения типа B
OOL или STRING. В последнем
случае в операции участвует длина строки.
НЕ (!X)
O = NOT X
O=1, если X=0, во всех остальных случаях O=0.
ИЛИ (X || Y)
O = X OR Y
O=0, если одновременно X=0 и Y=0, во всех остальных случаях O=1.
И (X && Y)
O = X AND Y
O=1, если X и Y одновременно отличны от нуля, во всех остальных случаях O=0.
4 НЕ (!)
!A = NOT A
!B = NOT B
!C = NOT C
!D = NOT D
Выход равен 1, если соответствующий вход равен 0, во всех остальных случаях выход равен 0.
Если вход не определен, его значение принимается равным 0.
Логическое сложение четырех элементов (||)
O = A OR B OR C OR D
O=1, если хотя бы один из входов отличен от нуля.
45
O=0, если A=B=C=D=0.
Если вход не определен, его значение принимается равным 0.
Логическое умножение четырех элементов (&&)
O = A AND B AND C AND D
O=1, если все входы одновременно отличны от 0, во всех
остальных случаях O=0.
Если вход не определен, его значение принимается равным 0.
Раздел 'Арифметические'
Сложение двух элементов (X+Y)
Сложение четырех элементов (A+B+C+D)
Вычитание (X-Y)
Умножение (X*Y)
Деление (X/Y)
Остаток от деления (X%Y)
Возведение в степень (X**Y)
Абсолютное значение (ABS)
Инверсия знака (-X)
Целая часть (FLOOR)
Обратная величина (1/X)
Квадратный корень (SQRT)
Возведение в квадрат (X**2)
Сумма квадратов (HYPOT)
Масштабирование (K*X+C)
Сложение двух элементов (X+Y)
O = X + Y
Сложение четырех элементов (A+B+C+D)
O = A + B + C + D
Вычитание (X-Y)
O = X – Y
Умножение (X*Y)
O = X * Y
Деление (X/Y)
O = X/Y
Остаток от деления (X%Y)
Значение выхода O равно остатку от деления значения входа X на значение входа Y.
Возведение в степень (X**Y)
Абсолютное значение (ABS)
O = |X|
46
Инверсия знака (-X)
O = -X
Целая часть (FLOOR)
На выход O передается целая часть значения входа X.
Не следует путать функцию этого блока с округлением до целого (для округления используется блок NDGT из раздела
Алгебраические функции).
Обратная величина (1/X)
O = 1/X
Квадратный корень (SQRT)
Возведение в квадрат (X**2)
Сумма квадратов (HYPOT)
Масштабирование (K*X+C)
O = K * X + C
РазделТригонометрические
Синус (SIN)
Косинус (COS)
Тангенс (TAN)
Арксинус (ASIN)
Арккосинус (ACOS)
Арктангенс (ATAN)
Арктангенс отношения (_ATAN)
Преобразование полярных координат в декартовы (PDT)
Функции прямого тригонометрического преобразования интерпретируют значение своего аргумента (значение входа ARG для блоков SIN, COS и TAN; отношение DVD/DVS для блока _ATAN и значение входа IA для блока PDT) как угол в радианах.
Блоки ASIN, ACOS и ATAN и _ATAN возвращают главное значение соответствующих функций в радианах:
Синус (SIN)
SIN = sin(ARG)
Косинус (COS)
47
COS = cos(ARG)
Тангенс (TAN)
TAN = tg(ARG)
Арксинус (ASIN)
ARG = Arcsin(SIN)
Арккосинус (ACOS)
ARG = Arccos(COS)
Арктангенс (ATAN)
ARG = Arctg(TAN)
Арктангенс отношения (_ATAN)
ATN = Arctg(DVD/DVS)
Преобразование полярных координат в декартовы (PDT)
QX = IL*cos(IA); QY = IL*sin(IA)
5. ОПИСАНИЕ ЯЗЫКА TEHNO IL
.1. Синтаксис Техно IL
5
Программа на языке Техно IL представляет собой последовательность инструкций. Каждая инструкция должна начинаться с новой строки и должна содержать оператор с опциональным модификатором и, для некоторых операций, один или более операндов, разделенных пробелами. Между инструкциями могут располагаться пустые строки. Компилятор не чувствителен к регистру, т.е. инструкции add var_002 и ADD VAR_002 равнозначны.
Примеры IL-инструкций
ADD VAR_000 2.6
LT VAR_000 VAR_001
JMPC label1
GT VAR_001 20
JMPC label2
LD 278
label1: CAL FUNCTION_000(VAR_000, VAR_001)
label2: ST VAR_001
Под аккумулятором в Техно IL понимается хранилище текущего результата вычислений (в этом качестве выступает один из регистров процессора). Далее в описании языка Техно IL значение
48
аккумулятора обозначается словом result. Функция на языке Техно IL возвращает result.
Техно IL поддерживает одноадресный и двухадресный режимы записи инструкций, которые оперируют с двумя операндами. В первом случае первым операндом является аккумулятор, который опускается при записи, во втором случае указываются два операнда.
Пример
В данном примере представлена запись процедуры a = a + b в одноадресном и двухадресном режиме. Одноадресный режим:
LD a //result = a
ADD b //result = result + b
ST a //a = result
Двухадресный режим позволяет записать ту же операцию компактнее:
ADD a b // a = a + b
В IL-программе могут использоваться метки и комментарии. Правила их задания аналогичны правилам Техно ST.
5.2. Операторы и модификаторы Техно IL
К ним относятся:
модификаторы Техно IL;
операторы обмена с аккумулятором;
логические операторы Техно IL;
арифметические операторы Техно IL;
операторы сравнения Техно IL;
операторы перехода и вызова функции Техно IL.
5.3. Модификаторы Техно IL
Модификаторы Техно IL – это литеры N, C и X, которые могут быть приписаны справа к имени ряда операторов.
Модификатор N обозначает логическое отрицание операнда. Например, инструкция
ND a
A
интерпретируется как r
esult = result AND a, а инструкция
ANDN a
интерпретируется как result = result AND NOT a.
49
Для операторов JMP, CAL и RET:
модификатор C обозначает, что инструкция выполняется в
том случае, если результат предыдущей операции сравнения истинен;
модификатор X обозначает, что инструкция выполняется в
том случае, если result = TRUE.
5.4. Операторы обмена с аккумулятором
В таблице 1 представлены операторы обмена с аккумулятором.
Таблица 1
Синтаксис Допустимый
Действие
модификатор
LD operand N result := operand ST operand N operand := result
Знак ":=" в таблице 1 обозначает операцию присваивания.
В качестве операнда может использоваться численная или булева переменная. В качестве операнда оператора LD может использоваться число.
Отличное от нуля значение аккумулятора интерпретируется как TRUE, нулевое – как FALSE, поэтому значение аккумулятора может быть присвоено как численной, так и булевой переменной.
Пример
VAR VAR_000 : INT := 10; END_VAR
VAR VAR_001 : BOOL := TRUE; END_VAR
VAR VAR_002 : BOOL; END_VAR
LD 8 //result := 8
ST VAR_000 //VAR_000 := 8
ST VAR_002 //VAR_002 := TRUE
LD 0 //result := 0
ST VAR_001 //VAR_001 := FALSE
LD VAR_001 //result := FALSE
ST VAR_002 //VAR_002 := FALSE
ST VAR_000 //VAR_000 := 0
50