时间:2024-07-28
崔 晨
(上海自动化仪表有限公司,上海 200072)
压力变送器制造车间具有品种多、小批量生产等特点。车间排好生产计划后,往往根据经验制定物料需求计划和领料单,这样就可能导致物料不够或浪费。在制品跟踪过程中,采用纸质卡片形式,无法做到流程实时共享;插单现象也容易造成生产管理混乱等。传统方法缺乏生产执行数据的广度和深度[1]。
制造执行系统(manufacturing execution system,MES)的突出特点是优化生产过程[2],协调生产任务。将MES引入企业压力变送器的制造车间,可实现制造自动化,从而提高生产力和竞争力[3-4]。
首先进行半杯体加工、零件清洗、玻璃烧结、球面磨削、再清洗、真空镀膜、膜片处理、膜片张紧等,这些工序统称为电容传感组件制作;然后对膜盒进行焊接、在膜盒中心位置进行灌油;最后进行膜盒封装,并贴上二维码作为标志。压力变送器的生产工艺流程如图1所示。
图1 生产工艺流程图
电路板用于三防处理和温度测试等。在机械构件加工并且检测合格前提下,进行整机装配。整机根据量程范围进行温度补偿、整机调试,在所有工序完成后包装出厂。生产过程中,在每一道工序完成后都会进行半成品检验,对不合格品进行统一报废处置。
基于压力变送器车间生产特点设计的MES主要包括基础信息管理、生产过程管理、生产调度管理、查询和报表管理、可扩展接口等五部分。
基础信息管理主要用于对登录系统的用户进行管理、跟踪车间设备信息、对车间内物料移动进行计划监视、记录每天系统数据更新情况等。
MES架构如图2所示。
图2 MES架构图
生产过程管理中,电容膜盒是压力变送器重要的检测元件,相应关键工艺参数都要分步记录在MES中。温度补偿是保证变送器数据准确测量的前提。为准确得到各个点的补偿值,需要进行装配、校验、包装、统计、质量检测等工作,实时记录每一批次产品的最终采集信息,严把产品质量关。
按照生产计划或订单需求,生产调度管理用于对生产运营的整个过程进行协调和管理,并对每一环节进行更优化的排产,控制生产过程中的物料流和库存。有偏差时,系统及时响应和报警。
当压力变送器出现返修时,系统能在尽量不影响当前生产任务的同时,在对应生产环节进行插入式排产,并对返修过程进行记录。膜盒的制作周期较长,可以作为半成品进行出入库管理。通过看板实时显示车间的生产过程,从而提高加工效率。
查询和报表管理便于管理员进行记录追踪和存档工作。生产过程中的任一环节可作任意级对应的关联查询,并且在一些必要的环节设定报表查询功能,以便产品跟踪,实现半成品、成品从原材料、生产加工、装箱全流程的质量信息管控。
MES生产规划运行流程如图3所示。通过企业资源计划(enterprise resource planning,ERP)或管理员调度产生订单和料号,保证订单数据的准确性,同时防止产生重复的号码。采用统一的流程管理,防止生产过程顺序错误。每个制作环节都有相应的半成品系列号条码,方便进行相关联的数据追踪,防止因产品不合格造成后续成本的浪费。
图3 MES生产规划运行流程图
系统流程精确到每个环节的作业过程。系统流程如图4所示。
图4 系统流程图
通过统一的生产工序管理,在数据采集端,利用无线射频识别(radio frequency identification,RFID)和条形码技术选择生产任务[5],降低输入错误率。每个产品零件上都有唯一条码,以便系统作关联记录和统计。
MES能对车间在制品、库存等全程进行动态管理和监控;能将正在加工的产品名称、工序号、批次号、编号等信息直接显示于工位看板。这样大大减少了工人的工作量。工人完成自己相应工序后,相关数据随即被输入数据库中并加以保存。当车间现场发生意外情况时,相关部门迅速得到信息,及时作出调整,排除事故,使后续生产顺利进行。
MES采用客户机/服务器(client/server,C/S)模式。C/S模式具有界面清晰、数据实时处理能力强、传输速度稳定、安全性好等特点,能满足车间各制造环节频繁地与系统相关功能模块通信的要求。系统分为客户端、服务器、数据库三层。数据库不再与客户端直接相连,而是通过若干业务逻辑构建共享数据库,从而减少双方的连接次数,提高数据库服务器的运行效率和安全性能,也方便系统的维护。
服务器采用Servlet技术开发[6-7]。数据库管理系统采用MySQL软件定义、存储数据。
客户端使用微软推出的用户界面框架(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
服务器主要用于处理客户端请求。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是否为新创建。
服务器根据客户端的请求类型,对系统中的应用逻辑进行判断和处理,并将处理结果返回给客户端。
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对象,释放所有资源。
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.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!