Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
20591.doc
Скачиваний:
10
Добавлен:
08.11.2019
Размер:
244.74 Кб
Скачать

2060 МИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

САМАРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ

Кафедра «Мехатроника в автоматизированных производствах»

«Компьютерное управление манипуляторами»

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к выполнению лабораторных работ

по дисциплине «Компьютерное управление мехатронными системами»

для студентов специальности 230401 «Мехатроника»

Составители: А.П. Припутников

Д.В. Иванов

Самара 2010

УДК 519.254

Проектирование мехатронных систем: методические указания к выполнению лабораторных работ по дисциплине «Проектирование мехатронных систем » для студентов специальности 230401 «Мехатроника» / составители : А.П. Припутников, Д.В. Иванов, – Самара : СамГУПС, 2010. – 19 с.

Утверждены на заседании кафедры «МАП» 26.10.2007, протокол № 3.

Печатаются по решению редакционно-издательского совета университета.

В методических указаниях содержится набор лабораторных работ, ориентированных на изучение методов идентификации статических и динамических систем.

Составители: Припутников Алексей Петрович

Иванов Дмитрий Владимирович

Рецензенты: к.т.н., доцент, зав. каф. «АТС» СамГУПС В.Б. Гуменников

Редактор И.М. Егорова

Компьютерная верстка М.Г. Кутлеметова

Подписано в печать 28.12.2010. Формат 60х90 1/16.

Бумага писчая. Печать оперативная. Усл. п.л. 1,4.

Тираж 150 экз. Заказ № 285.

© Самарский государственный университет путей сообщения, 2010

Лабораторная работа №1 Изучение программы для управления манипуляторами.

Цель работы: ознакомиться с программным обеспечением для управления манипуляторами.

Теоретические сведения

Программа управления роботами обладает двумя необходимыми режимами работы – имитационном и режиме управления реальными звеньями роботов. В имитационном режиме программа искусственно задает и вводит в систему управления требуемые значения сенсоров, что позволяет легко и просто студентам осуществлять отладку программного обеспечения даже в домашних условиях, а также упрощает отладку поведения программы в граничных условиях циклов. К имитируемым данным относятся: показания сенсоров прокрутки для каждого звена, а также значения которые получает программа из СУ. Стоит отметить, что в СУ есть своя система управления сервоприводами, которая выполнена на низкоуровневом языке программирования и осуществляет базовые функции управления сервоприводами и получения данных с сенсоров. Также в этой прошивке реализована примитивная защита от выхода звена за пределы рабочих положений и их экстренное торможение в случае достижения концевых датчиков МС. Но несмотря на наличие этой защиты, злоупотреблять ей не стоит, поскольку существуют риск, например вывести из строя систему захвата груза, если оставлять ее слишком долго включенной.

Рассмотрим теперь интерфейс лабораторной программы управления роботами:

Рис.1. Общий вид программы для управления манипуляторами.

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

Рис. 2. Панель отладки.

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

В верхнем левом углу в данный момент высвечена цифра 55235- это значение переменной цикла I, которая возрастает каждые 100мс. Ниже, расположены нули, но в момент включения звеньев, они изменят свое значение. Если двигатель будет вращаться влево, высветится значение -1, вправо +1. В режиме покоя индикатор работы двигателей покажет нулевое значение. Кнопками 0/1 мы можем переключать значение концевых датчиков. Большими клавишами «бит. Прок. X,Y,Z» мы изменяем значение бита прокрутки двигателя, благодаря значению которого программа может отсчитывать координаты звеньев.

Теперь рассмотрим ручное управление роботом. Этот режим доступен только в том случае, если у нас режим отладки выключен.

Рис. 3. Панель отладки.

Интерфейс прост и интуитивно понятен. Стрелками мы меняем направление вращения сервопривода звена. Клавиша STOP останавливает все двигатели и отключает рабочие органы. Это было сделано специально в целях сохранности оборудования в случае какой либо экстренной ситуации. Клавиша «=» включает рабочий орган.

Направление движения манипулятора отображается панели “Сенсоры”:

Рис. 4. Панель”Сенсоры”.

Здесь наглядно отображаются сразу все сенсоры. Возможные значения -1 .. 0 .. 1.

Далее рассмотрим пример выполненной лабораторной работы “Программа управления роботом в цикловом режиме”, которая встроена в интерфейс программы управления звеньями робота.

