ABB Rapid
Эта страница представляет собой руководство, которое поможет пользователям понять требования, предъявляемые к настройке роботизированной сварочной системы на базе робота ABB для использования с Verbotics Weld. Verbotics также предлагает услуги по консультированию и обучению для помощи в калибровке и настройке сварочных РТК - пожалуйста, свяжитесь с нами <https://verbotics.com/ru/contact>
_ для получения информации о ценах.
Файл сварочной ячейки
В настоящее время в приложении нет возможности для конечных пользователей или системных интеграторов создавать файлы сварочных ячеек (файлы :code:.vbmodel
). Пожалуйста, свяжитесь с Verbotics для получения цены для создания индивидуального файла рабочей ячейки или используйте файлы тестовых сварочных ячеек для оценки работы приложения. Тестовую сварочную ячейку можно скачать с нашего сайта/our website <https://verbotics.com/examples>
_.
Установка и калибровка
Программы, созданные с помощью автономного программирования, требуют дополнительных этапов калибровки для минимизации любых ошибок между установленной системой и моделью сварочной ячейки в Verbotics Weld. Очень маленькие ошибки могут накапливаться, создавая большие ошибки, которые не могут быть устранены с помощью зондирования датчиками, и могут привести к неоптимальной производительности сгенерированных программ и/или даже к столкновению роботов с другими элементами ячейки.
См. раздел калибровка </integrator/calibration/index>
_ с подробной информацией.
Монтаж робота
Неправильное расположение места крепления робота может привести к ошибке при использовании внешних осей. Например, небольшая погрешность в 0,2 градуса при установке робота приведет к ошибке позиционирования робота при вылете руки на 2 м вперед по сравнению с вылетом назад в размере +/-7 мм. Мы понимаем, что установка и выравнивание робота с высокой точностью может быть затруднено, поэтому наша система может компенсировать эти ошибки, если они известны. Мы также можем предоставить значения параметров для Вашего использования, если Вы хотите, чтобы контроллер робота также принял их во внимание.
Калибровка ЦТИ
The real world TCP should be calibrated using the ABB tool calibration. After calibration, it is then suggested that the rotational values are overwritten with theoretical values (that can be supplied by Verbotics) as rotational values are difficult to calibrate using this method.
Следует позаботиться о том, чтобы направления вращения осей соответствовали предустановленным направлениям в Verbotics Weld:
Z - указывает в направлении проволоки.
X - указывает вниз от робота, когда робот находится в позиции :code:
[0, 0, 0, 0, 0, 0]
.Y - ортогонально к X и Z с правилом правой руки.
При калибровке ЦТИ должен использоваться ожидаемый вылет проволоки, указанный в файле модели сварочной ячейки, поставляемом компанией Verbotics для проекта, а процедура обрезки проволоки должна быть запрограммирована так, чтобы обрезка проволоки на эту длину выполнялась до начала ощупывания датчиком.
Калибровка позиционера заготовки
Одноосный вращатель как внешняя ось
Положение приводной стойки и задней бабки должно быть известно таким образом, чтобы можно было рассчитать направление оси между ними. Для этого можно использовать руководство по калибровке и предоставить полученные значения в Verbotics. На основании этого мы сможем рассчитать значения параметров для системы управления ABB, оптимизированных для Вашего позиционера заготовок, так чтобы свести к минимуму погрешность позионирования между позиционером и роботом.
Создание управляющего кода
Verbotics Weld позволяет создавать модули ABB RAPID, которые могут быть загружены и выполнены Вашим роботом. Создание кода состоит из следующих частей:
Выходной код, созданный программным обеспечением для конкретного проекта Verbotics Weld.
Системный модуль, который содержит подпрограммы, используемые Verbotics Weld. Сюда входят процедуры, вызываемые при определенных событиях (например, при очистке горелки). Они необходимы для работы и могут быть поставлены нами пустыми. Они должны содержать специальный код для выполнения определенных функций, и позволить системному интегратору (или конечному пользователю) создавать пользовательские функции.
Общая структура
Структура выходного кода:
Данные программы инициализации (tooldata, wobjdata, welddata, touchsense etc.)
Основная программа программы/Overall program procedure.
Подпрограмма поиска/Sensing procedure.
Процедура сварки/Welding procedure.
Подпрограмма поиска/Sensing procedure.
Процедура сварки/Welding procedure.
…
Функции и процедуры Verbotics.
Исполнительный код для датчика поиска имеет следующую структуру:
LOCAL PROC SenseWeld1()
CONST string operationid := "SenseWeld1";
VAR pos offset := [0, 0, 0];
IF NOT VbShouldRun(operationid) THEN
RETURN;
ENDIF
IF VbInRobTarget(robtarget) THEN
MoveAbsJ jointtarget, vtransition, z10, vbtool, \WObj:=vbwobj;
MoveAbsJ jointtarget, vtransition, z10, vbtool, \WObj:=vbwobj;
MoveAbsJ jointtarget, vtransition, z10, vbtool, \WObj:=vbwobj;
MoveAbsJ jointtarget, vtransition, z10, vbtool, \WObj:=vbwobj;
ELSE
VbEnsureInHome;
MoveAbsJ jointtarget, vtransition, z10, vbtool, \WObj:=vbwobj;
MoveAbsJ jointtarget, vtransition, z10, vbtool, \WObj:=vbwobj;
ENDIF
VbBeforeTouchSense;
TPWrite "Sensing 'Weld1'";
touchsense68.offset := [0, 0, 0];
touchsense69.offset := [0, 0, 0];
touchsense70.offset := [0, 0, 0];
MoveL robtarget, vapproach, z10, vbtool, \WObj:=vbwobj;
VbSearchL VbOffsPos(robtarget, touchsense68.offset), touch116;
MoveL robtarget, vapproach, z10, vbtool, \WObj:=vbwobj;
touchsense68.offset := VbOffsByTouch(touchsense68.offset, touch116);
touchsense69.offset := VbOffsByTouch(touchsense69.offset, touch116);
touchsense70.offset := VbOffsByTouch(touchsense70.offset, touch116);
MoveAbsJ robtarget, vtransition, z10, vbtool, \WObj:=vbwobj;
MoveAbsJ robtarget, vtransition, z10, vbtool, \WObj:=vbwobj;
MoveL robtarget, vapproach, z10, vbtool, \WObj:=vbwobj;
VbSearchL VbOffsPos(robtarget, touchsense68.offset), touch117;
MoveL robtarget, vapproach, z10, vbtool, \WObj:=vbwobj;
touchsense68.offset := VbOffsByTouch(touchsense68.offset, touch117);
touchsense69.offset := VbOffsByTouch(touchsense69.offset, touch117);
touchsense70.offset := VbOffsByTouch(touchsense70.offset, touch117);
VbSetComplete(operationid);
VbAfterTouchSense;
ENDPROC
Robtargets и Jointtargets экспортируются встроенными. Для большей ясности они заменены на :code:
robtarget
и :code:jointtarget
.:code:
Operationid
используется для записи того, где программа находится в состоянии готовности к возобновлению.Это проверяется с помощью :code:
VbSouldRun
и пропускается, если программа уже запущена во время операции по возобновлению.Есть два пути движения, один от ожидаемой предыдущей операции, и один из домашнего положения. Положение робота проверяется с помощью :code:
VbInRobTarget
и если он находится в правильном положении, то выполняется траектория из предыдущего местоположения. В противном случае выполняется траектория из исходной позиции. Пользователь предупреждается, если робот находится в неожиданном состоянии с помощью :code:VbEnsureInHome
.Выполняются операции поиска датчиком, а данные записываются, чтобы на их основе откорректировать траекторию сварки.
Исполнительный код для сварки имеет следующую структуру:
LOCAL PROC WeldWeld1()
CONST string operationid := "WeldWeld1";
IF NOT VbShouldRun(operationid) THEN
RETURN;
ENDIF
IF VbInRobTarget(robtarget) THEN
MoveAbsJ jointtarget, vtransition, z10, vbtool, \WObj:=vbwobj;
MoveAbsJ jointtarget, vtransition, z10, vbtool, \WObj:=vbwobj;
ELSE
VbEnsureInHome;
MoveAbsJ jointtarget, vtransition, z10, vbtool, \WObj:=vbwobj;
MoveAbsJ jointtarget, vtransition, z10, vbtool, \WObj:=vbwobj;
ENDIF
VbBeforeWeld;
TPWrite "Welding 'Weld1'";
MoveL robtarget, vapproach, z1, vbtool, \WObj:=vbwobj;
VbSetComplete(operationid);
ArcLStart VbOffs(robtarget, 0, touchsense68, touchsense69), vapproach, vbseam, WeldSettings , z0, vbtool, \WObj:=vbwobj;
ArcLEnd VbOffs(robtarget, 1, touchsense69, touchsense70), vapproach, vbseam, WeldSettings , z0, vbtool, \WObj:=vbwobj;
MoveL robtarget, vapproach, z1, vbtool, \WObj:=vbwobj;
VbAfterWeld;
ENDPROC
Robtargets и Jointtargets экспортируются встроенными. Для большей ясности они заменены на :code:
robtarget
и :code:jointtarget
.:code:
Operationid
используется для записи того, где программа находится в состоянии готовности к возобновлению.Это проверяется с помощью :code:
VbSouldRun
и пропускается, если программа уже запущена во время операции по возобновлению.Есть два пути движения, один от ожидаемой предыдущей операции, и один из домашнего положения. Положение робота проверяется с помощью :code:
VbInRobTarget
и если он находится в правильном положении, то выполняется траектория из предыдущего местоположения. В противном случае выполняется траектория из исходной позиции. Пользователь предупреждается, если робот находится в неожиданном состоянии с помощью :code:VbEnsureInHome
.Выполняется сварка.
Траектория сварки смещается на значение :code:
VbOffs
, при расчете которого, и в том числе, исправленного абсолютного положения, в качестве исходных принимаются данные измерения датчиком и robtarget.
Прочие подпрограммы
При выводе кода при определенных событиях в нем вызываются указанные ниже процедуры. Все они необходимы, но могут быть пустыми и просто возвращаются после выполнения. Они должны быть модифицированы в соответствии с требованиями системного интегратора для выполнения требуемых пользовательских функций. Для этого Verbotics может предоставить системный модуль.
Существуют обращения к следующим подпрограммам:
:code:
VbCutWire
- Вызывается, когда необходимо выполнить обрезку проволоки/wire-cut. Обычно это происходит перед группой операций, выполняемых датчиком поиска. Это должно начинаться и заканчиваться при нахождении робота в исходном положении (исключая внешние оси).:code:
VbTorchClean
- Вызывается, когда необходимо выполнить чистку горелки/torch-clean. Также должен включать в себя обрезку провода. Это должно начинаться и заканчиваться при нахождении робота в исходном положении (исключая внешние оси).:code:
VbBeforeSearch
- Вызывается перед началом поиска.:code:
VbAfterSearch
- Вызывается после завершения поиска.:code:
VbBeforeWeld
- Вызывается перед началом сварки.:code:
VbAfterWeld
- Вызывается после завершения поиска.
Например, если в Вашей сварочной горелке установлен проволочный тормоз для улучшения работы тактильного датчика. Режим :code:VbCutWire
можно использовать для включения тормоза проволоки, а режим :code:VbBeforeWeld
- для выключения тормоза проволоки.