SETAR - запись в массив до 4 байт из целого числа

Назначение.
Функциональный блок SETAR применяется для записи в массив до 4 байтов из целого числа. Содержимое остальных элементов массива не изменяется.
Состав структурной переменной.
Переменная со структурным типом SETAR будет добавлена в локальный словарь автоматически при добавлении блока в редактор.

Описание алгоритма.
-
На вход VAL передается целое число, состоящее из 4 байт данных, а на вход INP - ссылка на массив байтов.
-
Параметр CNT определяет количество байтов (до 4), значения которых будут скопированы из числа VAL в массив. Отсчет начинается с младшего байта.
-
Если параметр SEQ=0 (по умолчанию), порядок следования выбранных на предыдущем этапе байт не изменяется: нулевой (младший) байт числа VAL будет скопирован в элемент массива INP[OFF], первый байт в элемент INP[OFF+1] и т.д., как показано на следующем изображении.
4. При необходимости изменения порядка выбранных байт, значение параметра SEQ выбирается в зависимости от значения параметра CNT согласно следующей таблице:CNTSEQПорядок байтЗамена байтЗамена слов10Для CNT=1 значение SEQ всегда должно равняться 0210-1 (по умолчанию)--21-0Да-330-1-2 (по умолчанию)--42-1-0Да-450-1-2-3 (по умолчанию)--61-0-3-2Да-72-3-0-1-Да83-2-1-0ДаДаПроцесс копирования байт с изменением их порядка (CNT=3 и SEQ=4) представлен на следующем изображении.
При этом копируемые байты данных с учетом смещения OFF должны умещаться в массив (OFF>=0 и OFF+CNT<=длине массива), иначе возникнет ошибка.
Пример синтаксиса на языке ST.
//вызов функционального блока
Block.SETAR(VAL, INP, OFF, CNT, SEQ);
//чтение кода ошибки
FAULT := Block.FAULT;
|
Список возможных ошибок на выходе FAULT.
|
