安装驱动
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 设定机械臂 IP,其中Interface下拉选项需要和网线实际接线一致
网络设置完成后重启机械臂生效。
导入程序
导入程序之前需要先备份 ABB 机器人控制器里的程序。可以通过 RobotStudio 备份或者通过U盘来备份
使用 RobotStudio 来备份机器人程序
[1] 准备好一台安装了RobotStudio的电脑。 用网线连接装好 RobotStudio 的电脑和ABB控制柜上的 X2 服务(Service)口 。电脑使用自动取得 IP(DHCP),不要手动设置,X2 口会自动分配 192.168.125.* 的 IP 给电脑。
[2] 启动 RobotStudio,依次点击
文件
->在线
->一键连接
。![]()
RobotStudio 连接 ABB 机械臂
[3] 点击
控制器(C)
->备份
->创建备份
,存到指定位置。![]()
ABB RobotStudio备份程序
使用 U盘备份机器人程序
[1] 准备一个文件系统为FAT32格式的U盘(其他格式的文件系统可能不会被ABB控制器识别)
[2] 将U盘插到示教器的U盘口上
[3] 在示教器上依次点击
MENU
->备份与恢复
->备份当前系统
选择备份路径到U盘所在的位置后,点击备份![]()
abb 示教器备份程序
使用文件比对工具,比较备份的文件夹和要导入的 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
替换修改完成后,需要把修改后的备份恢复到控制器中。
使用 RobotStudio 恢复备份
[1] 按照“导入程序”中“使用 RobotStudio 来备份机器人程序”的前两步将 RobotStudio 和机器人连接
[2] 连接后点击
控制器(C)
->备份
->从备份中恢复
,选择修改后的备份文件![]()
RobotStudio恢复备份
[3] 点击确定后,机器人将自动重启进行备份恢复。
使用U盘恢复备份
[1] 将修改的备份程序拷贝到U盘中
[2] 将U盘插到示教器的U盘口上
[3] 在示教器上依次点击
MENU
->备份与恢复
->恢复系统
选择U盘中修改后的备份文件路径,点击确定
![]()
U盘恢复备份
[4] 点击
恢复
机器人将自动重启进行备份恢复.
配置 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)
中的请求写权限
,然后在示教器上点击同意
。RobotStudio 请求写权限
[4] 选择
配置
中的I/O System
, 然后单击类型栏里的Signal
,开始配置信号RobotStudio 配置 I/O System
[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 信号的配置。
RobotStudio 添加 “output0” 端口
IO 信号和数字量输入端口的映射,下面以 IO 信号 input0 和 DSQC 652 IO 板卡为例做说明:
双击 “Name” 一栏中的 “input0” ,弹出 “input0” 的配置界面。
在 “Assign to Device” 中选择此 IO 信号使用的 IO 板卡。
在 “Device Mapping” 中输入具体映射到 IO 板卡上的端口。
单击配置界面底部的“确定”完成配置。
完成后即可将 “input0” 映射到 DSQC 652 数字量输入的0号端口上。按照此方法完成 “input0” 到 “input15” 这十六个数字量输入 IO 信号的配置。
RobotStudio 添加 “input0” 端口
GroupDO信号配置
双击 “Name” 一栏中的 “GroupDO” ,弹出 “GroupDO” 的配置界面。
在 “Assign to Device” 中选择此 GroupDO 信号 使用的 IO 板卡。
在 “Device Mapping” 中输入具体映射到 IO 板卡上端口的范围。
单击配置界面底部的“确定”完成配置。
RobotStudio 添加 “GroupDO” 端口
可以完成所有信号的配置后再重启控制器,这样可以节省时间。另外信号配置完成后必须重启控制器才能生效。
使用示教器设定
[1] 单击示教器左上角的主菜单按钮,进入
控制面板
(首先将机械臂运行模式切换至手动模式,在自动或手动全速模式下无法对信号进行配置操作)。示教器主菜单
[2] 选择“配置”。
示教器配置
[3] 双击 “Signal” (或选中 “Signal” ,然后单击示教器右下角的“显示全部”)。
示教器信号
[4] 开始 IO 信号和硬件之间的映射。
IO 信号和数字量输出端口的映射。下面以 IO 信号 “output0” 和 DSQC 652 IO 板卡为例做说明:
在 “Signal” 中找到 “output0” 并选中,然后点击
编辑
切换到 “output0” 的配置界面。在 “Assign to Device” 中选择此 IO 信号使用的 IO 板卡。
在 “Device Mapping” 中输入具体映射到 IO 板卡上的端口。
单击配置界面底部的“确定”完成配置。
示教器添加 “output0” 端口
IO 信号和数字量输入端口的映射,下面以 IO 信号 “input0” 和 DSQC 652 IO 板卡为例做说明:
在 “Signal” 中找到 “input0” 并选中,然后点击
编辑
切换到 “input0” 的配置界面。在 “Assign to Device” 中选择此 IO 信号 使用的 IO 板卡。
在 “Device Mapping” 中输入具体映射到 IO 板卡上的端口。
单击配置界面底部的“确定”完成配置。
示教器添加 “input0” 端口
GroupDO信号配置
在 “Signal” 中找到 “GroupDO” 并选中,然后点击
编辑
切换到 “GroupDO” 的配置界面。在 “Assign to Device” 中选择此 GroupDO 信号 使用的 IO 板卡。
在 “Device Mapping” 中输入具体映射到 IO 板卡上端口的范围。
单击配置界面底部的“确定”完成配置。
示教器添加 GroupDO 端口
四轴机械臂需要进行的操作
四轴机械臂运行前,需要注释 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轴方向修正.