Рис.5. “Программа управления роботом в цикловом режиме”.

Это простая программа будет работать, если нажать клавишу пуск. Если перемещения звеньев робота не произошло, то в таком случае рекомендую убедиться что режим отладки программы выключен. Программа лабораторной работы 4 в замкнутом бесконечном цикле будет переводить звено «Х» робота из одного концевого положения в другое. Более подробные требования к лабораторной работе изложены изложены ниже.

Следующая работа посвящена работе манипулятора в позиционном режиме.

Рис.6. “Программа управления роботом в позиционном режиме”.

Если у вас выключен режим отладки, то вы можете ввести номер звена (0, 1 или 2) и указать желаемую координату. Следует заметить что координата в данном случае носит абсолютный характер. Если робот достигнет концевого датчика, то движение будет автоматически прекращено. После ввода координаты надо нажать клавишу «старт\стоп». После проверки работоспособности программы, для ее остановки еще раз нажмите на ту же клавишу.

Следующий блок отвечает за лабораторную работу “Программа управления (степени X,Y,Z) роботом в позиционном режиме” рассмотрим его подробнее:

Начнем прежде всего с того, что введем понятие абсолютной и относительной ориентации звеньев робота в пространстве. Абсолютная координата может предпринимать любое значение от -700 до +700. Поскольку звено как правило находится где то между концевыми датчиками, то установить где именно находится звено становится невозможным до тех пор, пока не сработает один из концевых датчиков. После срабатывания концевого датчика осуществляется автоматический переход на относительную систему координат, в которой мы можем сказать роботу, чтобы он остановил звено, например, на расстоянии 6.5 см от концевого датчика. Расстояние здесь измеряется не в сантиметрах конечно же, но пересчитать импульсы в систему единиц СИ не составит никаких проблем.

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

Для этого необходимо ввести желаемые координаты звеньев в соответствующие поля программы и нажать кнопку «вкл. координатный режим». Соответствующий индикатор справа от кнопки высветит значение 1 и в тот же миг звенья робота придут в движение по направлению к введенным координатам. По достижении требуемых координат звено остановится.

В левой половине этого блока находится информация по каждому звену- его реальная координата L, перемещение S, направление движения двигателя.

Тестовое задание.

  1. Ознакомиться с теоретической частью.

  2. Запустить программу проверить работоспособность всех подпрограмм.

Лабораторная работа №2

Библиотека функций для управления манипулятором.

Цель работы: ознакомиться с программным обеспечением для управления манипуляторами.

Теоретические сведения

Библиотечные функции написаны на языке C++. Библиотека подпрограмм, содержит ряд подпрограмм, предназначенных для управления исполнительными устройствами (двигателями) мехатронных модулей и для чтения состояния датчиков мехатронных модулей. Эти подпрограммы пользователь может встраивать в разрабатываемую им прикладную программу.

Функция: TestBit()

Описание: Метод возвращает значение бита BitNum в байте DataByte

Прототип функции:

byte TestBit ( byte * DataByte, byte BitNum)

Функция:ClrBit()

Описание: Метод устанавливает значение бита BitNum в байте DataByte в 0

Прототип функции

void ClrBit ( byte * DataByte, byte BitNum)

Функция: SetBit()

Описание: Метод устанавливает значение бита BitNum в байте DataByte в 1

Прототип функции

void SetBit (byte * DataByte, byte BitNum)

Функция: delay()

Описание: Задержка выполнения на timedelay мс

Прототип функции

void delay ( double timedelay)

Функция: WriteReg()

Описание:Метод записывает байт в регистр СУ

Прототип функции

void WriteReg (byte reg, byte value)

Функция: ReadReg()

Описание: Метод читает байт из регистра СУ

Прототип функции

byte ReadReg (byte reg)

Функция: CheckOnline()

Описание: Метод проверяет включена ли СУ.

В случае, если СУ включена метод возвратит 1.

Прототип функции

int CheckOnline(void)

Функция: CountDvg0()

Описание: Формирование значения регистра DVG0 СУ УРТК, управляющего двигателями первых четырех степеней, по требуемым направлениям движения каждой из этих степеней.

Input: x, y, z, w - задают требуемое направление движения соответствующих степеней УРТК:

+1 соответствует направлению движения от начального концевого датчика к конечному,

