吳宗卓
(陜西國防工業(yè)職業(yè)技術(shù)學(xué)院 計算機與軟件學(xué)院,西安 710300)
NI-VISA是以儀器編程標(biāo)準(zhǔn)為基礎(chǔ)開發(fā)的高級應(yīng)用編程接口,同時受到PXI儀器、VXI儀器、可控制GPIB、以太網(wǎng)、USB串口等多個硬件設(shè)備結(jié)構(gòu)的作用影響,可在同類型驅(qū)動程序的作用下,建立用戶主機與各級儀器儀表之間的協(xié)議連接關(guān)系[1]。在實際應(yīng)用過程中,NI-VISA編程接口不受平臺、總線及背景編碼環(huán)境的限制,能夠同步配置所有網(wǎng)關(guān)串口,不但能夠干擾與控制傳輸信息,也可以避免互聯(lián)網(wǎng)環(huán)境中出現(xiàn)明顯的數(shù)據(jù)堆積行為。與傳統(tǒng)VISA接口相比,NI-VISA接口對傳輸數(shù)據(jù)始終保持自下而上的處理原則,一方面能夠整合信息資源使其形成完整的數(shù)據(jù)函數(shù)集合,另一方面也可為后臺應(yīng)用程序提供完整的數(shù)據(jù)鏈接支持,從而使其具備更強的信息處理能力[2]。
在軍事化技能訓(xùn)練中,實彈野外打靶是一項必不可少的實踐內(nèi)容。由于槍支型號、靶機位置等外在因素的不同,野外靶場的網(wǎng)絡(luò)化與信息化建設(shè)規(guī)模也會隨之改變,這些都會對實際訓(xùn)練的質(zhì)量與效率造成影響[3]。近年來,隨著訓(xùn)練需求的不斷轉(zhuǎn)變,實彈打靶的內(nèi)容也從單一科目訓(xùn)練,轉(zhuǎn)化為多類型、多兵種武器的綜合性科目訓(xùn)練。近年來已有相關(guān)領(lǐng)域研究學(xué)者對野外靶場設(shè)備遠(yuǎn)程控制做出了研究,文獻[4]提出一體化航天外測測試發(fā)射控制系統(tǒng)設(shè)計,通過對系統(tǒng)測試需求、流程和系統(tǒng)構(gòu)成的分析,設(shè)計開發(fā)一體化的航天外試發(fā)射控制系統(tǒng),實現(xiàn)靶場發(fā)射控制。該方法對野外靶場設(shè)備遠(yuǎn)程控制效率較好,但該方法對不同的射擊訓(xùn)練的需求適應(yīng)性較差。文獻[5]提出靶場試驗訓(xùn)練指揮控制系統(tǒng)設(shè)計。以STM32芯片為核心應(yīng)用設(shè)備,利用振動傳感器進行自動報靶檢測,將所有數(shù)據(jù)信息文件反饋至訓(xùn)練指揮中心的PC端主機中。然而該系統(tǒng)注重監(jiān)測重武器靶機,對輕武器精度靶機、輕武器應(yīng)用靶機的實際控制能力有限,導(dǎo)致了其工作模式過于單一,并不能較好適應(yīng)多種不同的射擊訓(xùn)練需求。
為解決上述問題,設(shè)計并開發(fā)一種基于NI-VISA的野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)軟件開發(fā)程序。設(shè)計上位機軟件,包括開發(fā)平臺與語言的設(shè)計、工作模式的劃分、三層控制架構(gòu)及數(shù)據(jù)庫的設(shè)計,并基于NI-VISA編程接口設(shè)計通訊模塊,保障野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)的數(shù)據(jù)通信及傳輸?;贜I-VISA的遠(yuǎn)程控制程序,按照串口字節(jié)數(shù)定義、遠(yuǎn)程串口配置、數(shù)據(jù)信息導(dǎo)入、程序框圖連接的處理流程,實現(xiàn)野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)軟件的設(shè)計與開發(fā)。
野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)的上位機軟件設(shè)計包含開發(fā)語言定義、工作模式劃分、三層控制架構(gòu)搭建、數(shù)據(jù)庫表連接等多個處理流程,具體設(shè)計流程如下。
為實現(xiàn)野外靶場設(shè)備的遠(yuǎn)程控制,上位機軟件開發(fā)平臺以.NET Framework作為編程語言,同時聯(lián)合傳輸信息的公共運行庫與數(shù)據(jù)庫主機,在整理遠(yuǎn)程源代碼文件的同時,對下級運行指令進行譯碼處理[6]。由于編碼與轉(zhuǎn)碼操作的同步進行,遠(yuǎn)程控制系統(tǒng)軟件不但能夠同時調(diào)度所有靶機設(shè)備,也可直觀反映真實的射擊成績與射擊狀態(tài)。
(1)
由于.NET Framework編程語言屬于Windows控件庫中的可更改型編碼文件,因此滿足設(shè)備控制原則的靶數(shù)信息可被直接寫入遠(yuǎn)程控制系統(tǒng)的數(shù)據(jù)庫主機之中。
野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)有3種基本應(yīng)用架構(gòu),且不同架構(gòu)形式之下,控制主機所表現(xiàn)出來的數(shù)據(jù)處理能力也有所不同[7]。為使上位機軟件的通用性需求得到滿足,應(yīng)將控制系統(tǒng)軟件體系劃分為如下4種工作模式:網(wǎng)口獨立型工作模式、串口獨立型工作模式、客戶端工作模式、主機工作模式。
1.2.1 網(wǎng)口獨立型工作模式
圖1反映了網(wǎng)口獨立型工作模式的連接原理,在遠(yuǎn)程控制主機的作用下,NI-VISA編程接口可以同時管控多臺靶機設(shè)備,由于數(shù)據(jù)庫主機的加入,核心控制元件能夠準(zhǔn)確記錄靶機狀態(tài)、射擊成績與靶數(shù)信息,并可借助傳輸信道,對這些數(shù)據(jù)文件進行二次整合與處理[8]。
圖1 網(wǎng)口獨立型工作模式示意圖
1.2.2 串口獨立型工作模式
串口獨立型工作模式是一種最簡單的上位機軟件連接形式,能夠同時適應(yīng)近程武器射擊訓(xùn)練、重武器射擊訓(xùn)練等多種實用需求,其具體連接方式如圖2所示。由于靶機狀態(tài)、射擊成績、靶數(shù)信息的存儲過程不需要數(shù)據(jù)庫主機的配合,因此NI-VISA編程接口的數(shù)據(jù)信息參量可直接借助RS232組織進入系統(tǒng)核心控制主機中[9]。
圖2 串口獨立型工作模式示意圖
1.2.3 客戶端工作模式
在野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)上位機軟件的客戶端工作模式中(如圖3所示),中心主機的PC端設(shè)備可直接存儲靶機狀態(tài)、射擊成績與靶數(shù)信息,并可在NI-VISA編程接口的作用下,生成大量的虛擬信息文件,以供遠(yuǎn)程控制主機的直接調(diào)取與利用[10]。
圖3 客戶端工作模式示意圖
1.2.4 主機工作模式
與客戶端工作模式相比,主機工作模式增設(shè)了數(shù)據(jù)庫設(shè)備,且所有已生成的虛擬信息文件都可被數(shù)據(jù)庫主機完全存儲,如圖4所示。
圖4 主機工作模式示意圖
根據(jù)靶機設(shè)備工作需求的不同,遠(yuǎn)程控制可根據(jù)NI-VISA編程接口的連接形式,選擇最為合適的主機網(wǎng)絡(luò)工作模式。
遠(yuǎn)程控制系統(tǒng)的上位機軟件采取三層架構(gòu)的搭建模式,其結(jié)構(gòu)體系從上到下依次為UIL(用戶界面層)、BLL(業(yè)務(wù)邏輯層)、DAL(數(shù)據(jù)訪問層),如圖5所示。
圖5 上位機軟件的三層控制架構(gòu)示意圖
圖5中,用戶界面層邏輯結(jié)構(gòu)對應(yīng)野外靶場設(shè)備的實際靶數(shù)信息,作為整個控制架構(gòu)的頂層連接單元,主要負(fù)責(zé)篩查NI-VISA編程接口的連接能力,并可將所得數(shù)據(jù)信息匯總,反饋回核心控制主機中[11]。業(yè)務(wù)邏輯層結(jié)構(gòu)對應(yīng)個人射擊成績,在控制架構(gòu)體系中,該結(jié)構(gòu)起到承上啟下的連接作用,二次加工與處理已存儲的數(shù)據(jù)信息文件。數(shù)據(jù)訪問層結(jié)構(gòu)與野外靶場設(shè)備直接對應(yīng),能夠在上位機軟件的作用下,將靶數(shù)信息文件再次拆分成多個獨立的傳輸個體,以供數(shù)據(jù)源單位的調(diào)取。
一般情況下,上位機軟件與數(shù)據(jù)源單位同時負(fù)載于遠(yuǎn)程控制系統(tǒng)的架構(gòu)模式外部,可在準(zhǔn)確記錄靶數(shù)信息等文件參量的同時,對野外靶場設(shè)備的實時連接狀態(tài)進行調(diào)試。
在野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)中,數(shù)據(jù)庫表始終與靶數(shù)信息參量保持對應(yīng)存在關(guān)系,即每一類靶場設(shè)備都會有一個完全獨立的數(shù)據(jù)庫表結(jié)構(gòu)與之對應(yīng)[12]。在實際設(shè)計過程中,數(shù)據(jù)庫表結(jié)構(gòu)主要涉及Class Target、Class Grade、Class Lauout等多種字段命名形式,具體標(biāo)準(zhǔn)如表1所示。
表1 數(shù)據(jù)庫表設(shè)計標(biāo)準(zhǔn)
其中,“l(fā)nvarchar”表示滿足該字段要求的靶數(shù)信息長度值等于“128”,且可被上位機軟件的數(shù)據(jù)庫設(shè)備直接讀取出來,“newid”表示該類型字段的取值范圍為[1,e),“datetime”表示滿足該字段要求的靶數(shù)信息長度值等于“68”,通常為射擊成績的數(shù)據(jù)文件記錄形式,“int”表示靶數(shù)信息的常規(guī)輸出形式,“Unique identifier”表示可在遠(yuǎn)程控制系統(tǒng)上位機軟件中自由傳輸?shù)陌袛?shù)信息參量。
(2)
由于通訊模塊始終與數(shù)據(jù)庫表保持一一對應(yīng)關(guān)系,所以在野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)的上位機軟件中,待傳輸?shù)陌袛?shù)信息參量越多,通訊模塊的實際作用能力也就越強,反之則越弱[15]。
在上位機軟件體系的支持下,按照串口字節(jié)數(shù)定義、遠(yuǎn)程串口配置、數(shù)據(jù)信息導(dǎo)入、程序框圖連接的處理流程,完成基于NI-VISA的遠(yuǎn)程控制程序設(shè)計,兩相結(jié)合,實現(xiàn)野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)軟件的設(shè)計與開發(fā)。
為實現(xiàn)野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)軟件開發(fā),應(yīng)用NI-VISA 編程接口來與各種儀器總線進行通信,為遠(yuǎn)程控制系統(tǒng)的通信提供保障。NI-VISA總線 I/O軟件是一套與平臺、總線、環(huán)境獨立出來的集成軟件,可用于 USB,GPIB,串行, VXI,PXI,Ethernet的配置與調(diào)試。NI-VISA建立在自底向上的架構(gòu)模式基礎(chǔ)上,建立了一套 I/O的統(tǒng)一控制系統(tǒng)。VISA的應(yīng)用程序很簡單,另外,NI-VISA還提供了很好的工具控制和資源管理能力。NI-VISA用于串行通信或GPIB傳輸數(shù)據(jù)。NI-VISA可以以一致的方式操作各種接口,并且具有很強的兼容性。
串口字節(jié)數(shù)是指靶數(shù)信息在單位時間內(nèi)通過NI-VISA編程接口的數(shù)量級水平,以bit/s作為衡量單位。對于野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)的上位機軟件而言,串口字節(jié)的數(shù)量級水平越高,就表示靶機設(shè)備中待顯示的靶數(shù)信息量越多。在實際應(yīng)用過程中,靶機設(shè)備顯示一個靶數(shù)信息和多個靶數(shù)信息所需的串口字節(jié)數(shù)量水平也有所不同[16]。簡單來說,就是在靶機設(shè)備中的所有靶數(shù)信息,都有且僅有一個串口字節(jié)與之保持獨立映射關(guān)系,隨著數(shù)據(jù)信息傳輸量的增大,同時存在的映射集合數(shù)量也會不斷增大,在此情況下的最大串口字節(jié)數(shù)量,也就是野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)中的顯示信息最大值。
設(shè)τ1、τ2表示NI-VISA接口中兩個不同的靶數(shù)信息編碼源向量,d1、d2表示兩個不同的靶數(shù)信息源碼文本特征值,聯(lián)立公式(2),可將基于NI-VISA的靶數(shù)信息串口字節(jié)數(shù)定義條件定義為:
(3)
遠(yuǎn)程串口配置是野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)軟件開發(fā)的重要設(shè)計環(huán)節(jié),可在NI-VISA編程主機元件的作用下,制定野外靶場設(shè)備遠(yuǎn)程控制主機的終止與啟用程序,并可以對已獲取的靶數(shù)信息進行分析與處理,再將其中滿足串口字節(jié)數(shù)定義標(biāo)準(zhǔn)的數(shù)據(jù)參量,反饋到既定應(yīng)用結(jié)構(gòu)之中,從而生成完整的上位機控制程序[17]。具體配置原理如圖6所示。
圖6 遠(yuǎn)程串口配置原理
在實際應(yīng)用過程中,NI-VISA編程節(jié)點控制主機具備較強的適應(yīng)性能力,可在記錄野外靶場設(shè)備震動行為分析結(jié)果的同時,對上位機控制程序進行初步修改,一方面判斷現(xiàn)有的串口字節(jié)數(shù)定義標(biāo)準(zhǔn)是否能夠滿足靶數(shù)信息的實時傳輸需求,另一方面也能夠?qū)?shù)據(jù)信息參量的輸出流量水平進行嚴(yán)格把控[18]。
為使上位機軟件能夠準(zhǔn)確顯示野外靶場設(shè)備中的靶機狀態(tài)與射擊成績,遠(yuǎn)程串口的實時配置能力必須與NI-VISA接口所具備的數(shù)據(jù)信息編程能力完全匹配。
數(shù)據(jù)信息導(dǎo)入是指將靶數(shù)信息參量導(dǎo)入遠(yuǎn)程控制系統(tǒng)上位機軟件的實時處理過程,由于NI-VISA編程接口的存在,與靶機狀態(tài)和射擊成績相關(guān)的信息參量可在緩沖區(qū)組織中暫時存儲,并可根據(jù)遠(yuǎn)程串口配置原理,將符合字節(jié)數(shù)編碼原則的靶數(shù)信息反饋至核心控制主機中[19-20]。詳細(xì)的導(dǎo)入處理流程如圖7所示。
圖7 靶數(shù)信息導(dǎo)入流程圖
對于野外靶場設(shè)備而言,由于NI-VISA編程接口的存在,所有導(dǎo)入的靶數(shù)信息都可被數(shù)據(jù)庫主機直接記錄,這也是靶機狀態(tài)與射擊成績能夠完全符合實際射擊訓(xùn)練需求的主要原因[21-23]。
在野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)的上位機軟件執(zhí)行環(huán)境中,程序框圖決定了已導(dǎo)入靶數(shù)信息是否具有繼續(xù)存儲的價值,若考慮NI-VISA編程接口的作用能力,則可認(rèn)為框圖體系越完善,遠(yuǎn)程控制系統(tǒng)的實時存儲能力也就越強[24-26]。
設(shè)θ1、θ2表示兩個不同的靶數(shù)信息程序向量,f表示基于NI-VISA的遠(yuǎn)程控制程序迭代系數(shù),聯(lián)立公式(3),可將野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)的傳輸程序標(biāo)度結(jié)果表示為:
(4)
式中,ξ表示遠(yuǎn)程控制系統(tǒng)上位機軟件中的框圖信息的導(dǎo)入系數(shù),聯(lián)立公式(4),可將基于NI-VISA的靶數(shù)信息程序框圖標(biāo)準(zhǔn)定義條件表示為:
(5)
根據(jù)程序框圖定義標(biāo)準(zhǔn),處理已導(dǎo)入的靶數(shù)信息,實現(xiàn)基于NI-VISA的野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)軟件的順利應(yīng)用。
本次實驗測試平臺的野外靶場設(shè)備包含重武器靶機、輕武器精度靶機、輕武器應(yīng)用靶機3種類型。
軟件應(yīng)用程序?qū)τ谝巴獍袌霭袡C設(shè)備的控制能力,表現(xiàn)在靶機示數(shù)與真實射擊成績之間的差值情況,一般來說,靶機示數(shù)越貼近真實射擊成績,則表示軟件應(yīng)用程序?qū)τ谝巴獍袌霭袡C設(shè)備的控制能力越強,反之則越弱。設(shè)置串口字節(jié)數(shù)為256,野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)的傳輸程序標(biāo)度結(jié)果為10環(huán)。程序框圖處理已導(dǎo)入的靶數(shù)信息,為0~10環(huán)。
表2記錄了某人在重武器靶機、輕武器精度靶機、輕武器應(yīng)用靶機三類設(shè)備中的真實射擊成績。
表2 真實射擊成績
圖8反映了實驗組、對照組靶數(shù)信息的實際顯示情況,其中實驗組主機輸入基于NI-VISA的遠(yuǎn)程控制系統(tǒng)軟件程序,對照組主機輸入常規(guī)控制程序。
圖8 重武器靶機中的靶數(shù)信息
分析圖8可知,對于重武器靶機設(shè)備而言,實驗組、對照組靶數(shù)信息均與真實射擊成績保持一致。這就表示基于NI-VISA的遠(yuǎn)程控制系統(tǒng)軟件程序、常規(guī)控制方法,均能較好滿足重武器射擊訓(xùn)練需求。
分析圖9可知,對于輕武器精度靶機而言,實驗組靶數(shù)信息與真實射擊成績保持一致,顯示結(jié)果分別為8環(huán)、9環(huán)、7環(huán)、8環(huán)、7環(huán),而對照組靶數(shù)信息顯示結(jié)果則為8環(huán)、8環(huán)、7環(huán)、8環(huán)、7環(huán),與表2中的真實射擊成績相比,并不能準(zhǔn)確顯示第二次射擊“9環(huán)”的結(jié)果。
圖9 輕武器精度靶機中的靶數(shù)信息
分析圖10可知,對于輕武器應(yīng)用靶機而言,實驗組靶數(shù)信息依然能夠與真實射擊成績保持一致,對照組靶數(shù)信息顯示結(jié)果為8環(huán)、8環(huán)、8環(huán)、9環(huán)、10環(huán),與真實射擊成績8環(huán)、10環(huán)、7環(huán)、9環(huán)、9環(huán)相比,缺少一次“7環(huán)”顯示結(jié)果和一次“9環(huán)”顯示結(jié)果。
圖10 輕武器應(yīng)用靶機中的靶數(shù)信息
綜上可知,對于重武器靶機、輕武器精度靶機、輕武器應(yīng)用靶機來說,應(yīng)用基于NI-VISA的遠(yuǎn)程控制系統(tǒng)軟件后,所顯示靶數(shù)信息都能與真實射擊成績完全保持一致。與常規(guī)控制程序相比,這種新型控制軟件可根據(jù)靶機設(shè)備的具體類型,為其提供最為適宜的工作模式,使其在顯示出真實射擊成績的同時,滿足各種不同的射擊訓(xùn)練需求,在軍事化技能訓(xùn)練中,具備較強的實際應(yīng)用價值。
在NI-VISA編程接口的作用下,野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)軟件從規(guī)范開發(fā)語言的角度著手,通過構(gòu)建三層架構(gòu)體系的方式,對數(shù)據(jù)庫表與通訊模塊結(jié)構(gòu)的連接能力進行完善,根據(jù)已知的串口字節(jié)數(shù)定義標(biāo)準(zhǔn),可利用遠(yuǎn)程串口組織,將靶數(shù)信息導(dǎo)入數(shù)據(jù)庫體系之中,從而實現(xiàn)對程序框圖的規(guī)劃與完善。從實用性角度來看,這種軟件應(yīng)用程序可同時適應(yīng)重武器型、輕武器精度型、輕武器應(yīng)用型三類靶機結(jié)構(gòu),不但能夠?qū)崟r顯示靶機的狀態(tài)與射擊成績,也可以較好滿足多種不同的射擊訓(xùn)練需求。