Промышленные контроллеры SIMATIC S7-300/400. Описание системы команд - файл S7-3oplist_r.doc

Промышленные контроллеры SIMATIC S7-300/400. Описание системы команд
скачать (195.3 kb.)
Доступные файлы (1):
S7-3oplist_r.doc1017kb.10.02.1999 18:10скачать

S7-3oplist_r.doc

  1   2   3   4   5   6   7   8   9



S I E M E N S



Промышленные контроллеры SIMATIC S7-300/400

Описание_системы_команд


Содержание




Стр.

Вступительное_слово

4

Работа_с_аккумулятором

10

Команды_битовой_логики

13

Команды_сравнения

22

Команды_преобразования

25

Счетчики

33

Команды_для_работы_с_блоками_данных

37

Команды_переходов

39

Команды_загрузки_и_передачи

44

Математика_с_плавающей_точкой

49

Целочисленная_математика

53

Команды_программного_контроля

61

Команды_сдвигов

66

Таймеры

72

Логика_для_WORD_и_DWORD

77

Начало

Вступительное_слово Содержание

Система команд – это тот инструмент, с помощью которого пользователь пишет программу для контроллера. Собственно, речь идет о модуле CPU, который является центральным устройством любого контроллера. Размещенная в энергонезависимой памяти операционная система реального времени дополняет систему команд, предоставляя пользователю множество сервисных функций.

Общее правило состоит в том, что чем старше модель CPU, тем она более производительная, тем больше у нее возможностей.

Рассмотрим области, в которых могут находиться операнды:

Модули цифровых входов/выходов располагаются в адресном пространстве ввода/вывода, начиная с нулевого адреса, и попадают в область отображения. Модули аналоговых сигналов располагаются сразу за отображаемой областью (начало неотображаемой области адресного пространства ввода/вывода, типичным значением является начальный адрес 256)

Размер этой области зависит от максимально возможного числа одновременных1 событий. Старшие модели CPU реагируют на большее число событий, также как и число одновременно обрабатываемых событий у них больше. Суть состоит в том, что для каждой модели CPU в любой момент времени не может возникнуть одновременных событий больше, чем Х (например, для S7-312 IFM Х=2, причем общее число обрабатываемых событий равно 3). С каждым событием жестко связан конкретный организационный блок, то есть ОВ является обработчиком события. Если событие возникло, и пользователь на этапе программирования создал соответствующий ОВ, то возможно управление будет передано этому ОВ. Это произойдет, если приоритет текущего ОВ ниже приоритета вызываемого ОВ.

Содержание

Вступительное_слово

Содержание

Как только ОВ получит управление, он считается активным до того момента, пока не завершится. Каждый активный ОВ имеет свой локальный стек в области локального стека. В этом стеке хранятся временные переменные, как самого ОВ, так и все фактические параметры, локальные переменные функций и функциональных блоков, вызываемых из данного ОВ. Для примера, снова вернемся к модели CPU S7-312 IFM, область локального стека имеет размер 512 байт, что позволяет одновременно открыть только два ОВ, по 256 байт на блок.

Операнды могут принадлежать одному из множества допустимых типов:

Содержание

Вступительное_слово

Содержание

TIME

Интервал [-24d20h31m23s647ms … +24d20h31m23s647ms]

Формат соответствует DINT, единица измерения 1 ms

Пример: T#5h10s

Рассмотрим еще один пример:

T#24d59s999ms  7B99 8A5F h

T# -24s  FFFF A240 h

Небольшое отступление.

Как получить -24 [s]? Ответ:

24 [s] = 5DC0 h [ms] = 00000000 00000000 01011101 11000000 [ms]

Теперь вычитаем 1 и инвертируем, в результате получится:

11111111 11111111 10100010 01000000 = FFFF A240 h. То есть получили -24 [s].

Естественно, обратное преобразование (инвертируем, затем прибавляем 1) позволяет из отрицательного числа получить положительное.

TIME_OF_DAY

Интервал [00:00:00.000 … 23:59:59.999]

Формат соответствует DWORD, единица измерения 1 ms, значение 00:00:00.000 – полночь.

Пример: TOD#00:18:25.207

TOD#07:10:02

Миллисекунды указывать необязательно.

S5TIME – Совместимость_с_серией_S5, длина 1 слово

Интервал [0 ms … 2h46m30s]

Пример: S5T#10ms

