Файл: Системы реального времени.docx

Добавлен: 13.02.2019

Просмотров: 1471

Скачиваний: 17

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

1) Основные понятия и определения систем реального времени. Применения СРВ на различных областях народного хозяйства. Понятие систем жесткого и мягкого реального времени.

СРВ — это система, правильность функционирования которой зависит от логической корректности вычислений, и от времени, за которое эти вычисления производятся. Система работает в реальном времени, если ее быстродействие обработки данных и генерирования управляющих сигналов адекватно скорости протекания физических процессов на объектах контроля или управления. Быстродействие системы реального времени больше, при большей скорости протекания процессов на объекте управления.

Принято различать системы мягкого и жесткого реального времени. В системе жёсткого реального времени обработка событий происходит строго за предусмотренное время, большее считается фатальной ошибкой. Примерами могут быть бортовые системы управления (на самолёте, космическом корабле), системы аварийной защиты.

Системами мягкого реального времени называются системы, не успевающие решать задачу, но это не приводит к отказу системы в целом (все не относящиеся к жестким).

Применяются:

  • в промышленности, включая системы управления технологическими процессами, системы промышленной автоматизации, SCADA-системы, испытательное и измерительное оборудование, робототехнику.

  • в медицине (томографию, оборудование для радиотерапии, прикроватное мониторирование).

  • встроены в периферийных устройствах (лазерные принтеры, сканеры, цифровые камеры, маршрутизаторы, системы для видеоконференций, мобильные телефоны, микроволновые печи, музыкальные центры, кондиционеры, системы безопасности)

  • на транспорте (в бортовых компьютерах, системах регулирования уличного движения, управлении воздушного движения, аэрокосмической технике, системе бронирования билетов)

  • в военной технике: системах наведения ракет, противоракетных системах, системах спутникового слежения.


2) Системы реального времени на базе операционных систем реального времени. Архитектура операционных систем реального времени. Планировщик задач. Интервал времени реакции.

В случае использования промышленных компьютеров, а также бортовых систем управления для создания программного обеспечения применяют операционные системы реального времени (ОС РВ). Примерами операционных систем реального времени являются QNX, OS-9, OS Lynx, VxWorks и т.д.(около 100).


Рис. 1.1. Типы архитектур операционных систем


Современные процессоры поддерживают два режима выполнения программного кода:

«режим ядра» - имеет доступ ко всем ресурсам ЭВМ – ко внешним устройствам, к оперативной памяти по физическим адресам и пр.

«Режим приложений» - работает в виртуальной среде, сформированный программами режима ядра.


Все компоненты «монолитной» ОС работают в режиме ядра в едином адресном пространстве. Главное достоинство таких ОС – высокая производительность. Недостатки – невозможность внесения изменений в структуру ОС(плохая масштабируемость) и невысокая реакция на внешние события (обработка этого события задерживается до возвращения на уровень приложений).

Особенность «микроядерных» ОС – наличие быстродействующего «микроядра», работающего в режиме ядра, а все остальные компоненты ОС работают в режиме приложений. Хорошая гибкость и масштабируемость ОС, малое время реакции на внешние события. Такие ОС отличаются относительно невысокой производительностью, т.к. при работе происходят частые переключения из режима в режим. В микроядерной архитектуре все услуги для прикладного приложения микроядро обеспечивает, отсылая сообщения соответствующим сервисам (драйверам, серверам) — другим процессам, которые, выполняются не в пространстве ядра (а в пользовательском кольце защиты).

Для примера микроядро QNX всего 8 Кбайт! Дело в том, что ядро управляет только разделением времени между процессами и передачей сообщений. Даже управление процессами и распределение ресурсов для процессов осуществляется отдельным процессом, который так и называется — менеджер процессов.

Планировщик ОС РВ, в отличии от ОС общего назначения(которые по истечении каждого кванта времени просматривает очередь активных процессов и принимает решение, кому передать управление, основываясь на приоритетах процессов), имеют возможность сменить процесс до истечения непрерывного кванта времени ("time slice"), если в этом возникла необходимость. Они не могут используется алгоритм круговой диспетчеризации в чистом виде, из-за того, что в течение непрерывного кванта времени, процессором владеет только один процесс. ОС РВ отличаются богатством различных алгоритмов планирования, цель одна - предоставить инструмент, позволяющий в нужный момент времени исполнять именно тот процесс, который необходим.

