GETAR - чтение до 4 байт из массива в INTEGER

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

Описание алгоритма.
-
На вход INP передается ссылка на массив (тип данных BYTE, INTEGER или REAL), из которого будут прочитаны байты в количестве CNT (до 4), начиная с элемента INP[OFF].
-
Если параметр SEQ=0 (по умолчанию), порядок следования выбранных в массиве байт не изменяется: байт из элемента INP[OFF] будет скопирован в нулевой (младший) байт параметра OUT, из элемента INP[OFF+1] в первый байт OUT и т.д., как показано на следующем изображении.

-
При необходимости изменения порядка байт в выбранной из массива группе, указывается требуемое значение параметра SEQ: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.
//вызов функционального блока для массива байт:
//INP=[5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
Block.GETAR(INP, 2, 3, 0);
//чтение возвращаемого значения (OUT = 1 643 535) и кода ошибки
OUT := Block.OUT;
FAULT := Block.FAULT;
|
Список возможных ошибок на выходе FAULT.
|
