当前位置:首页 期刊杂志

压力变送器制造车间MES的设计与实现

时间:2024-07-28

崔 晨

(上海自动化仪表有限公司,上海 200072)

0 引言

压力变送器制造车间具有品种多、小批量生产等特点。车间排好生产计划后,往往根据经验制定物料需求计划和领料单,这样就可能导致物料不够或浪费。在制品跟踪过程中,采用纸质卡片形式,无法做到流程实时共享;插单现象也容易造成生产管理混乱等。传统方法缺乏生产执行数据的广度和深度[1]。

制造执行系统(manufacturing execution system,MES)的突出特点是优化生产过程[2],协调生产任务。将MES引入企业压力变送器的制造车间,可实现制造自动化,从而提高生产力和竞争力[3-4]。

1 压力变送器车间工艺流程

首先进行半杯体加工、零件清洗、玻璃烧结、球面磨削、再清洗、真空镀膜、膜片处理、膜片张紧等,这些工序统称为电容传感组件制作;然后对膜盒进行焊接、在膜盒中心位置进行灌油;最后进行膜盒封装,并贴上二维码作为标志。压力变送器的生产工艺流程如图1所示。

图1 生产工艺流程图

电路板用于三防处理和温度测试等。在机械构件加工并且检测合格前提下,进行整机装配。整机根据量程范围进行温度补偿、整机调试,在所有工序完成后包装出厂。生产过程中,在每一道工序完成后都会进行半成品检验,对不合格品进行统一报废处置。

2 MES功能模块设计

2.1 系统模块架构

基于压力变送器车间生产特点设计的MES主要包括基础信息管理、生产过程管理、生产调度管理、查询和报表管理、可扩展接口等五部分。

基础信息管理主要用于对登录系统的用户进行管理、跟踪车间设备信息、对车间内物料移动进行计划监视、记录每天系统数据更新情况等。

MES架构如图2所示。

图2 MES架构图

生产过程管理中,电容膜盒是压力变送器重要的检测元件,相应关键工艺参数都要分步记录在MES中。温度补偿是保证变送器数据准确测量的前提。为准确得到各个点的补偿值,需要进行装配、校验、包装、统计、质量检测等工作,实时记录每一批次产品的最终采集信息,严把产品质量关。

按照生产计划或订单需求,生产调度管理用于对生产运营的整个过程进行协调和管理,并对每一环节进行更优化的排产,控制生产过程中的物料流和库存。有偏差时,系统及时响应和报警。

当压力变送器出现返修时,系统能在尽量不影响当前生产任务的同时,在对应生产环节进行插入式排产,并对返修过程进行记录。膜盒的制作周期较长,可以作为半成品进行出入库管理。通过看板实时显示车间的生产过程,从而提高加工效率。

查询和报表管理便于管理员进行记录追踪和存档工作。生产过程中的任一环节可作任意级对应的关联查询,并且在一些必要的环节设定报表查询功能,以便产品跟踪,实现半成品、成品从原材料、生产加工、装箱全流程的质量信息管控。

2.2 系统模块流程

MES生产规划运行流程如图3所示。通过企业资源计划(enterprise resource planning,ERP)或管理员调度产生订单和料号,保证订单数据的准确性,同时防止产生重复的号码。采用统一的流程管理,防止生产过程顺序错误。每个制作环节都有相应的半成品系列号条码,方便进行相关联的数据追踪,防止因产品不合格造成后续成本的浪费。

图3 MES生产规划运行流程图

系统流程精确到每个环节的作业过程。系统流程如图4所示。

图4 系统流程图

通过统一的生产工序管理,在数据采集端,利用无线射频识别(radio frequency identification,RFID)和条形码技术选择生产任务[5],降低输入错误率。每个产品零件上都有唯一条码,以便系统作关联记录和统计。