S5T#1h15m20s

Рассмотрим более подробно используемый формат:

Напомним общее правило. Адресация слова, двойного слова осуществляется по адресу старшего байта (более значащие разряды), так как он располагается в памяти по младшему адресу.

Биты 15, 14 не используются

Биты 13, 12 определяют базис времени:

Бит 13

Бит 12

Базис времени

В этом случае рабочий диапазон составляет

0

0

0.01 s

[10ms … 9s990ms]

0

1

0.1 s

[100ms … 1m39s900ms]

1

0

1 s

[1s … 16m39s]

1

1

10 s

[10s … 2h46m30s]

Содержание

Вступительное_слово

Содержание

Биты 11, 10, 9, 8 – старшая BCD цифра, определяет число сотен

Биты 7, 6, 5, 4 – средняя BCD цифра, определяет число десятков

Биты 3, 2, 1, 0 – младшая BCD цифра, определяет число единиц

Эти три BCD цифры определяют значение коэффициента в диапазоне [0 … 999]. Зная значения базиса и коэффициента, можно рассчитать заданное время:

ВРЕМЯ := Коэффициент * Базис ;

DATE

Интервал [1990-01-01 … 2168-12-31]

Формат соответствует WORD, единица измерения 1 день, нулевое значение соответствует дате 1990-01-01.

Пример: D#1998-11-23

DATE_AND_TIME

Интервал [1990-01-01/00:00:00.000 … 2089-12-31/23:59:59.999]

Пример: DT#1996-09-15-19:54:15.228

Для записи данных такого типа используются 8 байтов, содержимое представляется в BCD формате. Как Вы помните, старший байт располагается в памяти по младшему адресу.

Значащие разряды

Условный адрес байта

Адрес байта в заголовке ОВ1

Назначение

Диапазон значений

Ст. байт

0

12

Год

[00 … 99], значение 00 соответствует 1990




1

13

Мес

[01 … 12]




2

14

День

[01 … 31]




3

15

Час

[00 … 23]




4

16

Мин

[00 … 59]




5

17

Сек

[00 … 59]




6

18

ms

В данном байте находятся 2 старшие ms, определяя сотни и десятки [00x … 99x]

Мл. байт

7

19

ms

Старшая тетрада задает единицы ms [0 … 9]

Младшая тетрада содержит день недели [1 … 7], значение 1 соответствует Sunday (Воскресенье)

Относительно столбца “Адрес байта в заголовке ОВ1” хотелось бы сделать некоторые пояснения.

Содержание

Вступительное_слово

Содержание

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

Наряду с переменными, в качестве операнда могут использоваться константы:



Константа

Пример

1

Константой является группа символов в ASCII коде

L ‘ABC’

2

2 или 4 байта

L B#(100,12)

L B#(50,8,3,72)

3

BYTE, WORD или DWORD, представленные в 16-ричной системе

L B#16#F7

L W#16#12

L DW#16#EECD03E1

4

WORD или DWORD, представленные в 2-ичной системе

L 2#1000111101010011

L 2#11110000111100001010101011101110

5

Константа типа INT

L -27

6

Константа типа DINT

L L#19346458

7

Константа типа REAL

L -8014.01

8

Константа типа TIME

L T#500ms

L T#1d5h3m21s2ms

9

Константа типа TIME OF DAY

L TOD#12:31:05.314

10

Константа типа S5TIME

L S5T#10ms

11

Константа типа DATE

L D#1996-05-22

12

Указатель на адрес

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

L P#22.1 //Не указывая конкретно в какой области должен

//находиться операнд, сообщается, что этим операндом будет бит,

//расположенный по адресу 22.1

L P#Q22.1 //В отличие от предыдущего примера, в данном

//случае дополнительно сообщается, что операнд будет именно из

//области выходов


Содержание

Вступительное_слово

Содержание

