
- •1. Общая структура системы trace mode 6
- •2. Инструментальная система
- •3. Языки программирования Trace Mode 6
- •4. Промышленная база данных реального времени
- •4.1. Модификации ис Trace Mode 6
- •4.2. Принцип работы монитора. Канал Trace Mode 6
- •4.3. Исполнительные модули Trace Mode 6
- •4.4. Создание структуры проекта в навигаторе
- •4.5. Узел. Создание и настройка узла
- •4.6. Обеспечение работы распределенных асу
- •4.7. Резервирование
- •4.8. Автопостроение
- •4.9. Архивирование каналов узла
- •4.10. Архивирование каналов проекта
- •4.11. Отчет тревог и генерация сообщений
- •4.12. Файл восстановления
- •4.13. Графический интерфейс оператора
- •4.14. Принципы разработки проекта в ис
- •4.15. Технология разработки проекта в ис
- •4.16. Классификация компонентов
- •4.17. Каналы
- •4.18. Шаблоны
- •4.19. Источники/Приемники
- •4.20. Наборы ресурсов и графические объекты
- •4.21. Последовательные порты
- •4.22. Словари сообщений
- •4.23. Клеммы
- •4.24. Классификация слоев
- •4.25. Классификация узлов
- •4.26. Программирование алгоритмов в Trace Mode 6
- •4.27. Редактирование fbd-программ
- •4.28. Размещение fbd-блоков в рабочем поле редактора
- •4.29. Редактирование диаграммы fbd-блоков
- •4.30. Привязка входов и выходов fbd-диаграммы
- •4.31. Описание fbd блоков
- •5. Описание языка Tehno il
- •5.1. Синтаксис Техно il
- •5.2. Операторы и модификаторы Техно il
- •5.3. Модификаторы Техно il
- •5.4. Операторы обмена с аккумулятором
- •5.5. Логические операторы Техно il
- •5.6. Арифметические операторы Техно il
- •5.7. Операторы сравнения Техно il
- •5.8. Операторы перехода и вызова функции Техно il
- •5.9. Определение переменных и констант
- •5.10. Особенности присвоения значений переменным
- •5.11. Операторы
- •If {выражение} then {последовательность предложений} end_if
- •If {выражение} then {последовательность предложений1}
- •If {выражение1} then {последовательность предложений1}
- •5.12. Операторы определения переменных
- •5.13. Числовые константы
- •5.14. Строковые константы
- •5.15. Особенности вычислений
- •6. Разработка графического интерфейса
- •6.1. Редактор представления данных
- •6.2. Главное меню и панели инструментов рпд
- •6.3. Задание типовых свойств графических элементов
- •6.4. Статические атрибуты графических элементов
- •6.5. Временные атрибуты
- •6.6. Динамизация атрибута графических элементов
- •6.7. Индикация значения
- •6.8. Основная привязка
- •6.9. Динамические свойства
- •6.10. Функции управления графическими элементами
- •6.11. Встроенные графические элементы
5.8. Операторы перехода и вызова функции Техно il
В таблице 5 представлены операторы перехода и вызова функции.
Таблица 5
Синтаксис |
Допустимый модификатор |
Действие |
JMP имя_метки |
C, X |
переход к строке с указанной меткой |
CAL имя_функции(val1, ... valN) |
C, X |
вызов функции или функции-блока |
RET |
C, X |
выход из программы, функции или функции-блока |
Операторы перехода выполняются, если строка с указанной меткой находится в том же программном компоненте.
CAL и CALL являются равнозначными операторами. В круглых скобках через запятую указываются значения, передаваемые в функцию. Между именем функции и круглыми скобками пробел необязателен. Число передаваемых в функцию значений должно быть равно числу аргументов, заданных для этой функции.
При выполнении оператора RET и его разновидностей функция возвращает значение result.
Определены следующие модификации данных операторов:
JMP, CAL, RET – соответственно оператор безусловного перехода, безусловного вызова и безусловного выхода.
JMPX, CALX, RETX – соответственно оператор условного перехода, условного вызова и условного выхода. Инструкция, содержащая любой их этих операторов, выполняется только тогда, когда result=TRUE, в противном случае игнорируется.
JMPC, CALC, RETC – соответственно оператор условного перехода, условного вызова и условного выхода. Эти операторы следуют непосредственно за оператором сравнения. Инструкция, содержащая любой их этих операторов, выполняется только тогда, когда результат предыдущей операции сравнения истинен, в противном случае игнорируется.
5.9. Определение переменных и констант
Вид константы или переменной (глобальная, локальная) задается оператором, с помощью которого данная переменная (константа) определяется. Синтаксис операторов определения переменных предполагает обязательное указание типа данных:
//определение локальной строковой
//переменной myVar
VAR myVar: STRING; END_VAR
Тип данных определяет размер выделяемой памяти. Для указания типа в Техно ST определены следующие ключевые слова (в круглых скобках указано соответствие типу данных C):
BOOL (bool) – булево значение размерностью 1 байт (true (1) или false (0));
SINT (__int8) – целое со знаком размерностью 1 байт (-128 ... 127);
USINT (unsigned __int8) – целое без знака размерностью 1 байт (0 ... 255);
INT (short) – целое со знаком размерностью 2 байта (-32768 ... 32767);
UINT (unsigned short) – целое без знака размерностью 2 байта (0 ... 65535);
DINT (long) – целое со знаком (4 байта) (-2147483648 ... 2147483647);
UDINT (unsigned long) – целое без знака (4 байта) (0 ... 4294967295);
TIME, DATE, TIME_OF_DAY, DATE_AND_TIME – соответствуют DINT. Значения переменных этих типов задаются аналогично соответствующим временным константам;
REAL (float) – вещественное число (4 байта) (максимальное значение 3.402823466e+38);
LREAL (double) – вещественное число (8 байт) (максимальное значение 1.7976931348623158e+308);
STRING (char []) – 256 символов в кодировке UTF-8 (512 байт);
HANDLE – специальный тип, используемый для хранения внешних данных в виде числа, имеет размерность 4 байта, не может быть использован в арифметических, логических и т.п. операциях.
Кроме указанных типов, переменной может быть присвоен структурный тип, созданный пользователем. Такая переменная является конкретным объектом указанного типа.
При определении переменной может быть задано ее значение:
VAR i: INT:=0; END_VAR
Если при определении переменной ее значение не задано, то этой переменной по умолчанию присваивается следующее начальное значение:
– числовая переменная – 0;
– переменная типа BOOL – FALSE;
– переменная типа STRING – пустая строка;
– переменная типа HANDLE – 16#00000000 (0 в формате HEX);
– переменная типа TIME, DATE, TIME_OF_DAY или DATE_AND_TIME – 0.
При определении константы задание ее значения обязательно:
VAR CONSTANT myConst: INT:=13; END_VAR
В отличие от переменной, значение константы в программе изменять нельзя.