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