Скамко (Инструкция по эксплуатации)

Посмотреть архив целиком



Протокол обмена между ПК и блоком управления


Связь машины верхнего уровня с промежуточным микроконтроллером осуществляется по последовательному каналу типа 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 предыдущих байт.



Описание программного обеспечения


Программа «Система управления робота Скамко-1» (ckamko.exe)

Программа «Система управления робота Скамко-1» (файл ckamko.exe) представляет собой интерфейс верхнего уровня системы управления робота.

Она предназначена для организации взаимодействия СУ с пользователем и позволяет:

  • Обеспечивать связь между компьютером с операционной системой Windows XP и контроллером управления приводами и технологического оборудования.

  • обеспечивать связь с вышестоящим уровнем системы управления по сети

  • обеспечивать связь с системой технического зрения

  • осуществлять непрерывную диагностику приводов манипулятора

  • контролировать текущие координаты всех звеньев манипулятора и его схвата

  • обучать робот точкам

  • решать прямую и обратную кинематические задачи в целях управления роботом в позиционном и контурном режимах.


В ее состав вошли:

  1. Интерпретатор робото-ориентированного языка на основе Javascript

  2. Модуль драйвера COM-порта

  3. Пульт ручного управления

  4. Модуль для работы с файлами


Ядро программы представляет интерпретатор робото-ориентированного языка программирования. Разработанный мною язык программирования базируется на языке Javascript и поэтому подчиняется всем правилам, которые ему присущи. Мною был разработан набор из 17 макрокоманд, доступных пользователю. Синтаксис макрокоманд похож на синтаксис языка ARPS, что делает обучение пользователя, знакомого с ним, работе с языком программирования робота «Скамко-1» очень быстрым.

Скриптовые языки одним из которх является Javascript работают с системными функциями через COM автоматизацию (COM Automation), поэтому мною был создан COM сервер Control c одним интерфейсом, содержащим 17 методов (method) и несколько служебных свойств (property). Для того чтобы подключиться к серверу автоматизации Jasvasript использует функцию ActiveXObject(), передавая ей ProgID сервера. Для запуска файла *.js используется программа WinScript, входящая в состав операционной системы Widows XP. Это позволяет отслеживать завершение одноименного процесса операционной системы, а соответственно и выполнения скрипта. Запуск набранной пользователем программы осуществляется по схеме, упрощенно показанной на рисунке 1.

Рис 1


Файл functions.lst содержит описание макро-команд обращения к интерфейсным функциям сервера Control. Набор описаний может быть расширен при доработке языка программирования и расширения его системы команд. Структуру макро-описания рассмотрим на примере команды GO( ). Входным параметром является структура типа POINT, которая задается командой POINT (X, Y, Z, PHI), где X, Y, Z, PHI – это соответственно координаты и ориентация схвата в декартовой системе координат. Кроме того, структура POINT дополняется еще 10 полями при использовании локальной системы координат, речь о которой пойдет ниже.


Пример описания макрокоманды:

function GO(pt)

{

if (pt.using_frame != 111)

{

server.Go(pt.x, pt.y, pt.z, pt.orient);

}

else

{

server.Go_Frame(pt.x, pt.y, pt.z, pt.orient, pt.x1, pt.y1, pt.z1, pt.x2, pt.y2, pt.z2, pt.x3, pt.y3, pt.z3);

}

}


Сначала идет ключевое слово function, говорящее о том, что текст заключенный в фигурные скобки, представляет собой описание макрофункции. Затем идет название функции GO и ее входной параметр pt. По значению поля using_frame структуры point интерпретатор определяет, является ли эта точка заданной в глобальной системе координат, или она задана в системе координат какого-либо фрейма. Если точка задана в глобальной системе координат, то следует вызов метода Go сервера автоматизации. Описание методов находится в файле CONTROLIMPL.СPP ( Implementation of TControlImpl (CoClass: Control, Interface: IControl) ). Если значение using_frame установлено в 111, то точка задана в локальной системе координат фрейма, поэтому вызывается другой метод – Go_Frame. Его входные параметры кроме координат и ориентации схвата содержат координаты трех точек, по которым составляется фрейм.


Интерфейс пользователя представлен на рисунке 2


Рис 2


Команды вводятся пользователем с клавиатуры в окне «Text». При этом должны быть соблюдены определенные правила, называемые синтаксисом языка.

Каждая новая команда и вообще ключевое слово должны вводиться с новой строки. В конце строки должна ставиться точка с запятой(;).

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

Из-за того, что манипулятор «СКАМКО» не обладает датчиками положения текущее положение сочленений неизвестно. Поэтому предлагается прежде чем перемещать схват в нужную точку выполнить операцию калибровки. Данная задача реализована командой “CALIBRATE()”. Встречая этот оператор, интерпретатор выдает команду на калибровку системы управления, а после получения отчета о выполнении, осуществляет перемещение всех звеньев в нулевое (домашнее) положение. После этого продолжается разбор следующих команд.


Система команд интерпертатора.


CALIBRATE() - без параметров. Запускает процедуру калибровки

SPEED(X) X –целое. Задает скорость передвижения манипулятора


Случайные файлы

Файл
145150.rtf
60476.rtf
98514.doc
100614.rtf
117041.doc




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.