安 涛,胡 毅,张腾飞,王 帅,郭 安
(1.中国科学院大学,北京 100049;2.中国科学院 沈阳计算技术研究所高档数控国家工程研究中心,沈阳 110168;3.沈阳高精数控技术有限公司,沈阳 110168)
DNC车间管理系统的消息实时推送功能的设计与实现*
安涛1,2,胡毅2,3,张腾飞1,2,王帅1,2,郭安1,2
(1.中国科学院大学,北京100049;2.中国科学院 沈阳计算技术研究所高档数控国家工程研究中心,沈阳110168;3.沈阳高精数控技术有限公司,沈阳110168)
摘要:在工业控制过程中,各种数据消息的获取的实时性要求越来越高,推送功能在手机应用开发中显得越来越重要。文章在分析了传统推送功能不足的前提下,在实现了DNC车间管理系统的基础上,设计并实现了车床状态消息实时推送的功能,有效的解决了车间管理系统消息实时更新带来的客户端的负荷问题。用户可以自己选择要接收的消息,避免了传统消息推送中过多的无效消息,有效的提高了对车间进行监控的实时性和可靠性,增加用户的体验感,提供更加人性化的推送。
关键词:车间管理;消息推送;用户选择
0引言
随着科学技术的不断发展,给制造产业带来了前所未有的发展机遇,同时也带来了严峻的挑战[1]。传统的车间管理模式已经不适应现代制造技术的快速发展,因此将传统的车间管理与现代网络技术和管理技术等结合起来,从而提高市场竞争力就显得很有必要。
从服务器上获取消息[2]一般有两种方式,第一种是Pull方式,客户端主动连接服务器,查看是否有更新的消息出现;第二种是Push方式,当服务器端有消息更新时,主动把消息Push到客户端。在工业控制过程中各种数据消息的获取的实时性要求很高,以便对数据进行有效管理以及及时应对突发情况。Pull方式如果想要获取及时的消息,就需要保持手机移动端和服务器的长链接,这种方式极为消耗手机端的网络流量,浪费服务器资源;有时导致的拥塞可能导致整个系统获取失败,信息反馈不及时等情况。而Push方式可以很好的避免此类问题。Push和Pull两种方式都能实现客户端获取服务器的及时消息,但就效率来说,Push明显好于Pull[3]。
本文将以分布式数控系统[4](Distributed Numerical Control) 为平台,详细介绍一种基于工业车间的消息推送机制,并通过相应的实验及其数据进行证明。
1问题的提出
随着移动网络的应用开发掀起的热潮,推送功能在手机应用开发中显得越来越重要。推送技术(PUSH)[5]是指根据一定的发送规则,依据相关的标准和协议通过互联网向用户发送信息的技术。由于推送的时间在一定程度上不完全受用户的控制,可以减少信息过载问题,而其主动将信息推送给用户也可以有效减少信息过载的问题[6]。如今的推送服务仍有不足,一方面推送的消息多为广告形式,这些消息对于多数用户来说是无效的,降低了用户的体验,是一种不够人性化的推送,这对于车间管理这种高精确的服务来说无疑是难以接受的;另一方面,很多大公司采用的推送方式是电信提供的接口绑定或者自己开发的一套推送机制,这对一些小公司或者个人来说就难以实现。本文就是在此背景下,结合现实的车间状况,在实现了基于网络的DNC车间管理系统的基础上,设计并实现了工业控制过程中完全开源的消息实时推送的功能。
2DNC车间管理系统概述
基于网络的DNC车间管理系统使得车间管理者可以监控整个车间机床运行的实时状态[7]。数据采集服务器把实时采集到的各种车床状态存储到数据库服务器,由于要对多台机床进行数据采集,就要满足整个模块的高并发,DNC车间管理系统采用多线程池技术,这将合理控制线程数目,这样就减少线程切换时间,充分利用处理器,提高了系统的并发性[8-10]。车间管理者通过认证以后登陆到手机移动端的管理系统,可以在任何地方、任何时间掌握整个车间的运行状态.对于实时的运行状态的掌握,必须通过长链接或者管理者自行采取Pull方式,这无疑会增加手机移动端的负担。如何获取车间车床的突发状况就会成为一个急需解决的问题,因此实时推送技术就显得很重要。DNC系统的结构图如图1所示,服务器通过直连或者代理服务器与客户端进行交互;同时通过以太网与车间的设备进行数据交换,如实时数据上传等;移动设备的访问主要通过无线网络的形式进行。
图1 系统结构图
3关键技术的分析和实现
3.1消息的推送过程
由于不同的车间管理者要获取车床实时状态的侧重点不同,服务器在主动推送消息之前,需要接收从车间管理者发送来的状态信息,从而决定监测并推送哪些消息。本文在客户端通过Socket长链接与服务器建立通信[11],车间管理者决定需要推送哪些消息,服务器接收到客户端传输的数据流后发送一条验证消息,通知客户端收到消息,客户端接收到服务器返回的验证消息后断开链接。这种方式基本不会产生任何负担,还可以与服务器进行交互,实现管理员对车床状态监控的的可选择化,让系统管理员更好的参与其中。
在push过程中,服务器主动推送消息到移动端,所以服务器必须要知道把消息推送给谁,也就是哪些移动端可以接收到消息,这就需要服务器和移动终端之间有一个标识。本文借助于第三方开放平台提供的一个独一无二的App Key,这样每个运行此系统的移动终端就有一个独一无二的标识。部署的服务器发送HTTP请求到第三方服务器的8800端口的Web Service,利用App Key把消息发送到第三方平台,第三方平台再利用App Key把消息推送到手机。具体流程如图2所示,服务器接收到车间设备传输的实时数据后,判定是否有无线设备定制,如果有,则将消息首先推送到第三方服务器。推送到第三方服务器的消息通过App Key找到相应设备,并推送给客户端,由客户端进行展示。
图2 推送结构示意图
3.2服务器的实现
本文实现的数据推送功能使用的是PHP语言,web服务器使用的是Apache,数据库服务器采用的是MYSQL,并部署在同一台机器上,之所以采用这种模式,也主要是其轻量级存储的优点。Apache Web服务器、MYSQL数据库管理系统和PHP程序模块是一组常用来搭建服务器的开源软件组合,他们本身都是各自独立的、开源的软件,在项目开发中投资成本低,运行稳定。
服务器端的PHP代码在后台运行,时刻监控数据库数据的变化。当检测到车床信息的状态位发生改变(比如从运行变为故障),通过判断条件从数据库读取数据并打包成JSON格式。PHP服务器通过封装HTTP协议,把App Key作为参数,JSON数据作为消息的主体,通过POST的方式把消息发送出去,主要代码如表1所示。
表1 服务器端主要实现
3.3客户端的处理
客户端是运行在手机移动终端的Android程序,主要负责显示车间车床运行的状态、接收并处理服务器推送过来的消息。在Android的UI线程里不处理耗时的任务,所以数据消息的处理和界面的更新主要是通过多线程机制和Handler消息处理机制来实现。多线程机制主要用来提高系统的性能,满足高并发性,使得处理数据的延迟不影响到用户的体验感。Handler消息处理机制主要用来解决UI的刷新的问题:后台线程把接收到的消息加入到消息队列[12]Message Queue,Looper扮演Message Queue与Handler之间的桥梁角色,即循环器,循环取出消息队列里的消息,并把message发送到主线程。由于所有的界面更新都发生在主线程,所以我们定义一个Handler的子类来接收Looper所送出的消息并更新用户界面,实现车床运行状态的实时更新。整个Handler消息处理机制如图3所示。
图3 Handler处理消息更新UI
App Key的注册是在客户端在配置文件里进行的,当自定义消息以Notification的方式发送到客户端,在加载界面的时候初始化的接收消息的接口就会接收到数据,通过后台线程处理以后再通过Handler机制把更新的状态显示到UI界面方便用户查看具体信息。
4实验结果
本文在车床型号为CAK3275和YM650、数控设备型号为Faunc 0i和蓝天数控系统上进行了测试和验证。DNC车间管理系统和消息推送的部分截图如图4和图5 所示。
从图4左上角我们可以看到服务器端推送的Notification客户端已经接收到,车间管理员设置要监听的消息为车床发生故障(error),即服务器检测到车床状态由正常变为故障时推送此消息。
客户端管理员下拉手机屏幕即可选中此Notification,处理以后显示出此时的故障状态和车床的IP地址,如图5所示。
图4 运行结果
图5 运行结果
在实验中,服务器推送消息时把此时的系统时间写入文本文件,在客户端接收到推送消息的时候再把此刻的系统时间打印出来,最终统计的时间如表2所示。
表2 时间统计
从表2中可以看出,服务器端推送的消息在一秒左右就可以在移动端实时显示出来,这个时间差对于车间管理员发现车床故障时可以接收的,因此此方案是可行的、可靠的。
5结论与展望
本文在DNC车间管理系统的基础上,提出并实现了消息推送功能的解决方案,使得管理者能够实时监控车间的突发状况。与传统车间管理的实时更新相比,本文提出的方案不仅解决了客户端请求服务器端数据时必须一直保持通信的负担,还增加了客户可选择化推送信息的功能,使得服务器端不会盲目的推送消息,客户也不会接收到一些无效的消息,使得DNC车间管理体统更加人性化、智能化,有效的提高了车间的生产效率。同时,本文设计和实现的的方案是基于完全开源的,也为小型企业和个人研究提供了一定参考价值。
下一步,主要研究搭建自己的推送平台,实现推送接口,解决开源问题,进一步减小时间差,使得车间管理员更及时的获得消息。
[参考文献]
[1] 王兰美, 袁清琦. 21世纪制造业面临的挑战与对策[J]. 组合机床与自动化加工技术, 1999 (4):7-9.
[2] 李小智. 基于消息中间件的服务器推送技术的应用研究[D]. 长沙:湖南大学, 2010.
[3] 李武银. PUSH技术的发展及应用[J]. 广播电视信息, 2010(6):62-65.
[4] 冯宁. 一种分布式数控系统的调度策略研究[J]. 组合机床与自动化加工技术, 2012(10):87-90.
[5] 冼学辉. 基于Web的实时信息推送技术的研究[D]. 保定:华北电力大学, 2013.
[6] 刘瑜. 信息推送对于城建信息化的促进研究[J]. 中国信息界, 2012(3):42-43.
[7] 杜柳青, 余永维, 袁冬梅. 基于OPC数据的数控机床精度状态实时测评方法[J]. 组合机床与自动化加工技术, 2014 (6):46-50.
[8] [San-ping LIU.Multi-thread data collection technology of detection system [J].Electric Locomotives & Mass Transit Vehicles,2003(2):012.
[9] Song H, Kim B W, Mukherjee B. Multi-thread polling: A dynamic bandwidth distribution scheme in long-reach PON[J]. Selected Areas in Communications, IEEE Journal on, 2009, 27(2): 134-142.
[10] Sundell H, Tsigas P. Fast and lock-free concurrent priority queues for multi-thread systems[C]//Parallel and Distributed Processing Symposium, 2003. Proceedings. International. IEEE, 2003.
[11] 陈艳军, 温占考, 周胜群. 基于Socket长短连接切换的C/S模型设计[J]. 电脑知识与技术, 2014,10(8):1692-1694,1702.
[12] 马璐. 应用消息队列应对大并发访问的解决方案[J]. 电脑知识与技术,2013,9 (2):412-414,417.
(编辑李秀敏)
Design and Implementation of the Message Push Function of Real-time Based on DNC Workshop System
AN Tao1,2,HU Yi2,3,ZHANG Teng-fei1,2,WANG Shuai1,2,GUO An1,2
(1. University of Chinese Academy of Sciences, Beijing 100049,China;2. National Engineering Research Center For High-End CNC, Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168,China)
Abstract:In the process of industrial control ,the acquisition of a variety of real-time messages are increasingly demanding, the push mechanism are more important on mobile application development. As for solving the overload problem of data update at job shop manage systems, we design and implement a data transfer system ,which mainly depend on a message push mechanism, based on the Distributed Numerical Control(DNC) system in the analysis of traditional push mechanism’ insufficient. In our system, users only choose the messages that need to send instead of every information which may contain some useless information, aim to improve the real-time performance and reliability, cater the user’s experience, finally make the message transmission much more humility.
Key words:workshop manager;message push;users select
中图分类号:TH166;TG506
文献标识码:A
作者简介:安涛(1991—),男,安徽定远人,中国科学院大学、中科院沈阳计算技术研究所硕士研究生,研究方向为网络化的数控系统,(E-mail)736307825@qq.com。
*基金项目:“高档数控机床与基础制造装备”国家科技重大专项、基于二次开发平台的专用数控系统开发与应用(2013ZX04007-011)
收稿日期:2015-04-23
文章编号:1001-2265(2016)03-0151-03
DOI:10.13462/j.cnki.mmtamt.2016.03.042