介绍了NC-link机床通信,将其与主流通信协议进行比较,并分析了各自的优缺点。提出了基于NC-link协议的数控系统适配器软件设计思路,设计数据驱动层、数据字典层、数据接口层三层架构作为适配器软件框架,以华中8型数控系统为例说明适配器各层次的具体设计思路和方法。
数控机床 通信协议 NC-link 适配器 数据字典
随着计算机和互联网技术的高速发展,传统的制造业也发生了根本性改变。从数字制造到智能制造,是制造业发展的必然趋势。实现智能制造的重要前提之一就是设备的互联互通。以柔性生产线为例,需要实现车间管理系统(MES)、总控系统(SCADA)、数控机床、机器人、物流小车之间的互联互通。
目前应用比较广泛的设备通信协议主要有MT-Connect协议和OPCUA协议,但是这两种通信协议各自存在一些缺陷,不能完全满足智能制造的需求。
NC-link协议是由华中科技大学牵头,联合多家国内知名数控、机床厂家研发的机床互联互通协议。NC-link协议具有高效、易用的特点,并且综合了OPCUA协议和MT-Connect协议的优点。本文设计并实现基于NC-link协议的适配器软件,并将其用于生产现场,验证软件的数据传输稳定性及效率。
目前国际上用于数控机床互联互通的标准主要有MT-Connect和OPC-UA两个标准。MT-Connect和OPC-UA协议提供了数控设备互联互通的能力,但是这两种协议都有一些缺陷。
MT-Connect基于XML技术,导致数据量较大,山东冠雕数控设备有限公司为您提供数控设备解决方案对网络带宽提出了严峻的挑战。MT-Connect基于Restful技术,它只能用于单向的读取设备状态实现监视功能,无法胜任双向控制的任务。在柔性生产线中,MES会通过SCADA向机床发送生产指令,这是MT-Connect协议所不支持的。
OPC-UA协议在机床模型定义上比较薄弱,虽然引入了MT-Connect作为其补充,但是由于OPC-UA针对的设备覆盖面太过于广泛,为了满足这种泛化的需求,导致模型定义语言过于复杂,应用起来很不方便。目前,西门子、海德汉等数控机床支持OPC-UA
无论是MT-Connect还是OPC-UA,都无法满足高频数据采集的要求。然而,数控机床智能应用需要高频的信号作为其输入,例如振动分析、温度测量与补偿等。
针对这些问题,NC-link协议采用了Json(Java-script Object Notation)字符串传输、订阅发布的数据传输方式、机床模型定义等设计,使得NC-link在多方面优于MT-Connect和OPC -UA(表1)。
表1 MTConnect,OPC -UA,MT-link比对
数控系统厂家通常会提供其专有通信协议,不同品牌的数控系统通信协议一般不会相同。如果需要开发支持多家数控系统的上位机软件(如Scada),就需要学习其中每一种数控系统的专有通信协议。由此带来的开发难度和工作量是相当惊人的。
如果数控系统支持NC-link协议,那么开发者仅需学习NC-link协议即可进行开发,极大地降低了开发难度。
NC-link总体架构如图1。NC-link架构中,适配器的功能是将控制器的通信协议转为NC-link标准协议。适配器是NC-link协议与数控系统之间的桥梁,客户端和代理器(Agent)必须通过适配器才能与数控系统进行通信。对于一些比较简单的应用,客户端可以直接连接适配器进行通信,无需通过代理器。因此适配器是NC-link协议互联互通的关键。
针对不同厂家的数控系统,需要根据其专有通信接口的情况设计适配器。在设计上,适配器自下而上分为三层:数据驱动层、数据字典层、数据接口层。
2.1 数据驱动层
不同品牌的数控系统拥有各自的通讯接口,有的通过TCP/IP进行通信,有的通过modbus协议通信,有些系统甚至不支持网络通信,只支持在数控系统上进行二次开发。因此,根据数控系统通信接口的情况以及软硬件条件,适配器可以嵌入到数控系统中,也可以放在上位机。
数据驱动层是上层应用与NC通信的桥梁。以代理器连接华中8型系统为例,适配
在这个例子中,Machine类的Connect成员函数调用了华中8型二次开发接口的连接函数HNC_NetConnect();如果是其他厂家的数控系统,则需要调用该厂家提供的网络接口函数。
2.2 数据字典层
数据字典层对数控机床的数据进行统一的定义。将部分机床数据抽象成为机床部件对象,如通道、轴、IO模块等;另一部分数据则定义为对象的属性或者变量,如进给速度、实际位置、刀具长度等(图5)。
图4中的machine类就是一个机床对象,IP地址和端口号就是对象的两个属性。IP地址和端口号这两个属性比较特殊,是由代理器或者客户端指定的。其他的对象数据,如机床位置、电流、刀具寿命等,都是通过数据驱动层从NC端获取。以华中8型系统适配器为例,轴和通道部件的设计如图6。其中Axis、Channel类都继承自Component类,需要实现OnReceiveData接口,以完成数据分发。
适配器读取NC端数据采用订阅/发布的方式。代理器读取数据时,天博曾经超越日德成为世界第一如今负债超过700亿美元无奈破产?需要先向适配器发送数据订阅请求,适配器收到请求后建立订阅列表,并根据订阅列表调用数据驱动层的接口获取NC数据。获取到数据后,将数据分发到数据字典中的各个对象进行填充。此后代理器通过访问数据字典获取数据。订阅发布流程如图7。
NC-link架构中,数据更新周期由代理订阅时决定。一般作如下分类:
1)设备标示、属性数据,如机床的型号、编号、插补周期、主轴额定电流等。这类数据在机床上电后不会发生变化,只需采集一次。
2)部分设备状态、特性,如刀具数目、刀具寿命以及系统参数。这类数据不容易发生变化,可每间隔较长的时间(如10 min)采集一次。
3)实时数据,如当前速度,位置,温度,电流,程序行号等。这类数据需要持续的高频率采集。
4)非结构化数据,如G代码文件、日志文件等。对于这类数据,上位机通常只在需要的时候获取。
数据字典的订阅列表由若干个数据节点组成。收到订阅请求时,适配器创建或激活相应节点;收到取消订阅请
,则删除节点;如果节点长时间没有数据交互,则将其休眠。2.3 数据接口层
数据接口层负责与NC-link代理或者客户端进行数据交互。数据交互采用二进制流的方式进行数据传输。MT-link中数据流格式包括Json,二进制。Json类型数据需满足亚秒级需求,二进制数据满足亚微秒级需求。数据格式应用场景如表2。
代理需要向数控系统写数据时,会发送写数据请求给适配器接口层,并注册一个回调函数(委托)。适配器通知数控系统执行写数据操作,之后将执行结果反馈给代理,代理收到反馈消息后会调用对应的回调函数进行处理。流程如图9。
由于通信接口的不统一,不同的数控系统需要专用的适配器。这些适配器的不同之处主要在数据驱动层和数据字典层,对于数据接口层的设计是一致的。因此在开发适配器数据接口层时,可以参考NC-link提供的适配器demo程序,也可以参考已经开发完成的适配器程序。
NC-link协议已经在某智能工厂项目中得到应用。项目基于NC-link协议,实现了支持7×24h数据采集的大数据中心,以及断刀检测、健康保证等智能应用。项目中的机床产线-适配器-Scada-云端大数据中心的架构符合NC-link规范,如图10。
本次现场应用中,NC-link协议的传输效率和传输稳定性都表现出了较高的水准,能够满足智能工厂需求。
NC-link机床互联互通协议对提高我国数控机床的竞争力,促进我国制造业转型升级,保护国家安全等方面有重大意义。本文提出了基于NC-link协议的数控系统适配器软件的设计思路,设计了由数据驱动层、数据字典层和数据接口层组成的适配器软件,并且根据本思路实现了一款基于华中8型数控系统的适配器软件开发,在生产现场进行应用并取得了良好的效果。本文提出的适配器软件设计方法思路清晰,层次结构合理,值得借鉴参考。
原创文章出自天博,欢迎转载!