-1 - направлению движения от конечного к начальному, 0 - остановке степени, любое другое значение – соответствует сохранению прежнего направления движения.

dvg0old - предыдущее значение, загруженное в соответствующий

регистр СУ: требуется при необходимости не изменять движение степени.

Output: сформированное значение, которое может быть использовано в функции SetDvgRegs()

Прототип функции

byte CountDvg0(int x, int y, int z, int w, byte dvg0old)

Функция: CountDvg1()

Описание: Формирование значения регистра DVG0 СУ УРТК, управляющего двигателями первых четырех степеней, по требуемым направлениям движения каждой из этих степеней.

// Input: f, r - задают требуемое направление движения соответствующих степеней УРТК:

+1 соответствует направлению движения от начального концевого датчика к конечному,

-1 - направлению движения от конечного к начальному, 0 - остановке степени, любое другое значение – соответствует сохранению прежнего движения.

d0, d1, d2, ew - задают режим работы соответствующих однополярных двигателей УРТК: 1 - двигатель включен,

0 - двигатель выключен,

любое другое значение – сохранение предыдущего состояния.

dvg1old - предыдущее значение, загруженное в соответствующий регистр УРТК: требуется при необходимости не изменять движение степени.

// Output: сформированное значение, которое может быть использовано в функции SetDvgRegs().

Прототип функции

byte CountDvg1(int f, int r, int d0, int d1, int d2, int ew, byte dvg1old)

Функция: SetDvgRegs()

Описание: Установка регистров СУ УРТК, управляющих двигателями

Input: dvg0, dvg1 - содержимое этих переменных будет записано в регистры двигателей.

Прототип функции

int SetDvgRegs(byte dvg0, byte dvg1)

Функция: SetLedRegs()

Описание: Метод записывает байт в регистр, управляющий состоянием восьми светодиодов.

Прототип функции

int SetLedRegs(byte led)

Пример:

led = 0x8fh (1000 1111) загорятся 1-й, 5-й, 6-й, 7-й, 8-й;

led = 0x04h (0100 0000) загорится 2-й;

led = 0x00h (0000 0000) не горит ни один;

Функция: GetSnsRegs()

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

Прототип функции

int GetSnsRegs ( byte * sns0, byte * sns1, byte * sns2)

Функция: GetKbdRegs

Описание: Метод предназначен для чтения из СУ значений двух регистров клавиатуры

Прототип функции

int GetKbdRegs (byte * kbd0, byte * kbd1)

Функция: XorBit

Описание: Применение операции xor над битом BitNum в байте DataByte

Прототип функции

void XorBit ( byte * DataByte, byte BitNum)

Пример:

0 xor 0 = 0;

0 xor 1 = 1;

1 xor 0 = 1;

1 xor 1 = 0;

Динамическая загрузка DLL.

Для динамического связывания модуля DLL с основным приложением нужно выполнить следующие операции.

■ Загрузить DLL и получить указатель на этот модуль.

■ Извлечь указатель на размешенную в DLL функцию, которую планируется вызывать.

■ Вызвать функцию.

■ Освободить память, запятую модулем DLL.

Функция Windows AIM GetProcAddress () возвращает указатель на экспортируемую функ­цию, размещенную в DLL, принимая в качестве аргументов указатель на загруженный модуль DLL и имя той функции, на которую требуется получить указатель. Пусть, например, одна экспортируемая функция в DLL имеет прототип int Add(int х, int у), а другая— int Subtract(int х, int у). В таком случае можно использовать одно и то же приведение ти­пов для обоих функций.

AddSubtract *MyAdd, *MySubtract;

MyAdd = (AddSubtract *)GetProcAddress(Dll, "_Add");

MySubtract = (AddSubtract *)GetProcAddress(Dll, " Subtract");

Тестовое задание.

  1. Ознакомиться с теоретической частью.

  2. Найти в программе подключение динамической библиотеки.

  3. Найти в программе примеры использования библиотечных функций объяснить их назначение.

Лабораторная работа №3

Программа управления мехатронным модулем линейного перемещения в цикловом режиме

Цель работы: состоит в изучении принципов циклового управления исполнительными элементами мехатронных и робототехнических устройств и обработки сигналов от датчиков об­ратной связи.

Теоретические сведения

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

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