Интервал времени реакции – от возникновения запроса на прерывание и до выполнения первой инструкции обработчика определяется целиком свойствами операционной системы и архитектурой компьютера. Интервалы времени реакции для различных ОС РВ приблизительно находится в пределах 5 мкс.


3) Создание систем реального времени на базе ПЛК. Упрощенная схема работы ПЛК. Цикл контроллера. Время реакции на событие.


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

П О состоит из двух частей: системное ПО и пользовательская программа. Системное программное обеспечение –управляет работой узлов контроллера, отвечает за организацию связи по сети.





Как видно, рабочий цикл ПЛК включает 3 фазы:

1) ПЛК производит физическое чтение входов. Прочитанные значения размещаются в ОП контроллера в области памяти входов. Таким образом, создается полная одномоментная копия значений входов. Значения входов в процессе выполнения пользовательской программы не изменяются в пределах одного рабочего цикла.

2) Выполняется код пользовательской программы (работает с копиями значений входов и выходов, размещенными в оперативной памяти)

3 ) Устанавливаются физические выходы ПЛК в соответствие с расчетными значениями. Именно в этот момент происходят переключения/изменения положения исполнительных механизмов.

Время реакции на событие зависит от времени выполнения одного цикла прикладной программы. Определение времени реакции– от момента события до момента выдачи управляющего сигнала. Для уменьшения времени реакции в контроллерах используются циклические и аппаратные прерывания, обработчики прерываний для инициализации системы при первом запуске, для диагностирования и т.п.

Контроль времени рабочего цикла осуществляется при поддержке аппаратно реализованного «сторожевого таймера». Если фаза пользовательского кода выполняется дольше установленного порога, то ее работа будет прервана и цикл работы контроллера принудительно начнется заново. Таким образом, достигается предсказуемое поведение ПЛК при ошибках в программе и при «зависании» по причине аппаратных сбоев.

4) Обзор языков программирования промышленных контроллеров: LD, FBD, IL, ST, SFC.

В 1993 году был принят стандарт МЭК 61131-3, он устанавливает пять языков программирования ПЛК, три графических и два текстовых:

1. Релейно-контактные схемы, или релейные диаграммы (LD - Ladder Diagram);

2. Диаграммы функциональных блоков (FBD - Function Block Diagram);

3. Список инструкций IL - Instruction List).

4. Структурированный текст (ST - Structured Text);

5. Последовательные функциональные схемы (SFC - Sequential Function Chart);

Язык LD – язык релейно-контактных схем. Графический язык релейной логики появился в виде электрических схем, которые состояли из контактов и обмоток электромагнитных реле.

Рис. Программа включения двигателя на языке LD

Язык LD проблематично использовать для реализации сложных алгоритмов, т.к. он не поддерживает подпрограммы, функции и другие средства структурирования программ с целью повышения качества программирования. В него были добавлены функциональные блоки, которые выполняли операции сложения, умножения, вычисления среднего и т.д. Сложные вычисления в этом языке невозможны. Недостатком является - при программировании на мониторе компьютера умещается только маленькая часть программы.

Язык FBD – Диаграммы функциональных блоков

FBD является графическим языком для программирования процессов прохождения сигналов через логические и функциональные блоки. Функциональные блоки представляют собой фрагменты программ, написанных на IL, SFC или других языках, которые могут быть многократно использованы в разных частях программы и которым соответствует


графическое изображение, принятое при разработке функциональных схем электронных устройств. Рис. Программа включения двигателя на языке FBD


Я зык IL – Список инструкций - используется для реализации функций, функциональных блоков и программ, а также шагов и переходов в языке SFC. Язык используется, когда требуется получить оптимизированный код для реализации критических секций программы, а также для решения небольших задач с малым количеством разветвлений алгоритма. На листинге 1 представлен фрагмент кода на языке IL.В основе языка лежит понятие аккумулятора и переходов по меткам. Начинается программа с загрузки в аккумулятор значения переменной. Дальнейшие шаги программы состоят в выполнении содержимым аккумулятора различных действий (их в языке всего 24).


Я зык ST – Структурированный текст - является текстовым языком высокого и разработан специально для программирования ПЛК. Он содержит множество конструкций для присвоения значений переменным, для вызова функций и функциональных блоков, для написания выражений условных переходов, выбора операторов, для построения итерационных процессов. Этот язык предназначен в основном для выполнения сложных математических вычислений, описания сложных функций, функциональных блоков и программ.


Язык SFC – Последовательные функциональные схемы - по сути это не язык, а вспомогательное средство для структурирования программ. Он предназначен специально для программирования последовательности выполнения действий системой управления, когда эти действия должны быть выполнены в заданные моменты времени или при наступлении некоторых событий. Язык SFC предназначен для описания этапов выполнения процесса.






