將MES引入壓力變送器生產(chǎn)廠的制造車間,可實(shí)現(xiàn)制造自動化,從而提高生產(chǎn)力和競爭力。昌暉儀表分享根據(jù)壓力生產(chǎn)工藝流程設(shè)計(jì)和實(shí)現(xiàn)MES系統(tǒng)的思路和過程,為企業(yè)實(shí)現(xiàn)信息化管理提供了一定的參考。
壓力變送器制造車間具有品種多、小批量生產(chǎn)等特點(diǎn)。車間排好生產(chǎn)計(jì)劃后,往往根據(jù)經(jīng)驗(yàn)制定物料需求計(jì)劃和領(lǐng)料單,這樣就可能導(dǎo)致物料不夠或浪費(fèi)。在制品跟蹤過程中,采用紙質(zhì)卡片形式,無法做到流程實(shí)時共享;插單現(xiàn)象也容易造成生產(chǎn)管理混亂等。傳統(tǒng)方法缺乏生產(chǎn)執(zhí)行數(shù)據(jù)的廣度和深度。
制造執(zhí)行系統(tǒng)(manufacturing execution system,MES)的突出特點(diǎn)是優(yōu)化生產(chǎn)過程,協(xié)調(diào)生產(chǎn)任務(wù)。將MES引入企業(yè)壓力變送器的制造車間,可實(shí)現(xiàn)制造自動化,從而提高生產(chǎn)力和競爭力。
1、壓力變送器車間工藝流程
首先進(jìn)行半杯體加工、零件清洗、玻璃燒結(jié)、球面磨削、再清洗、真空鍍膜、膜片處理、膜片張緊等,這些工序統(tǒng)稱為電容傳感組件制作;然后對膜盒進(jìn)行焊接、在膜盒中心位置進(jìn)行灌油;最后進(jìn)行膜盒封裝,并貼上二維碼作為標(biāo)志。壓力變送器生產(chǎn)工藝流程如圖1所示。
圖1 壓力變送器生產(chǎn)工藝流程圖
電路板用于三防處理和溫度測試等。在機(jī)械構(gòu)件加工并且檢測合格前提下,進(jìn)行整機(jī)裝配。整機(jī)根據(jù)量程范圍進(jìn)行溫度補(bǔ)償、整機(jī)調(diào)試,在所有工序完成后包裝出廠。生產(chǎn)過程中,在每一道工序完成后都會進(jìn)行半成品檢驗(yàn),對不合格品進(jìn)行統(tǒng)一報(bào)廢處置。
2、MES功能模塊設(shè)計(jì)
①系統(tǒng)模塊架構(gòu)基于壓力變送器車間生產(chǎn)特點(diǎn)設(shè)計(jì)的MES主要包括基礎(chǔ)信息管理、生產(chǎn)過程管理、生產(chǎn)調(diào)度管理、查詢和報(bào)表管理、可擴(kuò)展接口等五部分。
基礎(chǔ)信息管理主要用于對登錄系統(tǒng)的用戶進(jìn)行管理、跟蹤車間設(shè)備信息、對車間內(nèi)物料移動進(jìn)行計(jì)劃監(jiān)視、記錄每天系統(tǒng)數(shù)據(jù)更新情況等。MES架構(gòu)如圖2所示。
圖2 壓力變送器制造車間MES架構(gòu)圖
生產(chǎn)過程管理中,電容膜盒是壓力變送器重要的檢測元件,相應(yīng)關(guān)鍵工藝參數(shù)都要分步記錄在MES中。溫度補(bǔ)償是保證變送器數(shù)據(jù)準(zhǔn)確測量的前提。為準(zhǔn)確得到各個點(diǎn)的補(bǔ)償值,需要進(jìn)行裝配、校驗(yàn)、包裝、統(tǒng)計(jì)、質(zhì)量檢測等工作,實(shí)時記錄每一批次產(chǎn)品的最終采集信息,嚴(yán)把產(chǎn)品質(zhì)量關(guān)。
按照生產(chǎn)計(jì)劃或訂單需求,生產(chǎn)調(diào)度管理用于對生產(chǎn)運(yùn)營的整個過程進(jìn)行協(xié)調(diào)和管理,并對每一環(huán)節(jié)進(jìn)行更優(yōu)化的排產(chǎn),控制生產(chǎn)過程中的物料流和庫存。有偏差時,系統(tǒng)及時響應(yīng)和報(bào)警。
當(dāng)壓力變送器出現(xiàn)返修時,系統(tǒng)能在盡量不影響當(dāng)前生產(chǎn)任務(wù)的同時,在對應(yīng)生產(chǎn)環(huán)節(jié)進(jìn)行插入式排產(chǎn),并對返修過程進(jìn)行記錄。膜盒的制作周期較長,可以作為半成品進(jìn)行出入庫管理。通過看板實(shí)時顯示車間的生產(chǎn)過程,從而提高加工效率。
查詢和報(bào)表管理便于管理員進(jìn)行記錄追蹤和存檔工作。生產(chǎn)過程中的任一環(huán)節(jié)可作任意級對應(yīng)的關(guān)聯(lián)查詢,并且在一些必要的環(huán)節(jié)設(shè)定報(bào)表查詢功能,以便產(chǎn)品跟蹤,實(shí)現(xiàn)半成品、成品從原材料、生產(chǎn)加工、裝箱全流程的質(zhì)量信息管控。
②系統(tǒng)模塊流程
MES生產(chǎn)規(guī)劃運(yùn)行流程如圖3所示。通過企業(yè)資源計(jì)劃(enterprise resource planning,ERP)或管理員調(diào)度產(chǎn)生訂單和料號,保證訂單數(shù)據(jù)的準(zhǔn)確性,同時防止產(chǎn)生重復(fù)的號碼。采用統(tǒng)一的流程管理,防止生產(chǎn)過程順序錯誤。每個制作環(huán)節(jié)都有相應(yīng)的半成品系列號條碼,方便進(jìn)行相關(guān)聯(lián)的數(shù)據(jù)追蹤,防止因產(chǎn)品不合格造成后續(xù)成本的浪費(fèi)。
圖3 壓力變送器制造車間MES生產(chǎn)規(guī)劃運(yùn)行流程圖
圖4 系統(tǒng)流程圖
系統(tǒng)流程精確到每個環(huán)節(jié)的作業(yè)過程。系統(tǒng)流程如圖4所示。
通過統(tǒng)一的生產(chǎn)工序管理,在數(shù)據(jù)采集端,利用無線射頻識別(radio frequency identification,RFID)和條形碼技術(shù)選擇生產(chǎn)任務(wù),降低輸入錯誤率。每個產(chǎn)品零件上都有唯一條碼,以便系統(tǒng)作關(guān)聯(lián)記錄和統(tǒng)計(jì)。
MES能對車間在制品、庫存等全程進(jìn)行動態(tài)管理和監(jiān)控;能將正在加工的產(chǎn)品名稱、工序號、批次號、編號等信息直接顯示于工位看板。這樣大大減少了工人的工作量。工人完成自己相應(yīng)工序后,相關(guān)數(shù)據(jù)隨即被輸入數(shù)據(jù)庫中并加以保存。當(dāng)車間現(xiàn)場發(fā)生意外情況時,相關(guān)部門迅速得到信息,及時作出調(diào)整,排除事故,使后續(xù)生產(chǎn)順利進(jìn)行。
3、MES實(shí)現(xiàn)方法
①整體思路
MES采用客戶機(jī)/服務(wù)器(client/server,C/S)模式。C/S模式具有界面清晰、數(shù)據(jù)實(shí)時處理能力強(qiáng)、傳輸速度穩(wěn)定、安全性好等特點(diǎn),能滿足車間各制造環(huán)節(jié)頻繁地與系統(tǒng)相關(guān)功能模塊通信的要求。系統(tǒng)分為客戶端、服務(wù)器、數(shù)據(jù)庫三層。數(shù)據(jù)庫不再與客戶端直接相連,而是通過若干業(yè)務(wù)邏輯構(gòu)建共享數(shù)據(jù)庫,從而減少雙方的連接次數(shù),提高數(shù)據(jù)庫服務(wù)器的運(yùn)行效率和安全性能,也方便系統(tǒng)的維護(hù)。
服務(wù)器采用Servlet技術(shù)開發(fā)。數(shù)據(jù)庫管理系統(tǒng)采用MySQL軟件定義、存儲數(shù)據(jù)。
②客戶端
客戶端使用微軟推出的用戶界面框架(windows presentation foundation,WPF)。它以DirectX為核心繪圖函數(shù),視覺效果更佳。其外觀使用可擴(kuò)展應(yīng)用程序標(biāo)記語言(XAML)設(shè)計(jì),操作行為則使用C#語言實(shí)現(xiàn),界面清晰美觀。
根據(jù)系統(tǒng)模塊架構(gòu)和車間工區(qū)劃分情況,將客戶端界面主菜單分為半杯體制作、膜盒制作、傳感頭裝配、溫度補(bǔ)償、總裝、質(zhì)量檢測、生產(chǎn)調(diào)度管理、查詢和報(bào)表管理、基本信息管理。菜單需要根據(jù)工區(qū)進(jìn)行權(quán)限設(shè)置,不同工區(qū)的工人只能對自己的作業(yè)頁面進(jìn)行操作;管理頁面只對參與相關(guān)管理工作的人員開放權(quán)限??蛻舳思戎С止と藪呙枳陨砉ぬ柖S碼登錄,又支持掃描工單自動彈出相關(guān)作業(yè)。
客戶端使用HTTP協(xié)議發(fā)送Request請求給服務(wù)器,待服務(wù)器處理完成準(zhǔn)備進(jìn)行Response響應(yīng)時,會將響應(yīng)封裝成Json格式回傳給客戶端??蛻舳耸盏胶髮son包進(jìn)行解析,并進(jìn)行相應(yīng)的用戶界面處理。客戶端采用POST方法推送數(shù)據(jù)至服務(wù)器。
服務(wù)器利用StreamReader類獲取GetRespons-eStream的內(nèi)容,并以StreamReader類的Read方法依次讀取每一行的內(nèi)容直至行尾,實(shí)現(xiàn)數(shù)據(jù)格式轉(zhuǎn)換。核心代碼大致如下:
Stream respStream = response.GetResponseStream();
//響應(yīng)信息為Stream
StreamReaderrespStreamReader = new StreamReader(respStream,Encoding.UTF8);
//UTF8解析
byteRead=respStreamReader.Read(cbuffer,0,256);
//解析放入byteRead
respStream.Close();
客戶端會事先和服務(wù)器定義每組Json包的數(shù)據(jù)類型和結(jié)構(gòu)形式,然后通過JsonConvert.DeserializeObject<jsondata>(strBuff)反序列化,將收到的Json包進(jìn)行數(shù)據(jù)解析。解析后的相應(yīng)字段可顯示在客戶端。
③服務(wù)器
服務(wù)器主要用于處理客戶端請求。Servlet工作原理如圖5所示。當(dāng)服務(wù)器響應(yīng)后,把請求轉(zhuǎn)交給Servlet引擎進(jìn)行處理。如果Servlet中含有訪問數(shù)據(jù)庫的操作,則還要通過Java數(shù)據(jù)庫連接(Javadatabaseconnectivity,JDBC)驅(qū)動對數(shù)據(jù)庫進(jìn)行操作訪問,最后Servlet將動態(tài)生成的信息發(fā)送至客戶端。
在一個Servlet周期,要調(diào)用init()方法和destroy()方法。init()方法在javax.Servlet接口中定義,完成初始化工作。初始化后Servlet接受客戶端請求。當(dāng)處理請求完成時,destroy()方法被調(diào)用,釋放init()方法中申請的資源。而Servlet處理請求的流程大致為:Servlet根據(jù)請求創(chuàng)建對象HttpServletRequest和HttpServletResponse,然后調(diào)用doPost()方法響應(yīng)客戶端請求。
HttpServletRequest接口主要包含getCookie()方法和getSession()方法,分別用于存放客戶端的Cookie數(shù)組和獲取當(dāng)前HTTP會話對象。HttpServletResponse接口是對客戶端的HTTP響應(yīng),其中包含的addCookie()方法和setStatus()方法,分別用于向響應(yīng)結(jié)果中加入Cookie和將響應(yīng)狀態(tài)碼設(shè)定為指定值。此外,Servlet分配1個Session用于存放客戶端的狀態(tài)信息,getId()作為Cookie保存在客戶端中,用于讓Servlet讀取并找到相應(yīng)的狀態(tài)信息。invalidate()可以定期釋放Session占用的資源;setAttribute(name,value)和getAttribute(name)用于讀/寫Session中的屬性值;isNew()用來判斷Session是否為新創(chuàng)建。
服務(wù)器根據(jù)客戶端的請求類型,對系統(tǒng)中的應(yīng)用邏輯進(jìn)行判斷和處理,并將處理結(jié)果返回給客戶端。
④數(shù)據(jù)庫
MySQL數(shù)據(jù)庫可以運(yùn)行在不同的操作系統(tǒng),實(shí)現(xiàn)多用戶、多線程、多語言的程序接口。根據(jù)壓力變送器的工藝流程,數(shù)據(jù)庫主要表單名稱及內(nèi)容如表1所示。
表1 數(shù)據(jù)庫主要表單名稱及內(nèi)容
序號 表單名 表單內(nèi)容
1 半杯體制作 過程工藝參數(shù)
2 膜盒制作 過程工藝參數(shù)
3 傳感頭裝配 過程工藝參數(shù)
4 溫度補(bǔ)償過程 工藝參數(shù)
5 總裝過程 工藝參數(shù)
6 質(zhì)量檢測 每個工區(qū)的質(zhì)量檢測結(jié)果
7 調(diào)度 合同數(shù)據(jù)記錄表
8 賬號管理 系統(tǒng)賬號、密碼、權(quán)限等
表1中:質(zhì)量檢測關(guān)聯(lián)了五大工藝中所有的檢測數(shù)據(jù);賬號管理則覆蓋了整個MES系統(tǒng)。
五大工藝流程中,各環(huán)節(jié)的批號和編號具有相關(guān)性。膜盒制作由兩個批次相同的半杯體組成;變送器在完成膜盒、電路板等元件組裝后,會根據(jù)出廠編號進(jìn)行溫度補(bǔ)償和總裝。
MySQL提供了一套JDBC。它由一些類和接口組成,用于實(shí)現(xiàn)通信,并訪問、操作數(shù)據(jù)庫,使得開發(fā)和操作數(shù)據(jù)庫可以直接調(diào)用,無需考慮資源內(nèi)部的問題。操作數(shù)據(jù)庫的步驟大致如下:
a、加載MySQL的驅(qū)動
Stringdriver="com.mysql.jdbc.Driver";
b、定義要連接數(shù)據(jù)庫的url地址
Stringurl="jdbc:mysql://localhost:3306/mes_db";
c、加載數(shù)據(jù)庫驅(qū)動
Class.forName(driver);
d、調(diào)用DriverManager的getConnection()方法,獲得對象
conn=(Connection)DriverManager.getConnection(url,用戶名,密碼);
e、連接完成后,針對數(shù)據(jù)庫操作中不帶參數(shù)的SQL語句,使用Connection接口的createStatement()方法傳遞。
Statementstmt=conn.createStatement();
而對數(shù)據(jù)庫中的表進(jìn)行插入、更新、查詢、刪除等帶有參數(shù)的操作,使用Connection接口的prepareStatement()方法傳遞。
PreparedStatementpstmt=(PreparedStatement)conn.
prepareStatement(“insert、update、select、delete的SQL語句”);
pstmt.setString(1,user.getName());//對數(shù)據(jù)庫進(jìn)行操作
inti=pstmt.executeUpdate();
//執(zhí)行insert/update/delete等語句時使用
inti=pstmt.executeQuery();
//執(zhí)行select/update等語句時使用
f、操作完成后關(guān)閉JDBC對象,釋放所有資源。
MES實(shí)現(xiàn)了壓力變送器制造車間的信息共享,將制造計(jì)劃與實(shí)際生產(chǎn)相結(jié)合,提高了生產(chǎn)設(shè)備的利用率和企業(yè)的管理效率,實(shí)現(xiàn)了車間管理流程的信息化。系統(tǒng)既具有簡單實(shí)用、可配置性強(qiáng)、界面簡潔等特點(diǎn),還具有一定的擴(kuò)展性。MES系統(tǒng)為企業(yè)實(shí)現(xiàn)信息化制造、信息化管理和提高自身競爭力提供了一定的參考。
作者:上海自動化儀表有限公司 崔晨