Об общем программном обеспечении автоматизированных систем управления технологическими процессами

На разработку операционных систем для систем управления технологическими процессами основное влияние оказывают следующие факторы:

  • Использование в автоматизированных системах уникальных устройств ввода-вывода с характеристиками, весьма отличными от характеристик устройств ввода-вывода, применяемых в программируемых логических контроллерах (ПЛК) для обработки данных, в частности, использование подсистем аналогового и цифрового ввода и вывода;
  • Необходимость реагирования программируемых логических контроллеров (ПЛК) на внешние события в реальном времени;
  • Неравномерность вычислительной нагрузки;
  • Многофункциональность вычислительной обработки;
  • Разнообразие возможных конфигураций, обслуживаемых базовой ОС;
  • Высокая надежность оборудования, управляющего технологическими процессами;
  • Фиксированное число программ, управлением выполнения которых занята ОС (эти программы обычно короткие);
  • Осведомленность проектировщиков о потребности в ресурсах и характере межпрограммной связи.

Выполнение этих требований обуславливает высокую структурируемость ОРСВ.

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

Ядро-это слой, создающий первый уровень абстракции. Этот уровень обеспечивает любое число псевдопроцессоров (с подходящим набором команд), реализуемых соединением физических процессоров.

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

Основные характеристики архитектуры ЦВМ, влияющие на проектирование ядра:

  • В состав любого процессора входит механизм прерывании;
  • Мультипроцессорные системы с любым числом неидентичных процессоров обеспечены промышленные операционные системы реального времени;
  • Коммуникационные возможности ОСРВ достаточны для поддержания связей внутри многомашинных систем.

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

Построение диспетчерских примитивов определяется моделью состояния процесса. На уровне ядра рассматриваются три состояния: РАБОТА, ГОТОВ, БЛОКИРОВАН. РАБОТА-состояние, при котором процессу назначен процессор (устройство); ГОТОВ-борьба процесса за процессор; БЛОКИРОВАН-процесс не участвует в борьбе за процессор. Процесс должен ожидать до тех пор, пока не произойдет некоторое фиксированное событие.

Основные диспетчерские примитивы определяются как переходы между состояниями, непосредственно соединяющими любые два из них:

НАЗНАЧИТЬ (назначает процесс процессору, выполняющему примитив, и переводит выбранный процесс из состояния ГОТОВ в состояние РАБОТА);

ОТМЕНИТЬ (открепляет процесс от назначенного ему процессора и переключает его из состояния РАБОТА в состояние ГОТОВ);

ГОТОВ (переключает процесс из состояния БЛОКИРОВАН в состояние ГОТОВ);

БЛОКИРОВАТЬ (открепляет процесс от назначенного ему процессора и переключает его из состояния РАБОТА в состояние БЛОКИРОВАН).

Для построения мультипроцессорных систем и сетей промышленных компьютеров используются следующие правила:

  • Мультипроцессорная система состоит из двух или более процессоров с одинаковыми наборами и общей работой памятью, имеет одно ядро;
  • Сеть ЦВМ состоит из двух или более локальных промышленных компьютеров с их собственными ядрами. Общение между узлами сети происходит с помощью любых технических средств, включая (частично) общую рабочую память;

Для реализации элементов синхронизации ядро должно надстраиваться над техническими средствами, обеспечивающими возможность реализации взаимно исключающих функций с использованием основных примитивов ЗАКРЫТЬ-ОТКРЫТЬ.

Ядро состоит из базовых функций или программ, которые работают, взаимоисключая друг друга по отношению к данным общего пользования, применяя операции ЗАКРЫТЬ-ОТКРЫТЬ. Над этим слоем должна быть, по крайней мере, одна конструкция мониторного типа для реализации взаимоисключающей процедуры, которая может содержать незанятые ожидающие элементы. Другими примерами могут быть семафоры или просто система передачи сообщений.

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

Несмотря на преимущества послойного метода проектирования и реализации промышленных операционных систем реального времени, большинство существующих ОСРВ пока не реализованы послойно. При рассмотрении работы ОСРВ для систем управления технологическими процессами выделяют 4 функциональные части:

  • Планировщик-управляет состоянием программ;
  • Система управления вводом-выводом-управляет очередью заказов и выполняет операции ввода-вывода;
  • Процессор событий-обрабатывает все виды прерывания и межпрограммного сообщения;
  • Распределитель памяти-управляет использованием как оперативной, так и внешней памяти.

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

Типичными представителями операционных систем, серийно поставляемых в комплекте со средствами вычислительной техники для использования в автоматизированных системах, является дисковая операционная система реального времени для вычислительного комплекса М-600 АСТВТ-М. Рассмотрение ее основных характеристик, функциональных возможностей принятого способа организации выполнения задач дает полное представление о типичном составе большинства современных ОС, виде обрабатываемых ими задач и других особенностях.

Дисковая операционная система реального времени (ДОСРВ) обеспечивает работу управляющего вычислительного комплекса (УВК) на базе процессора ПЛК в многозадачном режиме в реальном масштабе времени.

ДОСРВ компонуется с помощью специальной программы-генератора ДОСРВ из следующих составных частей: супервизора ДОСРВ; драйверов периферийных устройств (в соответствии с составом и конфигурацией технических средств); программ пользователя; фоновых программ; библиотечных программ, необходимых для работы программ пользователя.

