
3 Обозначение переменных
Cord – текущая координата модуля выраженная в дискретах. Не определена с момента включения робота и до момента выполнения процедуры выхода в 0.
NewCord – заданная координата модуля выраженная в дискретах. Значение переменной устанавливается программными компонентами более высокого уровня. Разность переменных NewCord и Cord определяет движение модуля в том или ином направлении или его останов.
x1 – условие: (NewCord-Cord)>FSD, т.е. разность координат допустима для высокой скорости.
FSD – величина минимального перемещения выполняемого на высокой скорости; Все перемещения меньше чем FSD выполняются на низкой скорости.
x2 – условие : MD≤(NewCord-Cord)≤FSD, т.е движение на низкой скорости начинается только если заданное перемещение больше минимально – допустимого перемещения, но слишком мало для перемещения на высокой скорости.
MD – минимально возможное перемещение. Из-за инерции, и задержек в работе СУ, невозможно точно отработать перемещения, меньше определённого значения. Попытки отработать малое перемещение будут приводить к многократному 'перебегу' т.е. к позиционированию с ошибкой то в '+', то в '-'.
x3 – условие : (NewCord-Cord)≤FSD, т.е. переход на низкую скорость происходит на заданной дистанции (FSD) от точки останова.
x4 – условие: (NewCord-Cord)≤FMD. Так как остановить движение модуля в момент достижения заданной координаты невозможно (инерционные силы будут продолжать движение), на дистанции FMD двигатель будет выключен (а тормоз включён). При этом перемещение будет продолжаться, а координата увеличиваться или уменьшаться.
FMD – расстояние отводимое для свободного движения по инерции. Оно должно определятся для каждого модуля опытным путём.
PosError – разность запрограммированной NewCord и текущей на момент останова Cord координатой, ошибка позиционирования.
X5 – сигнал: немедленный останов. Сигнал формируется на более высоком уровне управления в случае необходимости немедленного останова, например при 'аварии'.
X6 – условие: аварийная ситуация при движении - в течении заданного времени нет изменения состояния датчика снижения скорости. Это же условие можно сформулировать по другому: скорость движения слишком мала.
X7 – условие: аварийная ситуация при движении - сработал датчик конечного положения, в направлении движения. Эта ситуация ошибки, так как величина задания на премещение должна формироваться так, чтобы датчик не мог сработать. Положения '0' и 'MAX' (максимального значения координаты) должны отстоять от жёстких упоров на размер зоны срабатывания датчика + размер 'защитной' зоны.
X8 – условие: аварийная ситуация - в состоянии останова (STOP): датчик положения, или датчик начального (конечного) положения изменил состояние.(thisV = pulse )
X9 – условие: аварийная ситуация - в состоянии движения по инерции (FREE_MOVE_to): в течение заданного времени TFM не произошла остановка двигателя (скорость больше минимальной).
TFM - время, через которое нужно проверить скорость движения модуля.
4 Проектирование интерфейса СРВ
Интерфейс оператора (пользователя) служит для организации взаимодействия между человеком и системой управления (ОУ). В зависимости от назначения и функций СРВ может быть использован интерфейс оператора различного типа:
– командный интерфейс. Для отображения информации используются символьные буквенно-цифровые сообщения. Вводимые команды и параметры также представляют наборы символов. Используется алфавитно-цифровой дисплей и клавиатура. Для временного или удалённого подключения к системе может использоваться последовательная линия. Командный интерфейс требует мало ресурсов процессора, ПОРВ на его основе обладают высокой мобильностью;
– графический интерфейс. Для отображения информации используется как текстовые, так и графические элементы. Для управления используется клавиатура в сочетании с устройством указания. Как правило применяется цветной графический дисплей высокого разрешения с сенсорной панелью. Графический интерфейс требует большое количество ресурсов и затрудняет перенос ПО на другую аппаратную платформу;
– приборный интерфейс. Информация отображается с помощью дискретных цифровых шкал, световых индикаторов и.т.п. Ввод команд производится с помощью тумблеров, переключателей, верньеров и.т.п. Требует мало ресурсов. Является специализированным;
– специальный интерфейс. Ввод и вывод информации производится через специальные органы управления.
Задача интерфейса оператора решает задачу отображения на дисплее процесса управления. В данном случае отображение будет комбинированным, Отображение положения модуля – графическое, скорость будет отображаться символьно. Простой вариант интерфейса (экран дисплея) приведён на рисунке 4.1.
1
2
3
4
5
6
7
1-сигнал остановки движения; 2-вертикальная координата; 3-горизонтальная координата; 4-текущая скорость двигателя, обеспечивающего движение по координате x; 5- текущая скорость двигателя, обеспечивающего движение по координате y; 6-текущая скорость модуля; 7-условное обозначение положения модуля(черная точка – текущее положение, белая точка – следующее положение модуля).
Рисунок 4.1 – Интерфейс пользователя
5 Определение временных параметров задач
При проектировании любой СРВ необходимо определить временные параметры.
К таким параметрам относятся:
минимально допустимая частота выполнения (просмотра, активации) задачи;
максимально допустимое время между событием и началом (завершением) его обработки;
Процентное распределение машинного времени между задачами.
В проектируемой мной СРВ
стоит задача нахождения
координат подвижного узла измеряемую
с помощью импульсного датчика положения,
имеющего дискретностью Dsk = 0.02 мм, т.е
формирующего 50 изменений сигнала на 1
мм перемещения узла. Узел движется со
скоростю V=20 мм/с. Изменение значения
координаты производится в момент
регистрации изменения входного сигнала
с 0 на 1 и с 1 на 0. Регистрация производится
путём опроса разряда специального
регистра УСО. Таким образом, время между
опросами должно быть меньше, чем интервал
времени между изменением сигнала
датчика, равное
T=0.001 с. Принимая допустимую
погрешность времени активации задачи
ΔT=0.2
мс, получим
,
минимально допустимую частоту
выполнения задачи fЗ=
1250 гц. Максимально допустимое время
обработки 0.8 мс. При этом все 100% ресурсов
системы будут заняты задачей подсчёта
координаты.
Частота задачи интерфейса оператора, т.е. частота обновления показаний на экране должна быть примерно 30 Гц, это означает, что при скорости 0,2 м/с за одно обновление модуль пройдет 0,006 м или 0,6 см. У человека среднее время реакции на визуальный сигнал составляет 0,1-0,3 секунды. Следовательно, пока оператор отреагирует на сигнал, модуль пройдет 0,18 м или 18 см. Итого модуль будет двигаться еще 20 см.Если принять время срабатывания тормоза за 0,2 с, то пока модуль остановится, он еще пройдет 0,06 м или 6 см. Получается, в случае экстренной реакции оператора на торможение модуль, имея максимальную скорость может пройти еще примерно 26 см. Это достаточно много, именно поэтому, модуль может двигаться к заданной координате, если расстояние до нее достаточно велико и составляет больше 26 см.
6 Выбор модели процессов-потоков
Каждая задача должна выполняться во времени параллельно. Такого результата можно добиться несколькими способами:
задача выполняется эксклюзивно на одном ВУ;
задача выполняется совместно с другими задачами в рамках одного потока;
задача выполняется в отдельном потоке но в рамках одного процесса;
задача выполняется в отдельном процессе;
Если задача выполняется в отдельном потоке, возможны следующие варианты активации потока:
задача активируется по времени. Используются аппаратные или программно – аппаратные таймеры вычислительной платформы;
задача выполняется независимо, как отдельный поток в рамках многозадачной ОСРВ, подчиняясь выбранной дисциплине диспетчеризации и в соответствии с заданным приоритетом.
задача является обработчиком прерывания и вызывается в при возникновении внешнего прерывания.
Для определения модели процессов – потоков, необходимо проанализировать временные параметры каждой задачи и определить основной способ диспетчеризации, а также в его рамках способ активации каждой задачи.
В КР в данном разделе необходимо обосновать выбор модели процессов – потоков и привести указанную информацию по каждой задаче. Должна быть представлена графическая схема взаимодействия задач.
В данной задаче применяется следующая модель потоков – процессов.
Задачи, непосредственно участвующие в процессе управления реализуются совместно, в одном потоке. Задача интерфейса оператора реализуется в виде отдельного процесса, обменивающегося данными с остальными задачами с помощью системного процесса MQUEUE. Графическая схема представлена на рисунке 6.1.
Рисунок 6.1– Модель процессов-потоков
7 Выбор аппаратной архитектуры
Для создания управляющей программы СРВ необходимо преобразовать модель задач–состояний в код управляющего компьютера. Первый шаг в этом направлении - определить сколько управляющих вычислительных устройств будет в СРВ и составить перечень задач для каждого из них. Исходя из сложности проектируемой системы было принято решение использовать в качестве вычислительного устройства — персональный компьютер на базе процессора х86 Intel,128mB ОЗУ,на котором реализуются все задачи управления. Связь с управляемым объектом осуществляется по паралльному порту.
Выбор аппаратной архитектуры при разработке данной системы определялся по нескольким критериям:
требуемыми временными параметрами задач — вычислительной мощности данного ВУ хватит для выполнения задач проектируемой системы;
массогабаритными показателями;
стоимостью аппаратных средств — ВУ с такими характеристиками очень выгодно по ценовым характеристикам;
затратами на разработку ПО.
8 Выбор базового ПО и инструментальных средств
В качестве базового программного обеспечения в проекте используется ОСРВ QNX. Эта ОСРВ построена по принципам высоконадежной архитектуры на основе микроядра и четко детерминированного механизма обмена сообщениями, в том числе для взаимодействия процессов по сети.
В состав QNX входит также графическая оболочка Photon microGUI для построения встраиваемых приложений с графическим интерфейсом пользователя.
Инструментальные средства включённые в состав пакета QNX MOMЕNTICS включают : редактор, отладчик, в том числе для удалённой отладки, средства построения встраиваемых систем, различные анализаторы, средства разработки интерфейса пользователя, средства управления версиями, и конечно компиляторы с различных языков высокого уровня. В QNX одним из основных языком программирования является язык C.
Данные инструменты могут быть использованы могут быть использованы как из интегрированной среды разработки, так и как обычные инструменты с командным или графическим интерфейсом.
В проекте были использованы:
компилятор языка C – GNU GCC;
утилита GNU make;
отладчик gdb;
редактор ws ;
командный интерпретатор gnu bash;