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