基于MTConnect协议的柔性适配器研究*

2018-10-09 06:37胡天亮张承瑞
组合机床与自动化加工技术 2018年9期
关键词:数据项适配器数控系统

王 标,杨 艳,胡天亮,张承瑞

(1.山东大学 a.机械工程学院;b.高效洁净机械制造教育部重点实验室,济南 250061;2.山东大学 苏州研究院,江苏 苏州 215123)

0 引言

随着中国制造业升级和《中国制造2025》的提出,智能制造得到重点推进,而智能制造的基础是实现车间内信息的互联互通[1]。现今,车间内设备以数控机床为主,相关学者已对数控机床的监控开展了许多研究,在单台数控系统监控方面,有通过硬件[2]、嵌入式单元[3]、商业通信软件[4]等形式采集数据;在数控系统的群控方面,有对于同种开放式数控系统的监控[5]、基于OPC协议的控制系统联网[6]等。然而研究中未能有效实现将异构数控系统的监控柔性化、标准化,系统无法实现快速部署,可扩展性不强。

为解决此问题,本文根据MTConnect通信协议具有的标准化语义、轻量级等特点[7-9],研究了基于MTConnect的具有高效性、开放性的柔性适配器,解决了由于各机床接口、通信协议不尽相同,异构控制系统在同一监控网络下集成困难的问题;并提出了异构数控系统的监控方案,最后在某车企制造车间进行了应用验证。

1 柔性适配器设计

MTConnect标准架构包含两个元素:适配器(Adapter)和代理(Agent)。适配器将设备数据“翻译”为标准格式,添加时间戳和标识符并封装成报文,然后发送到代理;代理存储数据,并将它们以XML格式发给客户端[7]。图1说明了体系结构元素之间的关系。

图1 MTConnect体系结构

本文设计的柔性适配器可以兼容传统信息采集接口,集成设备使用的不同通信协议,并进行协议解析与转换,具有高兼容性和高拓展性。柔性适配器的架构如图2所示。

图2 柔性适配器架构

因为不同设备采用不同的数据格式和通信协议,所以要开发不同的通信驱动来支持适配器数据采集的功能,本文将通信驱动封装成动态链接库,只要动态库支持柔性驱动接口,通信驱动就可以识别并加载到内存中。通过这种模式柔性适配器就可以访问现场设备信息。

为保证系统的高扩展性,利用面向对象的程序设计思想,将柔性适配器分为Adapter类、DataItem类、Asset类、Interface类。Adapter类的功能包括Socket通信、心跳机制、对数据项的整合以及数据项的发送等,Adapter类函数示例见表1。DataItem类则按照MTConnect标准定义了事件(Events)、采样(Samples)、条件(Conditions)、信息(Messages)、时间序列(Time Series),形成封装好的数据项类型,可以保证完整的数据项映射。柔性驱动接口类(Interface)的作用是对通信协议进行适配,保证适配器的可扩展性和通用性。通信驱动是指由机床厂家提供或用户自行封装的可用于采集设备数据的DLL(动态链接库),将其中相关的API(应用程序编程接口)添加到柔性适配器的对应接口中,即可实现对设备的监控。

柔性适配器处理流程如下:

(1) 适配器通过查询控制器来发现路径并确定设备配置信息,将代理端的配置信息与适配器端相匹配;

(2) 数据项映射,利用柔性驱动接口读取动态库,并将数据转换成统一数据格式;

(3) 设置设备端的端口号,打开适配器;

(4) 设置数据采集时间间隔,定时采集数据;

(5) 适配器向代理端发送数据。

Adapter类提供的部分函数功能:

表1 Adapter类函数示例

1.1 柔性驱动接口设计

柔性接口将通信驱动中的函数进行封装,包括通用的对于设备的连接与断开、配置、初始化、获取数据、重连、开始、结束等操作,还有保留的未定义函数接口,用于特殊情况的扩展;并将采集上来数据转换成DataItem类中的统一数据格式。该接口主要包含的函数见表2。

表2 接口函数示例

1.2 数据项映射实现

首先为要监视的每个数据分类为MTConnect标准数据类型中的一种,并创建数据项,以采集坐标信息为例:

(1) 新建数据项,根据坐标信息的性质,将其划分为Sample类数据,新建Sample对象,Sample中包括语义与值的对应,“position”是该数值的语义,添加到数据项集中;

Sample mPosition = new Sample("position");

mAdapter.AddDataItem(mPosition);

(2) 将数据采集协议中的对应坐标采集的函数添加到柔性接口类中的获取数据接口中以实现采集原始数据;

