ПОИСК Статьи Чертежи Таблицы Операционные системы робототехнических комплексов из "Промышленные работы для миниатюрных изделий " Как известно, операционная система является основным компонентом программного обеспечения промышленного робота, управляемого от ЭВМ. Она служит той средой , в которой создаются и функционируют все остальные программные компоненты робота. Кроме того, операционная система реализует требуемое взаимодействие, или интерфейс, этих программных компонентов друг с другом, а также с аппаратурой ЭВМ и оборудованием робота [48]. Следует отметить, что приводы (двигатели) и датчики робота, входящие в состав его оборудования и связанные с управляющей ЭВМ, можно рассматривать как особые внешние устройства ЭВМ, дополняющие набор стандартных устройств вычислительной машины (рис. 5,2). [c.147] Операционная система необходима не только для обеспечения взаимодействия функциональных программ управления роботом, но и для создания и отладки новых программ, осуществления разнообразных операций над файлами, поддержания диалоговой связи с человеком-оператором и т. п. В ее состав входят относительно компактное ядро, нередко называемое монитором, и набор системных программ и данных. Монитор предназначен для организации диалоговой связи человека-оператора с управляющей ЭВМ, запуска и контроля выполнения программ управления роботом и системных программ, диспетчирования программных задач и реализации их взаимодействия друг с другом, запуска и отслеживания операций ввода-вывода (в том числе — операций управления приводами робота), распределения основной памяти ЭВМ и манипулирования файлами. Таким образом, с функциональной точки зрения монитор подобен управляющей программе в операционной системе общего назначения. [c.148] Как правило, весь монитор или некоторая его часть, называемая резидентной частью, с момента загрузки и запуска операционной системы постоянно находится в основной памяти управляющей ЭВМ. Компоненты монитора, на входящие в резидентную часть, загружаются в основную память ЭВМ по мере необходимости, а после выполнения требуемых функций освобождают занимаемые ими области памяти для других компонентов монитора, системных программ управления роботом. Следует еще раз подчеркнуть, что монитор операционной системы робота обеспечивает диалоговый режим взаимодействия человека с управляющей ЭВМ. Такой режим осуществляется с помощью определенного набора команд, вводимых человеком с системной консоли (например, с дисплея), и сообщений самой операционной системы. Он позволяет человеку немедленно вмешиваться в действия робота, запускать и приостанавливать желаемые программы, получать сведения о текущем состоянии робота и его компонентов, оперативно создавать и отлаживать новые программы. Поэтому диалоговый режим является типичным режимом связи человека с робототехнической системой, управляемой от ЭВМ. [c.148] В группу системных программ и данных операционной системы робота могут входить редактор текстов, компилятор для некоторого языка программирования задач робота, интерпретатор компилированных программ, совокупность программ для реализации файловых операций, отладчик программ, драйверы внешних устройств и приводов робота, тестовые программы, библиотека программных модулей, написанных на языке управления роботом, и т. д. В эту же группу могут быть включены и компоненты общего программного обеспечения данной ЭВМ (например, трансляторы с языков ассемблера и ПАСКАЛЬ), которые используются для создания разнообразных программ, не связанных непосредственно с управлением роботом. [c.148] Основной единицей работы ОС РВ служит задача. Под задачей здесь следует понимать процесс, который определяется некоторой программой, выделенными ресурсами ЭВМ, а также другими процессами, которые могут развиваться одновременно с данным процессом. Как правило, ОС РВ обеспечивает параллельное выполнение многих задач. Применительно к промышленному роботу такими задачами могут быть задачи управления руками робота (по крайней мере по одной задаче на каждую руку), задачи сбора информации с датчиков и т. п, В однопроцессорной управляющей ЭВМ параллелизм выполнения задач реализуется достаточно частым переключением процессора с одной задачи на другую. Последовательность таких переключений процессора, а также интервалы занятости процессора выполнением каждой из задач до переключения на какую-нибудь другую задачу регулируются с помощью приоритетов, назначаемых задачам, В простейшем случае однажды выбранный приоритет задачи остается фиксированным при каждом ее выполнении. В более общей ситуации приоритет задачи изменяется во времени в ходе ее выполнения. Характер изменения приоритета может зависеть от времени пребывания задачи в очереди к процессору, времени использования процессора, числа интервалов занятости процессора задачей и т. д. [c.149] В составе ОС РВ, применяемых в робототехнических комплексах, как и в ОС РВ общего назначения, можно выделить следующие основные компоненты 1) планировщик задач 2) диспетчер 3) обработчик прерываний 4) программа отслеживания времени 5) супервизор ввода-вывода. [c.150] Планировщик задач и диспетчер образуют управляющую программу операционной системы. При этом планировщик задач осуществляет выбор задач, которые должны быть подготовлены к выполнению, Функция диспетчера состоит в том, чтобы инициировать выполнение задачи, выбранной планировщиком, либо продолжить ее выполнение из состояния готовности или ожидания. Задача, получившая управление от диспетчера, занимает процессор до своего нормального завершения, прекращения (например, при возникновении ошибки в программе или вмешательстве человека-оператора) или перехода в состояние ожидания. После освобождения процессора от выполнения текущей задачи управление возвращается в конечном счете планировщику для выбора другой задачи, подлежащей выполнению. Отметим, что в начале своей работы планировщик в некоторых случаях может использовать обработчик прерываний. [c.150] Следующим компонентом ОС РВ служит обработчик прерываний , который представляет собой программное ядро системы прерываний в управляющей ЭВМ. Система прерываний предназначена для того, чтобы прй возникновении особых событий, возникающих в процессоре или другом оборудовании робота, немедленно или по истечении некоторого времени переключить процессор на выполнение другой задачи. Непосредственной причиной такого переключения процессора является сигнал прерывания, причем характер новой задачи, выполняемой процессором после переключения и называемой задачей обработки прерывания, зависит от источника сигнала прерывания. [c.151] В каждой системе прерывания обычно имеется возможность автоматически или по желанию программиста временно запретить, или замаскировать, прерывание процессора. Для маскирования прерываний нередко используют маски, которые могут храниться в особых программно-доступных регистрах ЭВМ. Не останавливаясь на более подробном описании системы прерываний, перечислим лишь основные, неравные по длительности, этапы в обработке прерывания 1) идентификация источника прерывания 2) сохранение текущего состояния прерванной задачи 3) маскирование, или запрет, повторных прерываний того же класса, к которому относится обрабатываемое прерывание 4) выполнение программы обработки прерывания 5) восстановление состояния и продолжение прерванной задачи. [c.151] Важным компонентом ОС РВ является программа отслеживания времени. Она осуществляет периодическое наращивание абсолютного времени по прерываниям от таймера, а также обеспечивает запрашиваемые различными задачами интервалы временной задержки. Как правило, соответствующая этой программе задача имеет наивысший приоритет в системе и выполняется немедленно при каждом прерывании от таймера. [c.152] И наконец, последним из основных программных компонентов ОС РВ служит супервизор ввода-вывода. Он предназначен для реализации операций ввода-вывода, запрашиваемых в выполняемых задачах. В робототехнической системе супервизор ввода-вывода должен управлять не только традиционными внешними устройствами ЭВМ (таким, как системная консоль, печатающее устройство, накопитель на магнитном диске и т. п.), но и приводами робота, а также контролировать работу многочисленных датчиков. При наличии супервизора запросы на ввод-вывод выражаются в программах обычно в форме макрокоманд, с каждой из которых ассоциируется соответствующий ей список параметров, определяющих тип устройства, а также адреса и объем данных, которые подлежат вводу или выводу. Обеспечивая должную буферизацию данных, супервизор полностью освобождает разработчика функциональных программ робота от необходимости детального программирования операций ввода-вывода и тем самым существенно облегчает его труд. [c.152] Создание ОС РВ для робототехнической системы представляет собой довольно сложную проблему, если начать решать ее с нуля . Однако работу можно существенно упростить, если воспользоваться соответствующей ОС РВ общего назначения и дополнить ее программными компонентами, специфичными для роботов. Для отечественных микроЭВМ одной из таких ОС РВ общего назначения является, например, так называемая базовая резидентная система реального времени (БРС РВ), применяемая на микроЭВМ СМ-1800. Ориентированная на создание прикладных микропроцессорных систем реального времени на языке ассемблера и языке программирования высокого уровня ПЛ/М [21 ], БРС РВ обеспечивает удобные средства коммуникации между задачами, доступ к системным ресурсам с учетом приоритетов задач, развитые возможности обработки прерываний и управления внешними устройствами, отслеживание времени и выполнение целого ряда других функций. Поэтому БРС РВ с успехом может быть использована как основа при построении операционной системы и всего программного обеспечения промышленного робота, управляемого от микроЭВМ. Приведем краткое описание БРС РВ. [c.152] Драйверы внешних устройств — это программы, обеспечивающие обмен данными между основной памятью микроЭВМ и внешними устройствами по запросам задач, выполняемых в БРС РВ. Драйверы освобождают разработчика системы реального времени от необходимости программирования операций ввода-вывода на физическом (т. е. самом детальном) уровне. В состав БРС РВ включены драйверы системного терминала, печати, аналогового ввода-вывода, дискретного ввода-вывода и драйвер число-импульсных сигналов. Отметим, что для управления приводами робота и контроля состояния датчиков можно применять три последних из перечисленных драйверов. Во время работы БРС РВ каждый из драйверов представлен соответствующей задачей. [c.153] Программа отслеживания времени предназначена для отсчета астрономического времени в пределах суток (в часах, минутах и секундах). Прикладная задача может как читать, так и устанавливать текущее время с помощью специальных запросов. [c.153] Эмулятор терминала — особый компонент БРС РВ, применяемый для организации межмашинного обмена данными при сопряжении микроЭВМ СМ-1800 с другой ЭВМ, в качестве которой может выступать такая же микроЭВМ или мини-ЭВМ типа СМ-4. [c.153] Как и во многих других ОС РВ, основной единицей работы БРС РВ служит задача. БРС РВ обеспечивает параллельное решение многих задач, причем в процессе выполнения каждая задача проходит некоторую последовательность состояний в соответствии с диаграммой, подобной той, которая представлена на рис. 5.3. Каждой задаче присвоен приоритет, определяющий меру неотложности ее выполнения. В БРС РВ предусмотрена возможность использования 256 приоритетных уровней со значениями от О до 255, причем значение О соответствует высшему приоритету, а значение 255 — самому низкому приоритету, присваиваемому так называемой холостой задаче. Эта задача запускается ядром всякий раз, когда нет никакой другой задачи, готовой к выполнению, и переводит процессор в состояние ожидания внешнего прерывания. Приоритеты со значениями от О до 128 назначаются задачам обработки прерываний от высокоскоростных устройств. Значения приоритетов прочих задач рекомендуется выбирать в диапазоне от 129 до 254. [c.153] На рис. 5.4 приведены три основные схемы коммуникации между задачами через обменники. В схеме на рис. 5.4, а задача 1 посылает сообщение в обменник, где оно будет находиться до тех пор, пока задача 2 не запросит его, обратившись к этому же обменнику. В схеме на рис, 5.4, задача 2 ожидает сообщение от задачи 1 в обменнике до тех пор, пока оно не поступит или пока не истечет некоторый заданный интервал времени. Если за этот интервал времени сообщение не придет, то задача 2 перестает ждать его в данном обменнике. Схема на рис. 5.4, в иллюстрирует обработку прерывания как передачу сообщения. В этом случае сигнал прерывания (например, с устройства ввода-вывода) трансформируется в сообщение, которого ожидает в обменнике задача 1, Получив сообщение, эта задача выполняет необходимую обработку прерывания. Отметим, что приоритет задачи 1 должен соответствовать уровню прерывания, В БРС РВ предусмотрено пять различных по значению уровней прерывания. Для каждого из этих уровней, кроме первого, программист может по своему усмотрению задать произвольное число подуровней. [c.154] Каждый из описанных объектов — задача, сообщение и обменник — представлен в БРС РВ соответствующей структурой данных. Применительно к задаче такая структура данных называется дескриптором задачи в системе. Каждый такой дескриптор формируется ядром БРС РВ при инициализации системы реального времени или динамически по требованию некоторой выполняемой задачи создать новую задачу. [c.154] Сообщению соответствует особая структура данных, создаваемая задачей в основной памяти микроЭВЛ и состоящая из заголовка и тела. Заголовок имеет фиксированный формат размером 9 байтов и содержит адрес обменника, куда должно быть послано сообщение, адрес обменника, в который надо послать ответ на данное сообщение, длину и тип сообщения, а также указатель для включения сообщения в очередь к нужному обменнику. Тело сообщения имеет произвольную длину и используется для передачи дополнительных данных. [c.155] Каждый обменник представлен своим дескриптором. В БРС РВ используются два типа обменников — обычный и прерывания. Обычный обменник предназначен для отслеживания ассоциированных с ним задач и сообщений. Обменник прерывания используется для программной интерпретации аппаратных прерываний. Дескриптор обычного обменника занимает в основной памяти 10 байтов и содержит четыре указателя для адресации начала и конца двух списков — списка сообщений и списка задач к данному обменнику — и поле связки для включения обменника в общий список обменников. Ядро БРС РВ модифицирует списки сообщений и задач, ассоциированных с обменником, всякий раз, когда некоторая задача выдает запрос на ожидание сообщения в данном обменнике или в обменник поступает новое сообщение. Дисциплина обслуживания сообщений и задач в обменнике основана на принципе первым пришел — первым обслуживаешься . Например, если список сообщений в обменнике содержит три Гсообщения и если некоторая задача выдает запрос на ожидание сообщения в этом же обменнике, то она немедленно получит головное из трех сообщений, после чего это сообщение исключается ядром из списка. Если спустя некоторое время эта же или какая-нибудь другая задача попытается получить сообщение из того же обменника, то ей будет выдано очередное сообщение из списка двух оставшихся сообщений. [c.155] Вернуться к основной статье