MES能对车间在制品、库存等全程进行动态管理和监控;能将正在加工的产品名称、工序号、批次号、编号等信息直接显示于工位看板。这样大大减少了工人的工作量。工人完成自己相应工序后,相关数据随即被输入数据库中并加以保存。当车间现场发生意外情况时,相关部门迅速得到信息,及时作出调整,排除事故,使后续生产顺利进行。

3 MES实现方法

3.1 整体思路

MES采用客户机/服务器(client/server,C/S)模式。C/S模式具有界面清晰、数据实时处理能力强、传输速度稳定、安全性好等特点,能满足车间各制造环节频繁地与系统相关功能模块通信的要求。系统分为客户端、服务器、数据库三层。数据库不再与客户端直接相连,而是通过若干业务逻辑构建共享数据库,从而减少双方的连接次数,提高数据库服务器的运行效率和安全性能,也方便系统的维护。

服务器采用Servlet技术开发[6-7]。数据库管理系统采用MySQL软件定义、存储数据。

3.2 客户端

客户端使用微软推出的用户界面框架(windows presentation foundation,WPF)。它以DirectX为核心绘图函数,视觉效果更佳。其外观使用可扩展应用程序标记语言(XAML)设计,操作行为则使用C#语言实现,界面清晰美观[8]。

根据系统模块架构和车间工区划分情况,将客户端界面主菜单分为半杯体制作、膜盒制作、传感头装配、温度补偿、总装、质量检测、生产调度管理、查询和报表管理、基本信息管理。菜单需要根据工区进行权限设置,不同工区的工人只能对自己的作业页面进行操作;管理页面只对参与相关管理工作的人员开放权限。客户端既支持工人扫描自身工号二维码登录,又支持扫描工单自动弹出相关作业。

客户端使用HTTP协议发送Request请求给服务器,待服务器处理完成准备进行Response响应时,会将响应封装成Json格式回传给客户端。客户端收到后对Json包进行解析,并进行相应的用户界面处理。客户端采用POST方法推送数据至服务器。

服务器利用StreamReader类获取GetRespons-eStream的内容,并以StreamReader类的Read方法依次读取每一行的内容直至行尾,实现数据格式转换。核心代码大致如下。

Stream respStream = response.GetResponseStream();

//响应信息为Stream

StreamReaderrespStreamReader = new StreamReader(respStream,Encoding.UTF8);

//UTF8解析

byteRead = respStreamReader.Read(cbuffer,0,256);

//解析放入byteRead

respStream.Close();

客户端会事先和服务器定义每组Json包的数据类型和结构形式,然后通过JsonConvert.DeserializeObject(strBuff)反序列化,将收到的Json包进行数据解析。解析后的相应字段可显示在客户端。

3.3 服务器

服务器主要用于处理客户端请求。Servlet工作原理如图5所示。当服务器响应后,把请求转交给Servlet引擎进行处理。如果Servlet中含有访问数据库的操作,则还要通过Java数据库连接(Java database connectivity,JDBC)驱动对数据库进行操作访问,最后Servlet将动态生成的信息发送至客户端[9]。

图5 Servlet工作原理图

在一个Servlet周期,要调用init()方法和destroy()方法。init()方法在javax.Servlet接口中定义,完成初始化工作。初始化后Servlet接受客户端请求。当处理请求完成时,destroy()方法被调用,释放init()方法中申请的资源。而Servlet处理请求的流程大致为:Servlet根据请求创建对象HttpServletRequest和HttpServletResponse,然后调用doPost()方法响应客户端请求。

HttpServletRequest接口主要包含getCookie()方法和getSession()方法,分别用于存放客户端的Cookie数组和获取当前HTTP会话对象。HttpServletResponse接口是对客户端的HTTP响应,其中包含的addCookie()方法和setStatus()方法,分别用于向响应结果中加入Cookie和将响应状态码设定为指定值。此外,Servlet分配1个Session用于存放客户端的状态信息,getId()作为Cookie保存在客户端中,用于让Servlet读取并找到相应的状态信息。invalidate()可以定期释放Session占用的资源;setAttribute(name,value)和get Attribute(name)用于读/写Session中的属性值;isNew()用来判断Session是否为新创建。

