□ 汪振江
上海電氣集團(tuán)股份有限公司 中央研究院 上海 200070
隨著現(xiàn)代制造業(yè)的發(fā)展和數(shù)字化轉(zhuǎn)型,如何基于設(shè)備來(lái)構(gòu)建物聯(lián)網(wǎng)平臺(tái),并對(duì)其進(jìn)行自動(dòng)化、智能化改造和云計(jì)算,成為了當(dāng)前重要的研究課題。在工業(yè)領(lǐng)域中,基于物聯(lián)網(wǎng)平臺(tái)的云控制系統(tǒng)在傳統(tǒng)企業(yè)數(shù)字化轉(zhuǎn)型中的作用愈發(fā)重要。比如,液壓、機(jī)床、鍋爐、汽輪機(jī)等傳統(tǒng)行業(yè)中涉及到的工業(yè)設(shè)備,都會(huì)用重要的監(jiān)控參數(shù)和智能化控制技術(shù)來(lái)評(píng)估和改變生產(chǎn)狀態(tài),具體過(guò)程為通過(guò)采集設(shè)備數(shù)據(jù)來(lái)直接描述設(shè)備畫(huà)像,進(jìn)而監(jiān)測(cè)設(shè)備的健康狀態(tài)。針對(duì)復(fù)雜機(jī)械結(jié)構(gòu)的設(shè)備發(fā)生的故障,因不方便進(jìn)行檢查和維修,故通過(guò)采集數(shù)據(jù)對(duì)設(shè)備進(jìn)行算法建模,進(jìn)而進(jìn)行故障識(shí)別或壽命預(yù)測(cè),同時(shí)確定巡檢時(shí)間。用戶(hù)在云端通過(guò)創(chuàng)建或更新控制策略來(lái)對(duì)線(xiàn)下設(shè)備進(jìn)行反饋配置,實(shí)現(xiàn)對(duì)數(shù)據(jù)采集方式和執(zhí)行方式的調(diào)整。
以上描述的設(shè)備數(shù)字化應(yīng)用場(chǎng)景,也是工廠(chǎng)智能化的具體表現(xiàn)和實(shí)際需求。
目前,基于物聯(lián)網(wǎng)平臺(tái)的仿真技術(shù)能逼真地模擬被測(cè)系統(tǒng)的運(yùn)行條件和生產(chǎn)狀態(tài),隨著編程語(yǔ)言在嵌入式開(kāi)發(fā)中得到廣泛應(yīng)用,為在物聯(lián)網(wǎng)平臺(tái)上構(gòu)建控制程序,再下發(fā)到終端網(wǎng)關(guān)來(lái)操控實(shí)際系統(tǒng)提供了技術(shù)支撐。
鑒于工業(yè)領(lǐng)域?qū)υO(shè)備智能化的需求及對(duì)通用數(shù)據(jù)的采集和實(shí)時(shí)監(jiān)控的要求,一般會(huì)利用AMESim軟件先建立控制系統(tǒng)模型,然后進(jìn)行仿真,將實(shí)際的物理系統(tǒng)以數(shù)字孿生的方式來(lái)達(dá)到線(xiàn)上可視化的效果,再進(jìn)行監(jiān)控和預(yù)測(cè)性維護(hù)。這種方式的缺點(diǎn)是,缺乏設(shè)備動(dòng)作調(diào)整的靈活性。
筆者采用瀏覽器/服務(wù)器架構(gòu),由前端可拖拽配置模塊、Python自動(dòng)化編程模塊、硬件配置模塊組成,以完成反饋控制功能。圖形交互式自動(dòng)化編程流程如圖1所示。前端可拖拽配置模塊的功能為云端虛擬現(xiàn)實(shí)系統(tǒng)中各物理元件按特定連接關(guān)系組成系統(tǒng),并提交配置信息。Python自動(dòng)化編程模塊的功能為接收配置信息,生成控制程序,并下發(fā)到網(wǎng)關(guān)盒子終端。硬件配置模塊的功能為解析控制程序,通過(guò)信號(hào)來(lái)控制設(shè)備執(zhí)行的方式和數(shù)據(jù)采集策略的更新。
▲圖1 圖形交互式自動(dòng)化編程流程
通過(guò)控制系統(tǒng)對(duì)關(guān)鍵元件指標(biāo),如電機(jī)轉(zhuǎn)速、閥門(mén)開(kāi)度、泵進(jìn)出口流量、電磁鐵信號(hào)等進(jìn)行靈活控制,是設(shè)備智能化的一般實(shí)現(xiàn)方式。在這一方式中,信號(hào)元件對(duì)應(yīng)現(xiàn)實(shí)系統(tǒng)中的信號(hào)發(fā)生器設(shè)備,狀態(tài)機(jī)元件對(duì)應(yīng)信號(hào)變換的跳轉(zhuǎn)條件,二者在網(wǎng)絡(luò)前端以可視化組件的方式展現(xiàn),每個(gè)信號(hào)元件和狀態(tài)機(jī)元件都有特定的屬性和參數(shù)。在建立系統(tǒng)時(shí),需要用戶(hù)虛擬線(xiàn)下物理系統(tǒng),即在前端拖拽式地拉取元件圖標(biāo)進(jìn)行相連,來(lái)組成工作流程,并根據(jù)系統(tǒng)特性來(lái)對(duì)信號(hào)元件和狀態(tài)機(jī)元件的參數(shù)進(jìn)行配置。元件及狀態(tài)機(jī)屬性配置界面如圖2所示。
▲圖2 元件及狀態(tài)機(jī)屬性配置界面
信號(hào)元件要按特定的規(guī)則進(jìn)行連接,以反映信號(hào)數(shù)據(jù)的變換。信號(hào)元件在提交給Python自動(dòng)化編程模塊時(shí),不僅需要傳遞信號(hào)元件自身的配置信息,還要傳遞每個(gè)工作流程有序的信號(hào)元件連接關(guān)系。元件連接順序的確定按如下步驟進(jìn)行:
(1) 由于每個(gè)工作流程有一個(gè)OUT元件,因此遍歷找出所有OUT元件,即可確定工作流程的數(shù)量;
(2) 每個(gè)工作流程設(shè)置一個(gè)根節(jié)點(diǎn)列表和一個(gè)順序編號(hào)列表,將OUT元件節(jié)點(diǎn)名稱(chēng)放入根節(jié)點(diǎn)列表;
(3) 根據(jù)信號(hào)元件兩兩連接信息找出與根節(jié)點(diǎn)列表中相連的信號(hào)元件和連接關(guān)系記錄,將各條連接關(guān)系記錄按遞增方式賦值,并寫(xiě)入順序編號(hào)列表中,根節(jié)點(diǎn)列表更新為與其相連的信號(hào)元件名稱(chēng)。同級(jí)別元件連接關(guān)系無(wú)序,可順序賦值;
(4) 循環(huán)進(jìn)行步驟(3),直到順序編號(hào)列表最大值不小于整個(gè)工作流程的連接關(guān)系數(shù)量,然后跳出循環(huán)步驟;
(5) 被順序編號(hào)列表賦值后的信號(hào)元件連接關(guān)系如圖3所示,OUT口附近是編號(hào)較小的值,IN口附近是編號(hào)較大的值,由于信號(hào)的傳輸是從IN口到OUT口,因此將連接關(guān)系按從大到小的順序排列,即可得到每個(gè)工作流程按順序排列的信號(hào)元件連接關(guān)系。
Python自動(dòng)化編程模塊采用基于Flask的網(wǎng)絡(luò)框架來(lái)接收前端發(fā)起的超文本傳輸協(xié)議請(qǐng)求,信號(hào)元件的功能代表了特定的無(wú)狀態(tài)函數(shù),如圖4所示。在讀取相關(guān)信號(hào)元件時(shí),Python自動(dòng)化編程模塊會(huì)將對(duì)應(yīng)函數(shù)讀取,并寫(xiě)入目標(biāo)Python程序中,同時(shí)將信號(hào)元件的屬性作為配置參數(shù)傳遞給該目標(biāo)程序。
▲圖4 信號(hào)元件對(duì)應(yīng)無(wú)狀態(tài)函數(shù)
通過(guò)網(wǎng)絡(luò)接口方式接收到前端可拖拽配置模塊傳來(lái)的信號(hào)元件配置信息和工作流程連接信息后,對(duì)四個(gè)方面的核心配置進(jìn)行解析,形成可執(zhí)行程序。
第一,對(duì)網(wǎng)關(guān)盒子相關(guān)配置參數(shù)進(jìn)行解析。ADC、頻率、PWM是網(wǎng)關(guān)寄存器的相關(guān)配置,如圖5所示。此處配置主要是確定和反饋數(shù)據(jù)采集時(shí)的通道選取和綁定。在解析過(guò)程中,采集通道輸出的結(jié)果、計(jì)算結(jié)果的換算因數(shù)和偏移量都作為靜態(tài)變量存儲(chǔ)至可執(zhí)行程序的頭部。
第二,對(duì)表征狀態(tài)轉(zhuǎn)換條件的狀態(tài)機(jī)相關(guān)配置參數(shù)進(jìn)行解析。定義狀態(tài)機(jī)程序函數(shù),根據(jù)可拖拽配置模板提交的狀態(tài)機(jī)變換配置,確定程序中狀態(tài)切換的條件和規(guī)則。當(dāng)狀態(tài)切換標(biāo)識(shí)DI[0]為true,并且狀態(tài)機(jī)當(dāng)前模式為STATE[0]時(shí),切換到STATE[1]。當(dāng)狀態(tài)切換標(biāo)識(shí)DI[1]為true,并且狀態(tài)機(jī)當(dāng)前模式為STATE[1]時(shí),切換到STATE[0]。狀態(tài)機(jī)配置條件如圖6所示。
▲圖6 狀態(tài)機(jī)配置條件
第三,對(duì)信號(hào)元件配置信息進(jìn)行解析。讀取信號(hào)元件配置信息后,解析各信號(hào)元件的常量參數(shù)和變量參數(shù),自動(dòng)寫(xiě)入待生成的目標(biāo)Python程序中待用,并找出在后臺(tái)預(yù)設(shè)的元件函數(shù),同樣寫(xiě)入目標(biāo)Python程序中。
第四,對(duì)工作流程連接關(guān)系進(jìn)行解析。首先對(duì)工作流程分片,確定工作流程數(shù)量,創(chuàng)建對(duì)應(yīng)數(shù)量的工作流程函數(shù)。然后在每個(gè)工作流程函數(shù)中,逐條根據(jù)該工作流程內(nèi)的連接關(guān)系,調(diào)用上一步的常量參數(shù)、變量函數(shù)和對(duì)應(yīng)的元件函數(shù),組成每行的控制程序代碼。最后在工作流程函數(shù)編寫(xiě)完成后,主程序自動(dòng)將所編寫(xiě)的工作流程函數(shù)添加到對(duì)應(yīng)的相關(guān)聯(lián)狀態(tài)機(jī)的任務(wù)列表中。
運(yùn)行Python自動(dòng)化編程模塊的主程序,可生成獨(dú)立的可執(zhí)行Python程序。將程序加密為pyd格式文件后下發(fā)到終端,根據(jù)加密特性,在源碼未知的情況下,終端可以根據(jù)定義進(jìn)行調(diào)用和運(yùn)行。
在工業(yè)設(shè)備數(shù)字化智能控制和運(yùn)維的場(chǎng)景中,筆者設(shè)計(jì)的方法能夠在云端輔助工程師進(jìn)行工業(yè)設(shè)備的系統(tǒng)設(shè)計(jì)、可視化數(shù)據(jù)展示和對(duì)終端進(jìn)行反饋控制。工程機(jī)械場(chǎng)景中控制流程如圖7所示。在云端客戶(hù)機(jī)通過(guò)可拖拽方式構(gòu)建系統(tǒng),向Python自動(dòng)化編程模塊提交靜態(tài)資源和控制信息,生成可執(zhí)行程序。隨后進(jìn)行本地存儲(chǔ),方便下次直接轉(zhuǎn)發(fā)。并通過(guò)消息隊(duì)列遙測(cè)傳輸協(xié)議,下發(fā)程序到網(wǎng)關(guān)。
網(wǎng)關(guān)運(yùn)行程序、解析控制邏輯后,產(chǎn)生特定信號(hào)對(duì)相連的邊緣設(shè)備進(jìn)行控制,并向云端發(fā)送更新控制策略后的執(zhí)行結(jié)果。在傳統(tǒng)裝備企業(yè)的數(shù)字化轉(zhuǎn)型場(chǎng)景中,這一方法能有效提高設(shè)備智能運(yùn)維、數(shù)據(jù)分析、故障處理的效率。
筆者技術(shù)方案具有三方面特點(diǎn)。
(1) 這一技術(shù)方案不僅使控制系統(tǒng)的執(zhí)行流程可視化,還可進(jìn)行靈活調(diào)整,并實(shí)時(shí)反饋到終端進(jìn)行數(shù)據(jù)采集和控制策略的更新。
(2) 技術(shù)方案中的Python程序采用控制元件函數(shù)、元件基礎(chǔ)參數(shù)配置、工作流程復(fù)雜邏輯配置,針對(duì)網(wǎng)絡(luò)前端構(gòu)建不同的控制策略,進(jìn)行自動(dòng)化編程,形成可執(zhí)行程序,省去人工對(duì)不同策略控制程序的手動(dòng)編碼,大大提高部署效率和終端利用率。
(3) 由這一技術(shù)方案打通的數(shù)據(jù)鏈路,為技術(shù)人員從不同維度進(jìn)行數(shù)據(jù)分析提供了場(chǎng)景和數(shù)據(jù)支持。在改變數(shù)據(jù)采集及控制策略后,邊緣端設(shè)備和云端可同步進(jìn)行數(shù)據(jù)更新和后續(xù)作業(yè),省去在數(shù)據(jù)采集和轉(zhuǎn)換方面的人工調(diào)試成本。
圖形交互式自動(dòng)化編程在物聯(lián)網(wǎng)終端控制中的應(yīng)用,為不同工業(yè)場(chǎng)景中云端自動(dòng)化控制線(xiàn)下物理系統(tǒng)提供了新的解決方案。工業(yè)系統(tǒng)中設(shè)備配置自動(dòng)化和智能化,是發(fā)展的未來(lái)趨勢(shì)。目前主要依靠人工干預(yù),結(jié)合圖形交互式自動(dòng)化編程方法構(gòu)建的云端控制系統(tǒng),為場(chǎng)景提供一種線(xiàn)上的工業(yè)系統(tǒng)可通用、可配置控制方案。根據(jù)行業(yè)測(cè)算,在國(guó)內(nèi)和國(guó)際上,有成千上萬(wàn)的工業(yè)系統(tǒng)試驗(yàn)臺(tái)需要遠(yuǎn)程控制并智能化改造,控制模塊的自動(dòng)化及云服務(wù)能大大節(jié)省人工成本,提高效率,具有極高的應(yīng)用價(jià)值。