связи в момент начала переходного процесса, связанного с окончанием угловой адаптации. При апериодическом переходном процессе в точке позиционирования траектория совмещения будет гладкой монотонной кривой, что исключает нелинейные изменения возмущений. Поэтому основными трудностями в реализации метода позиционного управления угловыми координатами являются [3]:
- необходимость измерения малых угловых величин с высокой точностью;
- обеспечение требуемых степеней подвижности детали и режимов совмещения на неконтролируемом участке траектории, исключающих возможность заклинивания соединения;
- обеспечение в каждом из каналов управления больших запасов устойчивости для обеспечения апериодических переходных процессов;
- обеспечение полной наблюдаемости системы во всем диапазоне перемещений соединяемой детали.
В силу перечисленных затруднений применение метода позиционирования для управления угловым положением соединяемой детали на завершающем этапе автоматизированной сборки весьма ограничено.
Список литературы:
1. Гусев A.A. Технологические основы автоматизированной сборки изделий. - М., 1982.
2. Солодовников В.В., Плотников В.А., Яковлев A.B. Основы теории и элементы систем автоматического регулирования. - М.: Машиностроение, 1985.
3. Крылов В.Ю., Симаков А.Л., Пантелеев Е.Ю. Обоснование способа пассивной адаптации резьбовых деталей в условиях роботизированного производства // Экстремальная робототехника: Материалы X НТК. - СПб.: СпГТУ, ЦНИИРТК, 1999. - С. 486-489.
ПРОГРАММА-СИМУЛЯТОР ДЕЯТЕЛЬНОСТИ ПРОМЫШЛЕННОГО РОБОТА
© Частиков А.П.*, Тотухов К.Е.4
Кубанский государственный технологический университет, г. Краснодар
Проанализирована возможность воспроизведения деятельности роботов на компьютере. Предложен вариант программы для компьютерного симулирования работы промышленного робота.
* Профессор кафедры Вычислительной техники и автоматизированных систем управления, кандидат технических наук, профессор.
* Студент кафедры Систем управления и технологических комплексов.
Современные промышленные производства и технологические процессы предъявляют всё более высокие требования к устройству и принципам работы участвующих в них технологических машин. Промышленные роботы, использующиеся в производствах достаточно часто, также необходимо оснащать всё более сложным управляющим программным обеспечением. С развитием вычислительной техники появились тенденции к использованию программных способов моделирования и симуляции поведения промышленных роботов. Это удобно для отладки и проверки управляющих программ роботов в виртуальных условиях.
Подобные программные пакеты (симуляторы) разрабатываются для следующих целей:
- реализовать графическое воспроизведение деятельности промышленного робота;
- сделать возможным анализ состояния модели промышленного робота в режиме реального времени;
- разработать доступный способ отладки и тестирования управляющих роботом программ.
К таким программам-симуляторам робототехнических систем предъявляются следующие требования:
- наличие механизма интерпретации управляющих команд;
- способность визуальной модели реагировать на действия управляющей программы;
- возможность получения данных обратной связи о текущем положении модели робота;
- временное согласование информационных и графических процессов моделирования;
- доступность и понятность внешнего интерфейса.
В качестве среды разработки программного пакета была выбрана C++ Builder 2009. Эта система удобна для написания прикладных программ среднего размера и, в отличие от аналогов, не требует наличия вспомогательных (run-time) библиотек на конечной машине.
Прежде всего, необходимо сделать возможным графическое воспроизведение деятельности модели робота. Это достигается следующим образом.
Визуальная модель робота представляется как набор геометрических фигур, изображённых в двухмерном пространстве относительно двух координатных осей ОХ и OY. Соответственно, в программу вводится группа переменных, содержащих текущие значения координат составных частей модели робота. Встроенные графические функции среды разработки позволяют воспроизводить эти геометрические фигуры на рабочем поле окна программы. На листинге 1 представлена часть программного кода данной подсистемы.
Листинг 1. Подсистема графического воспроизведения модели
void fastcall TForm1::DrawRobotBase(){ // Функция рисования основания робота
RobotDC->Canvas->Rectangle(X1 + pos_x*X_sc,Y1X2 + pos_x*X_sc,Y2); return;
}
void fastcall TForm1::DrawRobotArm(){
// Функция рисования рукиробота
RobotDC->Canvas->MoveTo(X1+pos_x*X_sc+X_sh,Y2); RobotDC->Canvas->LineTo(X1+pos_x*X_sc+X_sh,Y2 + pos_y*Y_sc); return;
}
void __fastcall TForm1::DrawRobot(){
// Функция для прорисовки робота DrawRobotBase(); //рисуем базу DrawRobotArm(); //рисуем руку
}
где RobotDC - объект класса TBitmap, содержащий графическое поле для отображения модели;
Х1, X2, Y1, Y2 - базовые координаты основания робота;
pos_x, pos_y - положение основания относительно осей Хи Y;
X_sc, Y_sc - масштабы модели относительно осей.
Поскольку модель робота должна подчиняться командам управляющей программы, необходимо обеспечить симулятор областью памяти, воссоздающей подобную у промышленного контроллера, с содержимым которой данная программа будет работать. Также, необходим механизм, осуществляющий реакцию приводов робота на данные, хранящиеся в этой памяти. Так, если какой-либо бит памяти является выходным сигналом на включение привода, требуется выполнить симуляцию работы этого привода. Программный механизм, реализующий подобную функцию, требует наличие таймера - подпрограммы, срабатывающей каждый раз по истечению определённого интервала времени. В подпрограмме таймера необходимо запросить данные из битов памяти и принять решение о необходимости изменения координат рабочих органов робота. Опытным путём установлено, что перерисовка модели робота с частотой двадцать раз в секунду, является достаточной для соблюдения режима реального времени. Подпрограммы, выполняющие эти функции, приведены на листинге 2.
Листинг 2. Программный код изменения координат робота
void fastcall TForm1::Timer1Timer(TObject *Sender){ SimulateRobotActions(); // Переопределение координат органов робота
ReportParams(); // Обновление параметров DrawRobot(); // Перерисовка модели
}
void fastcall TForm1::SimulateRobotActions(){ if(mem[SIG_X_drive1] && posx < X_max) // Если включен привод движения вдоль ОХ, а максимальное положение не достигнуто - увеличить координату: pos_x++;
if(mem[SIG_X_drive2] &&posx >X min) posx--;
//.....и так далее для координат остальных рабочих органов
}
где SIG_X_drive1, SIG_X_drive2 - адреса сигналов в памяти, включающих приводы прямого или обратного движения вдоль ОХ; mem[] - массив данных булевого типа, рабочее пространство для
управляющей программы; X_max, X_min - максимальные и минимальные положения робота относительно ОХ.
Отдельного внимания заслуживает функция ReportParams(), приведённая на листинге 2. Она осуществляет обратную связь системы - выдачу сигналов о текущем состоянии модели робота в память mem[].
Управляющие роботом программы составляются на языке псевдоассемблера. Языки такого типа чаще всего используются для программирования промышленных контроллеров, специализированных ПК, управляющих технологическими процессами. Система команд, используемая в симуляторе, по большей части схожа со стандартизованным для контроллеров псевдоассемблерным языком, и выглядит следующим образом:
Команды LC, LD, *D,*C, +D, +C выполняют логические операции с целевым битом и аккумулятором и помещают результат в аккумулятор;
команда WR производит запись значения аккумулятора по соответствующему адресу; команда TM запускает таймер и команды JM и BR выполняют безусловный и условный переходы. Для выполнения управляющей программы предусмотрен интерпретатор, часть кода которого приведена в листинге 3.
Листинг 3. Фрагмент программного кода интерпретатора команд
switch(Op) {
case cmdLD: // чтение в аккумулятор из адреса Arg A = mem[Arg]; break;
case cmdLC: // чтение отрицательного значения no адресу Arg A = !mem[Arg]; break;
где Op - идентификатор команды (опкод).
При составлении алгоритмов для роботов широкое применение получил способ, использующий граф под названием сеть Петри. Этот граф состоит из позиций, маркеров, переходов между ними и условий их срабатывания. Сети Петри используются часто благодаря их способности максимально точно формулировать параллельные события, происходящие в процессе работы технологического оборудования, в частности, промышленных роботов. Позициям сети ставятся в соответствие действия робота, а условиям срабатывания перехода - некоторые дискретные сигналы состояния. Для примера, составим сеть Петри по следующим данным (табл. 1).
Таблица 1
Состав сети Петри
Элемент сети Петри Обозначение
Р0 Стартовая позиция
Р1 Поднятие робота
Р2 Выдвижение руки
Р3 Опускание робота
Р4 Втягивание руки
у1 Поднять робот
у2 Опустить робот
у3 Выдвинуть руку
у4 Втянуть руку
и Робот поднят
12 Робот опущен
13 Рука выдвинута
14 Рука втянута
По этим данным изобразим сеть Петри (рис. 1). Блок-схема программ-мной реализации сети Петри приведена в [1]. Составленный по данной сети псевдоассемблерный алгоритм будет выполнен симулятором, и мы увидим соответствующую деятельность модели робота (рис. 2).
Р1 РЗ
Рис. 1. Сеть Петри
Рис. 2. Визуализация деятельности робота
Очевидно, что данная система позволяет графически моделировать поведение несложного промышленного робота с программным управлением. К тому же, эта программа удовлетворяет большинству из перечисленных требований к системам симуляции роботизированных комплексов.
Список литературы:
1. Частиков А.П., Глушко С.П., Тотухов К.Е. Система тестирования и отладки управляющих программ для промышленного робота // Журнал «Перспективы науки». - 2010. - № 9(11). - С. 47-51.
2. Котов В.Е. Сети Петри. - М.: Наука. Главная редакция физико-математической литературы, 1984. - 160 с.
3. Культин Н.Б. Самоучитель С++ Builder. - 2-е изд. - СПб.: БХВ-Пе-тербург, 2004. - 320 с.
* * *
ОСОБЕННОСТИ ОТДЕЛКИ ПАРКЕТА © Чижова М.А.*, Чижов А.П.
Лесосибирский филиал Сибирского государственного технологического университета, г. Лесосибирск
В статье приведены фирмы и выпускаемые ими материалы для отделки паркета. Рассмотрены особенности отделки натурального паркета.
Пол, покрытый паркетом из натуральной древесины, всегда остается символом красоты, надежности и достатка. Качество получаемого паркета зависит как от древесины, из которой сделан паркет, так и от защитно-декоративного покрытия.
Каким же лаком покрывать паркет. Сейчас на рынке широко представлена продукция двух видов фирм - тех, что специализируются на лаках и прочей «химии» для паркета, - это, например, LOBA, BERGER-SEIDLE (Германия), BONA и ARBORITEC (Швеция), SLC-RINALDI (Италия), PE-
* Доцент кафедры Технологии производств в лесном комплексе, кандидат технических наук, доцент.