Федеральное агентство железнодорожного транспорта
Омский государственный университет путей сообщения
Кафедра «Автоматика и системы управления»
ОБЗОР ПРОМЫШЛЕННЫХ РОБОТОВ И выявление ПРОБЛЕМ
Отчет по научно-исследовательской работе
Этап № 1
Студент гр. 25 q ____________ «__»________2015 г. Руководитель – доцент кафедры АиСУ ____________ «__»________2015 г. |
Омск 2015
Оглавление
Введение. 3
1 Языки управления роботов. 5
2 Программирование промышленных роботов. 7
3 Обоснование выбора синтаксиса языка. 10
3.1 Описание синтаксиса языка робота. 12
3.1.1 Использование циклов. 14
3.1.2 Использование криволинейных перемещений. 14
3.2 Графический редактор. 15
17
Введение
В современном мире основным направлением развития промышленности является автоматизация производства. Это способствует росту его эффективности за счет повышения качества выпускаемой продукции, а также сокращения доли рабочих, занятых в различных сферах производства.
Одним из основных элементов автоматизации промышленных предприятий является использование роботизированных комплексов, состоящих из механических манипуляторов и систем управления ими. Применение промышленных роботов-манипуляторов позволяет исключить влияние человеческого фактора на производстве, повысить точность выполнения технологических операций, в определенной степени уменьшить воздействие вредных факторов на персонал, сократить площадь производственных помещений и обеспечить бесперебойную работу производства в течении 365 дней в году.
Необходимость исследования и совершенствования систем управления манипуляционными роботами прежде всего обусловлено их широким применением. Подобные устройства используются в строительной отрасли (краны-манипуляторы), металлургии (прокатные станы, ковочные манипуляторы), горнодобывающей промышленности (бурильные машины), химической промышленности (манипуляторы для работы с токсичными и радиоактивными материалами), судостроительной и авиационной отраслях (сварочные и сборочные манипуляторы, манипуляторы для резки металлов) и других областях.
Несмотря на различное техническое исполнение, любой манипуляционный робот состоит из нескольких степеней подвижности (звеньев) и исполнительных механизмов (двигателей), приводящих звенья в движение. В качестве перемещающих звенья манипулятора механизмов, в зависимости от назначения робота, чаще всего используются шаговые двигатели либо сервоприводы различной мощности. Отметим, что шаговымдвигателям отдается предпочтение в случае если скорость перемещения звеньев робота не является критичным параметром. Например, данный тип приводов может использоваться при построении грузовых манипуляторов. Если же требуется обеспечить высо-
кую скорость движения робота (например, манипулятора, производящего сборку деталей), то наиболее целесообразно использовать сервоприводы.
Укрупненно процесс разработки робота-манипулятора состоит из двух этапов:
– разработка механической части робота (выбор материала для изготовления составных частей, а также типа исполнительных механизмов);
– разработка системы управления манипулятором (выбор контроллера, выбор средства программирования, разработка алгоритмов управления).
Для подготовки технических специалистов, компетентных в области работы с роботами манипуляторами, помимо теоретических знаний важно сформировать практические навыки использования подобных устройств. Зачастую данную проблему нельзя решить, предоставив обучающимся доступ к промышленному оборудованию, поскольку их действия могут нанести ущерб как оборудованию, так и человеку. Поэтому необходимо отработать базовые навыки работы с оборудованием, а также действия, предпринимаемые в нештатных и аварийных ситуациях.
Существуют различные методы, так или иначе решающие эту задачу, однако они не отличаются требуемой гибкостью и не в полной мере дают практические представления о современном производстве. Поэтому целесообразно разработать учебный комплекс, удовлетворяющий всем современным требованиям, основой которого станет робот-манипулятор.
Языки управления роботов
Языков программирования роботизированных систем существует достаточно много. Вот только некоторые из них: AL, AML, MELFA Basic 4, Movemaster Command, IRL, KRL, RAPID, Vplus, FROB, RPL, RPS, RCCL, Saphira, Colbert.
Конечно, все эти языки различаются тем, на каком уровне они предназначены работать. Так некоторые предназначены для «общения» с внешним миром, например, с оператором, другие языки предназначены для реализации логики алгоритма на машинном уровне (языки низкого уровня). Также есть отличие в задачах, которые призваны решать эти языки. Возможно, некоторые из них являются более «теоретическими» и являются результатом работ по разработке универсального способа общения человека и робота, в то время как другие, наоборот, призваны решать более прикладные задачи конкретных типов механизмов в конкретных сферах производственной деятельности человека. Также многообразие языков программирования определяется тем, что многие из них разрабатывались для конкретных платформ и сред исполнения конкретными производителями. Так, например, язык AML был разработан компанией IBM для своих роботов типа IBM RS-1, языки MB4 и MRL компанией Mitsubishi для своих систем.
Согласно уровням управления манипуляторами, можно выделить следующие уровни для языков программирования:
первый (низший) уровень. На этом уровне происходит программирование непосредственно узлов исполнения механизма (приводов). На этом уровне приходится брать во внимание структуру самого манипулятора. Например, чтобы позиционировать захват в необходимую точку пространства, необходимо отдать соответствующие отдельные команды позиционирования для каждой ос;
второй (средний или тактический) уровень. На этом уровне программирование идет командами типа «взять», «перенести», «открыть дверцу» и т. д. Эти команды расшифровываются вычислительной машиной и переводятся на язык низшего уровня. На этом уровне, например, для позиционирования захвата необходимо только определить трехмерную точку назначения, а соответствующие команды для осей будут выработаны компилятором языка самостоятельно;
третий (высший или стратегический). Команды на этом уровне имеют более общую формулировку задания, например, «собрать узел», «разгрузить контейнер» и т. п. Эти обобщенные команды переводятся на язык низшего уровня, а возможно и тактического, с учетом информации о свойствах внешней среды, рабочих объектов, причем возможные варианты алгоритмов для достижения заданной цели определяются и сравниваются по критериям оптимизации. Например, на этом уровне для движения по заданным точкам может использоваться интерполяция. То есть в предыдущих двух уровнях позиционирование будет осуществляться к точно указным точкам, а на этом уровне позиционирование будет осуществляться по интерполяционной траектории, возможно с обработкой ситуации возникновения препятствия на пути.
Очевидно, что чем выше уровень языка, тем он сложнее в своей реализации, но более прост в своем использовании.
Основная часть перечисленных выше языков предназначена для управления универсальными роботизированными системами. Но есть и более узкие по своему применению системы, которые также призваны решать задачи автоматизации производства. Такие системы могут разрабатываться для конкретного предприятия. Примером такой системы может служить автоматизированная технологическая линия. Обычно для параметрирования и программирования такой системы могут использоваться не языки программирования, а табличное представление шагов, которые необходимо выполнить механизму во время одного технологического такта. Таким же образом перечисляются точки назначения, из которых состоят эти шаги и параметры, с которым механизм должен выполнять тот или иной шаг. Тут необходимо сделать замечание, что не следует путать средство программирования самой системы и язык программирования аппаратной части исполнительного механизма этой системы. Так, например, если роботизированная система построена на основе программируемого логического контроллера семейства SIMATIC фирмы Siemens, то такой логический контроллер может быть запрограммирован на языке SCL (Structured Control Language). А вот средство программирования системы разрабатывается проектировщиком этой системы и предназначено для предоставления оператору технологической линии средства для формирования алгоритма работы этой системы, и может представлять собой язык программирования, табличное представления шагов, необходимых для выполнения технологических тактов или имеет иное представление.
Выбор того или иного средства формирования алгоритма зависит от конкретного проекта и, возможно, от его универсальности.
Программирование промышленных роботов
Практически все фирмы-производители робототехники разрабатывают собственные языки программирования и средства вспомогательного программного обеспечения. Большинство промышленных роботов имеют комплексную программную оболочку, в которую по необходимости можно интегрировать разнообразные дополнительные модули расширения. Так, например, существует возможность подключения модулей коммуникаций с внешними сенсорными устройствами: система видео наблюдения, система замера прилагаемой нагрузки, вращающего момента, что дает возможность робототехнической системе реагировать на изменение внешних условий.
Написание программ происходит в обычном текстовом редакторе, хотя некоторые роботы обладают собственными встроенными текстовыми редакторами. Программы одного производителя робота, как правило, не подходят для робота другого, по меньшей мере, без предварительной переработки. Программирование промышленных роботов делится на два вида:
– Online – программирование;
– Offline – программирование.
Как правило, для программирования робота могут использоваться оба вида.
Существуют также различия относительно методов программирования, возможностей самих языков программирования и возможностей роботов.
Online программированием называют программирование робота непосредственно на месте его установки, с помощью самого робота. К данному способу относятся два метода: Teach-In (обучение) и Playback (проигрывание):
метод Teach-In. При этом методе движение робота в пространстве к заданному участку производится управляющей консолью. В большинстве случаев в самом роботе (в первую ось) заложена система координат, связанная в свою очередь посредством кинематической цепи с самой удаленной точкой робота (например, шестой осью у шестиосевого робота). Таким образом, местоположение и ориентация всех осей и предполагаемого инструмента робота в пространстве всегда известны. Достигнутое местоположение (пункт) запоминается котроллером робота и выполняется до тех пор, пока робот не выполнит все требуемые операции. Совокупность таких пунктов определяет траекторию самостоятельного движения робота. Каждый пункт имеет определенное количество изменяемых параметров таких как скорость движения и углового вращения, точность конфигурацию осей;
Метод Playback. Робот посредством человека вручную обводится по траектории предполагаемого движения, которая в последствии в точности повторяется роботом. Этот метод часто применяется при программировании роботов, занимающихся лакированием и покраской.
К недостаткам Online программирования относится то, что производственный процесс во время программирования приостанавливается. К тому же такое программирование не обеспечивает высокой точности обработки и конечно не очень удобно для каких-либо изменений.
Offline программирование производится на обыкновенном компьютере без непосредственного участия робота, что дает возможность программирования робота без остановки производственного процесса. Offline программирование осуществляется следующими видами программирования:
текстовое программирование. Это обычный вид программирования, когда используется текстовой язык программирования. Программа описывает алгоритм работы всех частей робота, опрос сенсоров и т. д. Программа непосредственно или удаленно загружается в контроллер робота;
графическое программирование (2D, 3D-модели). Программирование контуров обрабатываемых деталей посредством запоминания отдельных пунктов, достаточно кропотливая работа, занимающая зачастую много времени. С развитием компьютерной техники и конструкторских программ стало возможным применение CAD моделей для программирования траектории движения робота на графические модели деталей и затем интерпретировать их в язык программирования роботов. Данные программы позволяют также создавать модели и прототипы робототехнических комплексов с роботами и периферийным оборудованием, которые наглядно отображают технологический процесс. Конечно, такие программы не лишены недостатков и должны быть впоследствии адаптированы непосредственно на месте.
Преимущество таких программ в том, что они экономят массу времени и практически не останавливают производства, плюс к этому дают возможность работать с программами моделирования, которые позволяют увидеть работу робота прямо на экране монитора. Получаемое наглядное изображение дает возможность предварительной оценки многих параметров еще на стадии планирования и конструирования РТК.:
– выбор типа робота;
– будет ли робот держать деталь или инструмент;
– в состоянии ли робот достичь желаемой позиции в пространстве;
– позиционирование детали в пространстве, возможное столкновения робота и вспомогательного оборудования, время рабочего цикла и т. д.
Виртуальная оценка рабочего пространства робота со всех перспектив дает четкое представление о расположении узлов установки, что в реальности не всегда возможно. Но есть и недостатки такого программирования. Offline-программирование предполагает наличие CAD-данных по возможности всех узлов робототехнической установки. Чем точнее и полнее данные, тем точнее осуществляется программирование робота. На практике не всегда возможно получение всех 3D-моделей и, как правило, точность 3D-моделей по сравнению с реальными оставляет желать лучшего. Также довольно трудно оценить расположение проводок водо-, газо-, и энергоснабжения монтированных на роботе и изменяющих свое положение в зависимости от конфигураций осей робота.
Обоснование выбора синтаксиса языка
В настоящее время в мировой практике при разработке программного обеспечения для станков с ЧПУ господствующим является следующий подход. На первом этапе используется одно из средств автоматизированной подготовки производства семейства САМ. Например, ArtCam. Внешний вид окна приведен на рисунке 3.1.