5) Создание проекта TIA Portal. Конфигурирование аппаратной части системы управления. Выбор контроллера для системы управления. Выбор источника питания и модулей ввода/вывода. Системная память контроллера S7-300.

Для создания нового проекта выполните команду Project/New. При этом появляется окно создания нового проекта. В этом окне введите имя проекта, при необходимости путь для сохранения проекта и нажмите на кнопку Create. При этом создается новый проект и появляется пустое окно проекта.

В ыбор контроллера для системы управления - Для выбора управляющего контроллера выберите вид Project view и в дереве проектов выполните двойной щелчок на строке Add new device. В левой части окна выберите узел Controllers. Из этого каталога выберите контроллер модели CPU 315-2 PN/DP с заказным номером 6ES7 315-2EH13-0AB0, введите имя контроллера S7-300 Master и нажмите на кнопку ОК.

Выбор источника питания и модулей ввода/вывода. Откройте панель Hardware catalog (в правой части окна TIA Portal). Установите флажок Filter в каталоге устройств.Теперь с помощью мыши перетаскивайте источник питания PS 307 5A с заказным номером 6ES7 307-1EA01-0AA0 на первый слот монтажной рейки. Заметим, что при перетаскивании устройства из каталога разрешенные слоты монтажной рейки выделяются с синей границей. Далее на слот 4 перетаскивайте модуль дискретного ввода DI32 x 24VDC / 0.5 A с заказным номером 6ES7 321-1BH02-0AA0, а на слот 5 перетаскивайте модуль дискретного вывода DO32 x 24VDC / 0.5 A с заказным номером 6ES7 322-1BL00-0AA0.


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

I – входы,Q – выходы,M – маркеры,C – счетчики,T – таймеры.


6) Основы разработки программы на языке LAD. Программа нереверсивного запуска асинхронного двигателя. Создание тегов проекта. Просмотр работы программ в помощью симулятора. Просмотр кода программы в режиме мониторинга.


Программа нереверсивного запуска асинхронного двигателя

электрическая схема нереверсивного запуска асинхронного двигателя содержит следующих кнопок и исполнительных устройств:

кнопка Стоп;

кнопка Пуск;

реле для запуска асинхронного двигателя.

Создание тегов проекта

Для создания тегов → Project viewProgram BlocksPLC tags.

К ак видно, для хранения имен тегов пока имеется только одна таблица: Default tag table. Двойным щелчком мыши откройте эту таблицу и введите имен тегов и их физических адресов, как это указано на рисунке 4.1.

Создание программного кода

Program blocks OB1 окно кода этого блока. Теперь в окне кода организационного блока ОВ1 введите код на языке релейно-контактных схем (LAD). Для создания разветвления после кнопки Стоп используйте кнопку , а для замыкания разветвления после кнопки Пуск используйте кнопку .

Для компиляцииCompile/Hardware and software. При этом проект компилируется и если нет ошибок, то выводит сообщение об отсутствии ошибок и предупреждений. Для быстрой отладки и просмотра результата работы программы контроллера выполните команду Start simulation. При этом открывается окно симулятора. Для загрузки PLC–проекта в симулятор выполните команду Download to device/Hardware and software. При первой загрузке проекта появляется окно, где следует выбрать интерфейс (MPI) и устройство, через которое программа записывается в контроллер. Теперь для загрузки проекта в симулятор нажмите на кнопку Load.

Для запуска выполнения программы в окне симулятора установите флажок RUN-P

1. Кнопка Стоп должна быть нормально замкнутым, поэтому вход I0.1 установите на 1.

2. Для включения асинхронного двигателя нажмите на кнопку Пуск (установите вход I0.0). При этом выход Q0.0 установится, т.е. реле включает асинхронный двигатель.

3. Теперь если даже отпустить кнопку Пуск, то выход Q0.0 все равно остается включенным (благодаря, параллельно включенному контакту Q0.0).

4. Для выключения асинхронного двигателя нажмите на кнопку Стоп (I0.1 = 0). Тогда выход Q0.0 обнуляется, т.е. двигатель выключается.

Просмотр кода программы в режиме мониторинга

Откройте код OB1Debug/Monitor.

При этом активные участки программы блока ОВ1 выделяются зеленым цветом.


7) Битовые логические команды:

Работают лог сигналами (1,0), находятся под узлом Bit logic operations.