- •Содержание
- •5. Элементы языка программирования 66
- •6. Библиотека стандартных функциональных блоков 77
- •Введение
- •Общие сведения
- •Программистская модель плк с300
- •Внешний вид контроллера
- •Модули ввода/вывода
- •Распределение памяти контроллера
- •Программистская модель контроллера.
- •Регистры и флаги
- •Области операндов контроллера
- •Отображение входов и выходов
- •Область данных
- •Область меток
- •Область таймеров
- •Область счётчиков
- •Область периферии
- •Область расширенной периферии
- •Структура и обработка технологических программ
- •Система команд лмк
- •Логические команды
- •Команды присвоения битных операндов
- •Команды опроса битных переменных
- •Команды переходов
- •Команды пересылки
- •Арифметические команды
- •Команды сравнения
- •Логические байтовые и словные команды
- •Байтовые и словные команды сдвига
- •Индексная адресация.
- •Счетчики
- •Команды обработки счётчиков
- •Последовательность программирования счётчика
- •Примеры программирования счётчика
- •U е 5.0 ;Если сработал фотоэлемент на входе e5.0
- •Формат слова уставки счётчика
- •Таймеры
- •Команды обработки таймеров
- •Последовательность программирования таймера
- •Примеры программирования таймера
- •Формат слова уставки таймера
- •Организационные команды
- •Команды вызова, активизации и завершения блоков
- •Команды блокировки, деблокировки, задания допустимой длительности скана
- •Команды структурирования текста
- •Команды обработки канала связи
- •Элементы языка программирования
- •Организационные блоки
- •Особенности прерывания циклической обработки блоками ob2...Ob18
- •Программные блоки
- •Функциональные блоки
- •Формат функциональных блоков
- •Особенности использования формальных параметров
- •Блоки данных
- •Формат и использование блока назначений nb0
- •Комментарии к программе
- •Комментарий к строке
- •Комментарий к операнду
- •Комментарий к элементу цепи ркс и к цепи ркс
- •Библиотека стандартных функциональных блоков
- •Блоки организации связи по каналу “эвм”
- •Блоки обработки системы реального времени
- •Арифметические блоки
- •Блоки обработки модулей расширенной периферии
- •Системные блоки
- •Блоки регулирования
Особенности прерывания циклической обработки блоками ob2...Ob18
Реальный вызов и обработка блоков OB2...OB18 осуществляется не сразу при появлении запроса на прерывание. Анализ наличия прерываний производится на границе блоков (при смене обрабатываемого в циклической программе блока) (см. рис. 7). Анализируются все поступившие запросы, и вызывается организационный блок с высшим приоритетом. Самый высокий приоритет имеет блок с меньшим номером, с увеличением номера блока приоритет убывает. Затем системной программой блокируется обработка прерываний до команды BE вызванного организационного блока, т.е. все вложенные в OB блоки обрабатываются даже при наличии запроса на прерывание, имеющего более высокий приоритет. По окончании обработки вызванного OB прерывания разблокируются, и обрабатывается следующий по приоритету запрос. Продолжение циклической обработки программы происходит только по окончании обслуживания всех запросов на прерывание.
Для сокращения времени реакции на вызов блоков OB2...OB18 необходимо разбивать пользовательскую программу на большее количество программных и функциональных блоков. Время реакции на прерывание для блока с низшим приоритетом увеличивается соответственно на время обработки блоков, имеющих более высокий приоритет. Если выполнение программы по какой-либо причине не должно прерываться, то она должна находиться в одном блоке. Обработку по сообщению можно также блокировать командой AS. В этом случае обработка по сообщению не будет выполняться до команды AF.
(П) – точки прерывания, где может быть вставлена обработка по сообщению или обработка с управлением по времени;
(Н) – начальные и конечные точки обработки программы по сообщению или обработки с управлением по времени.
Рис. 7. Прерывание циклической обработки блоками OB2...OB18.
На примере вызова ОВ13 это выглядит так:
Программные блоки
Для выделения структуры программы пользователя ее можно разделить на отдельные, функционально законченные фрагменты, которые программируются в программных блоках (PB). Программные блоки могут содержать тот же набор команд, что и организационные, но главное их назначение - разделение программы на смысловые куски.
Рис. 8. Организация программы при делении управления по уровням.
Для получения наглядной картины сложной или объемной программы рекомендуется, в свою очередь, разделение программных блоков по уровням управления. На рис. 8 показана структура программы, в которой PB1 и PB2 относятся к более высокому уровню управления по сравнению с программными блоками PB10, PB24, PB23 и функциональному блоку FB10. Самым высоким уровнем обладает организационный блок OB1.
В программе пользователя может быть до 256 программных блоков (PB0...PB255). Размер каждого блока ограничен только общим объемом кассеты пользователя. Управление программному блоку передается при его вызове из другого блока. Программные блоки могут включать в себя весь набор команд логического мнемокода, за исключением команд с формальными параметрами, а также допускают вызов и обработку вложенных блоков (рекомендуется до 8 вложений).