魏 堅,劉廣杰,黃云鷹,陸劍峰
(1.同濟大學 電子與信息工程學院/CIMS研究中心,上海 201800;2.智能云科信息科技有限公司,上海 200082;3.沈機(上海)智能系統研發設計有限公司,上海 200082)
在2002年,以通用汽車為代表的企業開始提出工業互聯網的概念,并把工業互聯網作為制造業升級的核心[1]。工業互聯網是基于海量數據采集、匯聚、分析的服務體系,它從機器處獲取數據,然后通過平臺匯集數據并進行分析,最后通過分析的結果來調整操作[2]。工業互聯網作為一種基礎設施,它連接了工業中的生產系統、產業鏈和價值鏈。它的結構如圖1所示,主要由4部分組成。
1)邊緣層:通過協議轉換和感知技術對設備、系統、運行環境等要素信息進行數據采集,并將采集好的數據傳送到云端。
2)IaaS層(Infrastructurea saService,基礎設施即服務):將基礎的計算網絡存儲資源虛擬化,以實現基礎設施資源的池化,從而向用戶提供可計量、彈性化的資源服務。
3)平臺層:主要是指工業PaaS(PlatformasaService,平臺即服務),這層是工業互聯網的核心層。通過構建實時、可靠、安全的平臺,將大量的工業技術原理、基礎模塊、行業知識規則化、軟件化、模塊化[3],并將這些封裝成為可以重復使用的微服務,從而降低程序開發的門檻和開發成本。
4)應用層:主要是指工業SaaS(Softwareasaservice,軟件及服務),這層以第三方開發者和行業用戶為主。第三方開發者結合特定的工業應用場景將平臺層的微服務進行再封裝(即工業APP),行業用戶通過對工業APP的調用以實現對特定制造資源的優化配置[4]。

圖1 工業互聯網的結構
工業互聯網APP,簡稱工業APP,是基于工業互聯網,承載工藝技術、工藝經驗、工業知識,并且滿足特定需求的工業應用軟件[5]。工業互聯網通過構建應用開發環境,借助工業應用開發工具和微服務組件,可以幫助應用層的用戶快速構建定制化的工業APP。正是由于工業互聯網的快速發展,工業APP在近幾年實現了飛躍式的提升[6]。
但是由于我國的工業互聯網正處于初級發展階段,工業APP的開發遇到了瓶頸。其一,基于平臺層開發的工業APP數量比較少。目前大部分的工業APP都是把云平臺上的軟件進行“移植”,即將云平臺上的功能封裝成工業APP,真正從設備的機理模型衍生出來的工業APP數量比較少。其二,現象級的工業APP比較少,我國大多數的工業APP只是局限于某個企業、某個組織,缺乏在行業內通用的工業APP[7]。其三,工業APP和工業設備層關系密切,目前缺少一種能嵌入到設備層的通用開發平臺。
本文介紹了沈機(上海)智能系統研發設計有限公司發布的i5OS系統,及其APP開發平臺和開發架構,然后提供了利用該開發平臺開發工業APP的流程,最終實現在iSESOL工業互聯網平臺上線和應用,最后通過一個具體的案例進行了開發過程的完整說明。
從2007年開始,沈陽機床(集團)有限責任公司在上海成立數控系統核心技術研發團隊。起初是對運動控制核心技術進行研發,歷經5年,終于在2012年實現技術突破,并開始實施產業化進程并相繼發布了一系列i5智能數控系統。2015年沈機(上海)智能系統研發設計有限公司成立(以下簡稱“沈機智能”)并負責i5的產業化應用。2017年沈機智能研發成功并發布了自主、安全、可控的工業操作系統系統i5OS。
i5OS是基于linux系統開發的管理工業控制硬件和軟件的整套技術體系,主要的開發語言是C/C++、Python、Shell腳本語言。i5OS的總體框架如圖2所示。i5OS主要由3層組成,第一層是i5OS認證設備層,經過認證的設備可以使用i5OS系統;第二層是i5OS底層平臺層,這層是i5OS的核心層,主要是將工業控制、運動控制底層核心技術封裝成API,并且提供工業APP開發的框架和協議;第三層是i5OS通用和專業APP層,通用APP是指所有通過i5OS認證的設備(機床、機器人、注塑機等設備)都能使用的APP,而專業APP是指面向特定設備設計的APP。

圖2 i5OS的總體框架
在i5OS系統中,沈機智能將運動控制核心技術進行模塊化封,形成標準的API,并提供了統一的工業APP開發平臺。在這個平臺上用戶可以調用這些標準的API,同時工業APP的開發框架是開放的,用戶可以自行設計。開發者可以聚焦行業特點,快速復用運動控制核心技術及相關基礎功能,面向不同行業、不同領域開發高價值的工業APP。
隨著工業互聯網的理念的普及,依托于“工業互聯+云服務+智能終端”的創新模式[8],智能云科信息科技有限公司(以下簡稱“智能云科”)構建了iSESOL工業互聯網云平臺。通過專門為互聯網環境設計的iport協議,制造設備可以連接到iSESOL工業互聯網平臺。iSESOL工業互聯網平臺可以實時采集連接到云平臺上的設備的數據,然后對這些數據進行大數據分析。在i5OS的工業APP開發平臺上也提供了訪問iSESOL工業互聯網平臺的相應接口,開發者不僅可以通過這些接口來訪問機床的數據,也可以調用云平臺上的服務組件、獲取云平臺大數據分析的結果。這樣不僅減少了工業APP所需的資源和時間,也在一定程度上擴展了工業APP的功能。
i5OS操作系統APP是運行在數控系統上的一類工業APP,其開發框架如圖3所示。整體框架的核心是coral腳本解析引擎,腳本引擎對象是IScripter,這是kiv內置的腳本解析工具,通過它可以來解析圖元和插件。圖元控件需要繼承基類IscripterObject和IvectorObject,插件需要繼承基類IScripterObject、IvectorObject和插件接口基類IPluginInterface,圖元和插件都需要給定唯一的標識符。整體框架的基礎是i5CNC解析器,它是圖元、插件和機床交互的媒介。

