在CIMS體系的三層結(jié)構(gòu)中,MES系統(tǒng)軟件作為聯(lián)系制造行業(yè)管理層與過程控制層之間的紐帶,在提高企業(yè)生產(chǎn)效率和管理水平、改善產(chǎn)品質(zhì)量、降低生產(chǎn)損耗和節(jié)能減排等方面起著至關(guān)重要的作用。在近十幾年,MES系統(tǒng)軟件在國外的大中小企業(yè)中得到了很快的推廣和應(yīng)用,特別是一些大型的跨國企業(yè),已經(jīng)有了非常成熟的產(chǎn)品和應(yīng)用經(jīng)驗(yàn)。國內(nèi)在MES系統(tǒng)軟件的研究與應(yīng)用方面起步較晚,但受到ERP等思想廣泛推廣的影響,很多企業(yè)已經(jīng)注意到了它對生產(chǎn)的重大影響力,所以目前在國內(nèi)發(fā)展迅速,特別在流程等行業(yè)已經(jīng)有了突破性的發(fā)展。
MES系統(tǒng)軟件平臺是以裝配生產(chǎn)線為背景而開發(fā)的MES系統(tǒng)軟件通用軟件,以現(xiàn)有的MES系統(tǒng)軟件平臺的經(jīng)驗(yàn)及我們在裝配制造系統(tǒng)開發(fā)方面的經(jīng)驗(yàn),實(shí)現(xiàn)裝配車間的數(shù)字化管理。平臺的核心是基于事件的處理機(jī)制,所有的生產(chǎn)過程、生產(chǎn)環(huán)節(jié)、操作都被描述成事件,通過對事件的處理來實(shí)現(xiàn)車間生產(chǎn)過程的管理。目前平臺已經(jīng)基本開發(fā)完成,但是性能尚不能滿足企業(yè)的實(shí)際需要,需要對平臺優(yōu)化,達(dá)到進(jìn)行實(shí)際應(yīng)用的目的。因此,本文針對MES系統(tǒng)軟件平臺性能問題,引入并發(fā)處理機(jī)制對平臺的核心功能進(jìn)行優(yōu)化,為MES系統(tǒng)軟件的實(shí)際應(yīng)用打下基礎(chǔ)。
平臺架構(gòu)以及關(guān)鍵服務(wù)
MES系統(tǒng)軟件平臺由基礎(chǔ)服務(wù)、模型創(chuàng)建、生產(chǎn)管理套件、質(zhì)量分析套件、效率分析套件、報(bào)表統(tǒng)計(jì)套件等模塊構(gòu)成。MES系統(tǒng)軟件體系結(jié)構(gòu)中所有的功能都是以平臺服務(wù)為基礎(chǔ)運(yùn)行的,實(shí)現(xiàn)生產(chǎn)事件到客戶端的發(fā)布。平臺服務(wù)是整個(gè)平臺的核心,是平臺設(shè)計(jì)與開發(fā)的重點(diǎn)。車間生產(chǎn)過程中的事件按照類型被分成四大類:計(jì)劃類、生產(chǎn)類、報(bào)警類、廢品類,具體包括上線事件、下線事件、缺料事件、廢料事件、廢品事件、異常事件。
信息網(wǎng)關(guān)服務(wù)(Gate Way)、服務(wù)事件監(jiān)控服務(wù)(Event Man.ager)、數(shù)據(jù)采集服務(wù)(Data Reader)為平臺的關(guān)鍵服務(wù),其它服務(wù)都是構(gòu)建在這三個(gè)服務(wù)之上進(jìn)行擴(kuò)展后得到的,這三個(gè)關(guān)鍵服務(wù)間的通信均采用消息總線進(jìn)行信息交換。整個(gè)服務(wù)的運(yùn)行機(jī)制是以事件觸發(fā)機(jī)制為基礎(chǔ)的,并通過實(shí)時(shí)監(jiān)測特定數(shù)據(jù)源的標(biāo)簽值的變化來感知事件的發(fā)生,并利用信息網(wǎng)關(guān)服務(wù)將事件發(fā)布到事件的訂閱方。其中服務(wù)事件監(jiān)控服務(wù)為事件處理的關(guān)鍵服務(wù)。事件管理服務(wù)通過事件模型的配置信息,獲得相關(guān)的事件觸發(fā)條件及事件發(fā)生時(shí)調(diào)用的業(yè)務(wù)處理過程,并通過數(shù)據(jù)讀取服務(wù)采用多線程技術(shù)動(dòng)態(tài)監(jiān)測相關(guān)標(biāo)簽的變化,當(dāng)滿足事件觸發(fā)條件后,觸發(fā)相應(yīng)的業(yè)務(wù)處理過程。業(yè)務(wù)處理過程根據(jù)生產(chǎn)的狀態(tài)及業(yè)務(wù)規(guī)則進(jìn)行業(yè)務(wù)處理,同時(shí)為了通知MES系統(tǒng)軟件的客戶端,將信息發(fā)布到消息隊(duì)列中,然后等待其它處理過程。
平臺優(yōu)化的實(shí)現(xiàn)
目前MES系統(tǒng)軟件平臺的處理機(jī)制在MES系統(tǒng)軟件平臺的關(guān)鍵服務(wù)中,事件的處理機(jī)制為順序處理,所有事件排隊(duì),遵循FIFO原則。在平臺建立企業(yè)的產(chǎn)品模型、工廠模型及生產(chǎn)事件模型后,進(jìn)行生產(chǎn)計(jì)劃接收、生產(chǎn)指令下達(dá),這個(gè)過程的完成觸發(fā)了相應(yīng)的生產(chǎn)事件,接下來就由服務(wù)事件監(jiān)控服務(wù)進(jìn)行處理。如果一個(gè)生產(chǎn)事件被觸發(fā),服務(wù)事件監(jiān)控服務(wù)將會通過數(shù)據(jù)采集服務(wù)獲得這一事件。經(jīng)過判斷,如果滿足某些事件觸發(fā)條件,則進(jìn)入事件處理流程。
在事件處理流程中,事件相關(guān)數(shù)據(jù)首先將進(jìn)入一個(gè)列表中,和其它事件一起按順序被取出,事件的排列順序完全遵守平臺的配置順序。在接下來的處理過程中,這些事件被逐一取出,按照不同的事件類型分類,進(jìn)行不同的處理,而所有的處理過程全部由主線程來完成,處理完成后,平臺繼續(xù)監(jiān)測生產(chǎn)事件的發(fā)生,重復(fù)整個(gè)處理過程。因?yàn)橹挥幸粋€(gè)線程在處理數(shù)據(jù),所以數(shù)據(jù)等待的時(shí)間很長,這就是影響平臺性能的主要問題。如果引入多線程并發(fā)處理機(jī)制,一定能夠大幅度提高平臺性能。
性能優(yōu)化方案
并發(fā)的概念很早就已經(jīng)出現(xiàn)(尤其是多任務(wù)操作系統(tǒng)的出現(xiàn)),并發(fā)在提高系統(tǒng)資源的有效利用率和改進(jìn)軟件的性能方面具有較大的優(yōu)勢。相對于順序結(jié)構(gòu),并發(fā)結(jié)構(gòu)可以同時(shí)進(jìn)行多項(xiàng)工作,加快處理速度,在更短的時(shí)間內(nèi)或在相同的時(shí)間內(nèi)解決更多的問題。而且并發(fā)結(jié)構(gòu)節(jié)省投入,可以以較低的投入完成順序計(jì)算的任務(wù)。在某些情況下,也只有采用并發(fā)結(jié)構(gòu)才能達(dá)到目標(biāo)要求。但是并發(fā)結(jié)構(gòu)的執(zhí)行必須要考慮同步、沖突等問題,因此,如何實(shí)現(xiàn)進(jìn)程間相互作用控制,例如對共享資源存取的同步控制及通訊控制便成為一個(gè)關(guān)鍵問題。
目前并發(fā)處理系統(tǒng)的構(gòu)架主要采用基于線程的并發(fā)控制技術(shù),其中包括同步多線程技術(shù)和異步多線程技術(shù)。基于同步多線程的并發(fā)結(jié)構(gòu)主要有主/從(Boss/WoOer)、對等(Peer)和流水線(Pipene)三種。多線程也帶來了線程同步、上下文切換等開銷,基于事件的并發(fā)控制,即異步多線程技術(shù),可以省去這些開銷,它利用操作的異步執(zhí)行來提高系統(tǒng)并發(fā)性。然而,大多數(shù)操作系統(tǒng)都沒有很好的異步L/0支持,而且異步操作會使得程序難于編寫和維護(hù)。
對于MES系統(tǒng)軟件平臺的事件處理,因?yàn)樘幚頃r(shí)采用相同的方法,所以比較適合采用對等結(jié)構(gòu)的并發(fā)處理方法,同時(shí)根據(jù)平臺的實(shí)際處理情況加入一定的規(guī)則。例如,對現(xiàn)在的平臺可以根據(jù)事件的類型分別建立對應(yīng)的線程:計(jì)劃事件、生產(chǎn)事件、廢品事件、報(bào)警事件。各類事件可以定義優(yōu)先級來避免沖突,如報(bào)警事件應(yīng)該先處理,所以定義為高優(yōu)先級,生產(chǎn)事件數(shù)量大,可以定義為一般優(yōu)先級,等等。在生產(chǎn)的過程中也有一些生產(chǎn)規(guī)則需要遵守,例如,車間實(shí)際生產(chǎn)時(shí),首先要建立生產(chǎn)計(jì)劃,然后才能進(jìn)行生產(chǎn)操作。所以,首先出發(fā)的應(yīng)該是計(jì)劃事件,計(jì)劃事件進(jìn)程應(yīng)該擁有高的優(yōu)先級。在生產(chǎn)過程中,出現(xiàn)廢品和報(bào)警事件時(shí)需要及時(shí)處理,降低對生產(chǎn)的影響。所以,廢品和報(bào)警事件的線程優(yōu)先級要高于生產(chǎn)事件的線程。
優(yōu)化方案應(yīng)用
根據(jù)以上制訂的優(yōu)化策略,將原來平臺的事件處理主線程分為幾個(gè)線程,分別處理不同工位產(chǎn)生的事件。事件隸屬的工位可以在事件初始化時(shí)獲得。實(shí)際上相當(dāng)于首先獲取工位數(shù),以結(jié)構(gòu)為驅(qū)動(dòng),中心詞的作用不太明顯。然后進(jìn)行分組。有需要處理的數(shù)據(jù)時(shí),根據(jù)產(chǎn)生數(shù)據(jù)的工位確定調(diào)用哪一個(gè)線程進(jìn)行處理。同時(shí)建立一個(gè)線程池,保證只有一個(gè)線程讀寫數(shù)據(jù)庫核心數(shù)據(jù),防止產(chǎn)生沖突和錯(cuò)誤。在平臺優(yōu)化的過程中,只有事件處理的部分進(jìn)行了修改,保證了平臺其他部分的穩(wěn)定性,在系統(tǒng)調(diào)試的過程中減少了很大的工作量,也防止出現(xiàn)修改錯(cuò)誤,提高了工作效率。
盡管采用線程池并增加線程的個(gè)數(shù)可以提高系統(tǒng)的性能。但是線程的數(shù)量并不是說越多越好,因?yàn)槿绻€程數(shù)量過多,會造成CPU不停地中斷,反而影響速度。已有研究給出了并發(fā)用戶數(shù)為N時(shí),線程池性能達(dá)到大值時(shí)的線程數(shù)n滿足下列公式:
其中,設(shè)定每一個(gè)用戶具有同等的概率去發(fā)送同樣多的請求數(shù),C1為創(chuàng)建一個(gè)線程的開銷,C:為單個(gè)線程的管理開銷。考慮到一個(gè)線程能夠使用的虛擬內(nèi)存空間以及線程占用的??臻g大小和其他資源,很多時(shí)候是不會使線程數(shù)達(dá)到線程數(shù)n,而且系統(tǒng)支持的線程數(shù)是有限的。
通過上面的公式,考慮到平臺性能測試的數(shù)據(jù),以及實(shí)施的環(huán)境,得出線程數(shù)不需要超過10個(gè)。因?yàn)槠脚_首先要保證運(yùn)行穩(wěn)定,性能只要能夠達(dá)到用戶實(shí)際生產(chǎn)要求就可以,所以選擇線程數(shù)為5。這時(shí)平臺的性能既有很大的提高,同時(shí)也能穩(wěn)定運(yùn)行。
平臺應(yīng)用
MES系統(tǒng)軟件平臺是以裝配生產(chǎn)線為背景而開發(fā)的MES系統(tǒng)軟件通用軟件,按照裝配線的生產(chǎn)節(jié)拍為3分鐘,150個(gè)工位,每個(gè)工位同時(shí)產(chǎn)生lO個(gè)生產(chǎn)事件計(jì)算,優(yōu)化前平臺勉強(qiáng)能夠滿足企業(yè)的生產(chǎn)需要,但是在實(shí)際的生產(chǎn)中,這樣的性能是無法滿足企業(yè)要求的?,F(xiàn)在將事件處理機(jī)制改為多線程并發(fā)處理機(jī)制后,性能有了明顯提高。在相同的測試環(huán)境下,平臺的響應(yīng)時(shí)間有了明顯的縮短,能夠達(dá)到實(shí)際生產(chǎn)的需要。
效率解決方案覆蓋了全面的企業(yè)生產(chǎn)、管理與決策信息,涵蓋內(nèi)容豐富,其中生產(chǎn)制造執(zhí)行系統(tǒng)(E-MES),倉庫管理系統(tǒng)(E-WMS),SMT防錯(cuò)料系統(tǒng)與SMT智能首件檢測儀是信息核心軟硬件產(chǎn)品。除此之外,還為客戶提供電子工票管理系統(tǒng)、電子標(biāo)簽揀貨系統(tǒng)等各項(xiàng)服務(wù)。公司以中小型制造企業(yè)作為主要服務(wù)對象,業(yè)務(wù)涉及汽車整車行業(yè),汽車零配件行業(yè)、IT產(chǎn)品、家電裝配、電子產(chǎn)品、裝備制造等眾多行業(yè)。