Файл: Системы автоматизации с использованием программируемых логических контроллеров (Г.П. Митин, 2005).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 1619
Скачиваний: 6
Эти операции влияют на специальные маркеры: SM1.0 (нуль); SMl.l (переполнение)
Сдвиг двойного слова вправо и влево ' |
||||
ШШ!^^ШШШШШШУШ |
Операции Сдвиг двойного слова вправо и Сдвиг |
|||
• |
Ш |
|||
SHR |
DW |
двойного слова влево сдвигают значение двойного сло |
||
EN |
- |
ва (ЕЧ) на величину сдвига (N) вправо или влево и |
||
IN |
||||
1 - |
загружают результат в выходное двойное слово |
|||
N |
our |
(OUT). |
||
Операнды: IN: VD, Ш, QD, MD, SMD, АС, НС, |
||||
SHL |
DW |
константа, *VD, *АС, SD |
||
LN |
- |
N: VB, Ю, QB, MB, SMB, АС, константа, *VD, |
||
IN |
*АС, SB |
|||
N |
our |
OUT: VD, ID, QD, MD, SMD, AC, *VD, *AC, SD |
||
Эти операции сдвига заполняют места «выдви |
||||
шIsRDW 01J'1-,N |
||||
гаемых» битов нулями. |
||||
Если величина сдвига (N) больше или равна 32 |
||||
(ill JSLDW OUI',N |
(двойное слово), то значение сдвигается максимум 32 |
|||
раза. Если величина сдвига больше нуля, то маркер |
||||
переполнения принимает значение «выдвигаемого» бита. |
||||
Операции «Сдвиг двойного слова вправо» и «Сдвиг двойного слова влево» не учитывают знака.
Эти операции влияют на специальные маркеры: SM1.0 (нуль); SM1.1 (переполнение)
Циклический сдвиг слова вправо и влево ' |
||
Операции Циклический сдвиг слова вправо и Цик |
||
лический сдвиг слова влево циклически сдвигают зна |
||
чение слова (IN) на величину сдвш а (N) вправо или |
||
4 |
влево и загружают результат в выходное слово (OUT). |
|
Операнды IN: VW, Т, С, IW, MW, SMW, АС, |
||
QW,AIW, константа, *VD, *АС, SW |
||
N: VB, ГО, QB, MB, SMB, AC, константа, *VD, |
||
*АС, SB |
||
OUT: VW, T, C, IW, QW, MW, SMW, AC, *VD, |
||
*AC, SW |
||
Если величина сдвига (N) больше или равна 16 |
||
RRW |
01Я,Н |
(слово), то перед циклическим сдвигом выполняется |
RLW |
OUT,N |
операция по модулю 16. Отсюда получается величина |
сдвига в диапазоне от О до 15, Если величина сдвига |
равна нулю, то циклический сдвиг не происходит. Если циклический сдвиг происходит, то значение циклически «выдвигаемого» бита копируется в маркер переполнения.
118
Операции «Циклический сдвиг слова вправо» и «Циклический сдвиг слова влево» не учитывают знака.
Эти операции влияют на специальные маркеры: SM1.0 (нуль); SM1.1 (переполнение)
Циклический сдвиг двойного слова вправо и влево |
||||||
Операции Циклический сдвиг двойного слова впра |
1 |
|||||
во и Циклический сдвиг двойного слова влево цикличе |
ROR DW |
|||||
ски сдаигают значение даойного слова (IN) на величи |
LN |
- |
||||
ну сдвига (ТЧ) вправо или влево и загружают результат |
- |
IN |
||||
в выходное двойное слово (OUT). |
||||||
Операнда! IN: VD, ID, QD, MD, SMD, AC, HC, |
N |
OUJ" |
||||
константа, *VD, *AC, SD |
ROL DW |
|||||
N: VB, IB, QB, MB, SMB, AC, константа, *VD, |
IN |
|||||
*AC, SB |
||||||
OUT: VD, ID, QD, MD, SMD, AC, *VD, *AC, SD |
N |
GUI |
||||
Если величина сдаига (N) больше или равна 32 |
шшм-шш(/>тш}<<-хш^шщ |
|||||
(двойное слово), то перед циклическим сдвигом вы |
||||||
RRD |
0U'1;N |
1 |
||||
полняется операция по модулю 32. Отсюда получается |
||||||
RLD |
Oi;r,N |
1 |
||||
величина сдаига в диапазоне от О до 31. Если величина I |
||||||
сдвига равна нулю, то циклический сдаиг не происходат. Если циклический сдвиг происходит, то значение циклически «выдаигаемого» бита копируется в маркер переполнения.
Операции «Циклический сдвиг двойного слова вправо» и «Цикличе ский сдвиг двойного слова влево» не учитывают знака.
Эт^и операции влияют на специальные маркеры: SM1.0 (нуль); SM1.1 (переполнение)
119
Пример операций сдвига и циклического сдвига
14.0 |
1 |
ROR W |
LD 14.0 |
||||||
1 |
1-N |
RRW |
AGO, 2 |
||||||
1 |
1 |
- IN |
SLW |
VW200,3 |
|||||
АСО |
|||||||||
2 |
- N |
OlJil • ACO |
|||||||
SHL |
W j |
||||||||
L-N |
" |
||||||||
VW200 |
- IN |
||||||||
3 |
- N |
our |
|||||||
Применение |
|||||||||
Циклический сдвиг |
Сдвиг |
||||||||
i {ярсд садайто>г |
|||||||||
ACfi |
0100 0000 0000 0001 |
VW300 |
11110 00101010 1101 |
||||||
11<эбш? первюга тшхлнчсского |
яспис |
||||||||
ACO - H I |
010 0000 0000 оооо"Н"*{П |
vwioe |
1000101 0101 101(i |
- Щ ] |
|||||
11ЬШЗ Bf0|ЮШ |
J tC|lCTKMb |
||||||||
ГШКЯ»*!£!СЖШЧ> <Щ11йГа |
itcnite |
nctrac |
|||||||
АО) |
01010000 0000 0000 И М ( П |
vw^oe |
iQOO 1010 1011 oiod |
^-^9^ |
|||||
{}flq*tc TpcTbvJra с^«йг» |
ггсггий |
||||||||
чп |
|||||||||
vwaoo*—I |
0001 oioi 0110 looflj |
||||||||
Заполнение памяти битовой комбинацией
Операция Заполнение памяти битовой комбина цией заполняет область памяти, начинающейся с вы ходного слова OUT, битовой комбинацией входного слова IN для заданного количества слов N. N может лежать в диапазоне от 1 до 255.
Операнды IN: VW, Т, С, IW, QW, MW, SMW, AIW, константа, *VD, *АС, SW
OUT: VW, Т, С, IW, QW, MW, SMW, AQW,*VD, *АС, SW
N: VB, IB, QB, MB, SMB, AC, константа, *VD, *AC, SB
120
Пример заполнения памяти битовой комбинацией
LAD |
STL |
|||||||||
12.1 |
FILL N |
Сбросить |
LD 12.1 |
|||||||
^ 1 1Г |
||||||||||
EN |
VW200 - V |
FILL 0,VW200,10 |
||||||||
0 |
- IN |
|||||||||
10 |
- N OUT |
VW200 |
||||||||
Применение |
||||||||||
заггисать ^ память |
||||||||||
VW2&0 |
VW202 |
VW21g |
||||||||
I 0 |
[ I 0 |
II - |
0 |
|||||||
1.9. Табличные операции и операции поиска |
||||||||||
Запись значения в таблицу |
||||||||||
Операция Запись значения в таблицу вносит зна |
п |
|||||||||
чения слов (DATA) в таблицу (TABLE) |
AD Т TBL |
|||||||||
Операнды DATA: VW, Т, С, IW, QW, MW, SMW, |
LN |
|||||||||
- DMA |
||||||||||
АС, AIW, константа, *VD, *АС, SW |
||||||||||
TABLE: VW, Т, С, IW, QW, MW, SMW, |
*VD, |
lABLL |
||||||||
*АС, SW |
||||||||||
Первое значение в таблице задает максимальную |
V |
1|ЛГ1 |
||||||||
длину таблицы (TL). Второе значение задает количе |
DA гл. lABLli i |
|||||||||
ство записей в таблице (ЕС). Новые данные добавля |
г |
\ |
||||||||
ются в таблице после последней записи. Каждый раз, когда записываются новые данные, количество записей увеличивается на «1». Таблица может содержать максимум 100 записей, исключая параметры, задающие макси мальную длину таблицы и фактическое количество записей.
Эта операция влияет на специальные маркеры: SM1.4 устанавливает ся в «1», если Вы пытаетесь записать в таблицу слишком много значений.
121