
- •Лекция №1 Введение в интегрированные системы проектирования и управления
- •Лекция №2 Структура асутп на основе scada. Архитектура на примере пп Trace Mode. Понятия и определения.
- •Инструментальная система
- •Исполнительные модули
- •Лекция № 3 Обработка данных в канале Переменные канала
- •Экспоненциальное сглаживание
- •Подавление пиков
- •Контроль шкалы
- •Ограничение скорости изменения
- •Ограничение выходной величины
- •Логическая обработка Анализ на допустимость сочетания
- •Инверсия
- •Предустановка
- •Лекция №5 Языки программирования алгоритмов. Fbd модули
- •Типы входов и выходов
- •Пересчет блоков
- •Язык инструкций (Техно il)
- •Описание языка Техно il
- •Переменные Техно il
- •Входные переменные (I)
- •Выходные переменные (q)
- •Статические переменные (e)
- •Динамические переменные
- •Системные переменные
- •Константы
- •Операнды
- •Функции
- •Операторы циклов, условных и безусловных переходов, условный оператор.
- •Комментарии
- •Лекция № 7 Особенности работы с платами ввода –вывода. Разработка драйвера для платы усо l_card -264 в windows
- •Методика измерения межканального прохождения
- •Установка коэффициента усиления
- •Установка режима подключения сигналов
- •Также имеется возможность установки номера линии прерывания 1конфигурирования работы канала пдп
- •2Общая информация о dll-библиотекАх lcard_ad.Dll и lcard_32.Dll.
- •3Dll-библиотеки в Microsoft Windows.
- •4Использование библиотеки lcard_xx.Dll в программах на Си.
- •5Загрузка управляющей программы для плат l1610, l12xx, l1056, l305.
- •6 Загрузка bios процессора adsp-21xx в плату (loadbios())
- •7Установка базового адреса платы (set_base_address())
Функции
В Техно IL существует два типа функций. Первые из них выполняют вычисления над значением указанного для них операнда и присваивают результат ему же (синус, косинус и т.д.). Если указать два операнда, то функция применяется к значению второго операнда, а результат запишется в первый. Эти функции имеют следующий синтаксис:
<функция> <операнд1> [<операнд2>]
Второй тип – это функции времени.(например TM.SEC - - текущая астрономическая секунда;)Они формируют значение операнда и имеют следующий синтаксис
<операнд1> = <функция>
Метки
могут вставляться перед любой инструкцией программы и предназначены для реализации условных и безусловных переходов и Они не влияют на выполнение инструкций и имеют синтаксис:
Mn:
где
n – номер метки.
При ссылках на метку символ : должен отсутствовать.
Количество меток, для программ типа FB, не больше 5, а ДЛЯ PRG – 40.
Операторы циклов, условных и безусловных переходов, условный оператор.
Операторы безусловных переходов
осуществляет переход на указанную метку, независимо ни от каких условий. синтаксис:
JMP <метка>
вместо JMP использовать обозначение GOTO.
Операторы условных переходов
Техно IL поддерживает три оператора условных переходов. Они имеют следующий синтаксис:
JMPC <метка>
JMPN <метка>
JMPX <метка>
Первый из них осуществляет переход на указанную метку при значении истина переменной CMP, второй – при значении ложь, а последний – значение аккумулятора отличном от 0. Вместо JMP можно писать GOTO.
Условный оператор
синтаксис:
IF
<текст программы>
THEN
<текст программы>
ELSE
<текст программы>
END_IF
Текст программы между словами IF и THEN должен содержать операции, формирующие значение переменной CMP. Она анализируется после выполнения этого фрагмента. В случае истинности выполняется фрагмент программы между THEN и ELSE. В противном случае - между ELSE и END_IF.
Операторы циклов
существует два оператора циклов, оператор с предварительной проверкой завершения цикла и оператор с последующей проверкой завершения цикла.
Первый оператор:
WHILE <операнд>
<текст программы>
END_WHILE
Здесь фрагмент программы между строками начала и конца цикла будет выполняться, пока значение операнда не станет равно 0.
Второй оператор цикла проверяет значения операнда на равенство 0 не в его начале, а в конце цикла.
REPEAT
<текст программы>
UNTIL <операнд>
Для принудительного выхода из цикла служит оператор
BREAK
При его выполнении работа цикла завершается и выполняется следующая после цикла инструкция.
Операторы подстановки имен переменных, обмена с аккумулятором; завершения программы
Оператор #DEFINE
Позволяет использовать в тексте IL-программы любые имена для входных и выходных переменных типа I и Q.
Оператор #DEFINE имеет следующий синтаксис:
#DEFINE <операнд> <name>,
где
операнд – имя переменной в терминах идентификаторов I и Q,
name – мнемоническое имя. В
пример
#define I0 LEVEL
#define Q0 REG
в метапрограммах рассматриваемый оператор не применяется.
Операторы обмена с аккумулятором
Предназначены для обмена данными с переменной result (аккумулятор).
Синтаксис
LD <операнд>
ST <операнд>
LD записывает в аккумулятор значение операнда. ST – копирует значение аккумулятора в указанный операнд.
Оператор завершения программы
оператор предназначен для завершения программы. Имеет следующий синтаксис:
EXIT [1]
Наличие после оператора цифры 1 для программ типа FB является указанием не изменять значения выходов при завершении. В программах типа PRG наличие 1 после оператора EXIT игнорируется.
Операторы обмена с файлами данных; вызова функциональных блоков, работы с таймерами
Операторы обмена с файлами данных
Техно IL позволяет формировать значения переменных типа W, считывая их из файлов, и сохранять их в файлы. Для этого предусмотрены три оператора.
READ <операнд1> <операнд2>
WRITE <операнд1> <операнд2>
PRINT <операнд1> <операнд2>
Оператор READ предназначен для считывания переменных типа W из файла. При выполнении этого оператора считываются переменные, начиная с номера 0 до переменной с номером, заданным в операнд1. Значение второго операнда указывает файл, из которого будут считываться данные. Этот файл должен иметь текстовый формат. Его имя формируется следующим образом:
W<число>.txt ,
где число – значение второго операнда.
Каждая строка файла должна содержать два числа, разделенных пробелом. Первое число – это номер переменной, а второе – ее значение. При выполнении оператора READ переменной присваивается последнее в файле значение с соответствующим номером.
Операторы WRITE и PRINT предназначены для записи значений переменных типа W в файлы. При этом формируются файлы данных в текстовом формате. Формирование имен файлов, формат записи данных в них и назначение операндов соответствуют описанным выше для оператора READ. Отличие оператора WRITE от PRINT заключается в том, что первый из них перед сохранением стирает содержимое указанного файла, а последний дописывает данные в конец файла.
Аргументы <операнд1> и <операнд2> функций READ, WRITE, PRINT имеют диапазон от 0 до 255, если задаются константой. Для того, чтобы задать это значение в больших диапазонах, необходимо использовать дополнительную переменную.
Оператор вызова функциональных блоков
Этот оператор позволяет обратиться к стандартным функциональным блокам, реализованным в языке Техно FBD.
Недоступными для вызова являются блоки из раздела Моделирование, блоки, содержавшие внутренние статические переменные (PID, интегратор и пр.), и блоки логических, арифметических и условных операций, реализованных в Техно IL.
Синтаксис:
CALL <имя блока> <номер блока> (arg_1, …, arg_N)
где
-
имя блока
- название блока, выводимое на функциональных кнопках диалога Меню FBD;
реализация
- номер использования блока в программе.;
arg_1,…, arg_N
- список аргументов. Количество аргументов в списке должно быть равно сумме функциональных входов и выходов блока. Первыми в списке записываются аргументы, связанные с входами блока.
Операторы работы с таймерами
Для управления таймерами и контроля их значения, предусмотрены два оператора.
Первый из них используется для включения таймера и задания ему временной уставки. Он выглядит следующим образом:
SETTMR <операнд1> <операнд2>
Здесь операнд1 задает номер таймера (от 0 до 31), а операнд2 - величину уставки. Значение уставки задается в прерываниях системного таймера.
Второй оператор контролирует превышение значением таймера величины его уставки. Он имеет следующий синтаксис:
CHECKTMR <операнд>
Если значение таймера больше величины уставки, то переменной CMP присваивается значение истина. Номер контролируемого таймера указывается значением операнда.