Файл: Системы автоматизации с использованием программируемых логических контроллеров (Г.П. Митин, 2005).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 1624
Скачиваний: 6
Пример операции дополнения до единицы
LAD |
STL |
|||||
1 14.0 |
EN |
LD 14.0 |
||||
I I |
INVW АСО |
|||||
II |
||||||
АСО |
- IN OUT - А С О |
|||||
Применение |
| |
|||||
Обращение слова |
||||||
АСО 1 llOi 0111 1001 0101 |
1 |
|||||
Обраоювание Д£шсш»евкя до 1 |
||||||
АСО 1 0010 I0OOQ1I0 1010 |
1 |
|||||
1.8. Операции передачи, сдвига и циклического сдвига |
||||||
Передача байта |
||||||
Операция Передача байта передает входной байт |
• |
|||||
(Ш) в выходной байт (OUT). Входной байт при этом |
MOV в |
|||||
не изменяется. |
EN |
|||||
Операнды IN: VB, IB, QB, MB, SMB, AC, кон |
TN OUT |
|||||
станта, *VD, *AC, SB |
ipii |ту1оув |
|||||
OUT: VB, IB, QB, MB, SMB, AC, *VD*AC, SB |
iKoijr |
l| |
||||
Передача слова |
||||||
Операция Передача слова передает входное слово |
— - jENMOV W |
|||||
(IN) в выходное слово (OUT). Входное слово при этом |
ipii |
|||||
не изменяется. |
ipii |
|||||
Операнды IN: VW, Т, С, IW, QW, MW, SMW, АС, |
IN |
OUT |
||||
AIW, константа, VD, *АС, SW |
||||||
OUT: VW, Т, С, IW, QW, MW, SMW, АС, AQW, |
iiiiil [MOVW |
IHOUT |
j l |
|||
*VD, *АС, SW |
I |
ipi |
||||
Передача двойного слова |
I |
|||||
Операция Передача двойного слова передает вход |
||||||
ное двойное слово (IN) в выходное двойное слово |
MOVDW |
|||||
(OUT). Входное двойное слово при этом не изменяется. |
EN |
|||||
Операнды IN: VD, ID, QD, MD, SMD, AC, HC, |
IN |
our |
||||
константа, *VD, *AC, &VB, &IB,&QB, &MB, &T, &C, |
Ipfi |
|||||
&SB, SD |
IMOVD |
lN,OLJT |
:|| |
|||
OUT: VD, ID, QD, MD, SMD, AC, *VD, *AC, SD |
plii |
|||||
iiii |
||||||
113
Передача действительного числа |
||||
Ml |
Ш:т:йу^ШШШ^тШ:т^ШШ^>А |
Операция Передача действительного числа пе |
||
MOVR |
редает входное действительное число (двойное слово |
|||
Щп |
||||
EN |
||||
Ipi |
32 бита) (IN) в выходное двойное слово (OUT). Вход |
|||
IN OUT |
ное двойное слово при этом не изменяется. |
|||
Операнды IN: VD, ID, QD, MD, SMD, AC, HC, |
||||
константа, *VD, *AC,SD |
||||
i 1]^^!Ш^ЖШ1._....М |
OUT: VD, ID, QD, MD, SMD, AC, *VD, *AC, SD |
|||
ш1 |
||||
Блочная передача байтов |
||
Ш^ШШШШл:шШтШШ:Шт-Ш |
Операция Блочная передача байтов передает за |
|
ilii |
BLKMOV_B |
данное количество байтов (N) из входного массива, |
начинающегося с IN, в выходной массив, начинаю |
||
IN |
щейся с OUT. N может лежать в диапазоне от 1 до |
|
255. |
||
N OLTT
Ipi J™B.iHajT,N
•$LKMOV_W
EN
HTN
-IN |
o u r |
lBMw.m,oirr,N..,
rEN IN
Операнды IN, OUT: VB, IB, QB, MB, SMB, *VD, *AC, SB
N:VB, IB, QB, MB, SMB, AC, константа, *VD, II *AC, SB
Блочная передача слов
Операция Блочная передача слов передает задан ное количество слов (N) из входного массива, начи нающегося с IN, в выходной массив, начинающийся с OUT. N может лежать в диапазоне от 1 до 255.
Операнды: IN, OUT: VW, Т, С, IW, QW, MW, SMW, AIW,*VD, *АС, SW
N: VB, IB, QB, MB, SMB, AC, константа, *VD, *AC, SB
Обмен байтов в слове
Операция Обмен байтов в слове меняет места ми старший и младший байты в слове (IN).
Операнды: IN: VW, Т, С, IW, QW, MW, SMW, SW,AC, *VD, *АС, SW
w fsWAP IN ft 1
114
Пример операций передачи и обмена
12.1 |
MOV_B |
LD |
12.1 |
|||||||||
И |
1 |
EN |
MOVB |
VB50,A(:0 |
||||||||
1 |
SWAP |
A( 0 |
||||||||||
VB5() |
- IN |
ni П |
||||||||||
SWAP |
||||||||||||
EN |
||||||||||||
Ас:« |
~ IN |
|||||||||||
Применение |
||||||||||||
Передача |
Обмек бай'1«и в слове |
|||||||||||
liiiiiE3l |
ЛСО |Р6СЗ |
I |
||||||||||
liBilEQl |
АСй |СЗР6 |
[ |
||||||||||
Пример операции блочной передачи |
||||||||||||
1 |
LAD |
STL |
||||||||||
1 |
1LKMOy_B |
Исрсдача массива 1 (VB20- |
LD 12.1 |
|||||||||
I I |
EN |
УВ23)вмассив2 |
ВМВ |
VB20,VB100,4 |
||||||||
(VB100-VB103) |
||||||||||||
м |
||||||||||||
VB20 - IN |
||||||||||||
1 |
N |
OiJi- " VB100 |
||||||||||
^ ~ |
||||||||||||
Применение |
||||||||||||
ушй |
увз1 |
уш1 |
уваэ |
|||||||||
массйм |
ШЗ |
с ю |
СзЦ] 1,33,J |
|||||||||
УВ1Ш |
УЩШ |
V i | 0 2 |
У В Ш |
|||||||||
Массив! |
1 30 [ |
1 31 [ |
1 32 1 |
] 33 |
1 |
|||||||
Ввод значения в регистр сдвига |
I |
|||||||||||
Операция Ввод значения в регистр сдвига вводит |
||||||||||||
значение DATA в регистр сдвига. S_BIT задает млад |
SHRB |
|||||||||||
ший бит регистра сдвига, N показывает длину регистра |
EN |
|||||||||||
сдвига и направление, в котором происходит сдвиг |
DATA |
|||||||||||
(положительный |
сдвиг |
= N, |
отрицательный |
сдвиг = |
S BIT |
|||||||
-N). |
||||||||||||
1 " |
||||||||||||
Операнды DATA, S_BIT: I, Q, М, SM, Т, С, V, S |
N |
|||||||||||
N: VB, IB, QB, MB, SMB, AC, константа, *VD, |
ipli |
|||||||||||
*AC, SB |
iii [SHRB DATA, S_BIT, N Щ |
|||||||||||
Описание операции «Ввод значения в регистр сдвига»
Операция «Ввод значения в регистр сдвига» предоставляет простой способ упорядочивания потока изделий или данных и управления ими, С помощью операции «Ввод значения в регистр сдвига» можно один раз за цикл сдвигать на один бит весь регистр сдвига. Регистр сдвига определяет ся младшим битом (S_BIT) и количеством битов, задаваемых длиной (N).
Адрес старшего бита в регистре сдвига (MSB.b) можно вычислить с помощью следующего уравнения:
MSB.b =[(байт, включающий S_BIT) + ([N] - 1 + (номер бита S__BIT в байте)) / 8]. [остаток от деления на 8]
Вы должны вычесть один бит, так как SBIT принадлежит к битам регистра сдвига.
Пример: Если S_BIT - V33.4 и N = 14, то MSB.b = V35.1 или:
MSB.b = V33 + ([14] - 1 +4)/8 = V33 + 17/8 = V33 + 2 с остатком от деления 1 = V35.1
При отрицательной функции сдвига, отображаемой отрицательным значением длины (N), входные данные (DATA) вводятся в старший бит ре гистра сдвига. Младший бит (S_BIT) выводится из регистра сдвига.
При положительной функции сдвига, отображаемой положительным значением длины (N), входные данные (DATA) вводятся в младший бит регистра сдвига, отображаемый через (SBIT). Старший бит выводится из регистра сдвЕта.
«Выдвигаемые» данные записываются в маркер переполнения (SM1.1). Регистр сдвига имеет максимальную длину 64 бита (положитель ную или отрицательную). На рис.П,2 показаны функции сдвига с положи тельным и отрицательным значениями длины N.
i
i S BIT |
ыт |
i S BiT |
"Г— |
к |
1 |
|о 1 |
||||||
V33 |
1? |
|-*— |
|||||||
V34 |
-, 1 |
. |
L |
' |
1 |
1 |
=П71—1 |
||
V |
" |
|о 1 |
1 |
1 f^ "* |
] |
Q U#««J |
|||
V55 |
7 1 |
Ы^ |
V35 |
|7 1 |
1 |
||||
f |
MSB р&пяегра сдвига |
||||||||
MSB |)ешст|)8 сдййга |
|||||||||
Рис.П.2
116
Пример операции ''Ввод значения в регистр сдвига"
LAD |
STL |
И"?-) Р EN |
EU |
SHRB |
LD Г0.2 |
SHRB 10.3, VI 00.0,4 |
|
E0.3-J DATA |
|
VI 00.0 |
8_ВГТ |
4 |
|
Импульсная диаграмма
10.2г
Парастагоший фронт (Р) |
|||||||
10.3 |
Пфвая опсрття сдвига |
Вторая операция сдвига |
|||||
MSB |
LSB |
||||||
Перед первой |
О |
S_BIT |
|||||
VI00 |
|о |
li |
h — Г0.3 |
||||
операцией сдвига |
|||||||
псрсполпсгше (SM1.1) |
^ |
||||||
После первой |
VI00 ' |
— г — I — I — 1 |
^-^^'^ |
||||
операции сдвига |
1 |
|o |
|l |
|l |
]-*—10.3 |
||
псрсполпсиие (SMISMl.l) |
fol |
||||||
После второй |
VI00 |
- Г — I — I — Г — 1 |
^-"^^^ |
||||
операции сдвига |
|o |
|i |
|i |
|o |
H — ГО.З |
||
~Ъ |
|||||||
ncpeno.TiieiiHe(SMl. 1 |
|||||||
Сдвиг слова вправо и сдвиг слова влево
Операции Сдвиг слова вправо и Сдвиг слова влево сдвигают значение слова (IN) на величину сдвига (N) вправо или влево и загружают результат
в выходное слово (OUT). |
|||
Операнды IN: VW, Т, С, IW, MW, SMW, АС, |
|||
QW,AQW, константа, *VD, *АС, SW |
SHR W |
||
N: VB, IB, QB, MB, SMB, AC, константа, *VD, |
EN |
||
*AC, SB |
1 IN |
||
OUT: VW, T, C, IW, QW, MW, SMW, AC,*VD, |
|||
*AC, SW |
N OUT |
||
Эти операции сдвига заполняют места "выдвигае |
SHL W |
||
EN |
|||
мых" битов нулями. |
- IN |
||
Если величина сдвига (N) больше или равна 16 |
N |
OUT |
|
(слово), то значение сдвигается максимум 16 раз. Если |
|||
величина сдвига больше нуля, то маркер переполнения |
|||
принимает значение «выдвигаемого» бита. |
SRW |
()UT,N |
Щ |
Операции «Сдвиг слова вправо» и «Сдвиг слова |
JSLW |
OUT, N |
i |
влево» не учитывают знака. |
1 |
||
117