Hа рис. 1 показан процесс циклового программного управления при­водом. Он состоит из 3 этапов: разгона, движения с постоянной скоро­стью и торможения. Длительность второго этапа— установившегося движения с постоянной скоростью определяется величиной заданного перемещения привода. Если эта величина меньше суммы времени разго­на и торможения, второй этап вообще будет отсутствовать (пунктирные кривые на рис. 1).

Рис. 1. Процесс циклового управления электроприводом

Задание на выполнение лабораторной работы

Необходимо разработать программу, осуществляющую управление движением подвижной платформы модуля линейного перемещения, подклю­ченного к каналу X (или по заданию преподавателя — к каналу Y или Z) в цикловом режиме так, чтобы:

— при нажатии пользователем кнопки или при достижении модулем любого из концевых датчиков мо­дуль остановился на время 0,5 с после чего продолжил движе­ние в противоположном направлении;

Тестовое задание.

  1. Составить блок-схему алгоритма управления мехатронным модулем линейного перемещения в цикловом режиме.

  2. Составить программу для управления мехатронным модулем линейного перемещения в цикловом режиме.

Лабораторная работа №4

Управление мехатронным модулем в позиционном режиме

Цель работы: состоит в изучении принципов позиционного управления и разработке и отладке подпрограммы позиционного управления движением степени X, Y или Z УРТК.

Теоретические сведения

  1. РОБОТЫ, РАБОТАЮЩИЕ В ДЕКАРТОВОЙ СИСТЕМЕ КООРДИНАТ

Движения в них обычно осуществляются вдоль трех взаимно перпендику­лярных oceй. как показано на рис. 1. Для них дости­гаются наилучшие разрешение и точностные характеристики внутри рабочей области. Некоторые из преимуществ и недостатков роботов перечислены ниже.

Рис. 1. Робот с декартовой системой координат.

Преимущества

1. Высокая разрешающая способность и отличные точно­стные характеристики.

2. Хорошие возможности по обходу препятствий и преду­преждению столкновений.

3. Независимость гравитационной нагрузки, а следовательно, упрощение управления движениями в сочленениях.

Недостатки

1. Большие габариты конструкции.

2. Ограниченная рабочая область.

3. Ограниченная совместимость с другими манипуляторами в общей рабочей области.

4. Усложненная конструкция для осуществления линейных перемещений.

5. Большая занимаемая производственная площадь.

  1. РОБОТЫ, РАБОТАЮЩИЕ В ЦИЛИНДРИЧЕСКОЙ СИСТЕМЕ КООРДИНАТ

Они обычно имеют две поступательные сте­пени подвижности во взаимно перпендикулярных направлениях и одну вращательную степень подвижности (рис. 2). Ниже перечислены преимущества и недостатки роботов этого типа.

Рис. 2. Робот с цилиндрической системой координат.

Преимущества

1. Почти отсутствует зависимость от гравитационных на­грузок.

2. Движение осуществляется без столкновений.

3. Наличие двух осей линейного перемещения делает меха­ническую конструкцию менее сложной, чем у роботов, работаю­щих в декартовой системе координат.

Недостатки

1. Большое количество составных узлов.

2. Ограниченная совместимость с другими манипуляторами в общей рабочей области.

3. Меньшие точность и разрешение по сравнению с робота­ми, работающими в декартовой системе координат.

3. РОБОТЫ, РАБОТАЮЩИЕ В СФЕРИЧЕСКОЙ ИЛИ ПОЛЯРНОЙ СИСТЕМЕ КООРДИНАТ

У этих роботов имеются две вращательные и одна поступательная (телескопическая) степень подвижности. Ниже перечислены преимущества н недо­статки роботов этого типа.

Преимущества

1. Наименьший вес и минимальная сложность конструкции.

2. Малые движения в сочленениях при выполнении многих движении.

3. Совместимость с другими роботами и оборудованием в общей рабочей области.

4. Хорошее разрешение из-за того, что ошибки позициони­рования направлены перпендикулярно друг другу.

Рис. 3. Робот со сферической системой координат.

Недостатки

1. Значительные переменные моменты во втором и третьем сочленениях исполнительного механизма, что приводит к необ­ходимости решения задачи их балансирования.

2. Ограниченная способность избегать столкновений с пре­пятствиями.

3. Ошибка позиционирования пропорциональна радиусу и велика из-за использования вращательных движений.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]