梁建才
(杭州電子科技大學(xué),杭州 310018)
隨著工業(yè)技術(shù)的發(fā)展以及物質(zhì)水平的提高,產(chǎn)品復(fù)雜化使得工業(yè)生產(chǎn)面臨越來越多的挑戰(zhàn)。與此同時(shí),為了滿足不斷變化的市場對定制化產(chǎn)品的要求,以傳統(tǒng)的工業(yè)生產(chǎn)方式,當(dāng)前的工業(yè)自動化生產(chǎn)力將很快飽和。因此,日益迫切的市場需求,需要一種更加靈活化與智能化的技術(shù)來代理傳統(tǒng)的工業(yè)生產(chǎn),以更具競爭力的方式來支持其生產(chǎn)。
“工業(yè)4.0”驅(qū)動了新一輪工業(yè)革命,被稱之為第四次工業(yè)革命。其本質(zhì)是通過數(shù)據(jù)流動構(gòu)建自動化技術(shù),將原本工業(yè)生產(chǎn)中的規(guī)模經(jīng)濟(jì)轉(zhuǎn)向更具特色的范圍經(jīng)濟(jì)。同時(shí),推動產(chǎn)業(yè)改革,以之前同質(zhì)化、規(guī)?;某杀緛順?gòu)建創(chuàng)新的異質(zhì)化、定制化的智能產(chǎn)業(yè)。其中,提倡信息技術(shù)與物理設(shè)備共存,以網(wǎng)絡(luò)進(jìn)行互聯(lián)的信息物理融合系統(tǒng)成為“工業(yè)4.0”這一工業(yè)革命的核心內(nèi)容。2015年,中國也提出了自己的智能制造計(jì)劃“中國制造2025”,其核心目的就是推進(jìn)信息化與工業(yè)化的深度融合,推動智能制造的發(fā)展。
信息物理融合系統(tǒng)(Cyber-Physical System,CPS),基于網(wǎng)絡(luò)的互聯(lián)特性,連接了信息世界與物理世界,尤其是其中更加典型的工業(yè)信息物理融合系統(tǒng),其本質(zhì)就是現(xiàn)代互聯(lián)網(wǎng)技術(shù)與傳統(tǒng)工業(yè)控制系統(tǒng)的結(jié)合。與傳統(tǒng)的工業(yè)控制系統(tǒng)相比,基于傳感器設(shè)計(jì)的感知設(shè)備、基于運(yùn)動控制的控制設(shè)備以及執(zhí)行設(shè)備數(shù)量都有了劇烈的增長,與此同時(shí)大量設(shè)備端接入帶來的高并發(fā)量和數(shù)據(jù)量,對服務(wù)器的性能有了更加高的要求。工業(yè)智能制造的核心是以運(yùn)動控制為核心技術(shù)的智能化的機(jī)械控制技術(shù),其中典型的代表就是可編程邏輯控制器和基于PLCopen標(biāo)準(zhǔn)的運(yùn)動控制功能塊。
基于上述討論,本文提出了面向運(yùn)動控制的信息物理融合系統(tǒng)的方案設(shè)計(jì)。根據(jù)主流的三層CPS體系結(jié)構(gòu)[1],主要實(shí)現(xiàn)了在CPS的信息層,即計(jì)算單元、服務(wù)器,中消息的整個(gè)處理機(jī)制,包括基于Reactor模型與負(fù)載預(yù)測的響應(yīng)機(jī)制以及為了滿足CPS實(shí)現(xiàn)時(shí)特點(diǎn)[2],提高消息響應(yīng)而實(shí)現(xiàn)的消息優(yōu)先隊(duì)列與時(shí)間周期管理機(jī)制。在物理層中,基于多代理智能系統(tǒng)(Multi Agent System,MAS)提出結(jié)合局部感知單元、控制單元與執(zhí)行單元的CPSA(Cyber-Physical System Agent)用于實(shí)現(xiàn)核心功能需求[3],CPSA滿足了CPS的實(shí)行性、多余性和自治性等性質(zhì),其核心特點(diǎn)是用于原子服務(wù),即不可分割任務(wù)。同時(shí),多CPSA通過多個(gè)原子服務(wù)的并行組合可以有效實(shí)現(xiàn)組合服務(wù)[4]。在驗(yàn)證階段引入形式化技術(shù),利用時(shí)間自動機(jī)建立運(yùn)動系統(tǒng)的形式化描述[5],再通過Uppaal來驗(yàn)證運(yùn)動系統(tǒng)的安全性與可靠性。
信息物理融合系統(tǒng)是集計(jì)算單元、網(wǎng)絡(luò)通信以及物理設(shè)備于一體的混成系統(tǒng)。物理設(shè)備中的連續(xù)過程通常由計(jì)算單元中的離散信息控制,在信息采集與反饋控制基礎(chǔ)上,引入計(jì)算單元與物理設(shè)備的深度融合,通過提高自治性的方式,有效控制物理設(shè)備,最終提供可靠的服務(wù)[6]。
目前主流的CPS體系結(jié)構(gòu)是將CPS構(gòu)建成三層層次架構(gòu),由物理層、網(wǎng)絡(luò)層和信息層組成。物理層處于系統(tǒng)的最底端,主要工作是與客觀物理世界的交互,核心構(gòu)成是傳感器與執(zhí)行器,傳感器負(fù)責(zé)客觀物理世界的感知與信息采樣,執(zhí)行器只能具備特定的機(jī)械動作,接受控制指令執(zhí)行相應(yīng)操作。網(wǎng)絡(luò)層負(fù)責(zé)信息的傳輸,工業(yè)控制系統(tǒng)中,系統(tǒng)層與設(shè)備層的通信方式多種多樣,如Modbus協(xié)議、EtherCAT工業(yè)自動化現(xiàn)場總線以及TCP/IP網(wǎng)絡(luò)通信。相對抽象的網(wǎng)絡(luò)層卻是CPS的核心紐帶,用于連接整個(gè)系統(tǒng),其中包括了各種通信協(xié)議與通信設(shè)備。信息層負(fù)責(zé)數(shù)據(jù)信息相關(guān)的工作,其作用包括對物理層中傳感單元采集的信息進(jìn)行處理、根據(jù)任務(wù)需求和資源的調(diào)度對執(zhí)行單元生成控制指令以及系統(tǒng)整體的管理與狀態(tài)監(jiān)測,其構(gòu)成包括終端、數(shù)據(jù)庫以及服務(wù)器等一系列信息組件。
隨著智能制造的發(fā)展,可編程邏輯控制器的作用日益凸顯,而其中PLCopen組織所制定的該領(lǐng)域的編程標(biāo)準(zhǔn)與規(guī)范對推動行業(yè)發(fā)展與確保系統(tǒng)的可靠性起到了至關(guān)重要的作用。組織通過標(biāo)準(zhǔn)化的編程接口,用于統(tǒng)一各廠家在PLC開發(fā)平臺中編程規(guī)范。其中,通過將PLC中運(yùn)動控制與IEC61131標(biāo)準(zhǔn)中定義的編程語言相結(jié)合,封裝了傳統(tǒng)數(shù)控系統(tǒng)的控制算法,提供了利用圖表示的運(yùn)動控制功能塊,降低研發(fā)運(yùn)動控制系統(tǒng)的門檻[7]。
PLCopen標(biāo)準(zhǔn)中的運(yùn)動控制功能塊主要分為管理模塊和運(yùn)動模塊,管理模塊負(fù)責(zé)運(yùn)動過程中各種實(shí)時(shí)運(yùn)動信息的讀取,運(yùn)動模塊用于具體運(yùn)動的控制,包括單軸運(yùn)動、多軸運(yùn)動。通過建立軸狀態(tài)機(jī),可以將軸的運(yùn)動以離散狀態(tài)來表現(xiàn),并通過形式化的方式進(jìn)行驗(yàn)證。根據(jù)PLCopen標(biāo)準(zhǔn)中規(guī)定,運(yùn)動控制中的基本狀態(tài)包括使能態(tài)(Disable,DS)、回零態(tài)(Homing,HM)、保持態(tài)(StandStill,SS)、停止態(tài)(Stopping,SP)、錯(cuò)誤停止態(tài)(ErrorStop,ES)、離散運(yùn)動態(tài)(Discrete Motion,DM)、連續(xù)運(yùn)動態(tài)(Continue Motion,CM)以及同步運(yùn)動態(tài)(Synchronized Motion,SM)等8種[8]。
為了保證軟件的可靠性,在軟件開發(fā)過程中,開發(fā)人員通常會采用單元測試的方式,而后期也會有專門的測試人員對軟件的可靠性進(jìn)行進(jìn)一步測試,但是這兩種方式都屬于后驗(yàn)方式,驗(yàn)證過程和開發(fā)過程處于交織過程,通過不斷迭代來確保軟件的可靠性。而模型驗(yàn)證則是利用系統(tǒng)的狀態(tài)模型,通過遍歷狀態(tài)的方式檢測系統(tǒng)是否能達(dá)到預(yù)期的功能,以此確保系統(tǒng)的可行性與安全性。
由Uppsal大學(xué)和Aalborg大學(xué)聯(lián)合開發(fā)的Uppaal就是一種可以驗(yàn)證實(shí)時(shí)系統(tǒng)的模型驗(yàn)證工具,支持時(shí)間自動機(jī)的驗(yàn)證。有限狀態(tài)自動機(jī)可以用于表述系統(tǒng)內(nèi)部狀態(tài)的轉(zhuǎn)變,但是對于實(shí)時(shí)系統(tǒng)的描述卻有些不足,時(shí)間自動機(jī)在有限狀態(tài)機(jī)的基礎(chǔ)上引入時(shí)間約束,因此時(shí)間自動機(jī)的本質(zhì)也是一個(gè)包括有限節(jié)點(diǎn)和邊的圖,主要通過在邊上引入表示時(shí)間的變量,用于約束和限制自動機(jī)的行為。
目前高性能服務(wù)器主要應(yīng)用于兩個(gè)大方向,一是服務(wù)客戶終端的商業(yè)應(yīng)用服務(wù)器,其特點(diǎn)是利用集群、分布式、微服務(wù)等方式實(shí)現(xiàn)系統(tǒng)性能提升,另一個(gè)是以共享單車為代表的物聯(lián)網(wǎng)服務(wù)器,用于服務(wù)物理設(shè)備。參考這兩種服務(wù)器開發(fā),并結(jié)合CPS系統(tǒng)特點(diǎn)和業(yè)務(wù)需求,將信息層分成了5個(gè)主要部分,包括授權(quán)與驗(yàn)證、業(yè)務(wù)接受與分發(fā)、消息處理機(jī)制、異常處理與日志記錄,數(shù)據(jù)持久化與緩存。授權(quán)與驗(yàn)證模塊、異常處理與日志記錄這兩者的功能有所差異,但是目的都是為了確保系統(tǒng)的可靠性與安全性,授權(quán)與驗(yàn)證的目的屬于在消息進(jìn)入服務(wù)器核心功能區(qū)域之前的防護(hù),通過驗(yàn)證設(shè)備的固有設(shè)備號以及IP等方式,進(jìn)行過濾驗(yàn)證,確保設(shè)備的合法性。異常處理與日志記錄部分,除了需要監(jiān)測服務(wù)器自身的狀態(tài)信息,對設(shè)備單元出現(xiàn)的問題也需要根據(jù)實(shí)際情況進(jìn)行處理、記錄,包括重傳、重啟甚至提示人工干預(yù)等方式。數(shù)據(jù)持久化是利用MySQL等數(shù)據(jù)庫進(jìn)行業(yè)務(wù)數(shù)據(jù)與設(shè)備信息的持久化存儲,而緩存機(jī)制則是利用Redis等非關(guān)系型數(shù)據(jù)庫進(jìn)行特定信息的短時(shí)存儲,作用是服務(wù)異常處理、消息處理等模塊。業(yè)務(wù)接受與分發(fā)模塊主要作用是區(qū)分當(dāng)前業(yè)務(wù)服務(wù)對象,主要包括設(shè)備單元和客戶終端。而消息處理機(jī)制則是為了實(shí)現(xiàn)CPS而對傳統(tǒng)工業(yè)服務(wù)器核心功能進(jìn)行的優(yōu)化設(shè)計(jì)[9],同時(shí)也是本文介紹的核心內(nèi)容,CPS系統(tǒng)架構(gòu)如圖1所示。
圖1 CPS系統(tǒng)架構(gòu)
通信協(xié)議是用于消息發(fā)送端和消息接收端共同遵守的規(guī)范。消息在傳輸過程中,表現(xiàn)為無意義、無明確含義的二進(jìn)制序列,因此在消息傳送之前,首先需要確定一個(gè)消息“模板”。模板的作用是規(guī)定消息的具體格式,在消息發(fā)送之前,需要根據(jù)模板的要求進(jìn)行設(shè)計(jì),將消息具體內(nèi)容,如控制指令、狀態(tài)指令等,按具體格式進(jìn)行切割、分配。同時(shí),消息的接受端在接受到無意義的二進(jìn)制序列后,也是根據(jù)協(xié)議模板的要求,解析相應(yīng)消息的內(nèi)容。
傳統(tǒng)的工業(yè)系統(tǒng),主要目的是用于生成同質(zhì)化的產(chǎn)品,其獲利方式是其規(guī)?;漠a(chǎn)品數(shù)量,因此系統(tǒng)設(shè)計(jì)之初,就會將物理設(shè)備、服務(wù)器架構(gòu)進(jìn)行固定設(shè)計(jì),這也要求通信采用現(xiàn)有的協(xié)議,如Modbus協(xié)議、MQTT協(xié)議甚至Http協(xié)議等。CPS出現(xiàn)的目的是解決市場對定制化產(chǎn)品的大量需求,物理系統(tǒng)是多設(shè)備、多組合的,因而系統(tǒng)中必然出現(xiàn)多種協(xié)議方式。在服務(wù)器中采用動態(tài)配置的方式,用于運(yùn)行時(shí)加載相應(yīng)設(shè)備中協(xié)議的編碼、解碼代碼,并通過引入責(zé)任鏈模式,分別對不同的協(xié)議進(jìn)行解析,而消息處理過程中,核心內(nèi)容部分必然需要一個(gè)協(xié)議,用于不同協(xié)議解析后的統(tǒng)一性。
根據(jù)業(yè)務(wù)需求,本文設(shè)計(jì)了一種較輕量級的通信協(xié)議,用于滿足系統(tǒng)的通信要求。自定義的私有協(xié)議,除了能夠滿足了消息處理機(jī)制的功能需求外,同時(shí)也考慮未來設(shè)備擴(kuò)展和業(yè)務(wù)變更的要求[10]。如圖2所示,消息由消息首部和消息內(nèi)容組成,首部的長度固定,由唯一性ID、設(shè)備號、優(yōu)先級、消息類型、序列號組成,消息內(nèi)容采用鍵值對的方式進(jìn)行存儲,首部各組成部分作用如下:
圖2 消息協(xié)議的基本結(jié)構(gòu)
1)唯一性ID
利用用戶信息與訂單信息生成唯一性ID,即ID=F(UserInfo+OrderInfo)。在信息物理融合中,產(chǎn)品和用戶存在一對一關(guān)系,唯一性ID保證了系統(tǒng)對該用戶及訂單信息持續(xù)性追蹤。在關(guān)系性數(shù)據(jù)庫MySQL中,利用該ID可以有效地進(jìn)行數(shù)據(jù)的存儲與讀取。同時(shí),在Redis中進(jìn)行消息指令緩存,確保消息的可靠性。
2)設(shè)備號
工業(yè)生產(chǎn)系統(tǒng),尤其是小型生產(chǎn)設(shè)備系統(tǒng),往往采用單服務(wù)器+單控制器的方式,如用于訂單信息管理的服務(wù)器與用于設(shè)備控制的PLC進(jìn)行組合。工業(yè)設(shè)備的控制全部由PLC進(jìn)行執(zhí)行,IO模塊負(fù)責(zé)傳感器等相關(guān)信號的輸入、輸出,基于EtherCAT協(xié)議傳輸驅(qū)動器設(shè)備控制信號。信息物理融合系統(tǒng),通常采用多服務(wù)器+多設(shè)備單元的方式,多服務(wù)器用于保證系統(tǒng)的可靠性與支持高負(fù)載,多設(shè)備單元用于支持定制化需求,因此在通信協(xié)議中引入設(shè)備號用于標(biāo)記發(fā)送端的設(shè)備單元。
3)優(yōu)先級
不同的設(shè)備之間,根據(jù)任務(wù)的重要程度不同,對設(shè)備的權(quán)重進(jìn)行安排,從而引入優(yōu)先級的概念,因此相應(yīng)設(shè)備發(fā)出的消息也具有了優(yōu)先級。優(yōu)先級可以確定消息在消息處理機(jī)制中的處理順序,使緊急的、要求立刻響應(yīng)的消息得到及時(shí)響應(yīng),以使設(shè)備單元能迅速執(zhí)行。
4)消息類型
在服務(wù)器與設(shè)備單元之間,不同的設(shè)備單元所負(fù)責(zé)的任務(wù)不同,如生產(chǎn)線中負(fù)責(zé)抓取的機(jī)械臂、負(fù)責(zé)噴碼的噴碼設(shè)備以及負(fù)責(zé)監(jiān)控的HMI設(shè)備。而根據(jù)任務(wù)的不同,需要建立不同的連接方式,當(dāng)設(shè)備單元需要不斷輪詢服務(wù)器,即消息發(fā)送間隔較短,通過建立長連接可以減少服務(wù)器線程壓力,而消息發(fā)送間隔長的抓取設(shè)備,采用短連接就不會一直占用服務(wù)器資源,即時(shí)釋放連接,有效保障了多設(shè)備單元的連接。因此,在協(xié)議中規(guī)定了消息類型用于確定連接方式,進(jìn)而可以采取相應(yīng)的業(yè)務(wù)處理邏輯。
5)序列號
在常規(guī)的消息協(xié)議中,為了確保數(shù)據(jù)在傳送過程中正確無誤,往往采用校驗(yàn)碼的方式,用于檢驗(yàn)是否出現(xiàn)誤碼。由于協(xié)議本身是在TCP協(xié)議之上的應(yīng)用層協(xié)議,因此可靠性得到TCP自身特性的保證,通過在系統(tǒng)中引入序列化機(jī)制中的序列號功能,利用序列號的方式來減少校驗(yàn)過程的性能消耗,阻止系統(tǒng)處理來自惡意設(shè)備的消息,在保證系統(tǒng)可靠的同時(shí),提高系統(tǒng)的性能。
2.3.1 基于Reactor模型與負(fù)載預(yù)測的響應(yīng)機(jī)制
Reactor模型,尤其是較多使用的主從Reactor多線程模型,的特點(diǎn)是將TCP/IP中通信的連接與處理部分用多線程的方式分割開來。傳統(tǒng)的工業(yè)服務(wù)器,由于服務(wù)的對象往往只有數(shù)量較少的生產(chǎn)設(shè)備,因此大多通過線程池的方式,將每個(gè)連接分發(fā)了相對獨(dú)立的線程處理,而由于業(yè)務(wù)處理的復(fù)雜性以及I/O操作的阻塞特性,限制了服務(wù)器性能,消息響應(yīng)較慢,因此這種通信機(jī)制不能滿足CPS高設(shè)備請求并發(fā)量的業(yè)務(wù)需求。通過引入主從Reactor多線程模型,將服務(wù)器對端口的輪詢監(jiān)聽服務(wù)和業(yè)務(wù)數(shù)據(jù)處理分割開來,提高服務(wù)器性能。主線程負(fù)責(zé)監(jiān)聽端口,只負(fù)責(zé)對新接入的連接進(jìn)行響應(yīng),從線程負(fù)責(zé)業(yè)務(wù)處理。
線程的創(chuàng)建與銷毀,對系統(tǒng)的性能有一定的影響,在高并發(fā)服務(wù)器中這個(gè)性能影響尤其嚴(yán)重,所以引入線程池的方式,可以有限減少線程的創(chuàng)建造成的系統(tǒng)負(fù)擔(dān),而線程池中閑置線程的數(shù)量可以通過負(fù)載預(yù)測的方式進(jìn)行數(shù)量控制。通過定義采樣周期T,使用Δw表示兩次觀測線程池變化量,閑置線程池的線程量用m表示,消息處理的負(fù)載能力用Lt表示,因此任務(wù)所需的線程增量Δk則可以表示為:
線程的增量表示下一階段消息處理需要增加的線程數(shù)量,引入這種動態(tài)負(fù)載預(yù)測方式可以有效控制閑置線程的數(shù)量,減少系統(tǒng)資源的占用。
2.3.2 消息優(yōu)先隊(duì)列與時(shí)間周期管理機(jī)制
傳統(tǒng)的應(yīng)用程序常采用消息隊(duì)列作為處理消息的方式,這種消息處理機(jī)制通過輪詢的方式不斷讀取隊(duì)列中的消息,消耗并處理隊(duì)列頭部消息,而新到消息不斷添加到隊(duì)列尾部。
信息物理融合系統(tǒng)和傳統(tǒng)工業(yè)系統(tǒng)不同,不同的設(shè)備單元、多樣的消息內(nèi)容導(dǎo)致傳統(tǒng)的消息機(jī)制不能保證消息處理的時(shí)間周期,某一條消息的過長響應(yīng)時(shí)間對設(shè)備單元的影響,會導(dǎo)致其他設(shè)備單元出現(xiàn)執(zhí)行問題。同時(shí),設(shè)備單元的重要性和不同消息的復(fù)雜度,要求信息物理融合系統(tǒng)對不同的消息需要提供更加合理的響應(yīng)時(shí)間,因此本文設(shè)計(jì)并實(shí)現(xiàn)了一種新的消息機(jī)制以便解決消息響應(yīng)實(shí)時(shí)性和優(yōu)先級問題。消息處理機(jī)制的設(shè)計(jì)如圖3所示。
圖3 CPS信息層中的消息處理機(jī)制
將傳統(tǒng)的消息隊(duì)列改為有優(yōu)先級的優(yōu)先隊(duì)列,根據(jù)消息的權(quán)重,將消息保存在大頂堆中。權(quán)重較大、優(yōu)先級較高的消息保存在堆的頂端,而新接收到的外部消息首先插入堆的尾端,再根據(jù)優(yōu)先級進(jìn)行動態(tài)調(diào)整,由此構(gòu)成基本的消息處理模塊。同時(shí),為了控制消息處理的時(shí)間周期,以此保證設(shè)備單元響應(yīng)的實(shí)時(shí)性,在消息處理機(jī)制中引入時(shí)間周期管理模塊。時(shí)間周期管理模塊負(fù)責(zé)分配處理消息的時(shí)間片周期,保證單個(gè)消息在其相應(yīng)的時(shí)間周期中得到處理。若消息的處理時(shí)間超過設(shè)置的周期范圍,可以根據(jù)具體情況采用重試、重傳等方式進(jìn)行處理,保證系統(tǒng)的可靠性。對于某設(shè)備單元的消息處理,如果出現(xiàn)多次、較長處理時(shí)間等問題,可利用時(shí)間周期管理模塊進(jìn)行日志記錄。而消息處理機(jī)制中的處理模塊則根據(jù)單個(gè)消息中的解析內(nèi)容以及系統(tǒng)的設(shè)備狀態(tài)量,生成相應(yīng)的響應(yīng)消息,即設(shè)備單元的控制信息。
工業(yè)生產(chǎn)系統(tǒng)往往采用單主控的方式,如基于可編程邏輯控制器PLC設(shè)計(jì)的控制系統(tǒng)。PLC系統(tǒng)的本質(zhì)是循環(huán)運(yùn)行的系統(tǒng),利用信息輸入改變內(nèi)部的運(yùn)行狀態(tài),利用輸出信息控制相應(yīng)的執(zhí)行機(jī)構(gòu)。感知單元由各種傳感器組成,包括限位傳感器、溫度傳感器、紅外傳感器等,PLC在執(zhí)行過程中不斷輪詢各個(gè)感知單元相應(yīng)的狀態(tài)位信號,變更不同的控制路線,因此協(xié)調(diào)不同執(zhí)行機(jī)構(gòu)進(jìn)行工作,物理系統(tǒng)結(jié)構(gòu),如圖4所示。在CPS系統(tǒng)中,設(shè)備單元數(shù)量的增多,這因此導(dǎo)致PLC對復(fù)雜的環(huán)境變化和不可預(yù)測的物理交互往往不能全部兼顧,而且循環(huán)控制邏輯和基于事件響應(yīng)的常規(guī)思維方式又有所差異,這兩個(gè)原因?qū)е旅嫦騊LC編程變得更加復(fù)雜[12]。
圖4 基于PLC的傳統(tǒng)構(gòu)建模式
通過引入多代理智能系統(tǒng)的概念,將生產(chǎn)系統(tǒng)中的任務(wù)進(jìn)行最低限度的劃分,如通過兩個(gè)基本的限位傳感器、單軸模塊、驅(qū)動器以及PLC構(gòu)成一個(gè)基本的設(shè)備單元CPSA,其核心作用就是實(shí)現(xiàn)負(fù)載的推拉動作,將這一工作稱為一個(gè)原子服務(wù),這樣我們同樣可以基于PLC、傳感器和機(jī)械臂構(gòu)成一個(gè)CPSA,其作用就是機(jī)械臂的末端從一點(diǎn)運(yùn)行到另一點(diǎn),實(shí)現(xiàn)抓取功能,如圖5所示。CPSA內(nèi)部的功能代碼可以根據(jù)不同需求與方式進(jìn)行開發(fā),但是同類型的CPSA其外在表現(xiàn)功能應(yīng)屬于同一類別。通過這種設(shè)計(jì)方式,同時(shí)基于PLCopen標(biāo)準(zhǔn)的運(yùn)動控制模塊,CPSA內(nèi)部可以用一個(gè)時(shí)間自動機(jī)來表示運(yùn)動過程的狀態(tài)轉(zhuǎn)換[11],但是對外只表現(xiàn)出請求態(tài)、執(zhí)行態(tài)、停止態(tài)等少量狀態(tài),這避免了傳統(tǒng)PLC開發(fā)的復(fù)雜度,也避免了信息物理融合系統(tǒng)在多設(shè)備單元情況下容易出現(xiàn)的狀態(tài)空間爆炸問題。
圖5 基于CPSA的構(gòu)建模式
為了研究面向運(yùn)動控制的信息物理融合系統(tǒng)方案,實(shí)驗(yàn)室搭建了一套可定制化生產(chǎn)飲品的生產(chǎn)線設(shè)備。項(xiàng)目前期采用的是傳統(tǒng)控制方案,流水線設(shè)備采用PLC進(jìn)行整體的控制,所以服務(wù)器的核心作用是進(jìn)行訂單管理,PLC每生產(chǎn)完一批飲品,則通過網(wǎng)絡(luò)請求訂單數(shù)據(jù),根據(jù)這種特點(diǎn),服務(wù)器采用了普通的BIO方式用于處理網(wǎng)絡(luò)請求。在CPS系統(tǒng)中,采用了本文的模型用于提高系統(tǒng)性能,因此在實(shí)驗(yàn)中通過分析系統(tǒng)的資源消耗、響應(yīng)時(shí)間等方面對兩種服務(wù)器的性能進(jìn)行對比。
由于并發(fā)量的提高,服務(wù)器的線程數(shù)量激增,對系統(tǒng)資源影響,尤其是CPU占用率的影響會比較明顯。利用Java中CountDownLatch同步輔助類實(shí)現(xiàn)一個(gè)可以提供高并量的模擬程序,用于模擬大量物理設(shè)備同時(shí)訪問服務(wù)器的實(shí)驗(yàn)。如圖6所示,普通IO在并發(fā)量增高時(shí),CPU占用率持續(xù)上升。而采用本文模型,事先設(shè)定了主從Reactor中所需的線程數(shù),雖然最初使CPU占用比普通IO方式略高,但是占用率上升比較平緩且不高,負(fù)載預(yù)測機(jī)制保證了服務(wù)器在應(yīng)對穩(wěn)定增長并發(fā)量時(shí),逐漸增加工作線程,確保了系統(tǒng)的穩(wěn)定性。
圖6 服務(wù)器資源消耗對比
圖7 服務(wù)器響應(yīng)時(shí)間對比