Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Системы автоматизации с использованием программируемых логических контроллеров (Г.П. Митин, 2005)

.pdf
Скачиваний:
235
Добавлен:
12.08.2013
Размер:
5.96 Mб
Скачать
el w^^mi^mf:Vimm^^M!yMvf-
i l l mm
IN
N our
mmp i JFILLTHOlinN
EN
И1Х yV

Пример операций сдвига и циклического сдвига

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

Пример операции «Запись значения в таблицу»

13.0

 

LAD

 

 

 

STL

 

AD_T_TBL

LD

13.0

 

 

 

 

 

 

EN

 

ATT VWIOO, VW200

VWIOO -i DATA

 

 

 

 

VW200

TABLE

 

 

 

 

 

 

 

Применение

 

 

 

Перед выполнением операции ATT

После выполнением операции ATT

VWIOO

' \?^4

' TL (макс, количество

 

 

 

TL (макс, количество

VW200

~00б6

1

записей)

VW200

1

0006

записей)

 

 

VW202

0002

 

ЕС (число записей)

VW202

1 0003

ЕС (число записей)

VW204

5431

 

dO (запись 0)

VW204

 

5431

dO (запись 0)

VW206

8942

 

dl (запись 1)

VW206

 

8942

dl (запись 1)

VW208

хххх

1

 

•-^шгоз

 

1234

d2 (запись 2)

VW210

хххх

1

 

VW210

1

хххх

 

VW212

хххх

1

 

VW212

1

хххх

 

VW214

КХХУ

1

 

VW214

 

УШИ

 

 

 

LIFO

 

 

Операция Стирание последней записи в таблице

и

LIFO

(LIFO) стирает последнюю запись в таблице (TABLE)

р

-EN

и выводит значение по адресу DATA. Каждый раз, ко­

 

гда выполняется данная операция, количество записей

 

TABLE

(ЕС) уменьшается на «1».

 

DATA

Операцды TABLE: VW, Т, С, IW, QW, MW,

 

 

SMW, *VD, *АС, SW

\L JJFTFO TABLE, DAT/Щ

DATA: VW, Т, С, IW, QW, MW, SMW, АС, AQW,

 

 

*VD, *АС, SW

Эта операция влияет на специальные маркеры: SML5 устанавливает­ ся в «1», если Вы пытаетесь стереть запись в пустой таблице.

122

 

 

Пример операции LIFO

 

 

 

 

LAD

 

 

STL

 

14.0

EN

LIFO

 

LD 14.0

 

 

1 1

 

 

LIFOVW200,VW300

 

VW200

- TABLE

 

 

 

 

 

 

DATA - VW300

 

 

 

 

 

 

 

Применение

 

 

 

Перед выполнением операции LIFO

После выполнения операции L1FO

i

 

 

TL (макс, число

1-*- VW300

1 1234

TL (макс, число

 

VW200

0006

записей)

VW200

0006

записей)

 

VW202

0003

ЕС (число записей)

VW202

0002

ЕС (число записей)

 

VW204

5431

dO (запись 0)

VW204

5431

dO (запись 0)

 

VW206

8942

dl (запись 1)

VW206

8942

dl (запись !)

 

VW208

1234

