Краткий справочник по STL
.pdfS7-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