赖权辉 唐林杰 钟家明
(1.佛山科学技术学院,广东佛山 528255;2.佛山智能装备技术研究院,广东佛山 528255)
随着通信技术的进步,传统制造业逐渐开始向着智能制造过渡,其中智能制造的关键技术在于数控装备与应用系统的信息交互。由于数控装备属于多源异构的系统,数控装备之间通信具有非常大的差异,没有统一用于通信的现场总线的标准,导致数据设备之间的信息交互以及数控装备与应用系统的信息交互变得困难。目前,在数控装备互联互通方面,国内外都进行了一定的探索和研究,国外设备通信协议主要有OPC UA协议等,国内设备通信协议有NC-Link协议[1]等。
本文采用国内自主研发的NC-Link技术开发了一套机器人远程监控系统,该系统可以随时访问不同品牌的机器人,实时读取机器人的运动信息。随着工业现代化进程的加快,工业设备也越来越复杂,设备之间采用的通信协议不一样,增加了统一管理设备数据的难度,为了更好地提高设备之间的协同能力,寻求不同设备之间建立简单的通信方法成为当前的紧急任务。NC-Link采集系统的核心在于如何设计NC-Link适配器,NC-Link适配器可以将底层设备的实时数据以及历史数据传输到远程客户端上,最终实现设备的远程监控功能[2]。该系统可以实现机器人的远程实时监控,从而缩短停机时间,减少突发事故的发生,降低维护和维修成本,提高生产效率。
本文设计的机器人远程监控系统分成三层,如图1所示,第一层为设备层,中间层为NC-Link层,最上层为应用层。
图1 工业机器人远程监控系统结构图
现场设备层主要由两台机器人构成,提供数控系统所有的原始数据,以及执行应用层的指令。NC-Link层由NC-Link适配器与NC-Link代理器组成,是NC-Link互通互联的最核心部分。其中,NC-Link适配器负责从机器人中读取运行数据,然后进行格式解析和转换,再将读取出来的数据以统一的格式发送到NC-Link代理器,NC-Link适配器还能够接收从NC-Link代理器传来的信息,然后将信息发送给指定的数控装备。
整个工业机器人的数据采集系统由数控装备层、NC-Link层和应用层组成,通过适配器与设备层的工业机器人进行通信,适配器将数据上传至MQTT服务器,路由器将信息传输至阿里云服务器端,通过阿里云服务器将工业机器人的监控数据发送给远程的监控面板。
工业机器人与远程监控客户端通信的工作原理如图2所示,API Server是基于NC-Link适配器开发的一个微服务应用程序,客户端可以直接发送HTTP请求给API Server来实现和数控机床之间的通信功能。API Server和设备之间,通过MQTT服务器进行数据交互,两者需要分别与MQTT服务器建立连接。采用订阅/发布的模式,设备和API Server会从MQTT Server订阅相应内容的topic,MQTT Server接收到相应的topic后推送相应的数据内容给发起订阅的设备或者API Server。客户端应用从API Server通过HTTP请求/响应的方式进行数据交互,最终实现与设备的交互。
图2 工业机器人与远程监控客户端的通信工作原理
适配器是客户端和代理端与机器人进行通信的桥梁。针对华数Ⅲ型机器人的二次开发接口进行适配器设计,适配器从下到上分成三层:数据驱动层、数据字典层、数据接口层。
数据驱动层是应用层与工业机器人进行通信的桥梁,本文以华数Ⅲ型机器人为例,应用层发送连接请求,适配器收到请求后,调用华数Ⅲ型机器人的二次开发接口进行连接。机器人调用华数Ⅲ型机器人的二次开发接口连接函数isConnected(),不同的机器人需要调用不同的网络接口函数。机器人连接代码如图3所示。
图3 连接机器人代码
数据字典层是对机器人的数据进行统一的定义,设备模型是设备实体在信息空间的信息化映射。设备模型的评判标准是工业机器人主要部件的属性信息和状态数据都应该展现出来。机器人的设备模型应该包含以下设备信息:设备ID、类型和名称等识别标志信息,设备组成部件及部件的下属组件的相关信息,设备轴数、通道数、切削速率等相关信息。
一个完整的数控装备信息模型包括以下五类对象,分别是根对象、设备对象、组件对象、数据对象以及采样通道对象。根对象是模型中最外层的对象,包括其他的四类对象,根对象主要包含信息模型的基本信息,比如信息模型的名称和唯一标志;设备对象用于描述设备中的类型、配置等相关信息;组件对象用于描述设备下组件的参数;数据对象用于对数控设备的各类相关参数以及采样的数据进行描述,其中包含可修改的数据和不可修改的数据,可修改的数据除了可以查阅外还可以修改,不可修改的数据只能用来查阅;采样通道对象主要用于描述数控设备中可以进行采样的数据以及对应的采集周期。
根据信息交互模型和实际系统建立的工业机器人数据模型如图4所示。
图4 基于NC-Link的机器人数据模型
数据接口层的作用主要是与MQTT代理器或客户端进行数据交互。将应用系统、代理器、适配器之间的通信规则统一称为NC-Link接口。NC-Link接口定义了8种通信接口,常用的有3种——模型侦测、数据查询以及数据采样[3]。机器人的模型侦测功能测试如图5所示,数据查询功能测试如图6所示,数据采样功能测试如图7所示。
图5 机器人的模型侦测功能测试
图6 机器人的数据查询功能测试
图7 机器人的数据采样功能测试
本文选择B/S架构作为通信的开发架构,应用MySQL数据库技术存储数据和提取报文数据。当智能监控模块发送的数据被云端服务器接收时,对数据进行存储,然后远程监控客户端将存储的数据直观地显示在客户端的人机界面上,从而完成服务器和客户端的交互。
通过C#语言编程远程监控客户端的界面如图8所示,通过连接阿里云服务器,从阿里云服务器读取数据。远程监控客户端界面主要采集两个机器人的位置信息和运行状态。
图8 机器人远程监控客户端
在远程客户端和适配器端增加时间戳,通过计算两个时间戳之差测得单线程时延为3 ms。通过JMeter软件进行服务器的压力测试,结果如表1所示。根据项目管理系统的需求,首先并发用户数从1开始逐渐增加到100,最大并发用户数为500,满足系统的要求[4]。
本文设计并实现了基于NC-Link协议的工业机器人的数据采集系统,目标在于实现不同的机器人协议到NC-Link标准协议的转换,进而实现不同品牌的工业机器人工业设备数据的远程监控。
本文通过对数据采集接口进行设计,实现工业机器人不同协议的标准化,可以解决不同品牌机器人的差异性和协议的多样性带来的上位机多样性问题[5]。除此之外,系统测试表明,该系统采集数据的时延为3 ms,满足网络的性能要求。