引言
上世紀90年代以來,信息技術不斷的發(fā)展和成熟,同時,在經濟全球化趨勢不斷加強的背景下企業(yè)競爭的市場環(huán)境已經發(fā)生了根本的變化,市場的主要特征表現為以顧客的需求和企業(yè)的需求創(chuàng)造為主要特征,市場競爭的要素涉及到了工控時間、質量、價格、服務、環(huán)境和產品的更新率。為了提高企業(yè)的競爭能力,企業(yè)必須重視把制造技術與信息技術、自動化技術、現代管理技術和系統(tǒng)科學技術有機的融合在一起。
MES(Manufacturing Execution System)即“制造執(zhí)行系統(tǒng)”同企業(yè)資源計劃(ERP)一樣從理念發(fā)展到軟件平臺,是信息技術發(fā)展的必然產物。然而,目前在國內許多企業(yè)尤其是工廠企業(yè)對MES的重視程度遠不及ERP,事實上在工廠型的企業(yè)里應用MES不僅能夠迅速的提高該企業(yè)的市場競爭能力,同時也能迅速的為企業(yè)現有的信息網絡投資獲取回報。
1 MES的架構設計
MES在整個企業(yè)的信息化系統(tǒng)中處于承上啟下的地位,是獲取生產實時信息的接口。如圖1所示
1.1 傳統(tǒng)的MES
在我國,現有的MES大都是針對某一特定領域或工作環(huán)境而設計的單一的應用系統(tǒng),這種MES的通用性差,這種MES往往適用于連續(xù)型的生產企業(yè),且前提是該企業(yè)的生產管理非常完善,流水線生產程度極高,目前的實際情況是,我國大多數企業(yè),尤其是國企,很多都是非流水線的離散型生產企業(yè),因此這種MES并不適用于在我國的企業(yè)大范圍推廣,同時這種MES也不能適應多變的市場需求。
1.2 我國MES的使用現狀
目前,國內還沒有自主開發(fā)得很成熟的適用于多種生產類型的MES軟件。目前大多數MES都是針對連續(xù)型生產企業(yè)的,目前實施該類型MES比較成功的企業(yè)有廣州本田、TCL,NUFO中國、杭州士蘭集成電路公司。但是,由于我國大多數企業(yè)的管理并不完善,目前許多成功企業(yè)采用的MES都是從國外引進的,它們的價格昂貴。通常在一個企業(yè)實施MES少則幾百萬,多則甚至幾千萬,而且這些費用緊緊是MES的軟件部分。許多企業(yè)難以承受昂貴的MES開發(fā)費用,再者,國外的MES的開發(fā)對象是具有非常先進的制造技術,和具有非常豐富的生產經驗的企業(yè),并不一定都適用于國內的企業(yè),在實施過程中通常會對策略進行修改,這又加長了實施周期。而如何降低MES的開發(fā)成本和增加MES的靈活性,使MES能夠適用于我國大部分生產方式相對落后的離散型制造企業(yè)是當前在國內企業(yè)實施MES的當務之急。
1.3 服務程序支持的MES
服務程序支持的MES繼承了模塊化MES的優(yōu)點,并且以服務程序作為整個MES系統(tǒng)中的核心部分是溝通MES系統(tǒng)現場數據獲取、數據提交、數據整理、數據保存的橋梁,同時能夠完成生產計劃的制定、排序、下達(包括自動和手工)、暫停、恢復、插入、取消等,幾乎所有有關生產計劃執(zhí)行的操作都可以通過服務程序來完成。如圖2所示,可以看出在整個MES系統(tǒng)中,服務程序連接了下層的數據采集模塊和上層的管理模塊,并提供了與其他系統(tǒng)或設備的擴展接口,采取服務程序的架構,能夠連接產品在產過程 中所 經 過的各個離散加工點,使得MES服務器成為各個離散加工點的加工信息處理中心。在企業(yè)內部,為了保證系統(tǒng)的穩(wěn)定性、安全性以及降低開發(fā)成本,提高現有信息網絡的利用率,MES系統(tǒng)的上位設計宜采用C/S三層體系結構,這樣,服務程序又可以作為這種三層C/S結構MES的中間層,并可以把部分業(yè)務規(guī)則、數據訪問、合法性校驗等集成到服務程序中。
2 MES服務程序的具體設計
基于上述的MES的構思,我們設計了一套服務程序支持的MES,其基本架構如圖2所示。其中服務程序部分是該MES的核心部分其具體的設計及討論如下:
2.1 通信協議的設計
在本MES系統(tǒng)中,服務程序需要完成與下層通信模塊和上層管理模塊的通信,首先要考慮的必然是通信協議的選用,在計算機與計算機的網絡通訊中我們采用局域網中常用的TCP/IP協議,這一層協議的選用主要與MES系統(tǒng)建立的硬件網絡環(huán)境有關。除了網絡硬件層協議的選擇,在軟件層也需要設計一套請求應答協議,許多軟件開發(fā)者認為程序在與不同的模塊間進行通信時應該采用統(tǒng)一的請求應答協議,并且將這些程序放在同一個程序文件中,雖然這種設計方式有利于減少程序的開發(fā)周期但是卻增加了軟件的后期維護難度,尤其在移植MES的部分模塊時甚至會造成協議混亂而導致移植失敗。因此,我們在設計MES的服務程序的請求應答協議時把與不同模塊通信的協議及程序放在相互獨立的文件中以提高服務程序與其它MES模塊通信的效率以及這部分代碼的可讀性和可維護性。例如,與底層的通信模塊通信時可采用:CMDFlag +請求命令類型+CMDSplit+信息1+DataSplit+信息2+DataSplit+……+信息n+Data0ver其中CMDFIag為通信模塊向服務程序請求的命令類型起始分割符,MDSplit為請求命令類型的結束分割符同時表示請求命令中具體信息的開始,請求命令中的具體信息之間以DataSplit作為分割符,最后請求命令以Data0ver為結束符。
相應的應答協議或其它MES模塊與服務程序通信的請求應答協議也可以仿照這種格式來制定,需要注意的是在具體的程序設計中要注意保持命令類型的唯一性,以避免系統(tǒng)在解釋命令類型時產生歧義,同時程序對協議進行解釋時還必須具有一定的容錯能力。
2.2 服務程序的初始化設計
以服務程序為核心的MES要正常工作必須在運作前對服務程序進行初始化,服務程序的初始化包括與數據庫建立正確而穩(wěn)定可靠的連接、對最近的生產數據進行分析、最新生產參數的確定、更新待分配生產計劃隊列、更新日計劃隊列、更新材料隊列、更新操作工隊列、更新設備隊列、刷新數據庫等,其主要目的是在計算機內存中設置生產過程中所涉及的各種要素,保持內存數據與數據庫數據的同步從而正確而有效地指導生產。我們在設計程序時可以采用動態(tài)隊列以及類的概念來組織生產數據,并且可以采用隊列嵌套以及指針的思想來提高數據的利用率。在設計隊列和類時必須包括服務程序所管瞎的各個生產要素,同時要理清各生產要素的關系,例如:設備隊列MachList由多個實例化的設備類Machltem?組成,而不同的設備可能能加工的工序集是不同的,這樣就要求每個實例化的設備類中要有一個能加工的工序集隊列Can-ProcList,這就需要用到隊列嵌套技術了。這些情況在實際的工廠生產中大量的存在。從程序的角度來看,服務程序初始化的實質就是對各個隊列以及實例化的類賦予初值,為后繼生產創(chuàng)造基礎條件。
2.3 服務程序設計要點
工廠生產的連續(xù)性和合理性依賴于MES的正常運作,而MES的正常運作又依賴于服務程序的正常運行,提高服務程序的運行效率就是提高MES的運作效率,就是提高工廠的生產效率。服務程序承擔了包括生產計劃的排產、生產數據的保存以及質量數據的處理等任務,而處理這些任務時所涉及的數據量往往是很大的,因此,在程序設計時要提高內存中數據的利用率和盡量減少程序對磁盤的操作以及減少與數據庫服務器的數據交換。
1) 系統(tǒng)參數配置的獨立化:
許多程序的設計者直接將系統(tǒng)的配置放在程序當中,這樣做雖然提高了系統(tǒng)的集成度,也免去了用戶在使用系統(tǒng)前對系統(tǒng)進行配置,但這樣卻降低了系統(tǒng)的可移植性。服務程序為了提高服務程序的可移植性,將系統(tǒng)配置和參數設置獨立于程序之外而保存在ini文件中,當數據庫服務器被移植到其它地方或MES的其它模塊的配置發(fā)生變化時只需要修改ini文件即可,而不需要修改服務程序的源代碼,其中ini文件中的敏感配置,例如密碼、數據庫位置等完全可以通過各種加密措施來保證這些配置的安全。
2) 用好“池”的概念:
在實際的生產過程中,離散生產過程一般會存在以下實際問題使得某一工序的待加工計劃出現堆積現象:
1.同一個生產計劃在不同的工序階段所需要的工時是不可能相同的。
2.而不同的計劃在同一個工序中所消耗的工時也是不可能相同的。
3.不同計劃的工藝有可能不同但卻有交叉的工序。
以上三點是造成某一工序的待加工計劃出現堆積現象的主要原因,此外,一些例如:設備檢修、工人請假、停電、工人的熟練程度等也是造成堆積現象的原因。一般的工廠生產可以通過增加設備和增加工人的方法來解決,但問題是堆積現象的堆積度是不斷在變化的,需要增加的設備和工人的數量難以確定,因此服務程序中利用了‘他”的思想來解決這一問題。具體做法是為每一個工序設計一個待分配計劃工序隊列,隊列有兩個數據接口,輸人接口Input和輸出接口Output(以下Input指代輸人接口,Output指代輸出接口),而這個隊列就是所謂的‘他”這里可稱為“待分配計劃工序池”。輸入接口為上一工序,輸出接口為本工序。該隊列記錄的數據結構至少包括計劃任務生產屬性、工序、優(yōu)先級,把上一工序完成的計劃任務按照工序從輸人接口Input放人到對應的待分配計劃工序池中,可以通過該計劃任務所屬訂單的客戶重要程度、交貨期、批量的大小來計算出各個待分配計劃任務的優(yōu)先級。當本工序的某臺終端請求計劃時,服務程序就會在待分配計劃工序池中按待分配任務的優(yōu)先級和請求終端對應設備的加工屬性通過輸出接口Output把待分配計劃下發(fā)給請求終端。并且可以動態(tài)的計算出每個待分配計劃工序池中的待分配計劃所需的總工時,這樣,有關人員就可以很容易地計算出需要如何安排設備和工人等生產資源。
3) 優(yōu)先級調度:
在流水線生產中,不同任務的產品在線內的加工順序是按照計劃的投產先后順序來調度的,因而處理起來比較簡單,但在離散生產中,由于不同任務的加工品到達同一工序的時間和順序不完全取決于計劃的投產先后,還取決于計劃的生產工藝和相關的各種生產要素。這樣,在離散制造業(yè)中,服務程序設計的最大難點和重點在于生產計劃的自動排產,即何時下發(fā)哪一個工序的待生產計劃給哪一個設備終端。生產計劃優(yōu)先級的計算并不太難實現,根據事先給定的優(yōu)先級規(guī)則可以計算出來。但同一個優(yōu)先級若出現幾個待分配計劃時就需要計算解決計劃的選擇問題。
隨機服務(RS):即在幾個相同優(yōu)先級的待分配計劃中隨機的下發(fā)合適請求終端的待分配計劃。它的優(yōu)點是實現起來非常的容易,因此在許多場合被采用。但沒有利用請求終端對應的設備的加工歷史,缺乏主觀控制接口。
先來先服務(FCFS):即在相同優(yōu)先級的待分配計劃中先處理最先加人到待分配計劃隊列中的待分配計劃。這種調度方式考慮了以前工序的因素,從某種程度上反映了該計劃任務的緊急程度,與RS算法相比具有更多的科學性,但也沒有考慮本工序的設備加工歷史,有可能增加了輔助時間。
服務程序的優(yōu)先級調度策略考慮了如何減少產品加工的輔助時間,在FCFS的基礎上加人了對本工序設備加工歷史因素的考慮,稱為優(yōu)化先來先服務(OFCFS)算法。該算法對待分配計劃工序隊列預掃描,預掃描計算出隊列中是否有與本工序最后一次加工相同的任務,若沒有,則計算是否有與本工序最后一次加工參數相同或同一范圍內的待分配計劃任務,若沒有則繼續(xù)計算其它可以減少輔助時間的待分配計劃,若預掃描的某一過程計算出有合適的待分配計劃則立刻返回該待分配計劃并結束預掃描,若都沒有相關的待分配計劃再按照FCFS的算法來調度。這種算法雖然預掃描有可能會對待分配計劃進行多次掃描,但考慮到同一優(yōu)先級的待分配計劃通常情況下只是少數的幾條,預掃描所花費的時間可以忽略不計。
4) 同步修改內存數據和數據庫數據:
服務程序在設計時考慮了數據處理的平衡問題,比較合理地將數據操作分配到數據庫服務器和服務程序本身。即使這樣,也難以滿足工廠生產中處理大量實時生產數據的要求。任何系統(tǒng)都不可能立即同時對多個請求作出處理,但是系統(tǒng)必須在請求允許的等待時間內作出回應,這就決定了服務程序不能頻繁的調用數據庫的數據來刷新內存中的各生產要素隊列,一個解決的辦法就是在修改數據庫的同時立即修改內存中相應的值,這樣就避免了在某一時間大量的讀取數據庫數據同時又保證了服務程序運行數據的實時性,同時加人事務處理」以增加數據的安全性。
只要工廠的生產在進行,MES就必須不間斷地運作,只要MES在運作,服務程序就必須不間斷地運行,這意味著服務程序必須伴隨MES運作的始終,要保證工廠生產的連續(xù)性和正確性就要要求當生產數據出現錯誤時,服務程序仍然能夠下達正確的生產計劃指令。因此當生產過程中出現數據偏差時必須對錯誤的數據進行修正,服務程序提供了在線刷新和手工更正
3 運行情況
基于上述思想設計的服務程序支持的MES已被應用到實際的離散型制造企業(yè)中,其中服務程序部分的相關設計信息和運行情況如下:
系統(tǒng)結構:三層Client/Serve;
開發(fā)工具:Windows 2000 Professional, Borland Delphi 6.0 Enterprise,Microsoft SQL 2000 Professional;
實施地點:廣東省肇慶市懷集縣懷集汽車配件制造有限公司;
運行環(huán)境:Windows 2000 Server;
以下是服務程序的運行性能數據統(tǒng)計:
表1對系統(tǒng)運行至2005年6月的綜合性能進行了統(tǒng)計,統(tǒng)計表明,這種服務程序支持的MES的可靠性極高,計劃誤發(fā)率低于0.001%,終端請求的響應時間在正常情況下小于2秒,在峰值情況下小于4秒,而這樣的響應時間完全能夠被大多的車間生產所接受。值得注意的是該MES的終端響應時間90%是由于網絡通信而產生的。為了提高響應時間可以從改善網絡方面人手,光纖網是目前最理想的通信網絡,如果使用光纖作為通信網路,理論上響應時間可以小于0.5秒。
4 結束語
本文形式地給出了支持MES的服務程序的設計方法,并且把這種系統(tǒng)應用到了實際的生產中,測試也表明服務程序支持的MES與目前市場上的MES相比,同樣具有適應性、靈活性、實時性、可靠性,同時也具有極高的計劃處理效率,這得益于服務程序可以獨立于MES的其它模塊,可以在專用的服務器運行,大大地減輕了系統(tǒng)運行的負擔,同時也使得這種MES系統(tǒng)更加安全,保證在模塊的升級過程中不會對其它模塊產生不良的影響。由于該MES可以充分利用企業(yè)現有的網絡設備,并且處于核心位置的服務程序是可以重復利用的,使得開發(fā)其它企業(yè)的MES時,大大地縮短了開發(fā)周期,有效地降低了開發(fā)和實施的費用。本文還統(tǒng)計了服務程序支持的MES的系統(tǒng)設計方案在廣東懷集汽車配件制造有限公司實施的情況,并且取得了良好的效果。