圖3 APP開發框架-kiv
通過豐富的圖元界面可以構建出高效的可視化操作界面,圖元的種類有很多,常用的圖元有5類。
1)按鈕圖元:按鈕圖元有button、puresvgbtn、enumbutton、svgbutton四種。Button是基礎按鈕圖元,puresvgbtn是可以設置背景圖片的按鈕圖元,enumbutton是文字或背景圖片可根據變量自動切換的按鈕圖元,svgbutton是可設置靜態背景圖片的按鈕圖元。
2)靜態文本圖元:靜態文本圖元只有text一種,用于顯示純文本。
3)動態文本圖元:動態文本圖元有ptext,enumptext兩種。ptext用于顯示動態腳本文本,enumptex用于顯示枚舉型腳本動態文本。
4)編輯器圖元:編輯器圖元有edit,piclistbox兩種。edit為文本編輯器圖元,piclistbox和edit類似,唯一區別在于piclistbox中完全使用圖片設置,而非字符串。
5)圖片圖元:圖片圖元只有svg一種,用于顯示引用的圖片,支持svg、png格式的圖片。
通過插件可以調用封裝好的運動核心技術和機床運行過程中的參數,插件模塊有4種。
1)alias.plugin:簡單的別名插件,主要供配置人員設置一些別名來減少重復代碼。
2)cnc.dev.plugin:訪問CNC插件,連接參數池并提供訪問、修改CNC參數的接口。
3)fun.kiv.plugin:通用接口插件,用于輔助其他插件的開發或獲得軟硬件信息。
4)netcheck.kiv.plugin:網絡檢查插件,用于檢查網絡的連接狀態。
kiv的啟動流程有6步。(1)啟動應用進程;(2)載入應用主皮膚xml配置文件(有多款皮膚可供選擇);(3)識別并載入相關的插件;(4)加載頁面以及頁面圖元控件信息;(5)執行啟動腳本;(6)執行周期性事件和響應鼠標事件。
kiv開發框架主要優勢如下所示:
1)通過腳本解析引擎coral來解析xml配置文件,用戶可以一鍵切換編輯環境與運行環境;
2)通過linux的平臺訪問接口來訪問底層操作設備和云平臺,而這種訪問是通過插件實現的,比較穩定和快捷;
3)擁有靈活的插件機制,每一個插件都有唯一的標志符,開發者可以在統一管理的插件框架下開發自己的插件;
4)提供了豐富的顯示圖元控件,用戶可以用圖元控件搭建APP界面;
5)實現了基于參數讀寫的CNC訪問方式,每個參數都有自己的讀寫權限;
6)開發語言多元,支持C/C++、Python、shell腳本語言。
現代數控機床的機械結構越來越復雜,同時對數控機床的自動化水平也不斷提高,僅僅靠人工的方式來檢驗機床的性能是不能滿足生產需求的,因此對數控機床的性能進行實時檢測具有十分重要的現實意義。常用的性能檢測的方法是對數控機床運行過程中的數據進行分析,建立運行數據和機床狀態之間的模型[9]。
本案例實現的主要功能是,1)實時的獲取機床的運行數據,包括本機的機床號,X、Y、Z軸的理論位置值、反饋位置值、理論速度值、反饋速度值;2)iSESOL工業互聯網平臺對機床運行過程中數據進行分析,得到機床的性能評分;3)數控機床上的APP調用云平臺上機床性能評分;4)APP將性能評分通過可視化的界面在數控機床上展示出來。

圖4 APP實現框架圖
APP的搭建流程如下。
1)使用常見的圖元搭建APP的界面;
2)通過載入插件cnc.dev.plugin來訪問機床的運行數據;
3)通過載入插件python3.plugin來調用python程序(python3.plugin是python和c++轉換的插件,需要自己編寫,這是因為圖元的框架是用C++來寫的,如果要在圖元里調用python程序,需要將python轉換成C++能訪問的形式),然后通過python程序來訪問云平臺的數據。
整個APP完成后的界面如圖5~圖7所示。圖5是登錄界面,賬號和密碼錯誤時會提醒重新輸入。圖6是參數展示界面,會實時地顯示數控機床的型號和X、Y、Z軸的理論位置、反饋位置、理論速度和反饋速度,可以選擇進入結果查詢界面,也可以選擇返回登錄界面。圖7是結果展示界面,可以選擇需要查詢的機床號(可以是本機床,也可以是操作人員權限范圍內可以查詢的其他機床),查詢時間是指需要查詢的性能測試處于機床所有測試中的時間位置,點擊確認會彈出一個對話框顯示性能測試的結果。

圖5 登錄界面

圖6 參數展示界面

圖7 結果查詢界面
本文先介紹了工業互聯網和工業APP的關系,然后以機床性能檢測結果查詢APP為例重點介紹了i5OS系統+iSESOL工業互聯網平臺以及在其上開發工業APP的方法,接著詳細論述了工業APP的開發架構,最后通過這個平臺開發出一款實時獲取機床數據并且從云平臺上獲取性能測試結果的工業APP。