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