Рисунок 3.1 – Внешний вид окна средства автоматизированной подготовки производства
Это очень мощное средство, позволяющее реализовать изделия практически неограниченной сложности. Решение выдается в виде так называемого G-кода. Далее необходимо применение постпроцессора – функционального средства, которое по предписанным правилам преобразуют абстрактные траектории инструмента (в совокупности с другими назначенными параметрами обработки) непосредственно в коды управляющей программы для конкретного станка с ЧПУ.
G-код – условное именование языка программирования устройств с числовым программным управлением (ЧПУ). Был создан компанией Electronic Industries Alliance в начале 1960-х. Окончательная доработка была одобрена в феврале 1980 года как стандарт RS274D. Комитет ISO утвердил G-код как стандарт ISO 6983-1:2009, Госкомитет по стандартам СССР – как ГОСТ 20999-83. В советской технической литературе G-код обозначается как код ИСО 7-бит (ISO 7-bit). G-код кодировали на 8-дорожечную перфоленту в коде ISO 7-bit (разработан для представления информации УЧПУ в виде машинного кода так же, как и коды AEG и PC8C), восьмая дорожка использовалась для контроля чётности.
Производители систем УЧПУ (CNC), как правило, используют ПО управления станком, для которого написана (оператором) программа обработки в качестве осмысленных команд управления, используется G-код в качестве базового подмножества языка программирования, расширяя его по своему усмотрению.
Однако такой подход является достаточно дорогостоящим как в отношении разработки программы обработки, так и в отношении аппаратной реализации. Он применим для мощных обрабатывающих центров крупных предприятий, и может быть реализован специалистами достаточно высокой квалификации.
Для более простых задач, таких как токарная обработка, воспроизведение плоских кривых, сборочные операции и т. д. на кафедре АиСУ в начале 90-х годов был разработан более простой синтаксис языка для станков с ЧПУ, который и был взят за основу в настоящей работе. Многолетняя практика его применения для деревообрабатывающих станков, а также учебного оборудования показала его эффективность. Для многих приложений по функциональности он не уступает G-коду. Его простота и интуитивность не требует от оператора специальной подготовки. Подготовка программы может вестись непосредственно на рабочем месте. Ниже приведены примеры применения разработанных программных средств для различных видов многокоординатных манипуляторов (рисунки 3.4 и 3.5).

