Файл: Инструкция по эксплуатации программного обеспечения.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 03.06.2025

Просмотров: 278

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

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

Блок управления манипулятора «Скамко-1»

Содержание

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

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

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

1.3 Команды движения

1.4 Модуль драйвера порта

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

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

3. Алгоритмы ПО приводного уровня.

3.1 Алгоритм основного цикла программы

3.2 Алгоритм обработки сервисных команд

3.3 Алгоритм управления работой привода

3.4 Алгоритм режима калибровки с помощью концевых датчиков

3.5 Алгоритм разгона/торможения привода

4. Инструкция по прошивке микроконтроллеров Atmega128 и Atmega8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Рис 1

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

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

functionGO(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), которые генерирует операционная системаWindowsXPи программаWinScriptв частности.

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


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

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

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

DELAY(MS)– задержка в миллисекундах

OPEN() – без параметров. Открывает схват манипулятора

CLOSE()– без параметров. Закрывает схват манипулятора

PRINT(“message”) – выводит текстовое сообщение в появляющемся окне.

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

struct Point{ VARIANT x; VARIANT y; VARIANT z; VARIANT orient; };

Для задания точки служит команда POINT(X,Y,Z,Orientation).

Пример задания точки : var point1 = POINT (1, 2, 3, 4);

Локальная система координат frame

Для задания локальной системы координат служат 2 команды.

MAKEFRAME(точка1, точка2, точка3)– задает фрейм по трем точкамPOINT

var frame = MAKEFRAME(pt1, pt2, pt3);

точка pt1 – начало системы координат фрейма

точка pt2 – направление оси Х фрейма относительно точки pt1

точка pt3 – точка, через которую проходит плоскость, параллельная оси X фрейма.

POINTTOFRAME(точка , фрейм) - задает точку POINT в локальной системе координат FRAME.

Pt1 = POINTTOFRAME(pt, frame); - в этом случае точка pt имеет координаты X, Y, Z, PHI в глобальной системе координат, а точка Pt1 имеет численно равные координаты X, Y, Z, PHI в системе координат фрейма frame.

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

Рис 3

Пусть имеются две системы координат с центрами O и О1 соответственно, тогда вектор OA = OO1+O1A. Пусть координаты точки А в системе координат (О1, x1, y1, z1) известны, тогда для вычисления координат искомого вектора OA выполним следующие операции над вектором O1A:


OA = R * O1A + OO1, где R – матрица 3x3, а OO1 – вектор 3x1.

Вектор OO1 имеет координаты точки начала фрейма и по умолчанию нам известен.

Предположим, что начала введенных систем координат совпадают и найдем матрицу R.

Элементы каждого столбца матрицы поворота R представляют собой компоненты проекции каждого орта системы OX1Y1Z1 на оси системы OXYZ.

Рис 4

Точка M имеет координаты (P2X, P2Y, P2Z), точка N - (P3X, P3Y,P3Z) – они так же задаются пользователем в команде создания фрейма.

Сперва найдем направляющие косинусы оси OX1:

;

;

Рассмотрим треугольник ONM:

Рис 5

;

;

;

Тогда вектор ;

Соответственно направляющие косинусы:

:

Оставшийся третий орт находится как векторное произведение: Z1=X1xY1

Таким образом команды, использующие фреймы переходят от координат локальной системы координат к глобальной.

1.3 Команды движения.

MOVEJOINT(JOINT, ANGLE)– Поворачивает степеньJOINTманипулятора на уголANGLE

GO(A) – A – это точка POINT. Выводит манипулятор в точкуA. Без планирования траекторий степеней подвижности.

GOS(A) – A – это точка POINT. Выводит манипулятор в точкуA. Движение выполняется от текущей точки к точкеAпо прямой.

GONEAR(A,B) – здесьA– это точкаPOINT, В – это расстояние до точки А. Выводит манипулятор в точку с координатамиX,Y, (Z–B)