Прочие функции

Прочие встроенные функции, не вошедшие в другие категории.

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: управляющий сигнал типа BOOL

  • in0: значение типа T, возвращаемое при G = FALSE

  • in1: значение типа 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 должны быть совместимыми.

См. также