Рисунок 3.2 – Шахматный робот

Рисунок 3.3 – Учебный робот
Описание синтаксиса языка робота
Программы пользователя представляют собой текстовые файлы с расширением. txt, содержащие команды специализированного языка, обрабатываемые управляющей программой.
В начале программы приводятся сведения о ней, например параметры фрезы обрабатывающего станка и используемой заготовки, наименование изделия и др. Текст комментариев в программе отделяется от основного текста так же, как и в языке программирования С, С++, С# т. д. Комментарии не оказывают никакого влияния на результат компиляции программы. С точки зрения синтаксиса, существуют два вида комментариев:
многострочный комментарий может иметь любую длину, он отмечается специальными символами в начале и конце (например, /* */);
однострочный комментарий отмечается специальным символом в начале (например, //) и продолжается до конца строки.
Например:
/*
Программа обработки детали
Материал – сталь 3
Размеры заготовки – 100х100х10 мм
Тип фрезы – концевая
Диаметр фрезы – 10 мм
Время исполнения программы – 10 мин 23 сек
*/
Станок имеет шесть независимых координат: X, Y, Z, F, S, R. Помимо них применяются скорость перемещения Р.
Программа представляет собой последовательность строк, каждая из которых задает равномерное перемещение по одной координате или нескольким. Пусть, например, при включении станка исходное положение координат следующее: x = 2; y = l; z = 2; f = 40. При исполнении строки программы: x=1 у=5 z=l f=90 p=0,8, произойдет одновременное перемещение всех четырех координат в точку с координатами x = l; y = 5; z = l; f = 90. Обычно линейные координаты измеряются в сантиметрах, причем выбрать единицу измерения можно в окне «Единицы измерения» (меню «Настройка»). Значения координаты F всегда задаются в градусах. Пробелы в командной строке служат разделителями выражений. Реальная скорость подачи вычисляется управляющей программой на основании значений величин перемещений инструмента, заданной скорости Р и максимальной скорости подачи для каждого привода.
Очередность записи координат в строке произвольная. Если в данной строке изменяются менее шести координат, то записываются только изменяемые координаты. Координаты, не введенные в строке программы, не будут изменять своего значения до следующей строки (если их значение отлично от фактического). Например, в строке: х=1,5 у=2,5, изменятся только X и Y, остальные координаты, в том числе и скорость подачи, останутся неизменными.
Иногда можно задавать не саму координату, а ее приращение. Например, команда х=х+0,5 у=у-2,5 равнозначна предыдущей (при ранее приведенном начальном положении). В обоих случаях произойдет увеличение координаты X на 0,5 см (с 1 см до 1,5) и уменьшение координаты Y на 2,5 см (с 5 см до 2,5).
Если одно и то же значение координаты или ее приращение встречается в программе много раз, то можно ввести константу, которая должна быть описана до ее первого применения.
Имя константы может состоять из символов и цифр и не должно быть числом, совпадать с именами координат или символами операций. Применять константы можно в том случае, если в законченной программе необходимо изменить все значения какой-либо координаты на одинаковую величину. Такая необходимость может возникнуть, например, при сдвиге детали вдоль декартовых осей. Например:
х0=0,5
const=2,5
х=х+х0 y=y-const
Эта команда равнозначна двум предыдущим.
Для масштабирования координат можно использовать арифметические выражения: х = х · 3 у = у / 5.
Если после выполнения предыдущей команды координаты имели следующие значения: х=0,5; у=2,5, то после выполнения последней команды получим другие координаты: х = 1,5; у = 0,5.
При отладке программы часто бывает необходимо выполнить ее фрагмент. Ту часть текста программы, который не нужно выполнять, отделяют в виде комментариев, как было показано ранее.
Использование циклов
Циклы используются для сокращения программы в тех случаях, если элемент траектории движения повторяется много раз. Например:
x=0 у=0 f=45 z=5 p=l // Исходное положение
*8 // Начало цикла и число повторений
z=2 p=0,5 // Опускание инструмента
х=x+2 f=f-45 // Движение вперед и поворот инструмента
z=5 p=l // Подъем инструмента
// Движение назад и переход на следующую позицию по Y
x=х-2 f=f+45 y=y+l
* // Конец цикла
x=0 у=0 f=45 z=5 p=l; Возврат в исходное положение
Допускается использование вложенных циклов:
x=0 у=3,5 f=45 z=8
*2
*8
z=5 p=0,5
х=х+2 f=f-45
z=8 p=l
х=х-2 у=у+1 f=f+45
*
х=х+10
*
Эта программа выполняет два одинаковых набора команд со смещением 10 см по оси X.
Использование криволинейных перемещений
В программах пользователя реализована возможность выполнения криволинейных движений с помощью сплайн-функций. Эти функции удобны тем, что интуитивно наиболее доступны для понимания.
Сплайн описывается таблицей в самом конце текста программы для удобной работы с основным текстом программы. Первый столбец – координаты точек по оси абсцисс, второй – по оси ординат. Таблица заключается в скобки. Сплайн представляет собой плавную кривую, вид которой соответствует абсолютно упругой линейке, закрепленной в указанных точках.
Имя сплайна – любой латинский символ или слово, за исключением имен координат, перед которым поставлен символ «.». Координаты по оси абсцисс должны быть всегда возрастающими положительными числами, координаты по оси ординат – любыми. Координаты в каждой строке друг от друга можно разделять пробелом или запятой. Число сплайнов в программе неограниченно.
Рассмотрим пример воспроизведения синусоидальной зависимости. Для точного описания тригонометрической функции необходима таблица ее значений. Для примера достаточно четырех. Приведенные выше правила описания сплайна поясним примером:
// Интерполяция синуса
.х1=(0 0
0,25 1
0,75, -1
1 0)
В тексте программы сплайн используется как функция некоторой условной переменной, изменяющей свое значение при произведении расчетов значений сплайна. Например:
х=0 у=5 z=0 p=l
х=х1 y=6 z=5
В приведенном примере координаты первой точки сплайна совмещаются с координатой х=0.
Следует иметь в виду, что описанные сплайны являются знакопеременными. Конструкция станка и выбранная система координат не допускают отрицательных значений координат X, Y и Z, поэтому исходные значения X и Y должны быть такими, чтобы отрицательные значения сплайнов были по абсолютной величине меньше начальных значений соответствующих координат. Для этого предусмотрена возможность просмотра траектории на экране монитора. Особенность этого режима просмотра заключается в том, что на экране отображаются не собственные значения точек сплайна, заданные в его определении, а действительные значения координат, имеющие место при исполнении программы.
Графический редактор
Для упрощения работы с манипулятором и уменьшения времени на отладку конечной программы имеется графическая оболочка. Суть ее заключается в том, что пользователь может создавать криволинейные траектории движения на плоскости, которые потом автоматически будут преобразованы в код управляющей программы. Пример созданной траектории представлен на рисунке 3.4.

Рисунок 3.4 – Графический редактор
Графический редактор позволяет выполнять различные действия над заданными траекториями, что позволяет быстрее получить желаемый результат. Приложение так применимо для оборудования по обработке тел вращения, например, для токарно-фрезерного деревообрабатывающего станка. И для удобства имеется возможность отображения модели желаемой детали (рисунок 3.5).

Рисунок 3.6 – Графический редактор
Причем есть возможность имитации работы оборудования, при которой показывается каким образом будет вестись обработка.
На основе заданных траекторий формируется код управляющей программы, который представляется в текстовом формате, может редактироваться в любом текстовом редакторе и использоваться основным приложением для управления. Пример сформированного кода приведен в листинге 1.
Приложение Б
(обязательное)
Листинг программы
/************************************************************
Код, сформированный автоматически
Дата 24.11.2016 18:20:37
/*************************************************************/
x = Spline_X0, y = Spline_Y0 P = 0.41
x = Spline_X1, y = Spline_Y1
.Spline_X0 = (
0,000000 0,000000
1,262385 1,262385
3,029158 3,029158
4,640556 4,640556
5,778130 5,778130
)
.Spline_Y0 = (
0,000000 0,000000
1,262385 1,262385
3,029158 3,029158
4,640556 4,640556
5,778130 5,778130
)
.Spline_X1 = (
0,000000 0,000000
1,311873 1,311873
3,058302 3,058302
3,971669 3,971669
5,268179 5,268179
6,238669 6,238669
)
.Spline_Y1 = (
0,000000 0,000000
1,311873 1,311873
3,058302 3,058302
3,971669 3,971669
5,268179 5,268179
6,238669 6,238669
)


