Команды перемещения/логические команды (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT и др.)
6-21
Publication 1756-RM003G-EN-P - June 2003
Пример 1: Каждая из трех инструкций SWPB переставляет байты DINT_1,
используя различные режимы порядка. Стиль отображения – ASCII,
и каждый символ представляет собой один байт. Каждая инструкция
помещает байты в новом порядке в разные приемники (Destination).
Релейная логика
Структурированный текст
SWPB(DINT_1,REVERSE,DINT_1_reverse);
SWPB(DINT_1,WORD,DINT_1_swap_word);
SWPB(DINT_1,HIGHLOW,DINT_1_swap_high_low);
Пример 2: В следующем примере байты в каждом элементе массива меняют свой
порядок следования на обратный. Для проекта RSLogix 5000,
содержащего этот пример, откройте файл Swap_Bytes_in_Array.ACD в
папке RSLogix 5000\Projects\Samples.
1. Инициализируйте теги. Инструкция SIZE находит число
элементов в array и сохраняет это значение в array_length.
Последующая инструкция использует это значение, чтобы
определить, когда процедура совершила действия над всеми
элементами в массиве.
2. Поменяйте порядок следования байтов на обратный в одном
элементе array.
• Инструкция SWPB изменяет порядок следования байтов на
обратный для элемента с номером, указанным значением index.
Например, когда index равен 0, инструкция SWPB совершает
действия над array[0].
• Инструкция ADD выполняет приращение значания index. При
следующем выполнении инструкции SWPB она будет совершать
действия над следующим элементом в array.
3. Определите, совершила ли инструкция SWPB действия над
всеми элементами в массиве.
•Если index меньше, чем число элементов в массиве
(array_length), продолжите выполнение инструкции для
следующего элемента в массиве.
•Если index равен array_length, SWPB совершила действия над
всеми элементами в массиве.