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

Краткий справочник по STL

.pdf
Скачиваний:
937
Добавлен:
16.02.2016
Размер:
4.28 Mб
Скачать

S7-300/400 Система команд

Описание

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

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 <byte> с параметром от 0 до 255

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

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

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

Содержание

12

S7-300/400 Система команд

Описание

Содержание

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

ИЛИ

И_перед_ИЛИ

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

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

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

И

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

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

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

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

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

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

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

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

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

Сбросить_RLO

Установить_RLO

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

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

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

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

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

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

Содержание

13

S7-300/400 Система команд

Описание

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

 

Содержание

 

 

 

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

 

 

 

 

 

 

 

 

Содержание

14

S7-300/400 Система команд

Описание

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

 

 

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

 

 

 

 

 

OM 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

Содержание

15

S7-300/400 Система команд

Описание

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

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

A(

OActivate_Check

OLOGON_off

)

A I 124.1

=START

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

*

-

-

-

-

*

-

*

*

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

-

-

-

-

-

0

-

1

0

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

 

 

 

 

 

 

 

AN OFF

 

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

 

 

APOWER_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,

 

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

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

)

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

Amain_worker // main_worker

=Start_motor

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

*

-

-

-

-

*

-

*

*

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

-

-

-

-

-

0

1

-

0

Содержание

16

S7-300/400 Система команд

Описание

 

 

 

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

 

 

 

Содержание

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

XM 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

Содержание

17

S7-300/400 Система команд

Описание

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

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

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

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

14. Закрывающая_скобка Формат: )

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

 

BR

CC1

CC0

OV

OS

OR

STA

RLO

/FC

Зависит от

-

-

-

-

-

-

-

*

-

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

-

-

-

-

-

Х

1

Х

1

Пример:

 

 

 

 

 

 

 

 

 

A(

 

 

 

 

 

 

 

 

 

OI 124.0

OM 12.3

)

A(

OQ 124.5

OM 12.4

)

A I 124.1 = M 1.7

15. Запись_результата Формат: = <адресуемый бит>

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

Содержание

18

S7-300/400 Система команд

Описание

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

Если же ресурс 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

Зависит от

-

-

-

-

-

-

-

*

-

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

Х

-

-

-

-

-

-

-

-

Содержание

19

S7-300/400 Система команд

Описание

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

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

Содержание

20

S7-300/400 Система команд Описание

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

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, далее команды выполняют обновление буфера автоматически.

Содержание

21