中国科技论文在线
http://www.paper.edu.cn
车间生产过程实时虚拟监控系统的研究与
设计#
5
10
15
20
25
30
35
梁兴明1,董伯麟1,何其昌2,唐火红1**
(1. 合肥工业大学机械与汽车工程学院,合肥 230009;
2. 上海交通大学机械与动力工程学院,上海 200000)
摘要:针对 MES 系统中工厂生产状况实时监控及三维人机交互能力的不足,开发出基于
Unity3D 及 HTML 网页技术融合的车间生产过程虚拟监控系统。主要完成了三部分工作。
第一部分是车间场景可视化。基于 B/S 架构,通过 unity 软件进行可视化厂房,实现虚拟现
实的效果,并制定内部场景切换的逻辑规则,用于数据的展示。第二部分是数据采集部
分。数控设备和服务器之间采用 TCP/IP 协议进行数据交换,对各种数控机床的实时状态进
行采集并存储到 Oracle 数据库中。第三部分是三维控件与网页间的交互工作。经实际验
证,该系统具有实时监测、3D 漫游、故障报警、故障预测等功能,满足了工厂对生厂车间
三维虚拟监控的需求。
关键词:仿真;Unity 软件;人机交互;Oracle 数据库;B/S 架构
中图分类号:TH181 文献标识码:A
Research and design of real-time monitoring system for
Manufacture Process
Liang Xingming1, Dong Bolin1, He Qichang2, TANG Huohong1
(1. School of mechanical and automotive engineering, Hefei University of Technology, Hefei
2. School of mechanical and power engineering, Shanghai Jiao Tong University,Shanghai
230009;
200000)
Abstract: Aiming at the shortage of MES system on the real-time monitoring of status in factory
production and 3D human-computer interaction, we developed the monitoring system of virtual
workshop production process based on the integration of Unity3D and HTML technology.This
system mainly consists of three parts. The first part is the scene display. It’s based on B/S
Structure. With the designing of the corresponding web pages for displaying, and through the
software of Unity, this system has achieved the effect of virtual reality.We also made many rules
in scenes to show data clearly. The second part of this system is data acquisition.The TCP/IP
protocol is used for data exchange between CNC equipment and server, and the real-time status of
all kinds of CNC is collected and stored in the Oracle database.The third part of this system is the
work of web authoring which is based on JAVA. The example shows that the system has the
functions of real-time monitoring, 3D roaming, fault alarm, fault prediction and so on,and it meets
the factory’s requirements to monitor workshop in 3D technology.
Key words: simulation;Unity;human-computer interaction;Oracle;B/S Structure
40
0 引言
车间生产管理是为车间生产系统从事的各类生产动作进行组织、指挥、计划、协调及控
制等相应的管理工作[1]。车间生产监控系统作为车间管理的重要组成部分,对制造企业的运
行至关重要[1,2]。在行业内,为了分析现场生产状况和监视车间设备的状态,大多数企业己
基金项目:中航工业技术创新基金项目(KC371503);智能制造专项项目(发改办高新[2014]2558 号)
作者简介:梁兴明(1989-),男,江苏徐州市人,合肥工业大学硕士生 ,先进制造技术;
通信联系人:董伯麟(1973-),男,安徽安庆人,合肥工业大学副教授,硕士生导师. E-mail:
dongbl2000@163.com
- 1 -
中国科技论文在线
http://www.paper.edu.cn
经开始使用生产线和机床设备的实时监控系统[3],并基于虚拟现实技术,对实时数据驱动下
45
的复杂机构运动状态、设备运行状态等的可视化方法进行研究[4]。虚拟车间技术是虚拟制造
技术的核心技术之一,它是虚拟制造技术在生产制造领域的重要应用[5]。
在计算机的帮助下,原材料的编号、生产过程的监控、产品质量的追踪、设备的运行状
况、车间的生产效率等以往复杂而繁琐的数据都可以由生产过程监控系统来收集、处理、显
示。在提高了设备利用率的同时,也为管理者如何调整生产提供了参考依据。
50
虚拟仿真技术在各领域的广泛应用使得虚拟仿真过程中海量数据的实时性显示成为了
当前研究的热点[6]。然而指导车间生产的工艺文件依然停留在二维工艺阶段,导致了产品从
设计到生产的脱节,需要重复录入数据,二维工艺文件表现力弱等诸多不便[7]。因此,在
MES 中引入三维显示界面也成了大势所趋。
针对这个问题,车间生产过程虚拟监控系统应运而生。该系统主要将网页技术、unity
55
三维插件、Oracle 数据库等内容整合在一起形成一个系统,并将以数控机床为代表的设备和
数据采集软件进行连接,读取参数、实时显示。该系统既可独立运行,也可嵌入到 MES 中
去,方便高效。
该系统的使用,提高了设备的利用率,强化了工人的责任意识,可视化了加工流程,对
生产活动起到了监管促进的作用。
60
1 系统设计流程
该系统框架分为三个层级:数据层、显示层和系统层。如图 1 所示。根据不同的层
级,制定分配不同的任务。
图 1 监控系统层级图
65
Fig. 1 Diagram of levels in monitoring system
首先完成显示层的任务。使用建模软件完成模型创建,并导入到 unity 引擎中。通过 Unity
引擎中的粒子特效、三维漫游、碰撞检测、场景切换等功能模块实现厂房的虚拟呈现和人机
交互功能。然后编写软件与网页之间的通信模块,完成网页与三维插件相互传递参数的功能。
其次完成数据处理层的任务。进行传感器参数的采集、传输和存储工作。通过与 oracle
70
数据库的配合,将实时数据保存下来,用于网页和三维插件的数据呈现。
最后,将监控系统层进行整合。通过网页连接数据库的方式进行数据的读取和存储,并
在网页和三维插件中进行数据展示。具体流程如图 2 所示。
- 2 -
三维插件网页控件显示层数据库数据处理层数控设备数据采集软件监控系统第一层:第二层:第三层:
中国科技论文在线
http://www.paper.edu.cn
75
Fig. 2 Flow of production process monitoring system
图 2 生产过程监控系统的设计流程
2 三维插件的制作与使用
2.1 开发准备和要求
2.1.1 准备
随着计算机虚拟技术的发展,越来越多的用户要求能在电脑上以可视化的方式实时显示
80
生产线的运作情况。Unity3d 作为一种三维虚拟现实平台,可以充分、实时地处理大量的三
维模型[8]。因此我们选择 unity 引擎作为可视化三维场景的工具。并选择 3DS Max 作为模型
建造和效果处理的软件。
2.1.2 功能要求
在操作界面中,用户可以通过点击三维场景中的虚拟物体来查看相关设备的生产状况、
85
产品质量、故障预警等信息,也可以通过点击网页上的相关设备按钮,在三维场景中迅速对
设备进行定位,并显示设备信息。不仅如此,用户还可以根据需求自定义数据显示的内容,
真正实现人性化的要求。部分功能如图 3 所示。
90
图 3 部分数据选择和显示界面
Fig. 3 Partial data and display interface
- 3 -
中国科技论文在线
http://www.paper.edu.cn
2.2 关键步骤
2.2.1 场景建模
利用 3DS Max 软件,根据现实中厂房、设备的大小、形状、颜色进行三维建模。Unity
软件支持多种外部导入的模型格式,但并不是对模型格式的所有参数都支持,因此选择一个
95
合适的模型格式十分重要。
三维模型主要由网络、材质、动画、骨骼等部分组成,经过实际测试,.FBX 格式的所
有属性都得到了 Unity 的支持,并且可以通过 3DS Max 软件生成导出,因此制作的三维场
景文件都选择这种模型格式。
在三维场景中,由于有些模型的动作要独立显示出来、完成人机交互的部分任务,因此
100
在制作模型的过程中要注意各个部件之间的附属关系,合理安排好模型的关节点。
将导出的三维模型放置到 unity 的 Asset 文件夹下,成为 unity 的场景文件。
2.2.2 人机交互
三维场景搭建完成后,场景漫游、故障报警、信息展示等内容就成了关键。Unity3D 支
持各种脚本语言包括 JavaScript、C#、Python,兼容各种操作系统,真正的实现了跨平台[8]。
在此我们选择 Visual Studio2010 和 C#作为系统的开发平台和脚本语言。
105
首先需要实现对摄像机(Camera)的控制,由于项目要求在触摸屏幕上进行操作,因
此要摒弃鼠标按键,而是通过对触摸屏幕的点击来实现相应要求。在开发过程中,将每个设
备单独设置成可点击的实体,点击后会显示相关的设备状态和参数,并实现视角拉近等功能。
2.2.3 用户界面
110
在三维插件中,为了方便操作,需要为使用者提供独立的 UI 界面,包含如视角、移动、
缩放、旋转、信息展示、信息筛选、2D/3D 场景切换、报警信息处理等相应功能。用户通过
点击相应图标调取相应菜单,从而对信息加以筛选和显示。
3 三维场景与网页的信息交互
3.1 数据交互方法
115
3.1.1 函数调用法
Unity3D 插件通过执行 Application.ExternalCall()来调用任何在 HTML 网页里定义的
JavaScript 函数[9,10]。这是实现插件与网页交互的比较简单和可靠的方法。
在实际运用中,可以在 HTML 网页中定义数据更新的方法,通过在 unity 中不断调用这
个方法来获取到网页上的参数。
120
在网页函数中可以通过使用 u.getUnity().SendMessage()方法给三维插件传输数据。这种
方法简单可靠,只需要插件和网页对传参函数进行约定,就能实现预设效果。系统界面如图
4 所示。
- 4 -
中国科技论文在线
http://www.paper.edu.cn
图 4 生产监控系统界面
125
Fig.4 Interface of production process monitoring system
3.1.2 GET 和 POST 通信法
三维插件通过 GET 和 POST 方法与网页进行通信,提高了通信的可靠性、便捷性。插件
可以通过访问网页随时的获取最新数据,而不必被动的由网页推送数据,降低了代码的逻辑
复杂程度,提高了使用的灵活性。
130
GET 方法是通过向服务器发送请求,访问指定网址获得相应数据。服务器将设备信息数
据嵌入到网页中,插件通过对 WWW 类的构造函数的使用来进行数据读取。数据读取结束后再
进行相对应的分解、显示。部分代码如图 5 所示。
图 5 GET 方法相应代码
135
Fig.4 Corresponding code about GET method
POST 方式是 unity 通过 WWW 类向 Web 服务器传送一个数据表单,以此来实现数据传递。
将想要传递设备的名称和 ID 代码以键值对的形式记录并存储到表单里,通过 WWW 类将表单
传到 web 端。Web 端得到数据后进行分拆、解析,并根据得到的内容进行相应的动作。部分
代码如图 6 所示。
- 5 -
中国科技论文在线
http://www.paper.edu.cn
140
145
150
图 6 POST 方法部分代码
Fig.4 Corresponding code about POST method
3.2 信息交互方法的定义
在三维插件中点击相应物体后,需要将物体的名称或设备号信息传递给网页中定义的接
收函数,而在网页中点击相应设备按钮后,设备信息和参数则会在三维插件中进行展示,从
而实现二者之间的通信。
为了增加稳定性和易解读性,网页在向三维插件中传递数据时采用了 JSON 字符串的格
式。插件在得到 JSON 字符串后,将其中的内容分拆、解析,用于不同设备的数据显示。部
分通信函数的定义如表 1 所示。
表 1 三维插件与网页部分通信函数
Tab. 1 Partial methods between ActiveX widget and Web for communication
通信方
传递选中物体
接收报警信息(JSON)
清除报警信息
设备实时信息(JSON)
法
名称(string)
(JSON)
SelectEquipment() ReceiveEmergenyInfo() ClearEmergencyInfo()
ShowEquipmentRealData()
ClickEquipment()
/
/
/
三维
插件
网页
4 传感器数据的传输与存储
4.1 数据处理实现方式
155
在项目中需要对从多台大型数控机床上采集到的数据进行采集、传输和存储。综合多方
面考虑,决定在 TCP/IP 协议的基础上,应用 Socket 编程的方法实现网络接口的数据通讯[11]。
在 TCP/IP 协议框架下,传感器将采集到的数据传输到为项目独立编写的数据传输软件
里,然后由该软件将内容分拆、解析,并存储到 Oracle 数据库中。
160
Oracle 数据库是当前应用最广泛的大型数据库之一[12],功能强大,可以满足企业数据
处理的需要。数据传输软件基于 C#语言编写,利用 socket 实现与传感器数据采集软件的长
连。
4.2 数据传输平台的功能
为了能将每个传感器采集到的数据都及时存储到数据库中供 MES 系统调取使用,需要编
写一个数据处理平台,通过不同接口接收到多台机床发送过来的数据,然后依次进行数据处
理。该软件解决了以下问题:
165
(1)监听不同机床的数据连接请求,对每一个接入的机床程序分配一个线程,不同连
接程序并排运行。
- 6 -
中国科技论文在线
http://www.paper.edu.cn
(2)根据心跳包机制[13,14]对不同机床的客户端连接状态进行定时检测,如果客户端关
闭了,则释放端口、结束对应线程,节约计算机资源,并将该客户端的异常状态反馈给 MES
系统,提醒工作人员检查相应设施。
(3)与设备提供商制定好数据传输协议,数据传输到平台后自动分拆解析并存储到数
据库的相应表单中。
4.3 数据传输软件的崩溃重启
由于在数据传输过程中存在极短时间内大量数据涌入的情况,因此不排除数据处理平台
崩溃的可能。为了能够在软件崩溃后重新启动,需要使用一个监视进程软件并将其做成系统
服务(Service),用来监测数据处理平台的运行状态。由于系统服务和平台软件不在同一
个会话控制(Session)中,因此要通过 Socket 来实现跨会话的进程间通讯。监测进程软件
定时向平台发送消息,如果连续三次未响应,则数据处理平台重启。
图 7 监控软件
Fig.7 Monitoring software
170
175
180
4.4 数据库的存储
以 Oracle 为后台数据库,充分合理利用存储过程,可以提高系统的执行效率,减少网
络通信流量,增加系统安全性[15]。
185
根据设备 ID 及存储数据的不同,建立相应的存储表单。在数据处理平台获取到不同设
备不同阶段的数据后,进行分拆解析并存储到对用的表中去。在编写代码时要添加与 Oracle
对应的命名空间的引用,并安装相应的数据库客户端。针对不同的设备创建不同的表单。
图 8 部分表结构设计图
Fig.7 Design of partial tables
190
5 结论
介绍了一种车间生产监控系统的设计方案,并着重介绍了三维交互和数据处理模块的实
现方式,同时剖析了三维插件的制作过程以及数据处理平台的运行机制。监控系统作为 MES
系统的一部分,可以为使用者更直观的了解设备运行状况和加工进行程度提供方便。
195
[参考文献] (References)
[1] 章佳. 面向 MES 的车间生产过程监控系统研究[D].电子科技大学,2012.
[2] 隋天忠.基于企业信息化平台的车间生产管理系统.计算机辅助设计及制造,2011(11),1-1
- 7 -
中国科技论文在线
http://www.paper.edu.cn
[3] 徐鹏程.实施数字化制造实现现代化跨越川.航空制造技术,2008,4(1):60-64.
[4] 柯榕. 车间制造状态三维虚拟监控与预警方法研究[D].合肥工业大学,2015.
[5] 徐富亮. 虚拟车间的研究、设计与实现[D].武汉理工大学,2009.
[6] 张利利, 李仁义等.Unity3D 与数据库通信方法的研究[J].计算机技术与发展,2014,24(3).
[7] 李 冬 , 彭 慧 , 姜 丽 苹 . 基 于 MES 的 车 间 三 维 轻 量 可 视 化 工 艺 指 导 系 统 [J]. 制 造 业 自 动
化,2013,v.3523:125-127+131.
[8] 干建松. 基于 Unity3d 的室内漫游的关键技术研究[J]. 盐城工学院学报(自然科学版),2011,04:56-59.
[9] 朱惠娟. 基于 Unity3D 的虚拟漫游系统[J]. 计算机系统应用,2012,10:36-39+65.
[10] 郭海新. Unity3D 与 HTML 交互机理的研究[J]. 煤炭技术,2011,09:228-229.
[11] 熊世桓. 用 Socket 编程实现 TCP/IP 网络接口[J]. 贵州教育学院学报(自然科学),2003,04:86-90.
[12] 郭珉. ORACLE 数据库 SQL 优化原则[J]. 计算机系统应用,2010,04:170-173+165.
[13] 周凤石 . 基于 Windows Socket 的网络通信中的心跳机制原理及其实现 [J]. 沙洲 职业工 学院 学
报,2009,03:17-21.
[14] 周奇才,张慧群,熊肖磊,宋世明,韩梦丹. 基于 Socket 网络通信中 C#心跳包实现方法的研究[J]. 机电一体
化,2014,10:11-14+19.
[15] 顾云锋,杨素霞,王智钢,翟萍. Oracle 数据库中存储过程开发研究[J]. 计算机与现代化,2011,10:138-142.
200
205
210
215
- 8 -