Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
gerasimov_a_v_titovcev_a_s_scada_sistema_trace_...doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
1.43 Mб
Скачать

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

В отличие от переменной, значение константы в программе изменять нельзя.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]