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