摘要:該文以MES系統(tǒng)為背景,對生產(chǎn)調(diào)度數(shù)據(jù)和公用工程生產(chǎn)能耗數(shù)據(jù),按照統(tǒng)計要求的顆粒度進(jìn)行整合優(yōu)化,建立數(shù)據(jù)模型,為ERP系統(tǒng)提供數(shù)據(jù)接口,并通過自由組態(tài)為統(tǒng)計人員提供統(tǒng)計報表。
關(guān)鍵詞:MES;數(shù)據(jù)模型;自由組態(tài);報表
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2013)04-0683-03
Free Configuration Reports of Research and Development
ZHU Teng-fei, ZHANG Cheng
(Automation Institute of Lanzhou Petrochemical Company, Lanzhou 730060, China)
Abstract:Based on Manufacturing Execution System as the background, according to the statistical requirements of the Statistics department ,integrate and optimize the production scheduling data and utility production energy consumption data, establish data model, provide the data interface for the ERP system, and with the free configuration, provide statistical reports for the statistics personnel.
Key words: MES; data model; free configuration; reports
中國石油信息化“十一五”規(guī)劃中,MES與ERP是極為重要的建設(shè)項目。MES是面向生產(chǎn)層面的信息系統(tǒng),處理各項生產(chǎn)業(yè)務(wù),主要服務(wù)對象為生產(chǎn)管理人員;ERP是面向經(jīng)營層面的信息系統(tǒng),處理各項經(jīng)營業(yè)務(wù),主要服務(wù)對象為企業(yè)經(jīng)營管理人員。
MES系統(tǒng)必須實現(xiàn)統(tǒng)計業(yè)務(wù)需求,必須能夠為ERP系統(tǒng)提供企業(yè)生產(chǎn)實際數(shù)據(jù),支撐ERP系統(tǒng)的統(tǒng)計核算業(yè)務(wù),為企業(yè)經(jīng)營管理層業(yè)務(wù)提供實際、準(zhǔn)確的數(shù)據(jù)基礎(chǔ)。當(dāng)前使用的報表是通過報表模板組態(tài),實施人員寫SQL的模式來實現(xiàn)的,報表格式一旦定下來,就不能根據(jù)業(yè)務(wù)實際靈活的調(diào)整,報表缺乏擴(kuò)展性。所以,需要建立一個能夠自由組態(tài)的報表系統(tǒng),使用戶可以輕松定制各種報表。
1 系統(tǒng)總體結(jié)構(gòu)
本系統(tǒng)的總體結(jié)構(gòu)分為四個層次和兩個部分。四個層次分別是數(shù)據(jù)源層、模型搭建層、報表實現(xiàn)層及展示層,在數(shù)據(jù)源層集成了物料平衡的裝置投入產(chǎn)出、罐收付存、進(jìn)出廠計量及物料平衡數(shù)據(jù),公用工程的能耗數(shù)據(jù)和計劃數(shù)據(jù);在模型搭建層,實現(xiàn)統(tǒng)計報表和臺帳的業(yè)務(wù)模型搭建功能,方便數(shù)據(jù)的提取及統(tǒng)計報表的實現(xiàn);在報表實現(xiàn)層,實現(xiàn)統(tǒng)計業(yè)務(wù)對統(tǒng)計平衡及統(tǒng)計報表業(yè)務(wù)的需求,通過簡單的模板組態(tài),實現(xiàn)企業(yè)統(tǒng)計報表和臺帳。展示層實現(xiàn)報表的生成和導(dǎo)出。
兩個部分分別是B/S體系模塊和C/S體系模塊,B/S體系架構(gòu)模塊是統(tǒng)計報表系統(tǒng)的核心,系統(tǒng)實現(xiàn)對統(tǒng)計報表及平衡模型的搭建,為統(tǒng)計報表系統(tǒng)提取物料平衡數(shù)據(jù)鑒定了基礎(chǔ)。C\S體系架構(gòu)模塊主要實現(xiàn)了靈活組態(tài)報表的需要。C\S報表系統(tǒng)根據(jù)B\S組態(tài)的業(yè)務(wù)模型,提取統(tǒng)計部門需要的裝置進(jìn)出、罐區(qū)庫存、收入撥出和生產(chǎn)能耗等的業(yè)務(wù)數(shù)據(jù),以及計劃數(shù)據(jù),同時可以靈活的添加各種報表顯示指標(biāo),通過組態(tài)方式實現(xiàn)統(tǒng)計報表、臺帳。
2 系統(tǒng)設(shè)計與實現(xiàn)
本系統(tǒng)開發(fā)平臺為Microsoft Visual Studio 2005,采用Oracle數(shù)據(jù)庫,編程語言使用C#來進(jìn)行開發(fā)。
2.1模型組態(tài)模塊
創(chuàng)建數(shù)據(jù)模型需要將指標(biāo)表和數(shù)據(jù)表數(shù)據(jù)字段映射到模型表中。其中涉及到指標(biāo)、狀態(tài)和模板這些名詞的定義。指標(biāo)就是要取數(shù)的對象,如汽油、渣油等;狀態(tài)就是對象的屬性,如庫存,產(chǎn)量等。報表模板是指由指標(biāo)和狀態(tài)組建的二維報表,一般指標(biāo)為行項,狀態(tài)為列項。
指標(biāo)表主要存儲指標(biāo)的信息,其中包括指標(biāo)編碼、指標(biāo)所屬的罐或裝置、車間、分廠、以及它的源和目的等;狀態(tài)表主要存儲指標(biāo)對應(yīng)的生產(chǎn)數(shù)據(jù)信息,其中包括指標(biāo)編碼、日期、原始值、確認(rèn)值等;模型表主要存儲數(shù)據(jù)模型的信息,其中包括模型編碼、模型對應(yīng)的指標(biāo)表和數(shù)據(jù)表、指標(biāo)所有的層級信息、數(shù)據(jù)表中的狀態(tài)。
2.1.1統(tǒng)計平衡信息組態(tài)
組態(tài)統(tǒng)計所需粒度的平衡模型。實現(xiàn)統(tǒng)計關(guān)注的物料粗顆粒度的平衡模型搭建,創(chuàng)建分廠統(tǒng)計關(guān)注的物料組(從分廠的角度,把分廠統(tǒng)計的每一種統(tǒng)計物料叫做一個物料組)。添加統(tǒng)計物料對應(yīng)的邏輯罐,關(guān)聯(lián)統(tǒng)計物料與物料平衡細(xì)顆粒度路由之間的關(guān)系及報表讀寫等屬性,作為通過物料平衡數(shù)據(jù)匯總統(tǒng)計報表所需數(shù)據(jù)的基礎(chǔ)。同時刪除邏輯罐,自動刪除統(tǒng)計物料與物料平衡路由之間的關(guān)系。
2.1.2公用工程模型組態(tài)
組態(tài)統(tǒng)計對公用工程能耗數(shù)據(jù)的報表需求模型。公用工程取數(shù)模型通過統(tǒng)計組態(tài)獲取能流歸并關(guān)系,模型取數(shù)的結(jié)果與統(tǒng)計查詢界面顯示的數(shù)據(jù)一致。組態(tài)基本管線信息,按某種介質(zhì)建立管線之間的平衡關(guān)系,最后按照統(tǒng)計的顆粒度進(jìn)行數(shù)據(jù)統(tǒng)計。
2.1.3計劃模型組態(tài)
組態(tài)計劃數(shù)據(jù)模型。根據(jù)企業(yè)車間、分廠、公司對計劃指標(biāo)的需要,分別添加各自的計劃指標(biāo)。首先:添加指標(biāo)分類,然后為每個屬性的指標(biāo)添加具體指標(biāo),最后,為每個車間、分廠、公司添加自己需要的各類指標(biāo)。
2.2報表展示模塊
2.2.1報表模板
新建報表模板,組態(tài)回寫規(guī)則,并對其進(jìn)行維護(hù)。根據(jù)取數(shù)模型將一個取數(shù)單元定義為一個模塊,一個報表模型可以由多個模塊組成,所以對報表模板的控制實際上就是對每個模塊的控制。對于模塊可以進(jìn)行新建、插入、維護(hù)、刪除操作。
模塊類型有三種,分為一般類型、臺帳類型、轉(zhuǎn)置類型,一般類型指的是將指標(biāo)作為行項、狀態(tài)作為列項,轉(zhuǎn)置類型則剛好與其相反,臺帳類型則將日期定義為行項,狀態(tài)定義為列項。為了讓各模塊之間更好地組合,還可以對塊頭、行項、列項是否顯示進(jìn)行控制。
2.2.2報表實現(xiàn)
報表文件依附于報表模板,一旦報表模板制訂完成,只需要選擇生產(chǎn)數(shù)據(jù)的日期根據(jù)每個狀態(tài)的取數(shù)語句即可得到報表文件。
當(dāng)用戶要進(jìn)行數(shù)據(jù)回寫時,首先要記錄下回寫之前的數(shù)據(jù),通過OWC中的編輯前事件觸發(fā)執(zhí)行,即在對單元格進(jìn)行編輯之前,會觸發(fā)這一事件,這樣就可以事先保存編輯前的數(shù)據(jù)。相應(yīng)的,在編輯后事件中進(jìn)行編輯后的處理。
首先要判斷該單元格對應(yīng)的指標(biāo)是否為匯總指標(biāo),若是,則提示匯總指標(biāo)無法修改,必須在數(shù)據(jù)明細(xì)中修改。若是基礎(chǔ)指標(biāo),則根據(jù)該取數(shù)模型、指標(biāo)、狀態(tài)的回寫狀態(tài)來判斷。其中有一個是只讀,則提示該單元格的數(shù)據(jù)是只讀數(shù)據(jù),無法回寫。若均為可回寫,則將通過該單元格對應(yīng)的取數(shù)模型、指標(biāo)、狀態(tài)、分?jǐn)傄?guī)則、開始結(jié)束時間、生產(chǎn)報表時間、編輯前后的數(shù)據(jù)、用戶等信息進(jìn)行數(shù)據(jù)回寫。
關(guān)于回寫的數(shù)據(jù)由分?jǐn)傄?guī)則、開始結(jié)束時間和編輯前后的數(shù)據(jù)決定,如果開始結(jié)束的時間為同一天,則不論是平均分?jǐn)傔€是分?jǐn)偟阶詈笠惶欤貙懙臄?shù)據(jù)就是編輯后的數(shù)據(jù);如果開始結(jié)束時間為一段時間T天,編輯前后的數(shù)據(jù)分別為STARTVALUE和ENDVALUE,若分?jǐn)傄?guī)則是平均分?jǐn)?,則每一天的數(shù)據(jù)為ENDVALUE/T,若分?jǐn)傄?guī)則是分?jǐn)偟阶詈笠惶欤瑒t最后一天的數(shù)據(jù)為編輯前的數(shù)據(jù)加上ENDVALUE-STARTVALUE,其他天的數(shù)據(jù)不變。
2.3系統(tǒng)管理模塊
2.3.1權(quán)限管理
本地登錄,系統(tǒng)高級管理員賬戶,可以對其他用戶的權(quán)限進(jìn)行控制;域登錄,該登陸的用戶必須為中石油域中的用戶,用戶登入系統(tǒng)中不享有任何報表操作的權(quán)限,必須要在統(tǒng)計平衡軟件中將其設(shè)置為統(tǒng)計用戶,并且需要系統(tǒng)管理員對其的報表操作權(quán)限進(jìn)行控制。
2.3.2打印管理
滿足用戶打印報表的要求。打印屬性:紙張大小、方向、邊距、縮放比例。對于一個報表文件的打印,按照如下優(yōu)先級進(jìn)行:首先查看其用戶是否對其相應(yīng)的報表模板的打印屬性是否進(jìn)行過設(shè)置,然后查看其用戶是否有過打印屬性的設(shè)置,如果都沒有設(shè)置,則按照系統(tǒng)默認(rèn)的打印屬性進(jìn)行打印。
2.3.3日志管理
記錄用戶的操作痕跡,便于跟蹤處理。為了對用戶的操作記錄進(jìn)行追溯處理,這里對一些關(guān)鍵操作都要求做日志管理。當(dāng)用戶因為某些誤操作出現(xiàn)錯誤時,就可以通過日志管理查找到是哪些操作導(dǎo)致了錯誤的發(fā)生,從而制定相應(yīng)的恢復(fù)策略。
3 結(jié)束語
本系統(tǒng)在中石油各地區(qū)公司得到了廣泛應(yīng)用,包括華北石化、蘭州石化等多家地區(qū)公司。用戶可以輕松定制實現(xiàn)煉化企業(yè)一般報表,臺帳報表等報表;用戶能設(shè)置變化多樣的報表格式,組態(tài)豐富的函數(shù),添加單元格計算公式;用戶不再需要在Excel表格中一個一個單元格的錄數(shù),而是直接可以從MES系統(tǒng)中獲取所需數(shù)據(jù);用戶可以回寫和調(diào)整數(shù)據(jù),直接在報表上做數(shù)據(jù)平衡,減輕了統(tǒng)計人員的工作量,提供了工作效率,得到了用戶的普遍認(rèn)可。
參考文獻(xiàn):
[1] 王宏安.化工生產(chǎn)執(zhí)行系統(tǒng)MES[M].北京:化學(xué)工業(yè)出版社,2007.
[2] 貝爾利納索.ASP.NET 2.0網(wǎng)站開發(fā)全程解析[M].楊劍,譯.北京:清華大學(xué)出版社,2008.