1 引言
企業(yè)制造執(zhí)行系統(tǒng)(manufacturing execution system,MES)屬于生產(chǎn)過程與裝備信息化領(lǐng)域,是車間級(分廠級)管控系統(tǒng),是連接執(zhí)行層(作業(yè)設(shè)備、PCS)與管理層(ERP為代表)的橋梁。MES國際聯(lián)合會(MESA)定義:MES能通過信息傳遞對從訂單下達(dá)到產(chǎn)品完成的整個生產(chǎn)過程進(jìn)行優(yōu)化管理。具體包括資源分配和狀態(tài)管理、工序詳細(xì)調(diào)度、生產(chǎn)單元分配、文檔控制、數(shù)據(jù)采集、勞動力管理、質(zhì)量管理、過程管理、維護(hù)管理、產(chǎn)品跟蹤管理、性能分析等11大基本功能以及運(yùn)輸物流、優(yōu)化仿真、能源管理、客戶訂單管理、預(yù)先計(jì)劃功能、數(shù)據(jù)倉庫、無線通信與可移動訪問等7大支持功能。依據(jù)企業(yè)生產(chǎn)實(shí)際需求不同,各企業(yè)開發(fā)功能模塊各不相同。
甘肅某企業(yè)屬于有色冶煉企業(yè),公司致力于稀有金屬資源的開發(fā)和二次資源的再生利用2010年實(shí)現(xiàn)營業(yè)收入20億元,利潤1億元。2009年以前,生產(chǎn)管理自動化現(xiàn)狀:各生產(chǎn)車間雖然均已具備先進(jìn)的PCS層控制系統(tǒng),但各控制系統(tǒng)相互獨(dú)立,生產(chǎn)信息分散;電話調(diào)度模式,信息傳遞滯后,生產(chǎn)數(shù)據(jù)人工核算、抄表統(tǒng)計(jì)為主,執(zhí)行效率質(zhì)量較低。
企業(yè)生產(chǎn)規(guī)模的不斷擴(kuò)大、經(jīng)濟(jì)效益及行業(yè)地位的不斷提升,迫切需要采用兩化先進(jìn)技術(shù)不斷提高勞動生產(chǎn)率,完善規(guī)范化扁平化管理,提升企業(yè)核心競爭實(shí)力。
2009年筆者所在團(tuán)隊(duì)著手負(fù)責(zé)該企業(yè)MES整體規(guī)劃建設(shè)項(xiàng)目,該項(xiàng)目通過高速局域網(wǎng)絡(luò)實(shí)現(xiàn)各級生產(chǎn)管理部門對生產(chǎn)過程狀態(tài)信息的監(jiān)控。建立生產(chǎn)指揮中心,通過對各車間生產(chǎn)設(shè)備生產(chǎn)過程數(shù)據(jù)的實(shí)時采集和歷史存儲,將使整個公司的生產(chǎn)管理部門能夠?qū)崟r監(jiān)控生產(chǎn)現(xiàn)狀,追溯生產(chǎn)歷史,并可通過Internet/Intranet方式實(shí)現(xiàn)企業(yè)生產(chǎn)的遠(yuǎn)程監(jiān)管。同時開發(fā)企業(yè)生產(chǎn)調(diào)度管理軟件。建立以生產(chǎn)運(yùn)行管理為核心,以數(shù)據(jù)集成平臺為支撐,集物料信息管理,設(shè)備運(yùn)行管理,生產(chǎn)運(yùn)行管理和質(zhì)量管理等為一體的生產(chǎn)執(zhí)行系統(tǒng)(MES)。
2 設(shè)計(jì)要求
·系統(tǒng)功能滿足用戶實(shí)際需求。涵蓋系統(tǒng)管理數(shù)據(jù)、組織機(jī)構(gòu)、用戶管理、物料數(shù)據(jù)、質(zhì)量數(shù)據(jù)、金屬平衡數(shù)據(jù)、庫房數(shù)據(jù)、設(shè)備數(shù)據(jù)、生產(chǎn)過程數(shù)據(jù)、日志事件數(shù)據(jù)、產(chǎn)銷存數(shù)據(jù)、客戶關(guān)系數(shù)據(jù)、銷售數(shù)據(jù)等基礎(chǔ)數(shù)據(jù)及反映它們各自關(guān)系的相關(guān)數(shù)據(jù)。
·數(shù)據(jù)存取具備較高的安全性。存儲數(shù)據(jù)為企業(yè)核心業(yè)務(wù)數(shù)據(jù),必須具備較高的安全存儲及災(zāi)難恢復(fù)等級。
·較滿意的訪問速度。生產(chǎn)數(shù)據(jù)存儲量大,對數(shù)據(jù)庫性能有較高要求。必須從數(shù)據(jù)庫選型與技術(shù)手段多方面保證數(shù)據(jù)存取的訪問速度。
·適當(dāng)?shù)娜嵝。用戶需求只能隨系統(tǒng)運(yùn)行逐步明確,后期變化可能性較大。同時考慮后期企業(yè)EMS、ERP、CRM等系統(tǒng)接入問題,系統(tǒng)應(yīng)具備一定的柔性及可拓展能力,數(shù)據(jù)字典定義合理。
3 關(guān)鍵性問題及設(shè)計(jì)思路
依據(jù)項(xiàng)目實(shí)際情況,主體數(shù)據(jù)庫采用企業(yè)級Oracle9i關(guān)系數(shù)據(jù)庫系統(tǒng),同時用戶管理采用基于SQLServer的MicroSoft MemberShip管理機(jī)制。系統(tǒng)采用原型開發(fā)模式,靈活應(yīng)對變化。
數(shù)據(jù)庫柔性設(shè)計(jì);數(shù)據(jù)操作CRUD及統(tǒng)計(jì)在數(shù)據(jù)庫內(nèi)部完成,系統(tǒng)只負(fù)責(zé)存取;數(shù)據(jù)存取訪問速度;
1、數(shù)據(jù)安全性
①登陸賬號與業(yè)務(wù)數(shù)據(jù)分開,分別采用SQLServer和Oracle9i關(guān)系型數(shù)據(jù)庫。登錄系統(tǒng)采用基于MicroSoft Membership Provider的安全存儲機(jī)制。相關(guān)部分的數(shù)據(jù)庫設(shè)計(jì)參考MemberShip建議規(guī)范。
②系統(tǒng)采用B/S瘦客戶端三層架構(gòu),選用服務(wù)器端程序開發(fā)語言及工具,同時服務(wù)器端程序與數(shù)據(jù)庫系統(tǒng)分開存放在兩臺服務(wù)器上,隔離其他非系統(tǒng)使用訪問,用戶只能通過服務(wù)器端程序訪問數(shù)據(jù)庫。
③數(shù)據(jù)庫訪問SQL語句盡量不在網(wǎng)絡(luò)中傳輸,數(shù)據(jù)庫操作在數(shù)據(jù)庫內(nèi)部完成(可封裝在PL/SQL程序中)。這樣數(shù)據(jù)庫的訪問,只是調(diào)用相應(yīng)的存儲過程,提高了網(wǎng)絡(luò)安全性。
2、訪問速度保證
①CRUD、常用統(tǒng)計(jì)、分頁語句、視圖查詢等數(shù)據(jù)庫操作PL/SQL程序封裝,降低網(wǎng)絡(luò)傳輸量的同時,提高批處理執(zhí)行能力。
②為耗時較多的大數(shù)據(jù)量計(jì)算編寫觸發(fā)器及相應(yīng)PL/SQL程序,選擇服務(wù)器閑時自動統(tǒng)計(jì)的方式。這樣用戶調(diào)用時,就不用再耗費(fèi)臨時計(jì)算的時間了。
③為報(bào)表數(shù)據(jù)建立臨時表,需要調(diào)用時,將相應(yīng)數(shù)據(jù)先存至臨時表中,然后再統(tǒng)一發(fā)送至報(bào)表應(yīng)用程序中。減少網(wǎng)絡(luò)交互數(shù)據(jù)量,提高用戶體驗(yàn)。
④為Oracle數(shù)據(jù)庫配置4G以上內(nèi)存,改善數(shù)據(jù)庫運(yùn)行性能。
⑤在檢索數(shù)據(jù)時,多使用限制條件,明確查詢信息,提高命中率,改善存取性能。
3、適當(dāng)?shù)娜嵝?/strong>
①數(shù)據(jù)庫模塊化設(shè)計(jì),層次化,降低耦合性。每個功能做成單一模塊,模塊內(nèi)緊耦合,模塊間松散耦合。適當(dāng)?shù)臄?shù)據(jù)冗余,減少表之間過度的關(guān)聯(lián)性。
②基礎(chǔ)常量字段采用Sequence自增序列方式建表,便于自拓展。
③部分表存在需求不確定性,設(shè)計(jì)時適當(dāng)預(yù)留數(shù)據(jù)位,方便以后增加新的功能。
④使用PowerDesigner、Toad、StarUML等快速建模工具,做好數(shù)據(jù)庫設(shè)計(jì)思想及建庫代碼的備份,同時定期備份數(shù)據(jù)庫數(shù)據(jù),便于快速恢復(fù)及更新數(shù)據(jù)庫。
4 數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(jì)
在明確設(shè)計(jì)思路及方法后,我們嚴(yán)格依據(jù)數(shù)據(jù)庫設(shè)計(jì)一般原則及項(xiàng)目特點(diǎn),進(jìn)行了數(shù)據(jù)庫的整體規(guī)范化設(shè)計(jì)。主要分為表結(jié)構(gòu)及其關(guān)聯(lián),視圖、存儲過程、觸發(fā)器等幾個主要方面。
涉及基礎(chǔ)物料的表有Tag(物料編號表)、Unit(物料單位表)、Section(物料階段表,原料、產(chǎn)品、中間料等)、Category(物料類別表)、State(物料狀態(tài)表)、Frequency(統(tǒng)計(jì)頻次表)、Statype(統(tǒng)計(jì)類型表)等。涉及化驗(yàn)指標(biāo)的表有Quatity(指標(biāo)編碼表)、Q_unit(指標(biāo)單位表)、Quacat(指標(biāo)類別表)、Specifica(合格標(biāo)準(zhǔn)表)、Operator(操作符號表)等。其他關(guān)聯(lián)表還有Deptaginfo(部門車間物料信息表)、Deptagqua(部門車間指標(biāo)信息表)、Quarecord(指標(biāo)數(shù)據(jù)記錄表)、Tagrecord(物料數(shù)據(jù)記錄表)等。Deptaginfo表與Deptagqua表定義特定機(jī)構(gòu)的物料及化驗(yàn)指標(biāo)數(shù)據(jù)字典,與基礎(chǔ)數(shù)據(jù)表存在多項(xiàng)關(guān)聯(lián),方便減少冗余數(shù)據(jù),保證數(shù)據(jù)唯一性。Tagrecord表與Quarecord表讀取操作頻繁,而且隨日積月累數(shù)據(jù)行數(shù)量較大,應(yīng)盡量較少此類表查詢關(guān)聯(lián),適當(dāng)增加字段冗余。同時為常用查詢功能建立關(guān)聯(lián)視圖,提高訪問效率。
5 存儲過程設(shè)計(jì)
數(shù)據(jù)庫表空間的CRUD(創(chuàng)建、檢索、更新、刪除)操作,分頁操作,自動統(tǒng)計(jì)(年、月、日頻次。求和、求平均、最大、最小、方差、盤庫等方式)等操作,統(tǒng)一封裝在PL/SQL存儲過程中,這樣不需要在程序中傳遞SQL語句?蛻舳苏{(diào)用時,只需要程序傳遞至Oracle數(shù)據(jù)庫相應(yīng)的存儲過程名及運(yùn)行參數(shù)信息,PL/SQL程序就會自動以批處理的執(zhí)行速度進(jìn)行數(shù)據(jù)庫操作,并將操作結(jié)果統(tǒng)一發(fā)送至應(yīng)用程序。這樣,網(wǎng)絡(luò)交互次數(shù)及數(shù)據(jù)量大大減少,最大限度降低網(wǎng)絡(luò)傳輸冗余信息量。同時對于問題查找和后期維護(hù)都帶來方便。
僅以通過物料類別ID查找部門物料信息的PL/
這樣,應(yīng)用程序傳遞給數(shù)據(jù)庫的參數(shù)就只有PL/SQL程序名及p_CAT_ID一個參數(shù),數(shù)據(jù)庫處理后,就可以直接將查詢結(jié)果返回給應(yīng)用程序。數(shù)據(jù)交互變得簡單和高效率。筆者在該項(xiàng)目中,共建立了400多個不同功能的PL/SQL存儲過程序。降低了持久化層應(yīng)用程序與底層數(shù)據(jù)庫之間的耦合關(guān)系,使持久化層的編寫以及數(shù)據(jù)訪問、調(diào)用關(guān)系變得明了,簡單。其他PL/SQL程序類似,不在贅述。
6 觸發(fā)器設(shè)計(jì)(上圖、上代碼)
對于某些耗時較多的大數(shù)據(jù)量處理任務(wù),各自采用具備針對性的技術(shù)手段。例如大數(shù)據(jù)量報(bào)表檢索交互處理采用臨時表空間的方式,而大數(shù)據(jù)量計(jì)算統(tǒng)計(jì)處理,在項(xiàng)目中采用設(shè)計(jì)觸發(fā)器程序,并設(shè)定服務(wù)器閑時自動執(zhí)行計(jì)算的方式進(jìn)行處理。這樣,客戶端訪問較為頻繁的時候,盡量使數(shù)據(jù)庫服務(wù)器資源僅供數(shù)據(jù)交互使用,降低服務(wù)器負(fù)載。而在基本無用戶訪問需求的時間段(比如凌晨),數(shù)據(jù)庫服務(wù)器在進(jìn)行相應(yīng)的自計(jì)算、自統(tǒng)計(jì)處理,合理高效利用服務(wù)器資源。
僅以庫房自動盤點(diǎn)程序?yàn)槔,首先將相?yīng)分操作設(shè)計(jì)為不同的PL/SQL程序。例如DAILY_CLEAR STORE(V_DATE)負(fù)責(zé)進(jìn)行每日庫存增量計(jì)算,MONTH_CLEAR_STORE(V_DATE,V_STARTDAY)負(fù)責(zé)進(jìn)行每月庫存凈增量計(jì)算,MONTHTONOW_CLEAR_STORE(V_DATE,V_STARTDAY)負(fù)責(zé)進(jìn)行月初至今庫增量計(jì)算,YART_CLEAR_CLEAR_STORE(V_DATE,V_STARTDAY),STORE_BALANCE(V_DATE,V_STARTDAY)負(fù)責(zé)將最終庫存盤點(diǎn)的結(jié)果寫會數(shù)據(jù)庫指定位置,供用戶調(diào)用。然后指定一段存儲過程統(tǒng)領(lǐng)這些PL/SQL程序段執(zhí)行數(shù)據(jù)及參變量。
然后就可以設(shè)定觸發(fā)器JOB程序定時調(diào)用DailyJob存儲過程程序。
這樣,每日凌晨四點(diǎn),觸發(fā)器便可以自行調(diào)用相應(yīng)的存儲過程,在用戶早晨上班前,將需要處理的大量統(tǒng)計(jì)數(shù)據(jù)計(jì)算生成完畢,供用戶快速調(diào)用查看,從而滿足用戶對于較快人機(jī)交互體驗(yàn)的需求。
7 實(shí)施效果
在該系統(tǒng)研發(fā)過程中,數(shù)據(jù)庫結(jié)構(gòu)合理,各模塊分工明確,有較好的可拓展性,滿足了原型化開發(fā)過程中,用戶需求的易變性與系統(tǒng)開發(fā)的連續(xù)性、穩(wěn)定性,收到較好效果。目前該項(xiàng)目已通過驗(yàn)收,在數(shù)據(jù)安全性、系統(tǒng)穩(wěn)定性、訪問速度等方面用戶使用效果良好,項(xiàng)目團(tuán)隊(duì)正在就進(jìn)一步的推廣應(yīng)用總結(jié)經(jīng)驗(yàn),以期更好的貼合用戶實(shí)際需求,最大限度滿足企業(yè)用戶的需求。
8 結(jié)束語
當(dāng)今企業(yè)越來越多的意識到企業(yè)制造執(zhí)行系統(tǒng)MES實(shí)施對于企業(yè)發(fā)展、扁平管理和效益提升的重要性與必要性。本文以實(shí)際MES項(xiàng)目為例,著重闡述了相關(guān)項(xiàng)目中關(guān)系數(shù)據(jù)庫設(shè)計(jì)的若干思路及解決辦法。存在較好的通用性和行業(yè)推廣價(jià)值,有著一定的實(shí)施借鑒意義。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:有色冶化企業(yè)MES軟件開發(fā)中數(shù)據(jù)庫設(shè)計(jì)與應(yīng)用
本文網(wǎng)址:http://www.oesoe.com/html/solutions/1401934104.html