Прочие функции
Прочие встроенные функции, не вошедшие в другие категории.
SIZEOF — Размер данных
Возвращает количество байт, занимаемых переменной или типом данных.
Синтаксис:
size := SIZEOF(variable);
|
Параметры:
variable: переменная любого типа. Имя типа использовать не допускается.
Возвращаемое значение:
INTилиDINT: количество байт
Примеры:
VAR
size_bool : BOOL;
int_var : INT;
dint_var : DINT;
real_var : REAL;
size_int : INT;
size_dint : INT;
size_real : INT;
END_VAR
size_int := SIZEOF(int_var); // size_int = 2 (для INT)
size_dint := SIZEOF(dint_var); // size_dint = 4 (для DINT)
size_real := SIZEOF(real_var); // size_real = 4 (для REAL)
size_bool := SIZEOF(size_bool); // size_bool = 1 (для BOOL)
|
SEL — Мультиплексор
Двухвходовой мультиплексор: возвращает один из двух входных сигналов в зависимости от управляющего сигнала.
Синтаксис:
output := SEL(G, in0, in1);
|
Параметры:
G: управляющий сигнал типаBOOLin0: значение типаT, возвращаемое приG = FALSEin1: значение типаT, возвращаемое приG = TRUE
Возвращаемое значение:
Тип
T(тип параметровin0иin1)
Примеры:
VAR
select : BOOL := FALSE;
value1 : INT := 10;
value2 : INT := 20;
output : INT;
END_VAR
output := SEL(select, value1, value2); // output = 10 (value1)
select := TRUE;
output := SEL(select, value1, value2); // output = 20 (value2)
|
Практический пример:
VAR
auto_mode : BOOL := TRUE;
manual_value : INT := 50;
auto_value : INT := 100;
output_value : INT;
END_VAR
// Выбор значения в зависимости от режима
output_value := SEL(auto_mode, manual_value, auto_value);
// Если auto_mode = FALSE → output_value = 50
// Если auto_mode = TRUE → output_value = 100
|
Примечание
SIZEOFможет использоваться для выделения памяти или контроля размеров структур данных.SELаналогичен тернарному оператору в других языках программирования.Типы
in0иin1должны быть совместимыми.
См. также
Встроенные типы данных - для информации о типах данных.
Операторы языка ST - для информации об условных операторах.