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