□ 汪振江
上海電氣集團股份有限公司 中央研究院 上海 200070
隨著現代制造業的發展和數字化轉型,如何基于設備來構建物聯網平臺,并對其進行自動化、智能化改造和云計算,成為了當前重要的研究課題。在工業領域中,基于物聯網平臺的云控制系統在傳統企業數字化轉型中的作用愈發重要。比如,液壓、機床、鍋爐、汽輪機等傳統行業中涉及到的工業設備,都會用重要的監控參數和智能化控制技術來評估和改變生產狀態,具體過程為通過采集設備數據來直接描述設備畫像,進而監測設備的健康狀態。針對復雜機械結構的設備發生的故障,因不方便進行檢查和維修,故通過采集數據對設備進行算法建模,進而進行故障識別或壽命預測,同時確定巡檢時間。用戶在云端通過創建或更新控制策略來對線下設備進行反饋配置,實現對數據采集方式和執行方式的調整。
以上描述的設備數字化應用場景,也是工廠智能化的具體表現和實際需求。
目前,基于物聯網平臺的仿真技術能逼真地模擬被測系統的運行條件和生產狀態,隨著編程語言在嵌入式開發中得到廣泛應用,為在物聯網平臺上構建控制程序,再下發到終端網關來操控實際系統提供了技術支撐。
鑒于工業領域對設備智能化的需求及對通用數據的采集和實時監控的要求,一般會利用AMESim軟件先建立控制系統模型,然后進行仿真,將實際的物理系統以數字孿生的方式來達到線上可視化的效果,再進行監控和預測性維護。這種方式的缺點是,缺乏設備動作調整的靈活性。
筆者采用瀏覽器/服務器架構,由前端可拖拽配置模塊、Python自動化編程模塊、硬件配置模塊組成,以完成反饋控制功能。圖形交互式自動化編程流程如圖1所示。前端可拖拽配置模塊的功能為云端虛擬現實系統中各物理元件按特定連接關系組成系統,并提交配置信息。Python自動化編程模塊的功能為接收配置信息,生成控制程序,并下發到網關盒子終端。硬件配置模塊的功能為解析控制程序,通過信號來控制設備執行的方式和數據采集策略的更新。

▲圖1 圖形交互式自動化編程流程
通過控制系統對關鍵元件指標,如電機轉速、閥門開度、泵進出口流量、電磁鐵信號等進行靈活控制,是設備智能化的一般實現方式。在這一方式中,信號元件對應現實系統中的信號發生器設備,狀態機元件對應信號變換的跳轉條件,二者在網絡前端以可視化組件的方式展現,每個信號元件和狀態機元件都有特定的屬性和參數。在建立系統時,需要用戶虛擬線下物理系統,即在前端拖拽式地拉取元件圖標進行相連,來組成工作流程,并根據系統特性來對信號元件和狀態機元件的參數進行配置。元件及狀態機屬性配置界面如圖2所示。

▲圖2 元件及狀態機屬性配置界面
信號元件要按特定的規則進行連接,以反映信號數據的變換。信號元件在提交給Python自動化編程模塊時,不僅需要傳遞信號元件自身的配置信息,還要傳遞每個工作流程有序的信號元件連接關系。元件連接順序的確定按如下步驟進行:
(1) 由于每個工作流程有一個OUT元件,因此遍歷找出所有OUT元件,即可確定工作流程的數量;
(2) 每個工作流程設置一個根節點列表和一個順序編號列表,將OUT元件節點名稱放入根節點列表;
(3) 根據信號元件兩兩連接信息找出與根節點列表中相連的信號元件和連接關系記錄,將各條連接關系記錄按遞增方式賦值,并寫入順序編號列表中,根節點列表更新為與其相連的信號元件名稱。同級別元件連接關系無序,可順序賦值;
(4) 循環進行步驟(3),直到順序編號列表最大值不小于整個工作流程的連接關系數量,然后跳出循環步驟;
(5) 被順序編號列表賦值后的信號元件連接關系如圖3所示,OUT口附近是編號較小的值,IN口附近是編號較大的值,由于信號的傳輸是從IN口到OUT口,因此將連接關系按從大到小的順序排列,即可得到每個工作流程按順序排列的信號元件連接關系。
Python自動化編程模塊采用基于Flask的網絡框架來接收前端發起的超文本傳輸協議請求,信號元件的功能代表了特定的無狀態函數,如圖4所示。在讀取相關信號元件時,Python自動化編程模塊會將對應函數讀取,并寫入目標Python程序中,同時將信號元件的屬性作為配置參數傳遞給該目標程序。

