- •Содержание
- •5. Элементы языка программирования 66
- •6. Библиотека стандартных функциональных блоков 77
- •Введение
- •Общие сведения
- •Программистская модель плк с300
- •Внешний вид контроллера
- •Модули ввода/вывода
- •Распределение памяти контроллера
- •Программистская модель контроллера.
- •Регистры и флаги
- •Области операндов контроллера
- •Отображение входов и выходов
- •Область данных
- •Область меток
- •Область таймеров
- •Область счётчиков
- •Область периферии
- •Область расширенной периферии
- •Структура и обработка технологических программ
- •Система команд лмк
- •Логические команды
- •Команды присвоения битных операндов
- •Команды опроса битных переменных
- •Команды переходов
- •Команды пересылки
- •Арифметические команды
- •Команды сравнения
- •Логические байтовые и словные команды
- •Байтовые и словные команды сдвига
- •Индексная адресация.
- •Счетчики
- •Команды обработки счётчиков
- •Последовательность программирования счётчика
- •Примеры программирования счётчика
- •U е 5.0 ;Если сработал фотоэлемент на входе e5.0
- •Формат слова уставки счётчика
- •Таймеры
- •Команды обработки таймеров
- •Последовательность программирования таймера
- •Примеры программирования таймера
- •Формат слова уставки таймера
- •Организационные команды
- •Команды вызова, активизации и завершения блоков
- •Команды блокировки, деблокировки, задания допустимой длительности скана
- •Команды структурирования текста
- •Команды обработки канала связи
- •Элементы языка программирования
- •Организационные блоки
- •Особенности прерывания циклической обработки блоками ob2...Ob18
- •Программные блоки
- •Функциональные блоки
- •Формат функциональных блоков
- •Особенности использования формальных параметров
- •Блоки данных
- •Формат и использование блока назначений nb0
- •Комментарии к программе
- •Комментарий к строке
- •Комментарий к операнду
- •Комментарий к элементу цепи ркс и к цепи ркс
- •Библиотека стандартных функциональных блоков
- •Блоки организации связи по каналу “эвм”
- •Блоки обработки системы реального времени
- •Арифметические блоки
- •Блоки обработки модулей расширенной периферии
- •Системные блоки
- •Блоки регулирования
Логические байтовые и словные команды
Эти команды позволяют проводить логическую обработку многоразрядных операндов. Команды, работающие с байтовыми аккумуляторами RB1 и RB2, введены для совместимости с системой команд контроллеров С100, С200 и не рекомендуются к использованию в новых программах.
1) UW - логическое поразрядное умножение аккумуляторов RW1 и RW2.
Формат команды: UW.
Выполняется побитная функция И аккумуляторов RW1 и RW2. Результат помещается в RW1. Если результат равен 0, то флаг ZF устанавливается в 1, иначе сбрасывается в 0. Флаги CF, OF сбрасываются в 0. Команда изменяет аккумулятор RW1 и флаги ZF, CF, SF, PF, OF. Команда “заканчивает опрос”.
2) OW - логическое поразрядное сложение аккумуляторов RW1 и RW2.
Формат команды: OW.
Выполняется побитная функция ИЛИ аккумуляторов RW1 и RW2. Результат помещается в RW1. Если результат равен 0, то флаг ZF устанавливается в 1, иначе сбрасывается в 0. Флаги CF, OF сбрасываются в 0. Команда изменяет аккумулятор RW1 и флаги ZF, CF, SF, PF, OF. Команда “заканчивает опрос”.
3) XOW - логическое поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ RW1 и RW2.
Формат команды: XOW.
Выполняется побитная функция ИСКЛЮЧАЮЩЕЕ ИЛИ (сложение по модулю 2) аккумуляторов RW1 и RW2. Результат помещается в RW1. Если результат равен 0, то флаг ZF устанавливается в 1, иначе сбрасывается в 0. Флаги CF, OF сбрасываются в 0. Команда изменяет аккумулятор RW1 и флаги ZF, CF, SF, PF, OF. Команда “заканчивает опрос”.
4) KEW - инвертирование аккумулятора RW1.
Формат команды: KEW.
Каждый бит аккумулятора RW1 инвертируется и помещается в RW1. Команда изменяет аккумулятор RW1. Команда “заканчивает опрос”.
5) UB - логическое поразрядное умножение аккумуляторов RB1 и RB2.
Формат команды: UB.
Выполняется побитная функция И аккумуляторов RB1 и RB2. Результат помещается в RB1. Если результат равен 0, то флаг ZF устанавливается в 1, иначе сбрасывается в 0. Флаги CF, OF сбрасываются в 0. Команда изменяет аккумулятор RB1 и флаги ZF, CF, SF, PF, OF. Команда “заканчивает опрос”.
6) OB - логическое поразрядное сложение аккумуляторов RB1 и RB2.
Формат команды: OB.
Выполняется побитная функция ИЛИ аккумуляторов RB1 и RB2. Результат помещается в RB1. Если результат равен 0, то флаг ZF устанавливается в 1, иначе сбрасывается в 0. Флаги CF, OF сбрасываются в 0. Команда изменяет аккумулятор RB1 и флаги ZF, CF, SF, PF, OF. Команда “заканчивает опрос”.
7) XOB - логическое поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ RB1 и RB2.
Формат команды: XOB.
Выполняется побитная функция ИСКЛЮЧАЮЩЕЕ ИЛИ (сложение по модулю 2) аккумуляторов RB1 и RB2. Результат помещается в RB1. Если результат равен 0, то флаг ZF устанавливается в 1, иначе сбрасывается в 0. Флаги CF, OF сбрасываются в 0. Команда изменяет аккумулятор RB1 и флаги ZF, CF, SF, PF, OF. Команда “заканчивает опрос”.
8) KEB - инвертирование аккумулятора RB1.
Формат команды: KEB.
Каждый бит аккумулятора RB1 инвертируется и помещается в RB1. Команда изменяет аккумуляторы RB1 и LA. Команда “заканчивает опрос”.
Байтовые и словные команды сдвига
Команды сдвига осуществляют арифметический и циклический сдвиги аккумуляторов.
1) SRW - арифметический сдвиг аккумулятора RW1 вправо.
Формат команды:
SRW - арифметический сдвиг аккумулятора RW1 вправо на 1 бит;
SRW n - арифметический сдвиг аккумулятора RW1 вправо на n бит; где n = 0...255.
Аккумулятор RW1 сдвигается на один (или n) бит вправо с обнулением левого (или n левых) бита/битов. Последний выдвинутый бит переносится во флаг CF. Команда изменяет аккумулятор RW1 и флаг CF. Команда “заканчивает опрос”.
2) SLW - арифметический сдвиг аккумулятора RW1 влево.
Формат команды:
SLW - арифметический сдвиг аккумулятора RW1 влево на 1 бит;
SLW n - арифметический сдвиг аккумулятора RW1 влево на n бит, где n = 0...255.
Аккумулятор RW1 сдвигается на один (или n) бит влево с обнулением правого (или n правых) бита/битов. Последний выдвинутый бит переносится во флаг CF. Команда изменяет аккумулятор RW1 и флаг CF. Команда “заканчивает опрос”.
3) RRW - циклический сдвиг аккумулятора RW1 вправо.
Формат команды: RRW n, где: n = 0...255.
Аккумулятор RW1 сдвигается на n бит вправо. Выдвигаемые вправо биты переносятся в левые биты. Последний выдвинутый вправо бит переносится также и в CF. Команда изменяет аккумулятор RW1 и флаг CF. Команда “заканчивает опрос”.
4) RLW - циклический сдвиг аккумулятора RW1 влево.
Формат команды: RLW n, где: n = 0...255.
Аккумулятор RW1 сдвигается на n бит влево. Выдвигаемые влево биты переносятся в правые биты. Последний выдвинутый влево бит переносится также и в CF. Команда изменяет аккумулятор RW1 и флаг CF. Команда “заканчивает опрос”.
5) SRB - арифметический сдвиг аккумулятора RB1 вправо.
Формат команды: SRB.
Аккумулятор RB1 сдвигается на один бит вправо с обнулением левого бита. Выдвигаемый вправо бит переносится во флаг CF. Команда изменяет аккумуляторы LA, RB1 и флаг CF. Команда “заканчивает опрос”.
6) SLB - арифметический сдвиг аккумулятора RB1 вправо.
Формат команды: SLB.
Аккумулятор RB1 сдвигается на один бит влево с обнулением правого бита. Выдвигаемый влево бит переносится во флаг CF. Команда изменяет аккумуляторы LA, RB1 и флаг CF. Команда “заканчивает опрос”.
7) RRC - циклический сдвиг аккумулятора RB1 вправо.
Формат команды: RRC.
Аккумулятор RB1 сдвигается вправо на один бит. Выдвигаемый вправо бит переносится в левый (старший) бит и, одновременно, в CF. Команда изменяет аккумуляторы LA, RB1 и флаг CF. Команда “заканчивает опрос”.
8) RLC - циклический сдвиг аккумулятора RB1 влево.
Формат команды: RLC.
Аккумулятор RB1 сдвигается влево на один бит. Выдвигаемый влево бит переносится в правый (младший) бит и, одновременно, в CF. Команда изменяет аккумуляторы LA, RB1 и флаг CF. Команда “заканчивает опрос”.