Файл: Инструкция по эксплуатации программного обеспечения.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.06.2025
Просмотров: 277
Скачиваний: 1
СОДЕРЖАНИЕ
Инструкция по эксплуатации (иэ-1)
1.2 Система команд интерпертатора.
Локальная система координат frame
2. Протокол обмена между пк и блоком управления
3. Алгоритмы по приводного уровня.
3.1 Алгоритм основного цикла программы
3.2 Алгоритм обработки сервисных команд
3.3 Алгоритм управления работой привода
3.4 Алгоритм режима калибровки с помощью концевых датчиков
3.5 Алгоритм разгона/торможения привода
4. Инструкция по прошивке микроконтроллеров Atmega128 и Atmega8
GOSNEAR(A,B) – здесьA– это точкаPOINT, В – это расстояние до точки А. Выводит манипулятор в точку с координатамиX,Y, (Z–B). Движение выполняется по прямой.
MOVE(X,Y,Z) –X,Y,Z– координаты схвата в глобальной декартовой СК. Перемещает манипулятор из текущего положения наX,Y,Zмм по осям системы координат
Для того чтобы добавить пользовательскую команду в язык необходимо воспользоваться библиотекой типов (TypeLibrary) и добавить в интерфейсIControlновый метод стандартным способом, учитывая что типы данных переменных не должны быть привязаны к платформе и архитектуре.
1.4 Модуль драйвера порта
Для того, чтобы осуществить связь между компьютером и контроллером по последовательному порту, используется подпрограмма драйвера COMпорта.
Необходимо использование следующих функций:
Открыть порт
Сконфигурировать порт, то есть определить скорость передачи, контроль четности, количество бит данных.
Установить тайм-ауты передачи.
Записать данные в порт
Прочитать данные из порта
Закрыть порт.
Функции для работы с COM-портом находятся в файлеMs.h. В этом файле определен класс драйвера порта содержащий следующие методы:
boolean Open(char port[], DWORD BaudRate, BYTE ByteSize,BYTE Parity, BYTE StopBits) - функция открытия порта. ВозвращаетTRUE,если порт открылся нормально.
Close(void) - закрытие порта.
ResetRB(void)- очистка буфера приема.
ResetWB(void)- очистка буфера передачи.
unsigned short Read(BYTE *buffer, unsigned short numbytes) - возвращает количество считанных байт.
unsigned short Write(BYTE *buffer, unsigned short numbytes) - возвращает количество переданных байт.
unsigned short MSerial::GetRBSize(void) -возвращает число принятых символов в буфере приема (еще не считанных функциейRead).
unsigned short GetWBSize(void) -возвращает число еще не переданных символов в буфере передачи.
Открытие файла COM-порта может осуществляться как в оверлейной так и в неоверлейной системе. В нашем случае использовалась неоверлейная, однако в целях оптимизации использования ресурсов процессора планируется реализовать оверлейную систему. Для этого нужно будет отредактировать одну строку функцииOpen.
1.5 Пульт ручного управления
По нажатию пункта меню “Ручное управление” появляется следующее окно:
Рис 6
С помощью этого модуля пользователь может вручную, путем поворота или линейного перемещения звеньев вывести схват в определенную точку. Далее запоминаются(заносятся в массив данных) координаты данной точки. Для удобства работы сделана кнопка Calibrate, которая позволяет запустить процедуру калибровки прямо с пульта, не прибегаю к интерпретатору. После этого можно в основном окне программы добавить текущее положение в память системы управления.
Рис 7
Для начала работы с основной программой необходимо:
Запустить файл ckamko.exe
Выбрать пункт меню настройка. Появится следующее окно.
Рис 8
Выбрать COM-порт, к которому подключен контроллер управления.
Нажать кнопку «Установить соединение». В случае успешного отклика системы окно закроется.
Набрать текст программы или загрузить ранее сохраненный текст с помощью меню Файл -> Открыть
Нажать кнопку «Выполнить». Манипулятор начнет движение. Кнопка «Выполнить» будет недоступна, пока программа не будет выполнена. Промежуточная информация будет выводиться в окне «Журнал событий».
2. Протокол обмена между пк и блоком управления
Связь машины верхнего уровня с промежуточным микроконтроллером осуществляется по последовательному каналу типа RS-232С с настраиваемой скоростью (по умолчанию 19200 Бод). Обмен данными между PC и микроконтроллером производится только по инициативе первого по командному протоколу.
В системе предусмотрено два типа посылок.
1 Тип– сервисные команды высокого приоритета. Посылка состоит из одного байта, что позволяет обеспечить максимально быструю обработку команды блоком управления приводами. Сервисная команда состоит из 10 бит. Старший бит данных должен быть равен 1
|
стартовый бит |
8 бит данных |
1 стоповый бит |
В настоящий момент предусмотрено 3 сервисных команды:
Код 0x81: Команда экстренной остановки двигателей. Манипулятор прекращает движение. Двигатели переводятся в режим удержания.
Код 0x82: Команда снятия управления. Снимается напряжение с драйверов двигателей и с обмоток шаговых двигателей. Управление манипулятором в данном режиме невозможно.
Код 0х83: Команда возвращения управления. Напряжение подается на драйверы двигателей. Возможно получение команд на перемещение.
2 Тип – команды нормального режима работы. Для того чтобы осуществить поворот двигателя наnшагов со скоростьюv, необходима посылка из 6 байт. Для того чтобы осуществить перемещение манипулятора, нужна посылка для каждого из 5 двигателей. Таким образом, максимальная длина посылки 30 байт, минимальная 6 байт.
Команда на перемещение двигателя состоит из 6 байт:
Байт 1 называется контрольным:
|
0 |
адрес |
адрес |
адрес |
Направление |
Шаг/полушаг |
½ обмотки |
Коллизия данных |
Старший бит равен 0.
Три оставшиеся бита старшей тетрады содержат адрес приводного контроллера (от 1 до 6).
Старший бит младшей тетрады отвечает за направление вращения двигателя:
0 – по часовой стрелке, 1 - против часовой стрелки
Следующий бит устанавливает шаговый или полу шаговый режим работы двигателя.
0 – полно шаговый режим, 1 – полу шаговый режим.
Следующий бит устанавливает энергетический режим работы шагового двигателя.
0 – включены две обмотки, 1 – включена одна обмотки.
По умолчанию всегда работают 2 обмотки – это позволяет увеличить момент и сохранять его постоянным.
Младший бит – показывает, что в посылке есть байт, значение которого совпадает с кодом сервисной команды. При разборе посылки на нижнем уровне сервисные команды будут отключены на время передачи посылки, которое на скорости 19200 кбит/с составляет чуть меньше 5 миллисекунд..
Далее в посылке следуют 2 байта – слово шагов.
Слово шагов передает на нижний уровень команду на выполнение от 0 до 65535 шагов. На практике значение должно быть кратно 128, так как это минимальное время, за которое может быть выполнен один шаг двигателя. Старший бит слова содержит старшую часть числа, младший – младшую.
Следующие 2 байта – слово периода.
С учетом специфики управления шаговыми двигателями и осуществления режимов разгона и торможения было принято решение отправлять на нижний уровень не скорость, а период времени в миллисекундах, за которое двигатель должен выполнить количество шагов указанных в слове шагов. Слово позволяет передавать значение периода от 0 до 65535 мс. Старший бит слова содержит старшую часть числа, младший – младшую
Последний байт представляет собой контрольную сумму, подсчитанную по алгоритму CRC8 для 5 предыдущих байт.
Поскольку передача и прием информации производится по одним и тем же проводам, нельзя передавать несколько пакетов подряд, необходимо дождаться ответа на каждый переданный пакет либо истечения таймаута, прежде чем передавать следующий. Поэтому было принято решение создать математическую модель обмена сообщениями между уровнями при выполнении команд нормального режима работы системы.
Взаимодействие между уровнями системы управления в виде сети Петри представлено на рис. 7.2:
Переход t1 – передача данных от верхнего уровня(COM-порт) на средний уровень(UART0 микроконтроллераATmega128).
Переход t2 – передача данных от среднего уровня на приводные контроллеры.
Переход t3 – отработка приводными контроллерами заданных перемещений.
Переход t4 – переход в состояние ожидания запроса отчета о выполнении движения. Ожидание сигнала на линииXBUSA.
Переход t5 – запрос верхним уровнем отчета о выполнении движения после истечения задержки с периодомn,n– время необходимое приводным контроллерам для выполнения заданных перемещений степеней манипулятора.
Переход t6 – установка канальных задержек после обнаружения синхросигналаXBUSA.
Переход t7 – для каждого канала после истечения канальной задержки включается передатчикUART, линияTXпереводится в состояние высокого уровня, передаются данные на средний уровень (наUART1 микроконтроллераATmega128), отключается передатчикUART, линияTXпереводится в «третье состояние» (tri-state).
Переход t8 – получение отчетов (микроконтроллеромATmega128) о выполнении заданных перемещений всеми приводными контроллерами.
Переход t9 – передача отчета среднего уровня о выполнении задачи на верхний уровень.
Позиция P1 – начало передачи.
Позиция P2 – установка синхросигналаXBUSA.
Позиция P1 – снятие синхросигналаXBUSA.
Позиция P1 – конец передачи.
Позиции Si – загрузка счетчика постоянным значением для установки временной задержки в миллисекундах.
Позиции Сi – счетчики задержки.
Позиции di – «сток» счетчика задержки.
Данная сеть показала, что в предложенном алгоритме нет тупиковых ветвей и бесконечных циклов. Дальнейшая отладка протокола передачи проводилась с помощью программы ckamdemoи изготовленной системы управления.