基于MTConnect协议的数控机床数据采集方法
2019-01-08唐霞邢嘉路刘欢连
唐霞,邢嘉路,刘欢连
(1. 无锡科技职业学院,江苏 无锡 214028; 2. 东南大学 机械工程学院,江苏 南京 210096)
0 引言
传统的制造企业结构相对固定,产品类型单一,管理方式落后,这种管理模式已经不能适应目前个性化、小批量的市场要求[1]。数控机床作为离散型企业制造车间中最基础也是最重要的制造单元[2],与现代制造企业的运营有着极其密切的联系,其性能对于整个企业的生产效率有着重要的影响。现代数控机床是集成了机械制造、计算机、自动控制、传感器、信息处理等多种技术的一种灵活的、通用的自动化制造设备[3],对车间中数控机床进行数据采集与监控管理,对于整个制造车间乃至整个企业的管理具有重要意义。
1 数控机床设备信息模型构建
要实现数控机床数据采集,首先需要对机床设备信息模型进行构建。本文以目标车间中三轴数控机床为例,基于MTConnect最新1.3.1标准构建设备信息模型。设备信息模型是对设备各类特性的描述,也是对物理空间中的设备在信息空间中的一个映射,通过设备信息模型能够对物理空间中的设备在信息空间中进行还原,具体的信息包括:
1) 设备基本信息:包括设备ID、设备名称、设备类型等信息;
2) 设备固件信息:包括执行器、控制器、传感器等组成设备的固件信息;
3) 设备参数:包括轴数、行程、最大速度等设备的特性参数;
4) 实时数据:包括位置、状态、转速、进给、负载、报警信息等机床运行过程中产生的实时数据。
本文根据MTConnect标准,针对车间数控机床数据采集需求及机床的构成组件,建立了目标车间数控机床设备信息模型,如图1所示。图中矩形框表示的元素为DateItem元素。数控机床的设备信息模型主要包括轴、控制器和系统3个组件(component),轴的子组件(subcomponent)包括一个旋转轴主轴和3个进给轴X、Y、Z轴,控制器的子组件为加工路径信息,系统的子组件为电气系统信息。
图1 数控机床MTConnect设备信息模型
2 数据采集适配器设计
a) 适配器与机床数据采集方法
根据MTConnect协议,适配器端负责与机床通信实现机床数据采集后发送给代理端。系统中使用FOCAS实现机床数据采集的流程,如图2所示。
图2 基于FOCAS机床数据采集流程
适配器端通过对FOCAS库函数的调用实现与数控系统间的通信,其通信基于Socket进行,需要设置数控系统的IP地址和端口号,使其与计算机处于同一网段内。在软件开发之前首先需要对机床端IP网址和子网掩码进行设置,在机床端SYSTEM中进入以太网公共设置界面,填写机床的IP地址,之后在FOCAS2设置界面将端口号设为8193,完成机床端TCP相关参数设置。设置完成后将FOCAS库中Fwlib32.dll及相关的文件添加到工程中,与机床通信时系统首先调用FOCAS库函数shortWINAPIcnc_allclibhndl3(constchar*ipaddr,unsignedshortport,longtimeout,unsignedshort*FlibHndl)获取句柄,建立与机床的连接。其各项参数含义如下:Ipaddr为数控系统的IP地址,port为数控系统的端口号,timeout为连接时间,获得的通信句柄存储在FlibHndl中,当其返回值为EW_OK时表示通信建立成功,之后所有数据采集函数均通过调用该句柄实现,不同数控机床通过IP地址区分,可获得不同的通信句柄。当连接结束时需要调用cnc_freelibhndl函数进行通信句柄的释放,当返回EW_OK时表示句柄释放成功。当FOCAS与机床建立连接后就能够通过各类功能函数实现对机床的数据采集。以运动轴相对坐标位置数据采集函数为例对FOCAS机床数据采集方式进行说明。函数声明如下:
FWLIBAPIshortWINAPIcnc_relative(unsignedshortFlibHndl,shortaxis,shortlength,ODBAXIS*relative);
其中输入参数为FlibHndl、axis、length,FlibHndl为机床通信句柄,axis为需要读取坐标的轴数,length为需要的数据块长度,其计算方法为4+4×n,其中n为要采集的轴数目。其输出参数为relative,该数据类型为一个ODBAXIS类型的结构体,要获得坐标轴位置数据需要从该结构体中获得,其定义如下:
typedefstructodbaxis{
shortdummy;
shorttype;
longdata[MAX_AXIS] ;
}ODBAXIS;
各轴相对位置坐标就存储在data[MAX_AXIS]数组中,读数组中各轴的值就能够获得各轴坐标。FOCAS中各功能函数的输入输出参数均不同,在采集不同类型的机床数据时需要根据其对应的数据采集功能函数定义,来进行逐个功能的数据采集。
b) 适配器与代理通信方法总体流程
根据MTConnect协议的规定,系统适配器Adapter与代理Agent通信采用Socket通信,其数据流格式为简单的报文形式。Socket又称套接字,是网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket[4],通过Socket能够实现基于TCP/IP协议的网络通信。Adapter发送的报文格式根据其数据项种类的不同可分为以下3种:
1)Sample和Event类型:
2017-07-29T16:26:33.460470Z|Xabspos|168.423|Yabs|25.341|…。
2)Condition类型:|
3)Message类型: |
对于一个Adapter采集多台机床的情况,则需要在key中将设备名和数据项名称用“·”分隔。因此在由FOCAS函数采集得到设备数据后系统将其处理成报文形式再发送给代理端,系统适配器数据采集总体流程如图3所示,具体流程如下:
图3 适配器数据采集总体流程
STEP1:适配器数据采集开始,读取适配器配置文件Adapter.cfg,内容包括所有机床的名称、IP地址、端口号,初始化适配器设备信息,建立设备列表;
STEP2:打开适配器服务器,绑定服务器地址,开始监听等待代理连接,当代理发出连接请求后与代理建立socket连接;
STEP3:设备数据采集开始,设所有设备总数为n,建立与第i台设备连接,连接成功后对该台进行数据采集,遍历所有设备;
STEP4:将所有设备数据转换为报文格式,发送给代理,若收到“采集结束”指令则关闭服务器结束数据采集,否则继续进行设备数据采集。
3 数据采集客户端设计
系统代理Agent采用MTConnect协会提供的标准Agent[5]。代理与客户端的数据交互主要通过RESTful接口实现,REST(representationalstatetransfer)定义了客户端和代理如何对互相的通信状态进行处理,其底层协议为HTTP协议,返回的数据采用XML进行传输。MTConnect代理支持probe、current、sample和asset4种类型的请求。
MTConnect客户端可采用B/S或C/S架构,本文采用C/S架构进行客户端开发。客户端通过向代理发送请求获得XML文件,解析XML节点内容就能够获得设备各数据项的内容。本系统客户端工作流程如图4所示,具体流程如下:
1) 连接数据库,向代理发送probe请求来判断设备的状态,如果设备状态为“AVAILABLE”则说明设备连接正常,可进行下一步数据请求,否则结束采集;
2) 向代理发送current请求,获得设备的当前状态数据,保存该xml文件为stream.xml;
3) 解析stream.xml,获得各个元素对应的数据项名称和值,保存到数据库对应的表中;
4) 更新用户界面控件显示,若收到“采集结束”指令则结束采集,否则继续发送current请求进行数据采集。
图4 客户端工作流程
4 数据采集监控模块开发及运行实例
信息采集模块界面主要包括机床列表对车间设备状态进行总览,如图5所示,可以实现对机床状态监控、数据库连接管理、机床管理、各机床实时数据监控等功能。机床列表界面对机床编号、IP地址、名称、加工状态、急停状态、报警状态进行实时监控显示。
图5 信息采集界面
对于单个机床监控功能通过双击机床列表中对应的机床进入,单个机床监控界面如图6和图7所示,包括加工状态、主轴控制、NC程序、参数设置、报警信息和系统信息6个类型,能够实现对机床各类型信息的全面详细监控。
图6 单个设备监控
图7 主轴控制监控界面
系统的部分系统监控界面与运行实例对比,如图8、图9所示,其中图9(a)为监控系统界面显示,图9(b)为数控机床HMI显示,可以看出系统能够对机床数据进行准确地实时采集。
图8 报警信息监控实例
5 结语
介绍了机床数据采集的基础技术MTConnect通信协议和FOCAS数据采集开发包,构建了数控机床设备信息模型;基于FOCAS实现了数据采集适配器设计,并完成了数据采集客户端设计。
图9 参数设置监控实例