d2 (за!1ИГК / J

1 VW208

хххх

 

 

VW210

хххх

 

VW210

хххх

 

 

VW212

хххх

 

VW212

хххх

 

 

VW214

хххх

 

VW2I4

хххх

 

 

FIFO

 

 

Операция Стирание первой записи в таблице

г

 

(FIFO) стирает первую запись в таблице (TABLE) и

FIFO

выводит значение по адресу DATA. Все остальные

EN

записи сдвигаются на одну позицию вверх. Каждый

-TABLE

раз, когда выполняется данная операция, количество

DATA

записей (ЕС) уменьшается на «1».

 

Операнды TABLE: VW, Т, С, IW, QW, MW,

 

 

SMW, *VD, *АС, SW

г JPIFO TABLE, DATA 1

DATA: VW, Т, С, IW, QW, MW, SMW, АС,

 

 

AQW, *VD, *АС, SW

 

 

Эта операция влияет на специальные маркеры: SML5 устанавливает­ ся в «1», если Вы пытаетесь стереть запись в пустой таблице.

123

 

 

Пример операции FIFO

 

 

 

LAD

 

 

 

STL

'f'l

EN FIFO

 

 

LD 14.1

 

1 1

 

 

 

 

FIFO VW200, VW400

VW200

- TABLE

 

 

 

 

 

 

DATA - VW400

 

 

 

 

 

 

 

Применение

 

 

Перед вьшолнением операции FIFO

 

 

После Bbinoj1нения операции F(FO

 

 

TL (макс, число

1 -^

VW400

5431

TL (макс, число

VW200

особ

записей)

1

VW200

0006

записей)

ЕС (число записей)

VW202

0003

ЕС (число записей)

 

VW202

0002

do (запись 0)

VW204

5431

аО(за

 

VW204

8942

VW206

8942

dl (запись и

 

у^206

1234

 

VW208

1234

 

 

VW208

хххх

 

VW2I0

хххх

 

 

VW210

хххх

 

VW2I2

хххх

 

 

VW2I2

хххх

 

VW2I4

хххх

 

 

VW214

хххх

 

 

 

 

Поиск значения в таблице

 

Я

 

 

Операция Поиск значения в таблице просматрива­

 

TBL FIND

ет таблицу (SRC), начиная с записи таблицы, заданной

jllj

EN

параметром

INDX, в поисках значения

данных

SRC

(PATRN), соответствующего заданным критериям =, ^,

 

 

PATRN

< или >.

 

 

 

в LAD параметр CMD задает критерий числовым

 

INDX

 

значением от 1 до 4, что соответствует критерию =, ^,

i l l

 

 

CMD

<или>.

 

 

1 -

 

 

•i JFND=

 

Операнды SRC: VW, Т, С, IW, QW, MW, SMW,

SRC, PATRN. \ |

*VD, *АС, SW

 

1

I F N D O SRC, PATRN. i l

PATRN: VW, Т, С, IW, QW, MW, SMW, АС, AIW,

i

[NDX

|FND<

SRC,PAI'RN, ; |

константа, *VD, *АС, SW

 

 

| F N D >

SRC, PATRN, Щ

INDX: VW, Т, С, IW, QW, MW, SMW, АС, *VD,

 

 

 

 

1

 

*АС, SW

1 (-) 2 {^) 3 (<) 4 (>)

 

 

 

CMD:

 

 

 

 

Если соответствующая запись в таблице найдет­

ся,

то INDX указывает эту запись. Если в таблице нет подходящей записи,

то значение INDX соответствует количеству записей в таблице. Для того,

чтобы искать следующую запись, нужно сначала увеличить INDX

на «1».

Лишь тогда операция может быть вызвана снова.

 

 

Записи в таблице (область, где должен производиться поиск) прону­

мерованы от О до максимального значения. Таблица может содержать мак­ симум 100 записей. Сюда не включены параметры, задающие максималь­ ную длину таблицы и фактическое количество записей в таблице.

124

Если используют операции поиска в таблицах, составленных с помо­ щью операций АТТ, LIFO и FIFO, то количество записей и записи давиых имеют прямое соответствие. В отличие от операций АТТ, LIFO и FIFO, где максимальное количество захшсей задается в слове, операции поиска не ис­ пользуют данное слово. Поэтому операнд SRC операции поиска располага­ ется на один адрес слова (два байта) выше, чем операнд таблицы, соответствующей операции АТТ, LIFO или FIFO, как показано на рис.П.З

Форма! таблицы д,1я ЛТТ, LIFO и FIFO

\Л\'20()

0006

TL (макс, число записей)

VW'2()2

0006

EC (чисю записей)

VW'204

xxxx

do (данные 0)

VW'2()6 - У Х Х У

d1 (данные 1)

VW20«

xxxx

d2 (данные 2)

VW2U)

d3 (данные 3)

VW'212

xxxx

d4 (данные 4)

\r^'2\4

d5 (данные 5)

-JQfiui

 

Фор.маг чаблицы лJ/я TBLFFND

VW2()2

0006

1

ТЬ(макс. число зап.)

VW204

xxxx

1

do (данные 0)

VW206

VYXX

1

dl (датгые 1)

VW208

xxxx

d2 (данные 2)

VW210

xxxx

1

d3 (данные 3)

VW212

xxxx

1

d4 (данные 4)

VW214

..Л£Ш

1

d5 (данные 5)

 

 

Рис.П.З

 

 

 

Пример операции поиска

 

LAD

 

. 12-1

TBL_n/VD

 

ED 12.1

Н I—

EN

Если активизирован 12.1

FND= \'W202,16#3130. ЛГ1

JSRC

TO в таб.пгице ищется

 

\W202

значение, равное

 

I<i#3130

PATRN

ЗПОИЕХ.

 

АС1

InsfDX

 

 

 

1CMD

 

 

Применение

Это таблица, которую Вы просматриваете. Если таблица была со.здана с помошью операции АТТ. LTFO или FIFO, то V>V200 содержит максиматьно доплстимое 'гасло записей и

не требуется для операций поиска.

 

 

 

 

VW202

3133

ЕС (число записей)

 

 

 

 

VW204

dO (запись 0)

 

 

 

 

V\^'206

 

dl (запись 1)

 

 

 

 

VW208

 

d2 (запись 2)

 

 

 

 

VW2iO

3Q3Q

d3 (запись 3)

 

 

 

 

d4 ('*апись 4)

 

 

 

 

VW212

 

 

 

 

 

 

d5 (запись 5)

 

 

 

 

VW214

. i ^ ^

 

 

 

 

 

 

 

 

 

 

 

АС1

1

0

1 АС] н>'жно сбросить в "О", чтобы вести поиск с самой верхней

 

 

 

 

записи таблицы.

 

Прсмотр таблицы

АС1 содержит номер первой записи, соответствующей

АГ1

1

2

1

критерию поиска.

 

 

 

 

 

 

АС.]

1

3

1

Уве:гичить TNDX на " 1" перед просмотром остальных записей

таб.тгацы

 

 

 

 

 

 

 

 

Прсмотр таблицы

АС] содержит номер второй записи, соотвегтствзтощей

АСА

!

4

1

критерию поиска.

 

 

 

 

 

 

ACI

1

5

1

Увеличить TNDX на " 1" перед просмотром остальных записей

таблицы.

 

 

 

 

 

 

 

 

Прсмотр таблицы

АС1 1

6

i

АС1 а1держ>1т значение, соогветствутощее числ>' записей в Tabelle таблице Вся таблица просмотрена, дальнейшие подходящие записи не найдены.

Д1ТЯ. по.'ту'чения возможжкти нового поиска в таблице нужно сбросить значение IMDX в "О".

125

1.10. Стековые операции

Логическое сопряжение через И первого и второго уровней стека

 

Операция Логическое сопряэюение через И пер­

ULD

вого и второго уровней стека логически связывает

через И первый и второй уровни стека. Результат за­

 

гружается в вершину стека. После операции ULD

стек содержит на один бит меньше.

Операнды: нет

 

Логическое сопряжение через ИЛИ первого и второго уровней стека

 

Операция Логическое сопряэюение через ИЛИ

OLD

первого и второго уровней стека логически связы­

вает через ИЛИ первый и второй уровни стека. Ре­

 

 

зультат загружается в вершину стека. После опера­

ции OLD стек содержит на один бит меньше.

Операнды: нет

Дублирование вершины стека

 

шт

Операция Дублирование вершины стека дубли­

рует значение, находящееся в вершине стека, и за­

• 1LPS

гружает его в стек. Самое нижнее значение стека

выталкивается из стека и теряется.

Операнды: нет

Копирование второго значения стека

 

Операция Копирование второго значения сте­

LRD

ка копирует второе значение стека в вершину стека.

В стек ничего не загружается и не выталкивается,

 

 

но предыдущее значение в вершине стека замеща­

ется новым значением.

 

Операнды: нет

 

Выталкивание самого верхнего значения стека

 

Операция Выталкивание самого верхнего зна­

 

чения стека выталкивает самое верхнее значение

 

из стека. Второе значение стека передвигается в

Операнды: нет

вершину стека.

 

126

1

I'LD

 

 

O L D

 

 

Логическое сопряжение чер ез И

 

Логическое сопряжение через ИЛИ

nepuoio и второго

уровней сгека

первого и второю уровней стека

Прежде

 

После

 

Прежде

После

 

awO

 

SO

SO = awO * awl

awO

 

SO

S0 = awO +awl

aw 1

 

aw2

 

aw 1

 

aw 2

 

aw 2

 

aw3

 

aw 2

^

aw3

 

aw3

^

aw4

 

aw3

aw 4

 

aw 4

aw 5

 

aw 4

 

awS

 

aw 5

 

aw6

 

aw 5

 

aw 6

 

aw 6

 

aw7

 

aw 6

 

aw 7

 

aw 7

 

aw8

 

aw 7

 

aw 8

 

aw 8

 

X

 

aw 8

 

X

 

Указан ие: X 03I1ачаег. что значение неизвес! по (оно может быть равно 0" или "1

 

LPS

 

 

LRD

 

 

LPP

Д>'6лированис вершины

Копи юванис второго значения

Выталкивание верхнего

стека

 

 

jTCKa

 

значения стека

Прежде

После

 

Прсждс

После

 

Прежде

После

awO

awO

 

awO

awl

 

awO

awl

aw1

awO

 

aw1

aw1

 

aw1

aw2

aw2

awl

 

aw2

aw2

 

aw2

aw3

aw3

aw2

 

aw3

aw3

 

aw3

aw4

aw4

aw3

 

aw4

aw4

 

aw4

awS

aw5

aw4

 

aw5

aw5

 

aw5

aw6

aw6

aw5

 

aw6

aw6

 

aw6

aw7

aw7

aw6

 

aw7

aw7

 

aw7

aw8

awB

aw7

 

awB

awB

 

awS

X

 

Примеры стековых операций

 

 

 

 

 

NBIWOR

 

 

н>

10.1

 

О5.0

LD

10.0

 

 

 

LD

10.1

 

 

н

 

-i )

 

 

 

OLD

 

 

 

U-1-4VJ

LD

12.0

 

 

 

IJ

12.1

 

 

 

 

=

O5.0

 

 

 

 

 

 

liLD

 

 

1 Network 2

Гнn

NEIWOR

 

 

 

 

 

 

О

10.6

 

 

 

 

 

 

LD

10.0

 

 

 

 

 

 

LPS

 

 

 

 

 

 

LD

10.5

 

 

 

 

 

 

IJLD

 

 

 

 

 

 

=

Q7.0

 

 

 

 

Г)

 

LKD

 

 

 

 

 

LD

12.1

 

 

 

 

 

= O6.0

 

 

 

 

 

 

О

113

 

 

 

 

 

 

liLD

 

 

 

 

 

 

LPP

 

 

 

 

 

 

IJ

11.0

 

 

 

 

 

 

- O3.0

 

 

u i — n

127

1.11. Операции преобразования

 

 

 

Преобразование BCD в целое число

 

 

 

и преобразование целого числа в BCD '

 

 

 

Операция Преобразование BCD в целое число

Г

BCDI

преобразует двоично-десятичное значение (IN) в це­

лочисленное значение и загружает результат в OUT.

EN

 

 

 

Операция Преобразование целого числа в BCD

IN

OUT

преобразует целочисленное значение (IN) в двоично-

 

 

 

 

 

I BCD

десятичное значение и загружает результат в OUT.

 

Операнда:

IN: VW, Т, Z, EW, AW, MW, SMW,

 

EN

 

 

 

 

АС, AEW, константа, *VD, *АС, SW

 

IN

OUT

OUT: VW, Т, Z, EW, AW, MW, SMW, AC, *VD,

п

 

 

*AC, SW

 

 

JBCDJ OUT

Эти операции влияют на следующие специальные

маркеры: SM1.6 (недействительное ВСП--значение)

JIBCD OUT

 

 

Преобразование целого числа

 

 

 

(32 бита)

 

 

 

 

 

в действительное число

 

 

 

 

Операция Преобразование целого числа (32 бита)

 

M_REAL

в действительное число преобразует целое число (32

 

EN

 

бита) со знаком (IN) в действительное число (32 бита)

 

 

 

 

IN

our

(OUT).

 

 

 

 

 

Операнды:

IN:

VD, ED, AD, MD, SMD, AC,

 

DTR IK

our

HC, константа, *VD, *AC, SD

 

OUT: VD, ED, AD, MD, SMD, AC, *VD, *AC, SD

 

 

 

 

Преобразование действительного числа в целое число (32 бита)

 

 

Операция Преобразование действительного чис­

 

 

ла в целое число (32 бита) преобразует действительное

: А

EN

 

число (IN) в целое число (32 бита) (OUT). Преобразу­

р

 

ется только целочисленная часть действительного

 

IN сиг

 

числа (отбрасыванием знаков после десятичной точ­

 

 

 

ки).

 

 

 

 

 

Операнды: IN:

VD, ED, AD, MD, SMD, AC, C,

ft

|TRLJNC IN

сиг константа, VD, *AC

 

OUT: VD, ED, AD, MD, SMD, AC, *VD, *AC Эти операции влргяют на следующие специальные маркеры: SM1.1

(переполнение)

128

Пример преобразования действительного числа

 

 

 

 

 

 

LAD

ТО.О

 

 

 

MOV_DW

 

Н \-

 

 

EN

 

 

Очистка аккумулятора I.

 

 

 

 

 

 

 

 

О

 

jTN

 

OUTI

AC!

 

 

 

 

MOV_W

Значение счетчика

 

 

 

 

(даиттыс в дюймах)

 

 

 

 

EN

 

 

 

 

 

 

 

 

загрузить в аккум>'лятор 1.

 

 

 

 

 

 

 

 

 

СЮ-

TN

 

OUT!

АС1

 

 

 

 

DIREAL

Преобразовать в целое.

 

 

 

 

EN

 

 

 

 

 

 

TN

 

OUTh VDO

 

 

 

 

MUL^R

Умножить iia 2,54, чтобы

 

 

 

 

EN

 

 

 

 

VDO

 

TNI

 

 

выразить в сантиметрах.

 

 

 

 

 

 

 

 

VD4

 

TN2

OUTi

 

 

 

 

 

TRUNC

Снова преобразовать

 

 

 

 

EN

 

 

 

 

 

 

 

 

 

в целое

 

VD8

 

TN

 

OUTh VD12

, тз.о

 

 

 

 

BCD 1

 

Н V

 

 

 

EN

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TN

 

OUTh ACQ

 

 

 

 

 

 

 

Применение

Преобразовать целое (32 бита) в дсйетвитслтлгое и обратно

С Ю

l l 0 1

I

 

C^crtrHjE^IOIi^oftftt

VDO

i

l o r

o

[

 

 

VD4

I

 

2.54

I

Коистапта 2».54 (дгоШм^» см)

VD9

1

256.54

I

256,54 catmtMctpa «s»! ш:^&^ *шат

VI2

1

 

 

256

I

256

 

STL

LD lO.O MOVDO,AC1 MOVWC10,AC1 DTR AC1, VDO MOVR VDO, VD8 *R VD4,VD8 TRUNC VD8,VD12 LD 13.0

BCD!ACO

Прсобразовааь BCD в целое

ACO И 234

BCDl

ACG iQ4D2

Преобразование бита в шестнадцатиричное

число

Операция Преобразование бита в шестнадцати­

щ

 

ричное число устанавливает в выходном слове (OUT)

EN

бит, номер которого (бит #) соответствует тому, кото­

рый представлен младшим полубайтом (4 бита) вход­

 

IN

 

 

ного байта (Ш). Остальные биты выходного слова ус­

 

 

танавливаются в «О»,

V

IPEOO

 

IL

 

DECO

OUT

IN, OUT

129

Соседние файлы в предмете Микроконтроллеры ЭВМ