Замечание относительно использования указателя. Если указатель должен указывать на байт, слово или двойное слово, то необходимо задавать адрес байта и номер бита, причем номер бита должен быть равен 0 (L P#124.0). Данное требование обусловлено специфичным форматом адресных регистров.

Приведем несколько примеров адресации:

AN I3.7 //Адресуется входной бит

L MB4 //Загружается в ACCU1 меркерный байт

T QW0 //Передается слово на выход

L PIW258 //Читаем аналоговое значение

OPN DB3 //Открываем блок данных

L DB3.DBB14 //Читаем 14 байт в этом блоке

L DB3.DBX0.5 //Там же читаем 5-тый бит из нулевого байта

Общий формат команды при использовании косвенной адресации:

<команда> YX [адресный регистр, указатель], где Y определяет область нахождения операнда (и его указывать не обязательно), X задает размер операнда (B – байт, W – слово, D – двойное слово). Приведем пример:

L B [AR1, P#8.0]

Данная команда загружает байт в ACCU1. Адрес этого байта представляет собой сумму адресов: адресный регистр AR1 и адрес 8.0. Область, в которой должен находиться операнд, определяется адресным регистром. Например, адресный регистр можно проинициализировать двумя командами:

L P#Q116.0

LAR1 //Таким образом, AR1 будет указывать на область выходов

Еще один пример косвенной адресации:

L MB [AR2, P#12.0]

Второй пример отличается от первого тем, что явно задана область нахождения операнда (байт из области меркеров)

Выше были рассмотрены примеры абсолютной адресации. STEP7 дает пользователю возможность работать с именами. Такая адресация носит название символьной.

В заключение отметим, что SIEMENS постоянно совершенствует свои изделия, поэтому при работе с этим документом следует учитывать фактор старения информации. Обращайтесь за актуальной информацией к официальным партнерам фирмы SIEMENS, либо непосредственно в SIEMENS.

Как в процессе подготовки, так и после завершения работы над документом, мы проверяли его на отсутствие ошибок, неточностей и опечаток. Однако мы не гарантируем полное их отсутствие. Поэтому, во всех неясных случаях советуем обращаться к оригиналу.

Содержание

Работа_с_аккумулятором Содержание

Команды данной группы не зависят и не воздействуют на регистр флагов:

Декремент_Аккумулятора

Инкремент_Аккумулятора

Вталкивание_в_старшие_Аккумуляторы

Выталкивание_из_старших_Аккумуляторов

Загрузка_старших_Аккумуляторов

Разгрузка_старших_Аккумуляторов

Поменять_содержимое_Аккумуляторов

Загрузка_первого_адресного_регистра

Загрузка_второго_адресного_регистра

Холостые_команды

Содержание

Работа_с_аккумулятором

Содержание

1. Декремент_Аккумулятора

Формат: DEC <byte>

Описание. ACCU1_LL :=ACCU1_LL -

2. Инкремент_Аккумулятора

Формат: INC <byte>

Описание. ACCU1_LL :=ACCU1_LL +

3. Вталкивание_в_старшие_Аккумуляторы

Формат: PUSH

Описание. На всех моделях CPU имеется два Аккумулятора, а на нескольких более производительных – четыре. Для случая двух Аккумуляторов выполняется присваивание ACCU2 :=ACCU1. Для четырех Аккумуляторов выполняются три присваивания ACCU4 :=ACCU3, ACCU3 :=ACCU2, ACCU2 :=ACCU1.

4. Выталкивание_из_старших_Аккумуляторов

Формат: POP

Описание. Действие данной команды противоположно предыдущей. В случае двух Аккумуляторов действие состоит в присваивании ACCU1 :=ACCU2. Для четырех Аккумуляторов выполняются три присваивания ACCU1 :=ACCU2, ACCU2 :=ACCU3, ACCU3 :=ACCU4.

5. Загрузка_старших_Аккумуляторов

Формат: ENT

Описание. Данная команда работает только в том случае, если в модуле процессора контроллера имеется четыре аккумулятора. Она загружает старшие Аккумуляторы ACCU4 :=ACCU3, ACCU3 :=ACCU2, ACCU2 и ACCU1 без изменения.

6. Разгрузка_старших_Аккумуляторов

Формат: LEAVE

Описание. Данная команда работает только в том случае, если в модуле процессора контроллера имеется четыре аккумулятора. Она разгружает старшие Аккумуляторы ACCU2 :=ACCU3, ACCU3 :=ACCU4, ACCU1 и ACCU4 без изменения.

7. Поменять_содержимое_Аккумуляторов

Формат: TAK

Описание. Содержимое ACCU1 и ACCU2 меняется местами.

Содержание

Работа_с_аккумулятором

Содержание

8. Загрузка_первого_адресного_регистра

Формат: +AR1, либо +AR1 P#byte.bit

Описание. Сначала рассмотрим команду +AR1. В этом случае берется значение из ACCU1_L. CPU рассматривает его как целое число со знаком в диапазоне от -32768 до +32767, т.е. integer. Выполняется корректное преобразование этого числа в 24-ех битное смещение, которое затем суммируется с содержимым AR1 (осуществляется сложение адресов: адреса из адресного регистра AR1 и полученного смещения). Результирующий адрес сохраняется в AR1.

В команде +AR1 P#byte.bit к содержимому AR1 добавляется содержимое указателя. Таким образом, осуществляется сложение двух адресов: адреса из адресного регистра AR1 и адреса, на который указывает данный указатель. Результирующий адрес сохраняется в AR1.

Замечание. Расширение до 24-ех бит является следствием специфичности формата адресного регистра.

9. Загрузка_второго_адресного_регистра

Формат: +AR2, либо +AR2 P#byte.bit

Описание. Алгоритм работы данной команды аналогичен алгоритму работы предыдущей команды.

10. Холостые_команды

Описание. Существует три холостых команды:

  • Холостая команда BLD с параметром от 0 до 255

  • Холостая команда NOP 0, состоящая из одних нулей

  • Холостая команда NOP 1, состоящая из одних единиц

Иногда они применяются для тестовых целей, иногда для наглядности.

Содержание

Содержание Команды_битовой_логики

ИЛИ

И_перед_ИЛИ

ИЛИ_с_открывающей_скобкой

ИЛИ_с_отрицанием

ИЛИ_с_отрицанием_и_открывающей_скобкой

И

И с_открывающей_скобкой

И с_отрицанием

И с_отрицанием_и_открывающей_скобкой

Исключающее_ИЛИ

Исключающее_ИЛИ_с_открывающей_скобкой

Исключающее_ИЛИ_с_отрицанием

Исключающее_ИЛИ_с_отрицанием_и открывающей скобкой

Закрывающая_скобка

Запись_результата

Сбросить_RLO

Установить_RLO

Инвертировать_RLO

Сохранить_RLO_в_BR

Установить_адресуемый_бит

Сбросить_адресуемый_бит

Зафиксировать_положительный_фронт

Зафиксировать_отрицательный_фронт

Содержание

Команды_битовой_логики

Содержание

1. ИЛИ

O I 1.7 // Или входной бит 1.7 ,

O M 0.1 // или бит 0.1 из области меркерной памяти

= Q 124.3 // Результат записать в выходной бит 124.3




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

*

Воздействует на

-

-

-

-

-

0

Х

Х

1

Команда может адресовать бит из следующих областей: I, Q, M, L, блоки данных, T и C .

2. И_перед_ИЛИ

A "button_1" // Здесь применяется символическая

AN "button_2" // адресация

O

A "motor_N9"

A "motor_N23"

= "pump_N4_Off"






BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

-

-

Воздействует на

-

-

-

-

-

0

Х

-

1

3. ИЛИ_с_открывающей_скобкой

O(

A I 1.0

A I 1.1

)

O M 24.0

ON M 24.1

= M 1.0

Содержание

Команды_битовой_логики

Содержание






BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

*

-

-

-

-

*

-

*

*

Воздействует на

-

-

-

-

-

0

1

-

0

4. ИЛИ_с_отрицанием

ON I 124.0

ON I 124.1

= Q 124.7 // Логическая единица будет записана в Q124.7

// в том случае, если хотя бы на одном из входов присутствует

// логический нуль




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

*

Воздействует на

-

-

-

-

-

0

Х

Х

1

5. ИЛИ_с_отрицанием_и_открывающей_скобкой

ON( // Выполнится функция логического 'И' над

A I 0.7 // I 0.7 и I 0.6 , затем результат инвертируется

A I 0.6 // и участвует в функции логического

) // 'ИЛИ' с операндом M 12.1

O M 12.1

= Q 22.1




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

*

-

-

-

-

*

-

*

*

Воздействует на

-

-

-

-

-

0

1

-

0

6. Логическое_И

A I 124.1

A I 124.7

= Q 124.1




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

*

-

*

*

Воздействует на

-

-

-

-

-

Х

Х

Х

1

Содержание

Команды_битовой_логики

Содержание

7. И_с_открывающей_скобкой

A ERROR_FLAG

A(

O Activate_Check

O LOGON_off

)

A I 124.1

= START






BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

*

-

-

-

-

*

-

*

*

Воздействует на

-

-

-

-

-

0

-

1

0

8. И_с_отрицанием

AN OFF // Выполняется функция логического 'И'

A POWER_ON // над POWER_ON и инверсным значением OFF

= Q 124.1 // Результат записывается в Q 124.1




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

*

-

*

*

Воздействует на

-

-

-

-

-

Х

Х

Х

1

9. И_с_отрицанием_и_открывающей_скобкой

AN( // Выполняется 'ИЛИ' над worker_1 и worker_2,

O worker_1 // затем полученный результат инвертируется и

O worker_2 // далее выполняется логическое ‘И’ над

) // инвертированным результатом и операндом

A main_worker // main_worker

= Start_motor




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

*

-

-

-

-

*

-

*

*

Воздействует на

-

-

-

-

-

0

1

-

0

Содержание
Команды_битовой_логики

Содержание

10. Исключающее_ИЛИ

X I 1.0

X I 1.1

= Q 0.0




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

*

Воздействует на

-

-

-

-

-

0

Х

Х

1

11. Исключающее_ИЛИ_с_открывающей_скобкой

X(

O I 124.0

O I 24.7

)

X I 124.5

= Q 0.0




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

*

-

-

-

-

*

-

*

*

Воздействует на

-

-

-

-

-

0

1

-

1

12. Исключающее_ИЛИ_с_отрицанием

XN I 124.4

X M 1.0

= Q 124.3




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

*

Воздействует на

-

-

-

-

-

0

Х

Х

1

13. Исключающее_ИЛИ_с_отрицанием_и отрывающей скобкой

XN(

A I 124.7

A "Turbo_box"

)

X "Turbo_II"

= "Result"




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

*

-

-

-

-

*

-

*

*

Воздействует на

-

-

-

-

-

0

1

-

0

Содержание

Команды_битовой_логики

Содержание

Итак, три основных логических команды в различных вариантах применения представлены выше. Для них можно сделать следующие обобщающие замечания:

  1. Использование скобок позволяет реализовать сложные логические схемы (до 8-ми уровней вложенности)

  2. Команды с отрицанием отличаются от команд без отрицания только тем, что для участия в логической операции берется не сам операнд, а его инверсное значение (аналогично, инвертируется результат логической схемы, заключенной в скобки)

14. Закрывающая_скобка

Формат: )

Описание. Закрывающей скобке должна предшествовать открывающая скобка, для чего используется одна из следующих команд: O(, ON(, A(, AN(, X( или XN( . Команды битовой логики, находящиеся внутри этих скобок, выполняются "в едином ключе". Закрывающая скобка восстанавливает значение битов BR и OR.




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

-

Воздействует на

-

-

-

-

-

Х

1

Х

1

Пример:

A(

O I 124.0

O M 12.3

)

A(

O Q 124.5

O M 12.4

)

A I 124.1

= M 1.7

15. Запись_результата

Формат: = <адресуемый бит>

Описание. Адресуемый бит может находиться в одной из следующих областей: входы, выходы, локальный стек, меркеры, блок данных. Данная команда зависит от MCR ресурса. Видимо, более частым случаем является ситуация, когда MCR ресурсом не пользуются, тогда в адресуемый бит записывается значение RLO. (Именно в бите RLO содержится результат логической операции)

Содержание

Команды_битовой_логики

Содержание

Если же ресурс MCR в данный момент включен, то в адресуемый бит будет записано текущее значение RLO только в том случае, если бит MA = 1 (вершина стека MCR ресурса), иначе в адресуемый бит запишется нуль.




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

-

Воздействует на

-

-

-

-

-

0

Х

-

0

Пример:

A I 0.1

A I 124.0

= M 2.7 // Выполняем присвоение

16. Сбросить_RLO

Формат: CLR

Описание. Команда CLR сбрасывает бит RLO в '0'.




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

-

-

Воздействует на

-

-

-

-

-

0

0

0

0

17. Установить_RLO

Формат: SET

Описание. Команда SET устанавливает бит RLO в '1'.




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

-

-

Воздействует на

-

-

-

-

-

0

1

1

0

18. Инвертировать_RLO

Формат: NOT

Описание. Команда NOT инвертирует значение бита RLO.




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

*

-

*

-

Воздействует на

-

-

-

-

-

-

1

Х

-

19. Сохранить_RLO_в_BR

Формат: SAVE

Описание. Команда SAVE сохраняет значение бита RLO в бите BR




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

-

Воздействует на

Х

-

-

-

-

-

-

-

-

Содержание

Команды_битовой_логики

Содержание

20. Установить_адресуемый_бит

Формат: S <бит>

Описание. Адресуемый бит может находиться в областях: I, Q, L, M или в блоке данных. Команда S зависит от MCR ресурса. Когда ресурс не используется, адресуемый бит будет установлен, если бит RLO = 1.

Пусть ресурс MCR включен. Тогда, если бит MA = 1 (вершина стека ресурса MCR) и бит RLO = 1, то адресуемый бит будет установлен. Иначе значение адресуемого бита не меняется.




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

-

Воздействует на

-

-

-

-

-

0

Х

-

0

21. Сбросить_адресуемый_бит

Формат: R <бит>

Описание. Адресуемый бит может находиться в областях: I, Q, L, M или в блоке данных. Команда R зависит от MCR ресурса. Когда MCR ресурс не используется, адресуемый бит будет сброшен, если бит RLO = 1.

Пусть ресурс MCR включен. Тогда, если бит MA = 1 (вершина стека ресурса MCR) и бит RLO = 1, то адресуемый бит будет сброшен. Иначе значение адресуемого бита не меняется.




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

-

Воздействует на

-

-

-

-

-

0

Х

-

0

22. Зафиксировать_положительный_фронт

Формат: FP <бит>

Описание. Адресуемый бит может находиться в областях: I, Q, L, M или в блоке данных. Команда FP позволяет обнаружить положительный фронт.

.........

A "Counter"

FP "Buffer"

= "Positive_Front"

.........

Отслеживание положительного фронта выполняется по отношению к Counter. Для обнаружения фронта команде FP требуется вспомогательный бит Buffer. Когда переменная Counter изменит свое логическое состояние с 0 на 1, команда FP зафиксирует положительный фронт и установит бит RLO.




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

-

Воздействует на

-

-

-

-

-

0

Х

Х

1

Содержание

Команды_битовой_логики

Содержание

23. Зафиксировать_отрицательный_фронт

Формат: FN <бит>

Описание. Адресуемый бит может находиться в областях: I, Q, L, M или в блоке данных. Команда FN используется для обнаружения отрицательного фронта.

.........

A "Counter"

FN "Buffer"

= "Negative_Front"

.........

Отслеживание отрицательного фронта выполняется по отношению к Counter. Для обнаружения фронта команде FN требуется вспомогательный бит Buffer. Когда переменная Counter изменит свое логическое состояние с 1 на 0, команда FN зафиксирует отрицательный фронт и установит бит RLO.




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

-

Воздействует на

-

-

-

-

-

0

Х

Х

1

Относительно команд FP и FN следует сделать пояснение по вспомогательному биту. Обе команды рассматривают этот бит как буфер для хранения предыдущего логического состояния контролируемой переменной. Буфер достаточно проинициализировать один раз, например в ОВ100, далее команды выполняют обновление буфера автоматически.

Содержание

Команды_сравнения Содержание

Команды сравнения представлены тремя подгруппами:

Сравнение_длинных_целых_чисел_со_знаком

Сравнение_целых_чисел_со_знаком

Сравнение_вещественных_чисел

Содержание

Команды_сравнения

Содержание

1. Сравнение_длинных_целых_чисел_со_знаком

В эту группу входит шесть команд: ==D , <=D , D , >=D , >D .

Формат: ==D , <=D , , <>D , >=D , >D

Описание. Данные команды сравнивают содержимое ACCU2 с содержимым ACCU1. Содержимое ACCU2 и ACCU1 рассматривается, как long integer 32 бита. Результат сравнения отражается в бите RLO и битах CC1, CC0. У всех команд общий алгоритм работы. Пусть, например, выполняется команда '<=D'. Процессор подставит значение ACCU2 с левой стороны от знака сравнения, а значение ACCU1 подставит вместо 'D', то есть с правой стороны. Бит RLO будет установлен, если результат сравнения истинен, иначе RLO = 0. Биты CC1 и CC0 показывают отношение 'меньше', 'равно' или 'больше' (См. Команды_переходов).




BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

-

-

Воздействует на

-

Х

Х

0

-

0

Х

Х

1
  1   2   3   4   5   6   7   8   9


Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации