ABB工业机器人二次开发与应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.6 发送机器人错误号

PLC希望在机器人发生错误时得到机器人的具体报警代码,如何实现呢?

若只是希望机器人在发生错误时给出一个DO信号告知PLC,则可以在机器人系统中创建一个DO信号,并关联至系统输出状态Execution Error,如图1-39所示。

若希望机器人输出具体的错误号,则可以利用IError(由错误触发的中断)来实现。

执行中断的前提是机器人程序在运行。若机器人发生错误,则机器人程序停止运行,也就意味着相关中断程序会停止运行。为解决这个问题,机器人需要使用623-1 Multitasking(多任务)选项并创建后台程序。后台程序在调试完毕后设为SemiStatic状态(后台程序会在开机后自启动)。这样前台程序出错只会导致前台程序停止,但不影响后台程序运行。后台程序捕获IError触发的中断并做相应处理,将错误号通过组输出发送给PLC。

发送机器人错误号的具体实现如下所示。

(1)机器人需要有623-1 Multitasking选项,如图1-40所示。对于仿真机器人,若无此选项,可以单击“控制器”标签下的“修改选项”(如图1-41所示),增加此仿真选项。

(2)进入机器人示教器的“控制面板”-“配置”-“Controller”-“Task”。

(3)如图1-42所示,新建后台任务t_back,并将其“Type”暂时设为“Normal”(只有“Type”为“Normal”的任务才能编程)。程序编写完毕并测试通过后再设为“SemiStatic”(开机后自启动)。

图1-39 通过DO信号输出机器人的错误状态

图1-40 机器人有623-1 Multitasking选项

图1-41 仿真机器人的“修改选项”

图1-42 新建后台任务t_back

(4)重启机器人,使得新建的后台任务t_back生效。

(5)使用组输出信号发送错误号(错误号均为正整数),具体实现如下所示。

① 进入示教器的“控制面板”-“配置”-“I/O”-“Signal”。

② 创建测试信号go_err1,将其“Type of Signal”设为“Group Output”,如图1-43所示。

图1-43 创建组输出信号go_err1

③ 通过设置指令来启动对错误中断的监控,即“IError COMMON_ERR, TYPE_ERR, err_interrupt;”。其中,COMMON_ERR为中断监控的错误域,错误域如表1-8所示;TYPE_ERR为中断监控的错误类型,错误类型如表1-9所示。

表1-8 错误域

表1-9 错误类型

④ 在机器人中断代码内,通过指令“GetTrapData err_data”获取错误数据。

⑤ 在中断代码内,可以使用代码1-8中所示的指令。

代码1-8

机器人有时出现一次错误会触发多个报警。例如,“1/0”这类除零错误,除了会触发“40194”值错误外,还会触发“40228”执行错误,如图1-44所示。其实有效信息只是第一条“40194”错误,故在中断内,可以只对每次IError引发的第一个中断发送组输出错误号。

图1-44 一个错误会同时触发多个报错

(6)在t_back任务里添加代码1-9。

代码1-9

(7)在机器人前台任务中添加代码1-10。

代码1-10

此时若机器人同时启动前台任务和后台任务程序,则前台任务程序由于“reg1:=1/0”会引发计算错误,产生“40194”错误报警号并停止前台程序运行。后台任务程序捕获该错误引发的中断,并将错误号通过组输出信号go_err1输出,结果如图1-45所示。

图1-45 组输出信号go_err1输出错误代码