RLO. Результат логической операции
Бит 1 слова состояния называется битом RLO (RLO означает «result of logic operation [результат логической операции). Этот бит хранит результат битовой логической операции или операции сравнения. Например, вторая команда в цепи битовых логических команд опрашивает состояние сигнала операнда и дает результат 1 или 0. Затем эта команда логически сопрягает этот результат со значением, хранящимся в бите RLO слова состояния в соответствии с правилами булевой логики. Результат этой логической операции сохраняется в бите RLO слова состояния, заменяя предыдущее значение бита RLO. Каждая последующая команда в цепи выполняет логическую операцию с двумя значениями: результатом, полученным при опросе командой операнда, и текущим значением RLO. Вы можете устанавливать RLO в 1 безусловно с помощью команды SET; вы можете сбрасывать RLO в 0 безусловно с помощью команды CLR. Вы можете использовать булеву битовую логическую команду при первичном опросе для присваивания RLO состояния содержимого ячейки битовой памяти. Вы можете использовать RLO для запуска команд перехода.
STA. Бит состояния
Бит состояния (бит STA) сохраняет значение бита, к которому происходит обращение. Состояние битовой команды, которая имеет доступ к памяти на чтение (A, AN, O, ON, X, XN), всегда равно значению бита, опрашиваемого этой командой (т.е. бита, с которым она выполняет логическую операцию). Состояние битовой команды, которая имеет доступ к памяти на запись (S, R, =), равно значению бита, в который команда производит запись, или, если запись не производится, то оно равно значению бита, к которому команда обращается. Бит состояния не имеет значения для битовых команд, не обращающихся к памяти. Такие команды устанавливают бит состояния в 1 (STA=1). Бит состояния не опрашивается командой. Он интерпретируется только при тестировании программы (статус программы).
Бит OR
Бит OR необходим, если вы используете команду O при выполнении логического И перед операцией ИЛИ. Функция И может содержать следующие команды: A, AN A(, AN(, ) и NOT. Бит OR показывает этим командам, что ранее выполненная функция И дала значение 1, предвосхищая тем самым результат логической операции ИЛИ. Любая другая команда, обрабатывающая биты, сбрасывает бит OR .
OV. Бит переполнения
Бит переполнения (бит OV) указывает на ошибку. Он устанавливается арифметической командой или командой сравнения чисел с плавающей точкой
60
после возникновения ошибки (переполнение, недопустимая операция, недопустимое число с плавающей точкой). Этот бит устанавливается в соответствии с результатом следующей арифметической команды или команды сравнения.
OS. Бит сохраняемого переполнения
Бит сохраняемого переполнения (бит OS) устанавливается вместе сбитом OV, когда происходит ошибка. Так как бит OS остается установленным после устранения ошибки, то он сохраняет состояние бита OV и указывает, появлялась ли ошибка в одной из ранее выполненных команд. Следующие команды сбрасывают бит OS: JOS (переход после сохраняемого переполнения), команды вызова блока и команды конца блока.
CC1 и CC0. Код условия 1 и код условия 0
Биты CC 1 и CC 0 (коды условий) предоставляют информацию о следующих результатах или битах:
•Результат арифметической операции;
•Результат операции сравнения;
•Результат цифровой операции;
•Биты, выдвинутые командой сдвига или циклического сдвига.
Символическое имя
Таблица 2–3 показывает, как использовать символическое имя в качестве операнда команды. Вы можете использовать символические имена в операторах AWL только после того, как вы их описали: глобальные символические имена должны быть введены в таблицу символов, а локальные имена – в блок.
|
|
Табл. 2-3. |
|
Оператор |
Описание |
||
Команда |
Операнд |
||
|
|||
A |
Motor.On |
Выполнить логическую операцию И с битом, |
|
|
|
имеющим символическое имя «Motor.On». В |
|
|
|
этом примере символическое имя «Motor.On» |
|
|
|
может представлять только один бит из |
|
|
|
области памяти блока данных (D) или элемент |
|
|
|
структуры «MOTOR». |
|
L |
SPEED |
Загрузить значение в виде байта, слова или |
|
|
|
двойного слова с символическим именем |
|
|
|
SPEED в аккумулятор 1. |
|
61
Блок данных и адрес в блоке данных
Таблица 2–4 показывает, как использовать блок данных и адрес в этом блоке данных в качестве операнда команды.
|
|
Табл. 2-4. |
|
Оператор |
Описание |
||
Команда |
Операнд |
||
|
|||
L |
DB4.DBD10 |
Загрузить двойное слово данных DBD10 из |
|
|
|
блока данных DB4 в аккумулятор 1. |
|
A |
SPEED |
Выполнить логическую операцию И с битом |
|
|
|
данных DBX4.3 из блока данных DB10. |
|
Таблица 2–5 показывает, как использовать функцию (FC), функциональный блок (FB), встроенную системную функцию (SFC), встроенный системный функциональный блок (SFB) и номер функции или функционального блока в качестве операнда команды.
|
|
Табл. 2-5. |
|
Оператор |
Описание |
||
Команда |
Операнд |
||
|
|||
CALL |
FB10, DB10 |
Вызвать функциональный блок FB10 с |
|
|
|
экземплярным блоком данных DB10. |
|
CALL |
SFC43 |
Вызвать встроенную системную функцию |
|
|
|
SFC43. |
|
Идентификаторы операндов
Некоторые операнды включают в себя идентификатор операнда и адрес внутри области памяти, указанной в идентификаторе операнда.
Идентификатор операнда может быть одного из следующих трех основных типов:
•Идентификатор операнда, указывающий область памяти и размер объекта данных в этой области следующим образом:
♦Область памяти, в которой команда находит значение (объект данных), с которым она должна выполнить операцию (например, «I» для области входов образа процесса);
♦Размер значения (объекта данных), с которым команда должна выполнить операцию (например, B для «байта,» W для «слова» и D
для «двойного слова»), Примеры: A I 0.0
L IB 10
TMB [MD10].
•Идентификатор операнда, который указывает область памяти, но не
62
указывает размер объекта данных в этой области (например, идентификатор, указывающий область T для «таймера», C для «счетчика» или DB или DI для «блока данных» плюс номер этого таймера, счетчика или блока данных;
Примеры: OPN DB10 SP T 7.
•Идентификатор операнда, который указывает размер объекта данных, но не область памяти. Область памяти закодирована в адресе, который следует за идентификатором операнда, например: A [AR1, P#4.3].
Работа со словом или двойным словом как с объектом данных
При работе с командой, идентификатор операнда которой задает область памяти программируемого логического контроллера, и с объектом данных, который по размеру является словом или двойным словом, то вы должны знать, что на адрес памяти всегда ссылаются как на адрес байта. Этот адрес байта является номером самого старшего байта слова или двойного слова, но при этом имеет наименьшее значение адреса. Например, операнд оператора L MD10, обращается к четырем следующим друг за другом байтам в области памяти M, начинающимся байтом 10 (MB10) и заканчивающимся байтом 13 (MB13).
15 |
MW 10 |
0 15 |
0 |
|
|
MW 12 |
MB 10 |
|
MB 11 |
MB 12 |
|
MB 13 |
|
|
|
MW 11 |
|
|
|
|
31 . . . |
16 |
15 . |
. . |
0 |
||
MD 10
Области памяти и их функции
Большинство операндов в AWL обращаются к областям памяти. В следующей таблице перечислены области памяти и описаны функции каждой области.
Табл. 2.6.
Имя |
Функция области |
Доступ к области |
Сокра- |
|
через единицы |
щение |
|||
области |
||||
|
следующего размера: |
|
||
|
|
|
||
Вход |
В начале цикла сканирования операционная |
Входной бит |
I |
|
образа |
система считывает входы из процесса и |
Входной байт |
IB |
|
процесса |
записывает эти значения в эту область. |
Входное слово |
IW |
|
|
Программа может использовать эти |
Входное двойное |
ID |
|
|
значения при циклической обработке. |
|||
|
слово |
|
||
|
|
|
63
Имя |
|
Доступ к области |
Сокра- |
|
Функция области |
через единицы |
щение |
||
области |
||||
|
следующего размера: |
|
||
|
|
|
||
Выход |
При выполнении цикла сканирования |
Выходной бит |
Q |
|
образа |
программа рассчитывает выходные зна- |
Выходной байт |
QB |
|
процесса |
чения и помещает их в эту область. В конце |
Выходное слово |
QW |
|
|
цикла сканирования операционная система |
Выходное двойное |
QD |
|
|
считывает рассчитанные выходные |
|||
|
слово |
|
||
|
значения из этой области и передает их на |
|
||
|
выходы процесса. |
|
|
|
Битовая |
Эта область предоставляет место для |
Бит памяти (меркер) |
M |
|
память |
хранения промежуточных результатов, |
Байт памяти |
MB |
|
|
рассчитанных в программе. |
(меркерный байт) |
|
|
|
|
|
||
|
|
Слово памяти |
MW |
|
|
|
(меркерное слово) |
|
|
|
|
Двойное слово |
MD |
|
|
|
памяти (двойное |
|
|
|
|
меркерное слово) |
|
|
Перифе- |
Эта область обеспечивает прямой доступ |
Периферийный |
PIB |
|
рия: |
программе пользователя к модулям ввода и |
входной байт |
|
|
внешний |
вывода (т.е., к периферийным входам и |
Периферийное |
PIW |
|
вход |
выходам). |
входное слово |
|
|
|
PID |
|||
|
|
Периферийное |
||
|
|
входное двойное |
|
|
|
|
слово |
|
|
Перифе- |
|
Периферийный |
PQB |
|
рия: |
|
выходной байт |
|
|
внешний |
|
Периферийное |
PQW |
|
выход |
|
выходное слово |
|
|
|
|
Периферийное |
PQD |
|
|
|
выходное двойное |
|
|
|
|
слово |
|
|
|
|
|
|
|
Таймеры |
Таймеры – это функциональные элементы |
Таймер (T) |
T |
|
|
программирования на AWL. Эта область |
|
|
|
|
предоставляет место для хранения |
|
|
|
|
таймерных ячеек. В этой области генератор |
|
|
|
|
тактовых импульсов обращается к ячейкам |
|
|
|
|
времени, чтобы обновить их путем |
|
|
|
|
уменьшения значения времени, а таймерные |
|
|
|
|
команды получают доступ к ячейкам |
|
|
|
|
времени. |
|
|
|
Счетчики |
Счетчики – это функциональные элементы |
Счетчик (C) |
C |
|
|
программирования на AWL. Эта область |
|
|
|
|
предоставляет место для хранения |
|
|
64