Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метода S300.doc
Скачиваний:
54
Добавлен:
28.05.2015
Размер:
1.45 Mб
Скачать
    1. Программистская модель контроллера.

В памяти контроллера существует два варианта отображения битов: отображение побитовое и побайтовое. В побайтовом (нераспакованном) отображении все биты записаны подряд в байте, а в побитовом (распакованном) каждый n-ый бит является нулевым битом n-го байта в этой области. Между этими областями существует взаимное соответствие, т.е. если изменяется 1 бит из распакованной области, то в нераспакованной области этот бит находится и также заменяется.

    1. Регистры и флаги

Для обработки программы пользователя в контроллере использован микропроцессор К1810ВМ86 (i80С188EB) с системой команд i80186. Для программиста контроллер представляет собой набор регистров и областей операндов. При использовании языка в форме ЛМК в набор регистров входят следующие элементы:

  • логический битный аккумулятор LA (регистр BL процессора);

  • два шестнадцатиразрядных словных аккумулятора RW1 (регистр AX) и RW2 (регистр DX);

  • два тридцатидвухразрядных вещественных аккумулятора RG1 и RG2 (расположены в памяти по адресам 0FF10H и 0FF14H соответственно);

  • два восьмиразрядных байтных аккумулятора RB1 (регистр BL) и RB2 (регистр BH);

  • регистр флагов F, включающий в себя: флаг нуля ZF, флаг переноса CF, флаг четности PF, флаг знака SF, флаг переполнения OF регистра состояния PSW процессора.

Значение битного аккумулятора LA определяется по значению бита 0 регистра BL: LA = 1, если бит 0 регистра BL равен 1 и LA = 0, если бит 0 регистра BL равен 0. Аккумулятор LA является основным регистром при логической обработке.

Аккумуляторы RW1, RW2 служат для арифметических, многоразрядных логических операций, групповой обработки областей операндов. Это наиболее часто используемые регистры.

Аккумуляторы RG1, RG2 служат для арифметической обработки вещественных чисел. Числа в RG1 и RG2 хранятся и обрабатываются в формате короткого вещественного числа. В этом формате мантисса занимает младшие 23 бита (0…22), смещенный порядок занимает следующие 8 бит (23…30) и знак числа занимает старший бит (31). В коротком вещественном формате могут быть представлены числа из диапазона 1E-38…3E+38 с точностью до шести десятичных цифр.

Аккумуляторы RB1, RB2 введены для обеспечения совместимости со структурой регистров контроллеров С100, С200 и облегчения переноса программ, написанных для С100, С200, в контроллер С300. Как и в С100, С200, в контроллере С300 аккумуляторы LA и RB1 выполнены на одном регистре (BL), поэтому при изменении одного из них изменяется другой, что следует учитывать при их совместном использовании. При разработке программ сразу для С300 не рекомендуется использовать регистры RB1, RB2.

Флаги служат для анализа результатов выполнения арифметических и логических операций.

    1. Области операндов контроллера

Контроллер С300 состоит из центрального блока и блоков расширения (количество блоков расширения – от 0 до 16). Для удобства адресации входов/выходов в отображении введен номер блока n, в котором установлен модуль, содержащий указываемый вход/выход (центральный блок имеет номер 0, блоки расширения имеют номера от 1 до 16, определяемые подключением к модулям связи, см. табл. 2.1.). При обращении к входу (выходу), установленному в центральном блоке, номер 0 (вместо n) можно не указывать.

В контроллере имеются следующие области операндов:

  • отображение входов (nЕх.у; nEBх; nEWx; nEGx);

  • отображение выходов (nAx.у; nABx; nAWx; nAGx);

  • область данных (DRx, DLx, DWx; DWx.y; DGx);

  • область меток (Мх.у; MBx; MWx; MGx);

  • область таймеров (Тх);

  • область счётчиков (Zx);

  • область периферии (PBx);

  • область расширенной периферии (QBx; QWx; QBx.y; QWx.y).

Далее по тексту при упоминании операндов из области отображения входов/выходов всегда будет иметься в виду то, что они относятся к нулевому (центральному) блоку, т.е., к примеру, вместо обозначения nEx.y будет применяться Ex.y.

В пределах одного блока байты нумеруются от 0 до 31 (слова – от 0 до 30, вещественные операнды – от 0 до 28); биты в байте нумеруются от 0 до 7. Адреса отображений входов/выходов в памяти контроллера при организации сети межблочной связи типа “звезда”, в центре которой находится центральный блок с установленными в нем модулями ММС, приведены в таблице 2.6. Диапазон допустимых значений операндов указан в таблице 2.7.

Таблица 2.6: Адреса отображений входов/выходов в памяти контроллера.

Номер блока расширения

Адреса битного отображения входов

Адреса байтно-словного отображения входов

Адреса битного отображения выходов

Адреса байтно-словного отображения выходов

ЦБ

0

20000H…200FFH

2D000H…2D01FH

21100H…211FFH

2D220H…2D23FH

ММС 1:

МБИ 1