(3) 采集到的坐标数据都会对应于“position”这个语义,将语义、数值及时间戳的组合被封装成一个报文,发送到代理端。

mAdapter.SendChanged( )。

2 柔性适配器应用策略研究

柔性适配器适用于车间的数控机床、机器人等,当添加新的设备类型时,设计人员需要封装一个与此柔性驱动接口函数一致的动态链接库,并添加到适配器软件的Drivers文件中,适配器就可以识别加载该动态链接库,经过简单的配置就能实现监控。

2.1 针对通用控制器接口的应用

目前机床的通信接口可分为PLC上I/O接口、串口和以太网口三种。以下将针对此三种类型介绍本文设计的柔性适配器的应用策略。

2.1.1 PLC信号点采集

利用数据采集模块从PLC采集I/O点,再通过网口传输模块与柔性适配器相联。采集卡提供驱动程序以及SDK(Software Development Kit)函数接口,调用这些函数即可实现将模拟量输入转化为数字量输出的功能,将I/O信号解析后送到柔性适配器中。将SDK中的函数针对柔性适配器中的接口进行二次封装,生成动态链接库并添加到柔性适配器中,即可直接通过柔性适配器采集PLC中的数据。

2.1.2 串口通信转换

通过串口服务器可实现串口转网络的功能,其按照串口数据流的形式采集数据,并将数据转换成符合TCP/IP协议的数据包在以太网中传播,从而将串口通信设备转换为以太网口的方式采集数据。

2.1.3 以太网口数据采集

具有以太网口的机床采集方法更加多样化,目前数控系统的主要厂商都以提供API的方式,通过以太网或串口进行通信。由于各厂商通信接口不一致,所以需要按照柔性适配器中接口的规则,定义相同的接口,嵌入这个接口文件,就可在柔性适配器中使用这些函数实现数据采集。

2.2 针对OPC接口的应用

对于已经支持OPC规范但是不支持MTConnect协议的设备,例如车间机器人或者一些非标数控机床,柔性适配器可实现对于OPC规范的集成。OPC服务器中的命名空间与MTConnect中的设备信息模型功能相似,当其数据类型映射到MTConnect数据字典时, 将OPC数据类型转换为MTConnect中数据结构的类型,同时为OPC枚举类型的子类型创建所有枚举。方法如下:

(1) 建立OPC服务器项

建立IOPCServer接口类型的服务器项,用于采集OPC服务器中的信息。IOPCServer接口中的方法可以获取OPCServer的状态信息、OPC的组对象,其中OPC所采集的所有进程变量OPCItem都保存在组对象中。

(2) 建立OPCItem类,包含OPC命名空间中的主要数据项属性

由于OPC中的数据项统一采用VARIANT型表示,通过使用OPCItem类将其中的数据类型按照MTConnect的数据字典区分开;同时在适配器中建立DeviceDatum类,使之包含所有OPC协议转为MTConnect协议的数据类型。

(3) 选择想要采集的数据,建立新的数据项

通过AddDataItem函数将数据映射到数据项组中,完成OPC协议到MTConnect协议的转换。

(4) 将从机床获取数据的接口统一添加到通用的获取数据接口,采用订阅式的数据访问方式,当服务器中数据发生改变后,就会触发并传回变化的句柄和数据,再通过SendChanged方法将数据项集发送到代理端。

3 车间监控系统开发与功能验证

本文基于MTConnect的异构数控系统联网方案开发了网络监控系统,并成功应用于某汽车企业的机械加工车间,该车间布置的主要是Fanuc31i与西门子840D两种数控系统的设备,现场如图3所示。对每台机床配置一个柔性适配器,整个车间配置一个代理服务器,客户端与代理使用MTConnect协会提供的开发包进行设计。

图3 车间现场

3.1 系统结构设计

监控系统的结构如图4所示,柔性适配器从数控系统中采集数据然后转换为MTConnect统一数据格式,发送到代理;工程中运行着一个数据库,用作保存历史数据。在客户端层面,应用程序具有与代理联系的URI(Uniform Resource Identifier),数据的交互通过请求与应答机制实现[7]。首先客户端发送probe指令来获取设备的描述信息,包括设备组件的结构和其可用数据信息,然后客户端可发送current指令来获得最新的数据项。

图4 监控方案结构

3.2 Fanuc系统在监控网络的集成

3.2.1 连接机床数控系统

(1) 机床数控系统的连接

采用Fanuc公司提供的动态链接库-FOCAS (Fanuc Open CNC API Specifications),将Fwlib32.dll中的连接函数cnc_allclibhndl3加入适配器柔性驱动接口中的Connect函数中,建立通信链路并返回通信句柄,通信句柄将伴随整个通信过程,直到应用程序通过调用函数cnc_freelibhndl断开通信链路。

