安装驱动
abb 机械臂驱动文件列表
abb机械臂的标准驱动文件如下所示
- – BACKINFO
– backinfo.txt
- – RAPID
- – TASK1 (运动相关程序)
- – PROGMOD
xyz_libconst.mod (函数用到的常数变量)
xyz_libmotpkt.mod (数据包解析处理函数)
xyz_libsock.mod (socket 相关函数)
xyz_main.mod (程序运行起点)
xyz_master.mod (机械臂主控函数主体)
xyz_motion.mod (工控机主控函数主体)
- – SYSMOD
user.sys
- – TASK2 (机械臂发送状态程序)
- – PROGMOD
xyz_libsock.mod (socket 相关函数)
xyz_libstapkt.mod (数据包解析处理函数)
xyz_status.mod (机械臂发送状态函数主体)
xyz_status_task.mod (程序运行起点)
- – SYSMOD
user.sys
- – SYSPAR
EIO.cfg
SIO.cfg
SYS.cfg
除了上述文件外,在 SYSPAR 文件夹下还有其他文件,这些文件不是 ABB 系统所必须,也不必导入到控制器里。这些文件的作用是为了方便 IO 信号的设置,具体使用方法 会在“导入程序”环节讲到。
- – SYSPAR
eio_d652.cfg (DSQC 652 IO 板卡的 IO 信号配置模板)
eio_local_io.cfg (Local_IO 的 IO 信号配置模板)
设定机械臂 IP
MENU
-> 控制面板
-> 配置
,切换主题为 Communication
,进入 IP Setting
。若有配置,修改如下;如果没有任何配置,则点击 添加
,修改如下:
“IP”设置为:192.168.37.100
“Subnet”设置为:255.255.255.0
网络设置完成后重启机械臂生效。
导入程序
导入程序之前需要先备份 ABB 机器人控制器里的程序。可以通过 RobotStudio 备份或者通过U盘来备份
使用 RobotStudio 来备份机器人程序
[1] 准备好一台安装了RobotStudio的电脑。 用网线连接装好 RobotStudio 的电脑和ABB控制柜上的 X2 服务(Service)口 。电脑使用自动取得 IP(DHCP),不要手动设置,X2 口会自动分配 192.168.125.* 的 IP 给电脑。
[2] 启动 RobotStudio,依次点击
文件
->在线
->一键连接
。[3] 点击
控制器(C)
->备份
->创建备份
,存到指定位置。使用 U盘备份机器人程序
[1] 准备一个文件系统为FAT32格式的U盘(其他格式的文件系统可能不会被ABB控制器识别)
[2] 将U盘插到示教器的U盘口上
[3] 在示教器上依次点击
MENU
->备份与恢复
->备份当前系统
选择备份路径到U盘所在的位置后,点击备份
使用文件比对工具,比较备份的文件夹和要导入的 ABB 代码文件夹,并对相应部分进行修改和替换。
文件对比工具推荐使用 Meld (下载地址:https://meldmerge.org/) 或者 Beyond Compare (下载地址:https://www.beyondcomparepro.com/download)
为了防止修改备份的过程中误修改其他文件破坏备份,可以将备份文件重新拷贝一份。
修改备份文件的时候请不要直接拷贝该文档中的配置内容片段,生成文档时这些片段的格式会被改动,直接拷贝文档中的代码到备份文件,会出现备份文件由于格式问题无法被ABB控制器识别的问题
[1] 删除备份文件夹下的 RAPID 目录,并拷贝 ABB 标准文件夹中 RAPID 文件目录到备份文件夹
[2] 修改 backupinfo.txt 中的 TASK 内容为:
>>TASK1: (T_ROB1,,) PROGMOD\xyz_motion.mod @ SYSMOD\user.sys @ PROGMOD\xyz_libsock.mod @ PROGMOD\xyz_main.mod @ PROGMOD\xyz_libmotpkt.mod @ PROGMOD\xyz_master.mod @ PROGMOD\xyz_libconst.mod @ >>TASK2: (STATUS,,) SYSMOD\user.sys @ PROGMOD\xyz_libsock.mod @ PROGMOD\xyz_status_task.mod @ PROGMOD\xyz_libstapkt.mod @ PROGMOD\xyz_status.mod @请不要直接拷贝上述配置内容片段来修改备份文件中的 backupinfo.txt 。请根据 ABB 标准驱动文件中的 backupinfo.txt 来修改。
[3] 修改 SYS.cfg 中的 CAB_TASKS 为:
CAB_TASKS: -Name "T_ROB1" -Type "NORMAL" -MotionTask -Name "STATUS" -Task_in_forground "STATUS" -Type "NORMAL"请不要直接拷贝上述配置内容片段来修改备份文件中的 SYS.cfg 。请根据 ABB 标准驱动文件中的 SYS.cfg 来修改。
[4] 修改 EIO.cfg 文件。需要在 EIO.cfg 文件中的
EIO_SIGNAL:
条目下添加如下的 IO 信号定义EIO_SIGNAL: -Name "output0" -SignalType "DO" -Name "output1" -SignalType "DO" -Name "output2" -SignalType "DO" -Name "output3" -SignalType "DO" -Name "output4" -SignalType "DO" -Name "output5" -SignalType "DO" -Name "output6" -SignalType "DO" -Name "output7" -SignalType "DO" -Name "output8" -SignalType "DO" -Name "output9" -SignalType "DO" -Name "output10" -SignalType "DO" -Name "output11" -SignalType "DO" -Name "output12" -SignalType "DO" -Name "output13" -SignalType "DO" -Name "output14" -SignalType "DO" -Name "output15" -SignalType "DO" -Name "input0" -SignalType "DI" -Name "input1" -SignalType "DI" -Name "input2" -SignalType "DI" -Name "input3" -SignalType "DI" -Name "input4" -SignalType "DI" -Name "input5" -SignalType "DI" -Name "input6" -SignalType "DI" -Name "input7" -SignalType "DI" -Name "input8" -SignalType "DI" -Name "input9" -SignalType "DI" -Name "input10" -SignalType "DI" -Name "input11" -SignalType "DI" -Name "input12" -SignalType "DI" -Name "input13" -SignalType "DI" -Name "input14" -SignalType "DI" -Name "input15" -SignalType "DI" -Name "GroupDO" -SignalType "GO"以上只是定义了程序所使用的 IO 信号,并没有把这些IO信号和物理设备上的信号做映射。如果需要把 IO 信号映射到如理设备, 可以在每个 IO 信号的定义后面加上 “-Device” 字段并填入 IO 设备的名称,加上 “-DeviceMap” 字段并填入映射到 IO 设备上的端口号。 下面片段展示的是 IO 信号和 DSQC 652 IO 板卡做好映射后样子。
EIO_SIGNAL: -Name "output0" -SignalType "DO" -Device "d652" -DeviceMap "0" -Name "output1" -SignalType "DO" -Device "d652" -DeviceMap "1" -Name "output2" -SignalType "DO" -Device "d652" -DeviceMap "2" -Name "output3" -SignalType "DO" -Device "d652" -DeviceMap "3" -Name "output4" -SignalType "DO" -Device "d652" -DeviceMap "4" -Name "output5" -SignalType "DO" -Device "d652" -DeviceMap "5" -Name "output6" -SignalType "DO" -Device "d652" -DeviceMap "6" -Name "output7" -SignalType "DO" -Device "d652" -DeviceMap "7" -Name "output8" -SignalType "DO" -Device "d652" -DeviceMap "8" -Name "output9" -SignalType "DO" -Device "d652" -DeviceMap "9" -Name "output10" -SignalType "DO" -Device "d652" -DeviceMap "10" -Name "output11" -SignalType "DO" -Device "d652" -DeviceMap "11" -Name "output12" -SignalType "DO" -Device "d652" -DeviceMap "12" -Name "output13" -SignalType "DO" -Device "d652" -DeviceMap "13" -Name "output14" -SignalType "DO" -Device "d652" -DeviceMap "14" -Name "output15" -SignalType "DO" -Device "d652" -DeviceMap "15" -Name "input0" -SignalType "DI" -Device "d652" -DeviceMap "0" -Name "input1" -SignalType "DI" -Device "d652" -DeviceMap "1" -Name "input2" -SignalType "DI" -Device "d652" -DeviceMap "2" -Name "input3" -SignalType "DI" -Device "d652" -DeviceMap "3" -Name "input4" -SignalType "DI" -Device "d652" -DeviceMap "4" -Name "input5" -SignalType "DI" -Device "d652" -DeviceMap "5" -Name "input6" -SignalType "DI" -Device "d652" -DeviceMap "6" -Name "input7" -SignalType "DI" -Device "d652" -DeviceMap "7" -Name "input8" -SignalType "DI" -Device "d652" -DeviceMap "8" -Name "input9" -SignalType "DI" -Device "d652" -DeviceMap "9" -Name "input10" -SignalType "DI" -Device "d652" -DeviceMap "10" -Name "input11" -SignalType "DI" -Device "d652" -DeviceMap "11" -Name "input12" -SignalType "DI" -Device "d652" -DeviceMap "12" -Name "input13" -SignalType "DI" -Device "d652" -DeviceMap "13" -Name "input14" -SignalType "DI" -Device "d652" -DeviceMap "14" -Name "input15" -SignalType "DI" -Device "d652" -DeviceMap "15" -Name "GroupDO" -SignalType "GO" -Device "d652" -DeviceMap "0-15"如果需要配置的 ABB 机器人使用的是 DSQC 652 IO 板卡,请不要直接拷贝上述配置内容片段来修改备份文件中的 EIO.cfg 。而是根据 ABB 标准驱动文件中的 eio_d652.cfg 来修改。 如果需要配置的 ABB 机器人使用的是 Local_IO 板卡,请根据 ABB 标准驱动文件中的 eio_local_io.cfg 来修改 EIO.cfg 文件。修改时请一定注意格式,每个 IO 信号的定义之间会有空行, EIO.cfg 文件的最后一行也需要有空行。
关于 IO 设备的名称可以在 EIO.cfg 文件和设备相关的条目下查看。以下代码展示 ABB 机器人上常用的两种 IO 设备, 一种是
DEVICENET_DEVICE:
条目下定义通过 DeviceNet 通信的 DSQC 652 IO 板卡, 一种是ETHERNETIP_DEVICE
条目下定义的 ABB Local I/O Device。 在设备信息中 “-Name” 后的名字是 IO 信号需要映射到的 “-Device” 的设备名。DEVICENET_DEVICE: -Name "d652" -VendorName "ABB Robotics" -ProductName "24 VDC I/O Device"\ -Label "DSQC 652 24 VDC I/O Device" -Address 10 -ProductCode 26\ -DeviceType 7 -ConnectionType "COS" -OutputSize 2 -InputSize 2 ETHERNETIP_DEVICE: -Name "Local_IO" -VendorName "ABB Robotics" -ProductName "DSQC1030"\ -Label "ABB Local I/O Device" -Address "192.168.125.100" -VendorId 75\ -ProductCode 29 -DeviceType 12 -OutputAssembly 100 -InputAssembly 101\ -ConfigurationAssembly 102 -InputConnectionType "POINT2POINT"\ -ConnectionPriority "SCHEDULE" -OutputSize 2 -InputSize 2\ -ConfigurationSize 8\ -ConfigurationData00 "01 02 09 10 01 08 10 01 00 00 00 00 00 00 00 00"\ -O2T_RPI 40000 -T2O_RPI 40000
替换修改完成后,需要把修改后的备份恢复到控制器中。
配置 IO 信号
如果在导入程序的步骤中对 EIO.cfg 文件中的 IO 信号和 IO 板卡做了映射,那么就不需要在配置 IO 信号。另外如果只是 机械臂主控,进行 标定 操作,也可以不把IO信号映射到物理设备上。 本步骤适合 EIO.cfg 文件只定义了 IO 信号,没有把 IO 信号映射到 IO 板卡上,或者修改已经映射好的 IO 信号。
使用 RobotStudio 配置 IO 信号(建议)
[1] 用网线连接装好 RobotStudio 的电脑和控制柜上的 X2 服务(Service)口 。电脑使用自动取得 IP(DHCP),不要手动设置,X2 口会自动分配 192.168.125.* 的 IP 给电脑。
[2] 启动 RobotStudio,依次点击
文件
->在线
->一键连接
。[3] 点击
控制器(C)
中的请求写权限
,然后在示教器上点击同意
。[4] 选择
配置
中的I/O System
, 然后单击类型栏里的Signal
,开始配置信号[5] 开始 IO 信号和硬件之间的映射。
IO 信号和数字量输出端口的映射。下面以 IO 信号 “output0” 和 DSQC 652 IO 板卡为例做说明:
双击 “Name” 一栏中的 “output0” ,弹出 “output0” 的配置界面。
在 “Assign to Device” 中选择此 IO 信号 使用的 IO 板卡。
在 “Device Mapping” 中输入具体映射到IO板卡上的端口。
单击配置界面底部的“确定”完成配置。
完成后即可将 “output0” 映射到 DSQC 652数字量输出的0号端口上。按照此方法完成 “output0” 到 “output15” 这十六个数字量输出 IO 信号的配置。
IO 信号和数字量输入端口的映射,下面以 IO 信号 input0 和 DSQC 652 IO 板卡为例做说明:
双击 “Name” 一栏中的 “input0” ,弹出 “input0” 的配置界面。
在 “Assign to Device” 中选择此 IO 信号使用的 IO 板卡。
在 “Device Mapping” 中输入具体映射到 IO 板卡上的端口。
单击配置界面底部的“确定”完成配置。
完成后即可将 “input0” 映射到 DSQC 652 数字量输入的0号端口上。按照此方法完成 “input0” 到 “input15” 这十六个数字量输入 IO 信号的配置。
GroupDO信号配置
双击 “Name” 一栏中的 “GroupDO” ,弹出 “GroupDO” 的配置界面。
在 “Assign to Device” 中选择此 GroupDO 信号 使用的 IO 板卡。
在 “Device Mapping” 中输入具体映射到 IO 板卡上端口的范围。
单击配置界面底部的“确定”完成配置。
可以完成所有信号的配置后再重启控制器,这样可以节省时间。另外信号配置完成后必须重启控制器才能生效。
使用示教器设定
[1] 单击示教器左上角的主菜单按钮,进入
控制面板
(首先将机械臂运行模式切换至手动模式,在自动或手动全速模式下无法对信号进行配置操作)。[2] 选择“配置”。
[3] 双击 “Signal” (或选中 “Signal” ,然后单击示教器右下角的“显示全部”)。
[4] 开始 IO 信号和硬件之间的映射。
IO 信号和数字量输出端口的映射。下面以 IO 信号 “output0” 和 DSQC 652 IO 板卡为例做说明:
在 “Signal” 中找到 “output0” 并选中,然后点击
编辑
切换到 “output0” 的配置界面。在 “Assign to Device” 中选择此 IO 信号使用的 IO 板卡。
在 “Device Mapping” 中输入具体映射到 IO 板卡上的端口。
单击配置界面底部的“确定”完成配置。
IO 信号和数字量输入端口的映射,下面以 IO 信号 “input0” 和 DSQC 652 IO 板卡为例做说明:
在 “Signal” 中找到 “input0” 并选中,然后点击
编辑
切换到 “input0” 的配置界面。在 “Assign to Device” 中选择此 IO 信号 使用的 IO 板卡。
在 “Device Mapping” 中输入具体映射到 IO 板卡上的端口。
单击配置界面底部的“确定”完成配置。
GroupDO信号配置
在 “Signal” 中找到 “GroupDO” 并选中,然后点击
编辑
切换到 “GroupDO” 的配置界面。在 “Assign to Device” 中选择此 GroupDO 信号 使用的 IO 板卡。
在 “Device Mapping” 中输入具体映射到 IO 板卡上端口的范围。
单击配置界面底部的“确定”完成配置。
四轴机械臂需要进行的操作
四轴机械臂运行前,需要注释 RAPID 代码中机械臂 Move 命令前后的: SingArea \Wrist
, ConfL \On
, ConfL \Off
代码。
例如:
! ConfL \On;
! SingArea \Wrist;
MoveL target, gMotSpeed, gMotZone, gMotTool \WObj := gMotWobj;
! ConfL \Off;
六轴机械臂完成拆码垛项目需要进行的操作
六轴机械臂(比如ABB 6700)运行拆码垛任务前,可以通过锁定机器人四轴使得机器人通过奇异点. 首先需要修改 RAPID 代码中机械臂 Move 命令前后的: SingArea \Wrist``代码。将 ``SingArea \Wrist``改成 ``SingArea \LockAxis4
.
例如:
ConfL \On;
SingArea \LockAxis4;
MoveL target, gMotSpeed, gMotZone, gMotTool \WObj := gMotWobj;
ConfL \LockAxis4;
同时在max中需要将四轴的软限位设为+/-175, 将工作空间调整到竖直向上,以及开启视觉模块中z轴方向修正.