张贵军,陈 凯,徐建明,禹鑫燚
(浙江工业大学 信息工程学院,浙江 杭州 310023)
MES实时数据监测系统设计与开发
张贵军,陈 凯,徐建明,禹鑫燚
(浙江工业大学 信息工程学院,浙江 杭州 310023)
针对离散制造业各系统之间相互独立、缺乏数据共享,而导致功能重叠等信息孤岛问题,基于面向制造企业车间执行层的生产信息化管理制造执行系统(MES),设计开发了MES实时数据监测系统.使用OPC Server实现现场设备状态的实时采集,通过Socket实现网络数据交换,采用WebSocket即时通信技术实现服务器与浏览器之间数据的实时推送.设计一种可靠的通信协议实现网络数据的可靠传输,有效解决了上层计划系统与下层控制系统之间的通信问题,用户可以通过PC浏览器远程监测现场设备的工作状态.MES实时数据监测系统开发成本低、运行稳定且维护简便,可以替代传统岗位式监测方式,具有较高的研究和市场应用价值.
MES系统;监测系统;实时数据采集
随着科学技术的发展,传统工厂的生产加工模式已不再适合高速发展的信息化时代,制造业面临着巨大的压力.目前,由于制造业各系统之间相互独立、缺乏数据共享而导致功能重叠等一系列信息孤岛问题,阻断了制造信息在工厂水平方向的传递,严重地制约工厂各系统之间的协调,降低制造业系统的发展水平,阻碍制造业信息化和工业化的进程[1].2013年4月在汉诺威工业博览会上,德国政府提出“工业4.0”战略,目的是提高德国工业的竞争力,在新一轮工业革命中占领先机.经李克强总理签批,中国版的“工业4.0”规划《中国制造2025》由国务院于2015年5月8日公布,在2015年10月十八届五中全会通过“十三五”规划后,成为最热门的焦点之一[2].1990年美国先进制造研究公司(AMR)首次提出的制造执行系统(MES)是面向制造企业车间执行层的生产信息化管理系统,处于底层工业控制系统与上层计划管理系统之间,有效地解决了上层计划系统与下层控制系统之间的信息通信,将生产与管理有机地结合起来,对工厂制造业整体水平的提升具有重要意义[3-4].在欧美发达国家,研究人员和企业管理者对MES进行大量研究,不仅在理论研究上取得显著的成就,而且在应用上也走在世界前列[5-7].国内对MES的理论研究起步比较晚,研究深度和广度也落后于欧美西方国家,在企业中的应用也刚刚起步,主要停留在MES体系架构、内涵以及思想的研究上,应用系统的开发局限于MES单一功能[8-10].
针对某企业模块化柔性制造综合实训系统,应用以太网、无线网为数据传输通道,浏览器为客户端,开发基于OPC Server的数据采集终端,实现基于Socket和WebSocket的实时数据的传输和展示,最终实现基于Web的MES实时数据监测系统的设计与开发.
MES实时数据监测系统基于B/S架构,采用OPC技术,实现现场设备过程状态数据的实时采集;采用Socket技术,实现异构环境下数据采集终端和Web服务器之间的数据通信;采用WebSocket技术,实现Web服务器与浏览器之间数据的即时通信.系统主要包括需求分析、系统架构设计以及功能设计与实现三部分,功能设计主要包括数据采集终端、Web服务器和通信协议三大模块.
1.1 需求分析
MES实时数据监测系统基于模块化柔性制造综合实训系统,通过对现场设备的过程状态数据的实时采集、传输、处理、显示,实现对该模块化柔性制造综合实训系统运行过程的智能监测.模块化柔性制造综合实训系统工作流程如图1所示,主要由上料、串联机器人示教搬运、液压冲压、并联机器人加工、图像检测搬运、落料、喷涂烘干、图像处理、加盖、穿销、检测、条形码自动黏贴与扫描、分拣输送、提升机械手、物流仓储、堆垛解垛及行车机械手等单元组成.
图1 模块化柔性制造综合实训系统流程图Fig.1 Flow chart of integrated training system for modular flexible manufacturing
针对该实训系统工作流程,实现对互联网内实训系统工作流程和工作状态的多用户实时监测.监测内容包括联机状态监测和单机状态监测,单机状态监测设备运行状态、工件运行模拟动画等;联机状态监测设备运行状态、工件运行位置、报警及工件运行模拟动画等.
1.2 系统架构
MES实时数据监测系统包括三层架构,如图2所示.三层架构由数据采集层、Web服务器层以及客户端层组成,数据采集层包括过程控制层(PCS)和基于C++语言的OPC客户端的设计与开发;Web服务器层包括MES系统实时数据的获取、手工采集数据、管理数据以及历史数据等数据仓库的搭建和发布;客户端层包括数据的获取和显示.数据采集层与过程控制层以SIMATIC NET作为OPC Server连接现场设备的媒介,通过OPC客户端采集现场设备运行的过程数据;Web服务器层通过Socket技术实现与数据采集层之间数据的实时通信;客户端层通过WebSocket技术实现与Web服务器层之间数据的即时通信.
传统的现场设备实时数据采集方案,每个应用软件开发商都需要提供专用的接口函数来存取现场设备的数据信息.由于设备种类多种多样,产品经常升级,往往给用户和开发商带来巨大的工作负担,不符合工作的实际需求.
图2 MES实时数据监测系统架构图Fig.2 Structure diagram of MES real-time data monitoring system
2.1 OPC技术
OPC技术是以OLE、组件对象模型COM、分布式组件对象模型DCOM以及ActiveX技术为基础,用于过程控制的OLE技术[11].OPC通过提供一套标准的OLE/COM接口,完成从服务器数据源提取数据并传输到客户端,是一种具有高效性、开放性、可靠性和可互操作性的即插即用的设备驱动程序[12].
OPC服务器主要由OPC服务器对象(Server)、OPC组对象(Group)以及OPC项对象(Item)三类逻辑对象模型组成.Server对象是Group对象的容器,Group对象是Item对象的容器,Item对象是OPC服务器到数据源的一个物理连接,通过Server,Group,Item三层接口,连接到OPC Server的硬件装置.其关系图如图3所示.
图3 OPC服务器对象关系Fig.3 Relationship of OPC server object
2.2 客户端设计与开发
数据采集终端以OPC Server为基础,通过Server, Group, Item三层接口与现场设备的端口通道建立连接,OPC Server和OPC Group通过OPC Item与现场设备的I/O进行数据交换,提取现场设备的数据信息.数据存储接口用于数据入库,对数据进行备份以及历史分析.数据通信接口通过Socket实现实时数据跨平台数据交互.系统架构如图4所示.
图4 数据采集终端结构图Fig.4 Structure diagram of data acquisition terminal
OPC服务器组对象的工作方式有冷连接和热连接两种方式.对于温度、流量和速度等变化周期相对固定的信号,采用冷连接的工作方式,设置合理的采样周期对现场设备实时数据进行采集.对于报警、控制命令等变化周期不固定的信号和事件触发信号,采用热连接的工作方式,及时获取现场设备的实时数据.根据服务器对象的工作方式将现场设备的547路数据分为冷连接和热连接两种读取数据的模式,其中冷连接423路,热连接124路.表1为冷连接方式读取数据的部分设备数据地址,表2为热连接方式读取数据的部分设备数据地址.
表1 冷连接方式读取部分数据地址
表2 热连接方式读取部分数据地址
Web服务器的设计与开发是基于B/S架构的监测系统的核心内容,主要包括监测客户端、实时数据通信及数据库存储等模块的设计与开发.
3.1 Socket技术
TCP/IP协议是Internet最基本的协议,主要由网络层IP协议和传输层TCP协议构成.Socket又称“套接字”,用于描述IP地址和端口,是一个通信链的句柄,用来实现不同虚拟机或不同计算机之间的通信[13].TCP/IP是一种可靠的网络通信协议,通过在通信两端各自创建一个套接字(Socket),形成可靠地的网络虚拟链路,从而两端程序通过网络虚拟链路进行通讯[14].
在客户端/服务器通信模式中,Socket是通信连接两端的收发器,服务器和客户端都通过Socket来收发数据.客户端需要主动创建与服务器连接的Socket,服务器端收到客户端的连接请求,创建与客户端连接的Socket.
Socket连接过程分为三个步骤,包括服务器监听、客户端请求及连接确认,如图5所示.服务器端套接字一直处于等待连接的状态,实时监测网络中的Socket连接,并不定位特定的客户端.当客户端套接字发起连接请求且连接目标与服务器端的套接字相匹配时,服务器端套接字监听到客户端的连接请求并响应客户端套接字的请求,同时通过创建新线程把服务器端的套接字的描述发送给客户端.如果客户端确认收到的套接字,则创建与服务器端进行数据实时通信的Socket连接.而服务器端的套接字继续处于监听状态,继续接收其他客户端套接字的连接请求.
3.2 WebSocket技术
WebSocket协议是一个网络协议,允许两个相连的端在一个单一的TCP连接上进行全双工消息通信.WebSocket协议基于TCP的协议,与TCP连接的建立过程类似,但与传统的基于TCP连接的协议有所不同的是WebSocket协议的握手过程需要从HTTP协议发起连接[15].连接的发起者发送一个专门制定的HTTP请求,其中包含连接的WebSocket端点的URL,称为打开阶段握手.如果服务器接受连接,制定一个称为打开阶段握手响应的特殊的HTTP响应并发送回客户端.此时,保证WebSocket消息的往返传递TCP连接创建,一直保持活跃直到任意一方决定终止连接,或者是某些外部因素导致连接关闭[16].图6为WebSocket 协议握手过程的示意图.
图5 Socket通信模式Fig.5 Socket communication mode
图6 WebSocket实时通信图Fig.6 Structure diagram of WebSocket real-time communication
首先,浏览器客户端向服务器发起WebSocket握手请求,并发送基于HTTP协议的请求报文.然后,服务器收到客户端的WebSocket发送的握手请求报文并对握手请求报文进行解析,如果握手请求报文满足WebSocket协议条件,则向客户端发送WebSocket握手应答,并发送基于HTTP的应答报文.最后,客户端收到服务器端的WebSocket应答报文并对应答报文进行解析验证,如果验证成功,则创建WebSocket连接,双方建立全双工通信,否则客户端主动断开连接.
3.3 Web服务器端
WebSocket服务器端主要包括实时数据获取模块、数据仓库模块和实时数据推送模块三部分.实时数据获取模块基于Socket实时通信技术,实现WebSocket服务器与数据采集终端的数据交换,为保证数据的唯一性和一致性,提高多用户并发访问效率,只创建唯一的Socket连接.数据仓库模块由手工采集数据、MES系统实时数据、管理数据以及历史数据组建而成,是基于B/S架构监测系统的数据来源.实时数据推送模块基于WebSocket即时通信技术,实现浏览器客户端与WebSocket服务器之间的通信,采用广播传送方式通信,WebSocket服务器向所有客户端发送同一份数据包,客户端筛选对应的数据,保证实时监测客户端数据的唯一性和一致性.
数据推送结构图如图7所示.首先,浏览器客户端向WebSocket服务器发起连接请求,连接成功后创建WebSocket服务器与客户端实时数据传输通道.然后,WebSocket服务器通过数据库通信接口从数据库中提取手工采集的数据、管理数据和历史数据,通过数据通信接口获取MES系统实时数据.最后,WebSocket服务器通过实时数据传输通道将实时数据推送到浏览器客户端.
图7 基于广播式数据推送结构图Fig.7 Structure diagram of data push based on broadcast
网络通信协议三要素包括语法、语义及时序.语法规定信息的格式;语义规定通信双方怎么去做;时序规定事件的先后顺序.传输的数据流以包的形式进行传输,包括发送方的请求包、普通数据包、结束包及接收方发出的响应数据包.
请求包是发送方发给接收方的协议包,并用于向接收方发出发送文件的请求.ENQ表示请求包的包标识,占用1个字节,值为5.Size表示传送文件的长度,占用4个字节.NameLength表示文件名的长度,占用1个字节.Name表示传送文件的名称,占用长度有文件名长度字节内容决定.校验占用1个字节,是从ENQ开始到校验前所有字节的异或运算和.
普通数据包是发送方向接收方发送具有固定长度的数据包,固定位1 028字节长度.STX是普通数据包的包标识,占用1个字节,值为2.Number用于标识当前数据包在整个传输过程中的顺序号,占用2个字节.Data为传输的具体内容,占用1 024个字节.校验占用1个字节,是从STX开始到校验前所有字节的异或运算和.
结束包是发送方向接收方发送的最后一个数据包,长度不固定.ETX是结束包的包标识,占用1个字节,值为3.Length表示数据包传送数据的长度,占用2个字节.Data表示传送的具体数据内容,长度由数据长度的值决定.校验占用1个字节,是从ETX开始到校验前所有字节的异或运算和.
响应包是接收方发给发送方的应答信息,占用1个字节,有效的取值如表3所示.
表3 响应包取值及其含义
通信过程分为发送请求和发送文件两个过程.发送方发送请求包,等待应答方响应.若发送方收到应答方的ACK响应,发送普通数据包;若收到应答方的NAK响应,重发请求包;若收到应答方的CAN响应,则取消本次发送请求.发送方将待发送的文件以1 024字节为单位拆分为N个数据片段,最后一个数据片段长度不定,小于或等于1 024字节.当发送数据片段序号小于N-1时,使用普通数据包格式发送数据片段,若应答方接受正确,发送ACK响应,继续发送下一个数据片段;若发送方收到NAK响应,则重发上一次发送的普通数据包.当发送数据片段序号为N时,使用结束包数据格式发送第N个数据片段.若接收方接受正确,发送ACK响应,则通信正常结束;若接收到响应NAK,则发送方重发第N个数据片段的结束包.
数据包采用JSON数据格式封装,数据封装格式如图8所示.为了减少数据传输的大小,提高传输的效率,将采集的数据根据开关量和模拟量进行分组,每组再将数据分为不同的数据块.针对开关量,用一组0~255的数来表示8位状态量.针对每一组的数据块,用JSON数组进行封装,减少JSON格式数据的键占用过多的数据空间.数据块名称即为JSON数组的键值,数据长度表示JSON格式数据的字节长度,键值为long,数据表示即为JSON格式数据,键值为data.
图8 数据封装格式Fig.8 The format of data encapsulation
MES系统实时数据监测系统采用C++语言,基于SIMATIC NET V12服务器,开发OPC数据采集客户端,实现现场设备过程数据的实时采集;采用Java语言,基于Spring+Hibernate+Struts2框架,应用Socket和WebSocket实时通信技术,实现基于Web的实时监测系统的设计与开发.
模块化柔性制造综合实训系统工作方式分为联机工作和单机工作两种方式,联机工作方式是托盘传送工料依次经过每个生产单元的加工工艺,将工料加工为工件,合格工件放入仓库,不合格工件分拣出来,托盘进入下一个循环生产.单机工作方式是托盘传送工料从单个单元加工工艺从开始到结束的工作流程.工料加工过程中单元工作状态即为工料基本信息以及工料加工信息,代表了工料加工过程中的机器的工作状态和工料加工为工件的质量信息.模块化柔性制造综合实训系统现场如图9(a)所示.
MES实时数据监测系统工作流程如图10所示.实时监测客户端向WebSocket服务器发起连接请求或关闭请求,如果WebSocket服务器发起的是连接请求,则添加当客户端连接,客户端连接数N=N+1,若当前客户端连接数N不为1,WebSocket服务器从数据采集终端获取数据并且向所有客户端推送数据,否则WebSocket服务器向数据采集终端发起Socket连接请求,创建Socket通信通道,并向所有客户端推送数据;如果WebSocket服务器发起的是关闭请求,则删除当前客户端连接,客户端连接数N=N-1,若当前连接数N为0,则关闭Socket连接.
图9 模块化柔性制造综合实训系统及监测界面Fig.9 Integrated training system for modular flexible manufacturing
图10 系统工作流程Fig.10 Working flow chart of the system
MES实时数据监测系统同时包括联机状态和单机状态两种类型监测界面.联机状态主要监测产品在生产流水线上各个单元的工作情况以及产品所处于生产流水线的位置,如图9(b)所示.单机状态主要监测每个单元脱离生产流水线自主运行过程中该单元运行的流程的动画模拟以及该单元运行过程中各个状态,如图11所示.图11依次表示上料、落料、喷涂烘干、图像检测、加盖、穿销、检测、条形码识别及分拣等单元单机运行时,设备的运行状态和动作状态.
图11 单机状态监测界面Fig.11 The interface of single condition monitoring
设计并开发一款MES实时数据监测系统,该系统与传统的采集监测系统相比,解决了上层计划系统与下层控制系统之间的信息通信,将生产与管理有机地结合起来.同时系统长时间运行稳定、开发成本较低且升级维护方便简单.采用B/S架构,基于互联网、云服务,通过PC设备浏览器远程监测现场,可以替代传统的岗位式的监测方式,提高了作业效率.
[1] 陈刚良,郝平.制造执行系统(MES)在染色车间的应用[J].浙江工业大学学报,2007,35(2):132-135.
[2] 李金华.德国“工业4.0”与“中国制造2025”的比较及启示[J].中国地质大学学报(社会科学版),2015,15(5):71-79.
[3] 肖力墉,苏宏业,苗宇,等.制造执行系统功能体系结构[J].化工学报,2010(2):359-364.
[4] 程志伦,范玉青.钢铁企业基于组件的柔性制造执行系统设计[J].计算机集成制造系统,2007,13(3):490-496.
[5] 黄肖玲,柴天佑.复杂生产过程计划调度级联模型在选矿MES
中的应用研究[J].自动化学报,2011,37(9):1130-1139.
[6] QIU R G. Towards ontology-driven knowledge synthesis for heterogeneous information systems[J]. Journal of intelligent manufacturing,2006,17(1):99-109.
[7] NAGORNY K, CLOLMBO A W, SCHMIDTMANN U. A service- and multi-agent-oriented manufacturing automation architecture: an IEC 62264 level 2 compliant implementation[J]. Computers in industry,2012,63(8):813-823.
[8] 李文辉.制造执行系统(MES)的应用与发展[J].兰州理工大学学报,2006,32(2):50-54.
[9] 臧传真,范玉顺.基于智能物件的制造企业信息系统研究[J].计算机集成制造系统,2007,13(1):44-48.
[10] 王志新,金寿松.制造执行系统MES及应用[M].北京:中国电力出版社,2006.
[11] 陆慧明,朱耀春.控制装置标准化通信[M].北京:机械工业出版社,2010.
[12] IWANITZ F, LANGE J. OPC fundamentals, implementation and application[M]. Heidelberg: Hüthig,2010.
[13] 王垫,于悦,张玉华.面向物联网应用平台的Socket设计与优化[J].吉林大学学报(工学版),2012,42(1):290-294.
[14] 毛明杰,王万良,刘锋光,等.基于WEB的伺服平台远程监控系统设计与实现[J].浙江工业大学学报,2006,34(1):105-109.
[15] WANG V, SALIM F, MOSKOVITS P. The definitive guide to HTML5 WebSocket[M]. Berkeley, California, USA: Apress,2013.
[16] COWARD D. Java webSocket programming[M]. New York: McGraw-Hill Education,2013.
(责任编辑:陈石平)
Design and development of MES real-time data monitoring system
ZHANG Guijun, CHEN Kai, XU Jianming, YU Xinyi
(College of Information Engineering, Zhejiang University of Technology, Hangzhou 310023, China)
To address the information islands problem in discrete manufacturing industry, which are caused by the independence of system to each other and lack of data sharing, MES real-time data monitoring system is designed and developed based on manufacturing execution system (MES) for manufacturing enterprise workshop. OPC Server, Socket and WebSocket are used for the real-time data acquisition of the state of field equipment, the exchange of network data, and real-time delivery of data between servers and browsers respectively. The reliable communication protocols are designed for transforming of network data, and the communication issues between the upper planning system and the lower control system can be effectively solved. The state of field equipment can be remotely monitored by users through the PC browser. Stable operation, low development costs, and easy maintenance are the advantages of the developed MES real-time data monitoring system which can replace the traditional monitoring method. It is of high value for research and application.
MES system; monitoring system; real-time data monitoring
2016-10-20
国家自然科学基金资助项目(61075062,61573317);浙江省大学生科技创新活动计划(新苗人才计划)(2016R403083)
张贵军(1974—),男,山西阳泉人,教授,博士生导师,研究方向为智能信息处理、优化理论与应用以及智能制造等,E-mail:zgj@zjut.edu.cn.
TP39
A
1006-4303(2017)04-0401-08