(2) 柔性适配器配置

在适配器柔性接口的Configure函数中,FOCAS库函数中通过cnc_getpath来获取机床的所有路径,然后加入到柔性适配器中控制的path类。

3.2.2 数据采集与映射

首先根据要采集的数据类型新建数据项,加入到数据项组中,将FOCAS中的采集数据方法添加到GatherDeviceData方法内,以采集数控程序为例:

(1) 新建数据项,定义为Event类型;

(2) 通过AddDataItem(DataItem di)函数加入到数据项组中;

(3) 通过FOCAS中的cnc_rdexecprog( )获取到正在运行的程序数据,再通过Event类的SetValue方法将程序内容填充到数据流stream中;

(4) 将获取数据的方法加入到通用的获取数据接口GatherDeviceData( ),再通过SendChanged( )方法将数据项集发送到代理端。

3.3 集成西门子系统

在西门子840D系统中配有OPC服务器,适配器可以采集OPC服务器中的数据并转换为MTConnect协议标准的数据。本文采用了OPC基金会提供的自动化接口-OPCDAAuto.dll动态库,可实现对于OPC服务器的访问功能,使用OPCServer类、OPCGroup类、ItemValue类来分别实现了OPC中Server对象、Group对象和Item对象。

OPC与MTConnect数据映射:

(1) 建立OPC服务器对象;

OPCServer mOPCServer=new OPCServer();

(2) 连接到OPC服务器;

mOPCServer.Connect(”OPC.SINUMERIK.Machineswitch”);

其中,OPC.SINUMERIK.Machineswitch为西门子840D数控系统中OPC服务器的CLSID标识。

(3) 在服务器对象下添加OPC组对象;

OPCGroups mOPCGroups= mOPCServer.OPCGroups;

(4) 建立项对象并向各组添加项,举例:

AddDataItem (mProgramName = new COPCItem(mOPCServer, ProgramName)); //程序名

AddDataItem (mWarningStatus = new COPCItem(mOPCServer, WarningStatus)); //报警状态

(5) 采用订阅式的数据获取,再将数据项集发送到代理端。

mOPCGroups.IsActive=true;

mOPCGroups.IsSubscribed=true;

SendChanged()。

3.4 监控系统实现

基于上述方法实现车间监控系统,客户端程序采用C#语言编写,其中包含MTConnect客户端的软件模块,该模块启动对MTConnect数据的所有请求。客户端能同时实现多个数控设备的监控,单击需要查看的设备,即能弹出对应数控设备的监控界面。监控内容包括数控系统的坐标、进给速度、主轴速率、程序名、运行模式等,在某一时刻客户端得到如图5、图6所示的运行结果。

图5 车间监控系统界面(安装Fanuc31i数控系统的机床信息)

图6 车间监控系统界面(西门子840D数控系统机床信息)

通过与当前时刻各数控系统显示的实时数据进行比较验证,结果表明该系统能够准确地获取联网机床的运行信息,用户根据显示信息可远程判断数控机床的运行状况,准确定位故障发生的部位,证实了方案的可行性;同时,柔性适配器简化了机床的信息采集过程,让监控系统中异构设备的添加快速高效,标准的信息模型保证了数据的正确性,为实现数字化车间奠定了基础。

4 结论

本文针对目前车间信息化过程中存在的问题,基于MTConnect协议设计了具有高扩展性的柔性适配器,并标准化机床的信息访问方法,降低了适配器软件的开发和硬件通信驱动开发的耦合度,提高程序开发的效率;同时提出了异构数控系统监控方案,并成功应用在某汽车制造企业的自动化管理系统中,完成了对于异构数控系统运行数据的有效采集,实现设备监控和集中管理,提高了企业的管理效率。此外,由于MTConnect作为各种机床平台的标准接口,因此可以使用相同的软件工具集来捕获不同机床类型的信息,这进一步减少了在工厂环境中实施的开发和部署时间。

猜你喜欢
数据项适配器数控系统
国六柴油车远程排放监测数据项间相关性特征研究*
基于相似度的蚁群聚类算法∗
非完整数据库Skyline-join查询*
基于Python的Asterix Cat 021数据格式解析分析与实现
基于FANUC 32i A数控系统的外部测量设计
西门子840D sl数控系统在SC125大型车铣镗床技术改造中的应用
基于FANUC Oi mate TD数控系统的手动功能开发
数控系统中GUI软件平台设计和实现
基于3D打印的轻型导弹适配器
潜空导弹垂直发射出筒适配器受载变形仿真研究