摘 要:無線壓力變送器是一種基于無線通信協(xié)議的智能儀表設(shè)備,可實現(xiàn)壓力信號無線遠傳,方便用戶監(jiān)控調(diào)試。 從用戶定制到產(chǎn)業(yè)升級,通信方式的創(chuàng)新促成了產(chǎn)品測試方式的迭代,在多模無線通信充分覆蓋的智慧車間生產(chǎn)環(huán)境下,引入多協(xié)議融合、多終端監(jiān)控、多用戶協(xié)同的新型測試方案勢在必行。 shou先提出了一種測試系統(tǒng)的構(gòu)建模式———多視圖模型,然后設(shè)計了監(jiān)控、調(diào)試和測試軟件,進行了系統(tǒng)集成,#后在實際生產(chǎn)中驗證了系統(tǒng)的效率優(yōu)勢。
基于多視圖模型的無線壓力變送器測試系統(tǒng)
引言
相較傳統(tǒng)儀表,無線儀表在通信靈活性、測量實時性、使用便捷性等方面都具有優(yōu)勢。 在消費領(lǐng)域,具有遠程抄表功能的無線儀表已走入千家萬戶[1-3];在業(yè)務(wù)領(lǐng)域,無線儀表的應用優(yōu)勢同樣明顯,以壓力變送器為例,現(xiàn)有的油井壓力動態(tài)測量多采用關(guān)井測量[4]、滑架測量[5] 等方式,不但依賴現(xiàn)場人員和基礎(chǔ)設(shè)施,而且數(shù)據(jù)多為存儲回放,實時性較差。引入無線壓力變送器和通信網(wǎng)絡(luò)后,可以實時監(jiān)控油井壓力狀況,快速識別生產(chǎn)問題,從而降低現(xiàn)場安全風險[6]。
作為一款新興產(chǎn)品,無線壓力變送器在結(jié)構(gòu)與工藝上和傳統(tǒng)有線變送器有一定差異,因此,生產(chǎn)測試方法需要相應變化。 此產(chǎn)品起初是大型企業(yè)用戶的定制產(chǎn)品,其生產(chǎn)測試環(huán)節(jié)均是定制化的,需要投入較多人力成本和時間成本;如今,產(chǎn)品在石油、電力、水利等行業(yè)的應用范圍不斷增加,市場規(guī)模逐年擴大,要同時兼顧產(chǎn)能和良率,實行標準化、集群化、并行化的測試方式必不可少[7]。
為提升無線壓力變送器在車間生產(chǎn)線上的測試效率,整理了相關(guān)預備知識,shou先搭建了產(chǎn)品測試環(huán)節(jié)需要的通信拓撲結(jié)構(gòu),然后對傳統(tǒng)的視圖模型軟件架構(gòu)進行改良,形成了一套基于多視圖模型(Multi-View-Model)的快速開發(fā)模式,#后采用該模式開發(fā)了一套生產(chǎn)測試系統(tǒng),進行了應用驗證,證明了測試系統(tǒng)的便捷性、可用性和高效性。
1 系統(tǒng)概述
生產(chǎn)測試系統(tǒng)是一個包含用戶驗證、遠程監(jiān)控、現(xiàn)場調(diào)試、自動測試等子功能的多功能軟件,對管理人員、研發(fā)人員和操作人員提供了不同的軟件支持,有助于簡化工作流程,助力無線壓力變送器的標準化生產(chǎn),下面對系統(tǒng)研究對象、架構(gòu)方法、環(huán)境依賴三個方面進行介紹。
1. 1 無線壓力變送器
無線壓力變送器是一種智能儀表設(shè)備,在傳統(tǒng)壓力變送器的基礎(chǔ)上添加了無線通信模塊,采用電池供電,從而保證用戶現(xiàn)場的長期使用。
研究對象為SC-G08系列高精度無線智能變送器(0. 05%FS),是一種高性能無線壓力變送器,使用高靈敏度單晶硅復合傳感器和多參數(shù)補償算法,可選擇 ZigBee、LoRa、NB-IoT、WirelessHART 和 WIA-PA 等通信方式,支持星型、樹型和 Mesh 等組網(wǎng)方案[8]。
1. 2 視圖模型架構(gòu)
視圖模型(MVVM,Model-View-ViewModel) 是一種先金的軟件構(gòu)建模式,#早由 John Gossman 提出[9]。 與 MVC架構(gòu)[10]和 MVP 架構(gòu)[11] 相比,MVVM 架構(gòu)在軟件功能的前后端分離上更具優(yōu)勢(見圖 1),因此,在業(yè)界已有較為廣泛的框架應用研究與框架變體研究,如 WPF 桌面應用開發(fā),Silverlight 網(wǎng)絡(luò)應用開發(fā),以及基于 MVVM 模式的架構(gòu)變體ZK、Vue 和 Knockout 等[12]。
從圖 1 不難看出,三種架構(gòu)可概括為 MVB,即模型(Model)、 視 圖 ( View ) 以 及 視 圖 與 模 型 間 的 橋 接 器(Bridge)。 觀察從 MVC 到 MVVM 架構(gòu) Bridge 的迭代,可進一步明確 MVVM 的優(yōu)勢:
(1)操作解耦:與 MVC 相較,MVVM 引入了命令綁定器(Command Binder)來替代事件觸發(fā),避免了 View 對 Model的直接操作;
(2)數(shù)據(jù)解耦:與 MVP 相較,MVVM 引入了數(shù)據(jù)綁定器(Data Binder)來分離 GUI 代碼,使得軟件前端完全由數(shù)據(jù)驅(qū)動,減少了接口開發(fā)工作;
(3)開發(fā)解耦:與 MVC、MVP 相較,MVVM 模式中上層元件對下層元件不可見,ViewModel 層對 View 層、Model 層對 ViewModel 層的引用不是必須的,因此,可實現(xiàn)多人協(xié)作、分層開發(fā)。
由于 MVVM 架構(gòu)多用于單個軟件的設(shè)計實現(xiàn),為實現(xiàn)由一到多、由點到面、由軟件到系統(tǒng)的改進,提出了一種基于 MVVM 架構(gòu)的架構(gòu)變體———多視圖模型(Multi-View-Model),并將此變體運用到生產(chǎn)測試系統(tǒng)開發(fā)中。
1. 3 無線智慧車間
在數(shù)字化車間的基礎(chǔ)上,智慧車間加強了對生產(chǎn)線上流轉(zhuǎn)數(shù)據(jù)的利用,不僅能通過 MES 系統(tǒng)、ERP 系統(tǒng)及數(shù)據(jù)庫系統(tǒng)實現(xiàn)生產(chǎn)流程的自動化、數(shù)字化,還能通過工控網(wǎng)絡(luò)和通信技術(shù)實現(xiàn)信息化、智能化,構(gòu)建面向生產(chǎn)的智慧系統(tǒng)[13]。
依托重慶四聯(lián)測控技術(shù)有限公司智能壓力變送器制造數(shù)字化車間[14],以傳統(tǒng)計算機設(shè)備為父節(jié)點、以智能產(chǎn)品為子節(jié)點構(gòu)建無線智慧網(wǎng)絡(luò),并同時支持 ZigBee、LoRa 等無線組網(wǎng)方案,從而兼顧經(jīng)濟性和效率性,與傳統(tǒng)生產(chǎn)線無縫兼容。
2 系統(tǒng)實現(xiàn)
本系統(tǒng)的搭建目的是在不同 Windows 系統(tǒng)版本的測試、調(diào)試和監(jiān)控終端上實現(xiàn)對應功能,集成系統(tǒng)授權(quán)與用戶管理,主要包含如下實現(xiàn)步驟。
2. 1 網(wǎng)絡(luò)構(gòu)建
測試系統(tǒng)的功能網(wǎng)絡(luò)依托壓力變送器標準生產(chǎn)線,通常包含工控機、氣體壓力控制器、數(shù)字萬用表等設(shè)備,并配備有網(wǎng)絡(luò)環(huán)境與操作人員。
通過對標準生產(chǎn)線進行少量的軟硬件擴充,即可以較低成本構(gòu)建適用于無線壓力變送器的生產(chǎn)測試網(wǎng)絡(luò)。為保證通信安全性和儀表響應速度,在軟件上,本系統(tǒng)采用 C/ S 架構(gòu),開發(fā)環(huán)境為 Visual Studio 2017,框架為.NETFramework 4.x,從而實現(xiàn)在 Windows XP / 7 / 10 操作系統(tǒng)上原生運行。
在硬件上,本系統(tǒng)采用無線通信板卡(ZigBee、LoRa 等)與 GPIB 板卡作為工控機的外部通信拓展,分別通過 USB/RS232 板卡與儀表建立無線通信、通過 GPIB 板卡與壓力控制器建立有線通信,通過增加/ 減少拓展接口即可實現(xiàn)軟件與不同協(xié)議儀表通信功能的變更(圖 2)。
通過生產(chǎn)測試網(wǎng)絡(luò),智慧車間的測試數(shù)據(jù)可以經(jīng)由無線通信中繼節(jié)點或移動基站上載到服務(wù)器和監(jiān)控設(shè)備,從而幫助決策人員實現(xiàn)對整個生產(chǎn)測試環(huán)節(jié)的監(jiān)控與管理。
2. 2 框架設(shè)計
WPF 和 WinForms 是兩種由微軟提供、基于.NET 框架的桌面程序開發(fā)框架,是目前工控機桌面開發(fā)的主流框架,由于 WPF 提供高解析(HDPI)、觸控( Touch)等先金特性,以及對 MVVM 設(shè)計模式的原生支持,本系統(tǒng)選用 WPF 作為軟件開發(fā)的主要框架。
如 1. 2 所述,MVVM 設(shè)計模式采用三層結(jié)構(gòu)設(shè)計,WPF框架每部分主要功能和實現(xiàn)內(nèi)容如下:
(1)Model 層:采用 C#進行面向?qū)ο蟮牡讓咏#P皖悺傩耘c方法,是 ViewModel 層的數(shù)據(jù)源;
(2) View 層:采用 XAML 描述語言進行設(shè)計,包含窗口、頁面、控件等,并聲明了前臺所需數(shù)據(jù)和需執(zhí)行的命令,不包含實際數(shù)據(jù)和命令實現(xiàn);
(3)ViewModel 層:采用 C#編寫綁定器( Binder),其中包含模型對象的實例化、模型屬性與方法整理、屬性與方法的綁定,是 View 層的數(shù)據(jù)源。
為便于軟件開發(fā),本系統(tǒng)中還添加一系列資源文件作為 MVVM 模式外部支持,包含:
(1)資源字典(Dictionary):采用 XAML 描述語言編寫的前臺資源,包含前臺窗口、頁面、控件使用的模板( Tem⁃plate)和主題風格(Style);
(2)數(shù)值轉(zhuǎn)換器(Converter):采用 C#編寫的后臺綁定數(shù)據(jù)到前臺的轉(zhuǎn)換器,實現(xiàn) IValueConverter 接口,從而保證數(shù)據(jù)傳遞的方向正確與可用;
(3)設(shè)置文件( Setting):采用 XML 語言存儲的程序運行時可能讀取的配置信息,包含應用程序設(shè)置和用戶設(shè)置;
(4)其他(Other):引用集(Assembly)、NuGet 包、采用的圖片、圖標、字體等其他外部資源。
總的來看,MVVM 設(shè)計模式結(jié)構(gòu)簡潔(圖 3),各模塊之間邊界清晰可見、分工明確,既適合個人開發(fā),也適用于團隊協(xié)作。
然而,由于在 MVVM 模式中,每一個界面都同時包含Model、View、ViewModel 以及相應的 Converter,因此,在如下情形下存在劣勢:
(1)跨界面情形:如果單個軟件中存在多個界面,針對每個界面單好實行 MVVM 模式會復用大量代碼,增加不必要的工作時間;
(2)跨軟件情形:如果單個系統(tǒng)中存在多個軟件,針對每個軟件單好實行 MVVM 模式不但涉及代碼重用,而且可能引起程序集或 NuGet 包管理版本混亂。
為保持 MVVM 框架并規(guī)避上述劣勢,本系統(tǒng)引入了多視圖模型(Multi-View-Model)的架構(gòu)變體,綜合考慮了測試系統(tǒng)所需軟件的各項依賴,并針對性地制定了構(gòu)建方案:
(1)資源整合:參照測試工藝流程,提取并編寫跨解決方案的資源字典、公共模型和轉(zhuǎn)換器,以求盡可能多地減少軟件之間的重復代碼(圖 4)。
(2)框架精簡:對于小型可復用界面(彈窗、對話框等)和自定義控件,直接將 Model 和 ViewModel 層放置在 View層后臺代碼中,同時實現(xiàn) DataContext 功能和 INotifyProper⁃tyChanged 接口,減少文件數(shù)和代碼量。
(3)交叉復用:建立 View 與 ViewModel 層之間的多對多關(guān)系(圖 5),實現(xiàn)多視圖模型變體,包括:
①單個 View 層對應兩套并列的 ViewModel 層,其中一套用于前端調(diào)試(ViewSupport),另一套用于后端調(diào)試和實際運行(ModelInterface),從而實現(xiàn)項目前后端開發(fā)完全隔離,方便多人分組開發(fā);
②單個 ViewModel 層對應多個 View 層,同時對多個界面提供后臺數(shù)據(jù),實現(xiàn)對不同應用場景或不同用戶提供展示不同數(shù)據(jù)的軟件界面。
上述構(gòu)建方法提高了應用程序的構(gòu)建效率,進而幫助實現(xiàn)測試系統(tǒng)軟件的快速開發(fā)與拓展。
2. 3軟件開發(fā)
在無線壓力變送器研發(fā)、調(diào)試和生產(chǎn)測試環(huán)節(jié)中,軟件是操作人員實現(xiàn)壓力變送器遠程配置、遠程操作的主要媒介。 本項目圍繞建立生產(chǎn)測試系統(tǒng)的目的,進行了如下配套軟件的開發(fā):
(1)監(jiān)控軟件
監(jiān)控軟件(WT Monitor)主要用于壓力變送器上線入網(wǎng)后的設(shè)備信息監(jiān)控與可視化,能幫助用戶快速獲取儀表運行狀態(tài)與壓力信息,既可以部署在本地(內(nèi)網(wǎng)環(huán)境),又可以運行在遠程服務(wù)器(公網(wǎng)環(huán)境)。
為實現(xiàn)更好的軟件性能并能提供屏幕觸控功能,WT Mo-nitor基于.NET Framework 4. 7. 2 開發(fā),采用異步模型,從而更好地實現(xiàn) NB-IoT、5G、ZigBee、LoRa 等無線儀表的多路并發(fā)要求。
(2)調(diào)試/ 標定軟件
調(diào)試/ 標定軟件(WT Calibration)主要用于幫助研發(fā)人員在調(diào)試過程中對單臺無線壓力變送器進行功能檢查,集成了參數(shù)解析、儀表描述標定、儀表參數(shù)標定等功能。由于變送器的調(diào)試與標定依賴模型一致,但有不同環(huán)境的使用需求,因此,借助交叉復用方法,構(gòu)建了兩種不同的前臺界面(圖 7):
①調(diào)試軟件:主要用于研發(fā)環(huán)境,提供標定命令構(gòu)建、自定義命令發(fā)送、儀表信息導入導出等功能,移除了對外部數(shù)據(jù)庫的依賴;
②標定軟件:主要用于生產(chǎn)環(huán)境,提供儀表數(shù)據(jù)可視化、參數(shù)標定、數(shù)據(jù)庫連接等功能,可以實現(xiàn)儀表的手動標定或手動加壓測試,移除了部分不適用于生產(chǎn)環(huán)境的功能。盡管在調(diào)試/ 標定軟件中可以實現(xiàn)儀表加壓測試,但依賴手動操作,而且只能進行單臺儀表調(diào)試/ 標定,因此,在此基礎(chǔ)上進一步開發(fā)了自動測試軟件。
(3)自動測試軟件
自動測試軟件(WT Test)是適用于無線壓力變送器整機測試的工控機軟件,同時也具備儀表標定、數(shù)據(jù)庫檢索等功能,實現(xiàn)了壓力變送器與壓力控制器、服務(wù)器和遠程數(shù)據(jù)庫的協(xié)同工作。無線壓力變送器的整機測試主要包含如圖 8 所示步驟:
①軟件初始化:檢查外部設(shè)備工作是否正常,嘗試在工控機與壓力控制器、服務(wù)器和遠程數(shù)據(jù)庫之間建立通信連接;
②連接儀表:正確安裝無線壓力變送器,并嘗試與工控機建立連接,并進入標定狀態(tài)。
③自動測試:從遠程數(shù)據(jù)庫讀取有關(guān)信息,并將量程、單位等出廠信息寫入儀表,隨后依照工藝流程,對壓力控制器進行逐量程多點位施壓、卸壓操作,確保每個點位誤差、回差均滿足精度要求;
④開儀表:測試合格后,切斷儀表與工控機的通信,更改通信間隔時間,隨后斷電;
⑤結(jié)果記錄:將全流程的測試信息與測試結(jié)果進行記錄,并寫入遠程數(shù)據(jù)庫。
如圖 9 所示,WT Test 基于.NET Framework 4. 0 開發(fā),并采用標準 I/ O 函數(shù)庫(VISA)進行讀寫,從而在 Windows XP / 7 /10 等系統(tǒng)上取得一致的用戶體驗。
2. 4系統(tǒng)集成
項目采用配備好立授權(quán)軟件(WT Login)來實現(xiàn)內(nèi)網(wǎng)授權(quán)管理,只實現(xiàn) Web API 驗證功能,實際軟件在用戶驗證通過后再實例化,用戶信息和配置文件將作為啟動參數(shù)傳遞給軟件模型。
目前授權(quán)軟件僅作為測試系統(tǒng)的集成入口實現(xiàn)用戶驗證,后續(xù)可匯總不同軟件在工控機上的使用信息,實現(xiàn)完整的后臺管理系統(tǒng)。
3 系統(tǒng)驗證
3. 1 環(huán)境配置
下面嘗試將測試系統(tǒng)部署于數(shù)字化車間中,對系統(tǒng)進行全功能驗證,主要環(huán)境硬件配置如下間配備的基本外部支持
3. 2生產(chǎn)驗證
無線壓力變送器在定制產(chǎn)品生產(chǎn)的整機手動測試過程中,需要人工手動操作壓力控制器逐點計數(shù),單表測試時長在 15 分鐘以上。
本項目的生產(chǎn)測試系統(tǒng)實現(xiàn)了信息錄入、自動測試和結(jié)果記錄的流程自動化。 經(jīng)車間驗證,在采用自動測試軟件(圖 10)后,從儀表連接到測試結(jié)束,總時長為 5 ~ 10 分鐘,減時增效達 33% ~66%,全程wuxu人工干預,有效避免了人工可能出現(xiàn)的誤操作情況。
4 總結(jié)
構(gòu)建了無線壓力變送器生產(chǎn)測試系統(tǒng),驗證了多視圖模型在軟件開發(fā)上的好特優(yōu)勢,提升了車間生產(chǎn)力,為新產(chǎn)品的快速標準化提供了幫助。