基于OPC UA的ABB工业机器人通信测试
2020-12-23刘文光张铭铭
刘文光 张铭铭
(1.济南职业学院,山东济南250103;2.青岛市中心医院,山东青岛266042)
0 引言
OPC UA是一个开放的跨平台架构,由全世界30多家知名制造企业联合开发,具有较高的安全性和可靠性,为自动化生产系统提供了新的信息模型和抽象体系结构,将复杂的数据类型嵌入到服务器地址空间中,支持大量的通用服务,已成为工业4.0阶段的通信标准[1]。
本测试利用OPC UA通信实现如下功能:将ABB工业机器人的IRC5控制器设为OPC UA服务器,利用UaExpert作为OPC UA客户端,在RobotStudio仿真环境下实现ABB工业机器人系统和客户端的通信,同时还可实现在客户端控制工业机器人启停,读取工业机器人运行状态信息。
1 在RobotStudio中创建ABB工业机器人系统,添加需要通信的数据并编程
在RobotStudio中创建ABB工业机器人系统,选择系统选项“616-1 PC interface”和“623-1 Multitasking”。
新建RAPID例行程序控制TCP的运动轨迹,利用clock型程序数据clock1记录TCP每个周期的运动时间。添加num型可变量nCycleTime,利用功能ClkRead()将clock1中记录的周期时间值赋给nCycleTime。
添加虚拟输入输出vdi_start、vdi_stop、vdo_motoron、vdo_start和vdo_stop,其中vdo_start和vdo_stop的Access Level 设置为All,使得所有本地客户端和远程客户端都拥有对vdo_start和vdo_stop的写入权限。添加2个Cross Connection:start1和stop1,如图1、图2 所示。添加两个System Input:vdi_start_Start和vdi_stop_Stop,将虚拟输入vdi_start与系统输入Start关联,将虚拟输入vdi_stop与系统输入Stop关联。添加1个System Output:vdo_motoron_MotorOn,将虚拟输出vdo_motoron与系统输出Motors On关联。
图1 Cross Connection:start1
新建bool型可变量flag1。新建例行程序set_flag1()和reset_flag1()。在set_flag1()中 将flag1 赋 值 为TRUE,在reset_flag1()中将flag1赋值为FALSE。添加4个Event Routine:START_set_flag1 、RESTART_set_flag1 、STOP_reset_flag1 和QSTOP_reset_flag1。START_set_flag1和RESTART_set_flag1分别用于启动和重启时将flag1赋值为TRUE,STOP_reset_flag1和QSTOP_reset_flag1分别用于停止和急停时将flag1赋值为FALSE。
图2 Cross Connection:stop1
添加Task t2,在Task t2中编写程序实现启停控制,程序调试无误后将其Type设为Semistatic。
2 将IRC5设为OPC UA服务器
打开IRC5 OPC UA Server Config Tool,单击,单击Add New Alias,单击。勾选System Name,单击,单击。单击,在弹出的OPC Server restart窗口中单击。单击,输入获取OPC Server数据读写权限的用户名和密码,在Username对话框中输入Default User,在Password对话框中输入robotics。单击,记录下IRC5的URL。
3 利用UaExpert作为OPC UA客户端
如需开发OPC UA客户端,可从UaExpert中查看节点的通用属性,NodeId用于在地址空间中唯一确定和定位一个节点;NodeClass定义节点类别;BrowseName用于浏览地址空间时标识节点;DisplayName表示节点名称;Description表示节点的本地化描述;WriteMask 定义节点属性是否可被修改;UserWriteMask定义当前用户是否可修改节点属性[2]。
4 结语
本测试实现了作为OPC UA服务器的ABB工业机器人IRC5控制器与作为OPC UA客户端的UaExpert之间的通信,可以在OPC UA客户端远程监控ABB工业机器人。下一步的工作,可探索实现不同厂家的工业机器人、PLC、各种嵌入式设备之间数据通信的统一操作。