1

20100H…201FFH

2D020H…2D03FH

21200H…212FFH

2D240H…2D25FH

МБИ 2

2

20200H…202FFH

2D040H…2D05FH

21300H…213FFH

2D260H…2D27FH

МБИ 3

3

20300H…203FFH

2D060H…2D07FH

21400H…214FFH

2D280H…2D29FH

МБИ 4

4

20400H…204FFH

2D080H…2D09FH

21500H…215FFH

2D2A0H…2D2BFH

ММС 2:

МБИ 1

5

20500H…205FFH

2D0A0H…2D0BFH

21600H…216FFH

2D2C0H…2D2DFH

МБИ 2

6

20600H…206FFH

2D0C0H…2D0DFH

21700H…217FFH

2D2E0H…2D2FFH

МБИ 3

7

20700H…207FFH

2D0E0H…2D0FFH

21800H…218FFH

2D300H…2D31FH

МБИ 4

8

20800H…208FFH

2D100H…2D11FH

21900H…219FFH

2D320H…2D33FH

ММС 3:

МБИ 1

9

20900H…209FFH

2D120H…2D13FH

21A00H…21AFFH

2D340H…2D35FH

МБИ 2

10

20A00H…20AFFH

2D140H…2D15FH

21B00H…21BFFH

2D360H…2D37FH

МБИ 3

11

20B00H…20BFFH

2D160H…2D17FH

21C00H…21CFFH

2D380H…2D39FH

МБИ 4

12

20C00H…20CFFH

2D180H…2D19FH

21D00H…21DFFH

2D3A0H…2D3BFH

ММС 4:

МБИ 1

13

20D00H…20DFFH

2D1A0H…2D1BFH

21E00H…21EFFH

2D3C0H…2D3DFH

МБИ 2

14

20E00H…20EFFH

2D1C0H…2D1DFH

21F00H…21FFFH

2D3E0H…2D3FFH

МБИ 3

15

20F00H…20FFFH

2D1E0H…2D1FFH

22000H…220FFH

2D400H…2D41FH

МБИ 4

16

21000H…210FFH

2D200H…2D21FH

22100H…221FFH

2D420H…2D43FH

Таблица 2.7: Типы операндов и диапазоны допустимых значений.

Операнд

Диапазон допустимых значений операнда

nEx.y

0E0.0…0E31.7; 1E0.0…1E31.7; …; 16E0.0…16E31.7

nAx.y

0A0.0…0A31.7; 1A0.0…1A31.7; …; 16A0.0…16A31.7

nEBx

0EB0…0EB31; 1EB0…1EB31; …; 16EB0…16EB31

nABx

0AB0…0AB31; 1AB0…1AB31; …; 16AB0…16AB31

nEWx

0EW0…0EW30; 1EW0…1EW30; …; 16EW0…16EW30

nAWx

0AW0…0AW30; 1AW0…1AW30; …; 16AW0…16AW30

nEGx

0EG0…0EG28; 1EG0…1EG28; …; 16EG0…16EG28

nAGx

0AG0…0AG28; 1AG0…1AG28; …; 16AG0…16AG28

Mx.y

M0.0…M3007.7

MBx

MB0…MB3007

MWx

MW0…MW3006

MGx

MG0…MG3004

DRx

DR0…DR255

DLx

DL0…DL255

DWx

DW0…DW255

DGx

DG0…DG254

DWx.y

DW0.0…DW255.15

Tx

T0…T511

Zx

Z0…Z511

PBx

PB0…PB31 (байт периферии)

QBx

QB0…QB511

QWx

QW0…QW510

QBx.y

QB0.0…QB511.7

QWx.y

QW0.0…QW510.15

OBn

OB0…OB63 (организационный блок)

PBn

PB0…PB255 (программный блок)

FBn

FB0…FB255 (функциональный блок)

DBn

DB0…DB255 (блок данных)

KTxxx.x

KT0.0…KT999.3 (словная константа в формате уставки таймера, где xxx – количество дискрет:

xxx.0 – дискретность 0,01 с.

xxx.1 – дискретность 0,1 с.

xxx.2 – дискретность 1 с.

xxx.3 – дискретность 10 с.)

KZxxxx

KZ0…KZ4095 (словная константа в формате уставки счётчика)

KHxxxx

KH0…KHFFFF (словная константа в шестнадцатиричном формате)

KFxxxxx

KF-32768…KF32767 (словная знаковая константа в десятичном формате)

KUxxxxx

KU0…KU65535 (словная беззнаковая константа в десятичном формате)

KYxxx,xxx

KY0,0…KY255,255 (словная беззнаковая константа в формате двух десятичных чисел)

KBxxx

KB0…KB255 (байтная беззнаковая константа в десятичном формате)

KXxx

KX0…KXFF (байтная константа в шестнадцатиричном формате)

KC’xx’

байтная (один символ) или словная (два символа) константа в символьном формате

KGx

KG-999999.0…KG0.0…KG999999.0 или KG1.0E-38…KG3.0E38 (вещественная константа)