При генерации создаются системные таблицы, отражающие как конфигурацию УВК, так и состав, и основные характеристики задач, подлежащих выполнению.

Супервизор ДОРСВ выполняет следующие функции:

  • Запускает и останавливает задачи;
  • Распределяет время процессора между задачами, требующими выполнения, в соответствии с их приоритетами;
  • По запросам от задач выполняет (совместно с драйверами) операции ввода-вывода (в многопольном режиме или по прерыванию от предыдущих запросов), обеспечивает при этом управление очередью запросов к одному и тому же периферийному устройству, а также буферирования вывода;
  • Назначает и освобождает память на диске для задач пользователя;
  • Ведет учет текущего времени и выдает значения его по запросам от задач
  • Осуществляет связь между задачами пользователя и библиотечными программами;
  • Осуществляет по требованиям оператора системы включение в нее и исключение из нее отдельных периферийных устройств;
  • Контролирует правильность работы системы;
  • Выдает оператору информацию о работе системе (пот его запросам, а также при обнаружении ненормальных ситуаций).

Для каждой из имеющихся в системе задач устанавливают приоритет - целое число в диапазоне от 0 до 99. Чем меньше это число, тем выше приоритет. Приоритет задается при генерации системы и может изменяться по требованию оператора у бездействующих задач. Нескольким задачам может быть задана один и тот же приоритет.

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

Переход задачи из состояния бездействия в состояние выполнения или готовности происходит в следующих случаях:

  • при наступлении времени, когда задача должна быть запущена в соответствии с периодом и временем запуска, заданными при генерации или динамически установленными во время работы системы той же или другой программой, или с требованием оператора (начальное время запуска задают в часах, минутах, секундах и долях секунды с дискретностью 10 или 100 мс, период запуска — целым числом указанных единиц времени (десятков или сотен миллисекунд, секунд, минут и часов);
  • по вызову от другой задачи;
  • по требованию оператора системы;
  • по прерыванию от инициативного периферийного устройства (соответствие между устройством и вызываемой им задачей задается при генерации системы).

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

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

При переходе из состояния бездействия в состоянии выполнения (непосредственно или через состояние готовности) задача начинает выполняться

со входной точки, заданной при генерации. Переход из состояния бездействия в состояние ожидания невозможен.

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

Задача переходит из состояния готовности в состояние выполнения в том случае, если задача, находившаяся в состоянии выполнения, перешла в состояние ожидания или бездействия. При этом в состояние выполнения переходит обычно первая в списке задача.

Задача может переходить, из состояния готовности в состояние бездействия только по требованию оператора OF, а в состояние ожидания — по требованию оператора SS.

В состоянии выполнения может находиться не более одной задачи. Задача переходит из состояния выполнения в состояние ожидания в следующих случаях:

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

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

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

В любом случае, когда выполняющаяся задача переходит в состояние ожидания или бездействия, очередь пересматривается и начинает выполняться первая   задача из очереди готовых к выполнению задач. Если же эта очередь пустая система переходит в состояние динамического останова (выполнения холостого цикла) пока какая-нибудь задача не перейдет в состояние выполнения.

В состоянии ожидания находятся задачи, ожидающие:

1) завершения начатой операции — ввода-вывода;

2) освобождения периферийного устройства, занятого операцией ввода-вывода для другой задачи (задачи объединяются в списки, по одной на каждое периферийное устройство);

3) освобождения оперативной памяти для организации буфера или для запоминания информации о состоянии параллельно используемой программы образуется список задач, ожидающих освобождения оперативной памяти);

4) освобождения памяти на диске (образуется список задач, ожидающих освобождения памяти на диске);

5) завершения вызванной задачи;

6) возобновления работы оператора (образуется список задач, ожидающих возобновления работы от оператора).

Каждая из списков составляется по приоритетам задач, а при равных приоритетах в порядке включения задачи в список. Задача переходит из состояния ожидания в состояние готовности или выполнения при наступлении ожидаемого условия. Выбор состояния, в которое переходит задача, определяется теми же условиями, что и при переходе из состояния бездействия. А из состояния ожидания в состояние бездействия задача переходит по требованию оператора. Для каждого состояния задачи супервизор составляет списки состояний задач. Задача в текущий момент находится в одном из этих списков.

Для задач, выполняющихся по времени, составляется список по времени.
Задачи в этот список заносятся в порядке их включения на выполнение.
Кроме этого списка задача, выполняющаяся по времени, находится в одном из ранее перечисленных списков.

Новости

Вторая очередь. Линия производства цветных принтерных чернил общим объемом 2000 литров - проектирование и поставка автоматической системы управления, г. Эгль, Швейцария

26.12.24

Линия производства цветных принтерных чернил общим объемом 2000 литров - проектирование и поставка а...

Паровые автоклавы, автоматика и диспетчеризация автоклавного цеха консервного производства, г. Гатчина, Ленинградская обл.

26.12.24

Паровые автоклавы, автоматика и диспетчеризация автоклавного цеха консервного производства, г. Гатчи...

Установка обработки труб химическим антикоррозийным составом - проектирование и поставка автоматической системы управления, г. Санкт-Петербург

26.12.24

Установка обработки труб химическим антикоррозийным составом - проектирование и поставка автоматичес...

Заказчики
Поставщики