Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:SCADA система Trace Mode 6. Учебное пособие
.pdf
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-anddrop (выделить вход/выход блока, нажать ЛК на изображении этого
входа/выхода и, удерживая кнопку нажатой, переместить курсор на
изображение выхода/входа другого блока, после чего кнопку
отпустить). Созданная связь обозначается на диаграмме линией.
Блоки можно перемещать на другие участки рабочего поля 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