▲圖4 信號元件對應無狀態函數
通過網絡接口方式接收到前端可拖拽配置模塊傳來的信號元件配置信息和工作流程連接信息后,對四個方面的核心配置進行解析,形成可執行程序。
第一,對網關盒子相關配置參數進行解析。ADC、頻率、PWM是網關寄存器的相關配置,如圖5所示。此處配置主要是確定和反饋數據采集時的通道選取和綁定。在解析過程中,采集通道輸出的結果、計算結果的換算因數和偏移量都作為靜態變量存儲至可執行程序的頭部。
第二,對表征狀態轉換條件的狀態機相關配置參數進行解析。定義狀態機程序函數,根據可拖拽配置模板提交的狀態機變換配置,確定程序中狀態切換的條件和規則。當狀態切換標識DI[0]為true,并且狀態機當前模式為STATE[0]時,切換到STATE[1]。當狀態切換標識DI[1]為true,并且狀態機當前模式為STATE[1]時,切換到STATE[0]。狀態機配置條件如圖6所示。

▲圖6 狀態機配置條件
第三,對信號元件配置信息進行解析。讀取信號元件配置信息后,解析各信號元件的常量參數和變量參數,自動寫入待生成的目標Python程序中待用,并找出在后臺預設的元件函數,同樣寫入目標Python程序中。
第四,對工作流程連接關系進行解析。首先對工作流程分片,確定工作流程數量,創建對應數量的工作流程函數。然后在每個工作流程函數中,逐條根據該工作流程內的連接關系,調用上一步的常量參數、變量函數和對應的元件函數,組成每行的控制程序代碼。最后在工作流程函數編寫完成后,主程序自動將所編寫的工作流程函數添加到對應的相關聯狀態機的任務列表中。
運行Python自動化編程模塊的主程序,可生成獨立的可執行Python程序。將程序加密為pyd格式文件后下發到終端,根據加密特性,在源碼未知的情況下,終端可以根據定義進行調用和運行。
在工業設備數字化智能控制和運維的場景中,筆者設計的方法能夠在云端輔助工程師進行工業設備的系統設計、可視化數據展示和對終端進行反饋控制。工程機械場景中控制流程如圖7所示。在云端客戶機通過可拖拽方式構建系統,向Python自動化編程模塊提交靜態資源和控制信息,生成可執行程序。隨后進行本地存儲,方便下次直接轉發。并通過消息隊列遙測傳輸協議,下發程序到網關。
網關運行程序、解析控制邏輯后,產生特定信號對相連的邊緣設備進行控制,并向云端發送更新控制策略后的執行結果。在傳統裝備企業的數字化轉型場景中,這一方法能有效提高設備智能運維、數據分析、故障處理的效率。
筆者技術方案具有三方面特點。
(1) 這一技術方案不僅使控制系統的執行流程可視化,還可進行靈活調整,并實時反饋到終端進行數據采集和控制策略的更新。
(2) 技術方案中的Python程序采用控制元件函數、元件基礎參數配置、工作流程復雜邏輯配置,針對網絡前端構建不同的控制策略,進行自動化編程,形成可執行程序,省去人工對不同策略控制程序的手動編碼,大大提高部署效率和終端利用率。
(3) 由這一技術方案打通的數據鏈路,為技術人員從不同維度進行數據分析提供了場景和數據支持。在改變數據采集及控制策略后,邊緣端設備和云端可同步進行數據更新和后續作業,省去在數據采集和轉換方面的人工調試成本。
圖形交互式自動化編程在物聯網終端控制中的應用,為不同工業場景中云端自動化控制線下物理系統提供了新的解決方案。工業系統中設備配置自動化和智能化,是發展的未來趨勢。目前主要依靠人工干預,結合圖形交互式自動化編程方法構建的云端控制系統,為場景提供一種線上的工業系統可通用、可配置控制方案。根據行業測算,在國內和國際上,有成千上萬的工業系統試驗臺需要遠程控制并智能化改造,控制模塊的自動化及云服務能大大節省人工成本,提高效率,具有極高的應用價值。