服务器根据客户端的请求类型,对系统中的应用逻辑进行判断和处理,并将处理结果返回给客户端。

3.4 数据库

MySQL数据库可以运行在不同的操作系统,实现多用户、多线程、多语言的程序接口[10]。根据压力变送器的工艺流程,数据库主要表单名称及内容如表1所示。

表1 数据库主要表单名称及内容

表1中:质量检测关联了五大工艺中所有的检测数据;账号管理则覆盖了整个MES系统。

五大工艺流程中,各环节的批号和编号具有相关性。膜盒制作由两个批次相同的半杯体组成;变送器在完成膜盒、电路板等元件组装后,会根据出厂编号进行温度补偿和总装。

MySQL提供了一套JDBC。它由一些类和接口组成,用于实现通信,并访问、操作数据库,使得开发和操作数据库可以直接调用,无需考虑资源内部的问题。操作数据库的步骤大致如下。

①加载MySQL的驱动。

String driver = "com.mysql.jdbc.Driver";

②定义要连接数据库的url地址。

String url = "jdbc:mysql://localhost:3306/mes_db";

③加载数据库驱动。

Class.forName(driver);

④调用DriverManager的getConnection()方法,获得对象。

conn =(Connection) DriverManager.getConnection(url,用户名,密码);

⑤连接完成后,针对数据库操作中不带参数的SQL语句,使用Connection接口的createStatement()方法传递。

Statement stmt = conn.createStatement();

而对数据库中的表进行插入、更新、查询、删除等带有参数的操作,使用Connection接口的prepareStatement()方法传递。

PreparedStatementpstmt =(PreparedStatement) conn.prepareStatement(“insert、update、select、delete的SQL语句”);

pstmt.setString(1,user.getName());

//对数据库进行操作

inti = pstmt.executeUpdate();

//执行insert/update/delete等语句时使用

inti = pstmt.executeQuery();

//执行select/update等语句时使用

⑥操作完成后关闭JDBC对象,释放所有资源。

4 结束语

MES实现了压力变送器制造车间的信息共享,将制造计划与实际生产相结合,提高了生产设备的利用率和企业的管理效率,实现了车间管理流程的信息化。系统既具有简单实用、可配置性强、界面简洁等特点,还具有一定的扩展性。该系统为企业实现信息化制造、信息化管理和提高自身竞争力提供了一定的参考。

[1] 丛力群,毕英杰.打造数字化协同制造企业——MES未来发展的新方向[J].自动化仪表,2010,31(10):1-4.

[2] 黄河清,俞金寿.面向流程工业的MES及其关键技术[J].自动化仪表,2004,25(1):10-15.

[3] PAN F C,SHI H B,DUAN B.Manufacturing execution system present situation and development trend analysis[C]//2015 IEEE International Conference on Information and Automation,2015:535-540.

[4] LEE S W,NAM S J,LEE J K.Real-time data acquisition system and HMI for MES[J].Journal of Mechanical Science and Technology,2012,26(8):2381-2388.

[5] 张明虎,张暐,殷欣,等.RFID手持设备追溯管理系统设计与实现[J].自动化仪表,2017,38(1):57-60.

[6] 林立.微软解决方案架构与MES项目实施[J].自动化仪表,2008,29(2):134-137.

[7] MACHIDON O,SANDU F,CHITIC M,et al.Design and deployment of reconfigurable hardware using web services[C]//Networking in Education and Research Joint Event RENAM 8th Conference,2014:1-6.

[8] WILLIAMS M.Visual C#.NET技术内幕[M].北京:清华大学出版社,2007.

[9] 刘晓峥.浅析基于JSP技术的JavaBean和Servlet[J].科技视界,2015(34):241-241.

[10]胡敏.Web系统下提高MySQL数据库安全性的研究与实现[D].北京:北京邮电大学,2015.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!