吳宗卓
(陜西國防工業(yè)職業(yè)技術(shù)學(xué)院 計算機(jī)與軟件學(xué)院,西安 710300)
NI-VISA是以儀器編程標(biāo)準(zhǔn)為基礎(chǔ)開發(fā)的高級應(yīng)用編程接口,同時受到PXI儀器、VXI儀器、可控制GPIB、以太網(wǎng)、USB串口等多個硬件設(shè)備結(jié)構(gòu)的作用影響,可在同類型驅(qū)動程序的作用下,建立用戶主機(jī)與各級儀器儀表之間的協(xié)議連接關(guān)系[1]。在實(shí)際應(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ù)鏈接支持,從而使其具備更強(qiáng)的信息處理能力[2]。
在軍事化技能訓(xùn)練中,實(shí)彈野外打靶是一項(xiàng)必不可少的實(shí)踐內(nèi)容。由于槍支型號、靶機(jī)位置等外在因素的不同,野外靶場的網(wǎng)絡(luò)化與信息化建設(shè)規(guī)模也會隨之改變,這些都會對實(shí)際訓(xùn)練的質(zhì)量與效率造成影響[3]。近年來,隨著訓(xùn)練需求的不斷轉(zhuǎn)變,實(shí)彈打靶的內(nèi)容也從單一科目訓(xùn)練,轉(zhuǎn)化為多類型、多兵種武器的綜合性科目訓(xùn)練。近年來已有相關(guān)領(lǐng)域研究學(xué)者對野外靶場設(shè)備遠(yuǎn)程控制做出了研究,文獻(xiàn)[4]提出一體化航天外測測試發(fā)射控制系統(tǒng)設(shè)計,通過對系統(tǒng)測試需求、流程和系統(tǒng)構(gòu)成的分析,設(shè)計開發(fā)一體化的航天外試發(fā)射控制系統(tǒng),實(shí)現(xiàn)靶場發(fā)射控制。該方法對野外靶場設(shè)備遠(yuǎn)程控制效率較好,但該方法對不同的射擊訓(xùn)練的需求適應(yīng)性較差。文獻(xiàn)[5]提出靶場試驗(yàn)訓(xùn)練指揮控制系統(tǒng)設(shè)計。以STM32芯片為核心應(yīng)用設(shè)備,利用振動傳感器進(jìn)行自動報靶檢測,將所有數(shù)據(jù)信息文件反饋至訓(xùn)練指揮中心的PC端主機(jī)中。然而該系統(tǒng)注重監(jiān)測重武器靶機(jī),對輕武器精度靶機(jī)、輕武器應(yīng)用靶機(jī)的實(shí)際控制能力有限,導(dǎo)致了其工作模式過于單一,并不能較好適應(yīng)多種不同的射擊訓(xùn)練需求。
為解決上述問題,設(shè)計并開發(fā)一種基于NI-VISA的野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)軟件開發(fā)程序。設(shè)計上位機(jī)軟件,包括開發(fā)平臺與語言的設(shè)計、工作模式的劃分、三層控制架構(gòu)及數(shù)據(jù)庫的設(shè)計,并基于NI-VISA編程接口設(shè)計通訊模塊,保障野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)的數(shù)據(jù)通信及傳輸。基于NI-VISA的遠(yuǎn)程控制程序,按照串口字節(jié)數(shù)定義、遠(yuǎn)程串口配置、數(shù)據(jù)信息導(dǎo)入、程序框圖連接的處理流程,實(shí)現(xiàn)野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)軟件的設(shè)計與開發(fā)。
野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)的上位機(jī)軟件設(shè)計包含開發(fā)語言定義、工作模式劃分、三層控制架構(gòu)搭建、數(shù)據(jù)庫表連接等多個處理流程,具體設(shè)計流程如下。
為實(shí)現(xiàn)野外靶場設(shè)備的遠(yuǎn)程控制,上位機(jī)軟件開發(fā)平臺以.NET Framework作為編程語言,同時聯(lián)合傳輸信息的公共運(yùn)行庫與數(shù)據(jù)庫主機(jī),在整理遠(yuǎn)程源代碼文件的同時,對下級運(yùn)行指令進(jìn)行譯碼處理[6]。由于編碼與轉(zhuǎn)碼操作的同步進(jìn)行,遠(yuǎn)程控制系統(tǒng)軟件不但能夠同時調(diào)度所有靶機(jī)設(shè)備,也可直觀反映真實(shí)的射擊成績與射擊狀態(tài)。

(1)
由于.NET Framework編程語言屬于Windows控件庫中的可更改型編碼文件,因此滿足設(shè)備控制原則的靶數(shù)信息可被直接寫入遠(yuǎn)程控制系統(tǒng)的數(shù)據(jù)庫主機(jī)之中。
野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)有3種基本應(yīng)用架構(gòu),且不同架構(gòu)形式之下,控制主機(jī)所表現(xiàn)出來的數(shù)據(jù)處理能力也有所不同[7]。為使上位機(jī)軟件的通用性需求得到滿足,應(yīng)將控制系統(tǒng)軟件體系劃分為如下4種工作模式:網(wǎng)口獨(dú)立型工作模式、串口獨(dú)立型工作模式、客戶端工作模式、主機(jī)工作模式。
1.2.1 網(wǎng)口獨(dú)立型工作模式
圖1反映了網(wǎng)口獨(dú)立型工作模式的連接原理,在遠(yuǎn)程控制主機(jī)的作用下,NI-VISA編程接口可以同時管控多臺靶機(jī)設(shè)備,由于數(shù)據(jù)庫主機(jī)的加入,核心控制元件能夠準(zhǔn)確記錄靶機(jī)狀態(tài)、射擊成績與靶數(shù)信息,并可借助傳輸信道,對這些數(shù)據(jù)文件進(jìn)行二次整合與處理[8]。

圖1 網(wǎng)口獨(dú)立型工作模式示意圖
1.2.2 串口獨(dú)立型工作模式
串口獨(dú)立型工作模式是一種最簡單的上位機(jī)軟件連接形式,能夠同時適應(yīng)近程武器射擊訓(xùn)練、重武器射擊訓(xùn)練等多種實(shí)用需求,其具體連接方式如圖2所示。由于靶機(jī)狀態(tài)、射擊成績、靶數(shù)信息的存儲過程不需要數(shù)據(jù)庫主機(jī)的配合,因此NI-VISA編程接口的數(shù)據(jù)信息參量可直接借助RS232組織進(jìn)入系統(tǒng)核心控制主機(jī)中[9]。

圖2 串口獨(dú)立型工作模式示意圖
1.2.3 客戶端工作模式
在野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)上位機(jī)軟件的客戶端工作模式中(如圖3所示),中心主機(jī)的PC端設(shè)備可直接存儲靶機(jī)狀態(tài)、射擊成績與靶數(shù)信息,并可在NI-VISA編程接口的作用下,生成大量的虛擬信息文件,以供遠(yuǎn)程控制主機(jī)的直接調(diào)取與利用[10]。

圖3 客戶端工作模式示意圖
1.2.4 主機(jī)工作模式
與客戶端工作模式相比,主機(jī)工作模式增設(shè)了數(shù)據(jù)庫設(shè)備,且所有已生成的虛擬信息文件都可被數(shù)據(jù)庫主機(jī)完全存儲,如圖4所示。

圖4 主機(jī)工作模式示意圖
根據(jù)靶機(jī)設(shè)備工作需求的不同,遠(yuǎn)程控制可根據(jù)NI-VISA編程接口的連接形式,選擇最為合適的主機(jī)網(wǎng)絡(luò)工作模式。
遠(yuǎn)程控制系統(tǒng)的上位機(jī)軟件采取三層架構(gòu)的搭建模式,其結(jié)構(gòu)體系從上到下依次為UIL(用戶界面層)、BLL(業(yè)務(wù)邏輯層)、DAL(數(shù)據(jù)訪問層),如圖5所示。

圖5 上位機(jī)軟件的三層控制架構(gòu)示意圖
圖5中,用戶界面層邏輯結(jié)構(gòu)對應(yīng)野外靶場設(shè)備的實(shí)際靶數(shù)信息,作為整個控制架構(gòu)的頂層連接單元,主要負(fù)責(zé)篩查NI-VISA編程接口的連接能力,并可將所得數(shù)據(jù)信息匯總,反饋回核心控制主機(jī)中[11]。業(yè)務(wù)邏輯層結(jié)構(gòu)對應(yīng)個人射擊成績,在控制架構(gòu)體系中,該結(jié)構(gòu)起到承上啟下的連接作用,二次加工與處理已存儲的數(shù)據(jù)信息文件。數(shù)據(jù)訪問層結(jié)構(gòu)與野外靶場設(shè)備直接對應(yīng),能夠在上位機(jī)軟件的作用下,將靶數(shù)信息文件再次拆分成多個獨(dú)立的傳輸個體,以供數(shù)據(jù)源單位的調(diào)取。
一般情況下,上位機(jī)軟件與數(shù)據(jù)源單位同時負(fù)載于遠(yuǎn)程控制系統(tǒng)的架構(gòu)模式外部,可在準(zhǔn)確記錄靶數(shù)信息等文件參量的同時,對野外靶場設(shè)備的實(shí)時連接狀態(tài)進(jìn)行調(diào)試。
在野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)中,數(shù)據(jù)庫表始終與靶數(shù)信息參量保持對應(yīng)存在關(guān)系,即每一類靶場設(shè)備都會有一個完全獨(dú)立的數(shù)據(jù)庫表結(jié)構(gòu)與之對應(yīng)[12]。在實(shí)際設(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”,且可被上位機(jī)軟件的數(shù)據(jù)庫設(shè)備直接讀取出來,“newid”表示該類型字段的取值范圍為[1,e),“datetime”表示滿足該字段要求的靶數(shù)信息長度值等于“68”,通常為射擊成績的數(shù)據(jù)文件記錄形式,“int”表示靶數(shù)信息的常規(guī)輸出形式,“Unique identifier”表示可在遠(yuǎn)程控制系統(tǒng)上位機(jī)軟件中自由傳輸?shù)陌袛?shù)信息參量。

(2)
由于通訊模塊始終與數(shù)據(jù)庫表保持一一對應(yīng)關(guān)系,所以在野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)的上位機(jī)軟件中,待傳輸?shù)陌袛?shù)信息參量越多,通訊模塊的實(shí)際作用能力也就越強(qiáng),反之則越弱[15]。
在上位機(jī)軟件體系的支持下,按照串口字節(jié)數(shù)定義、遠(yuǎn)程串口配置、數(shù)據(jù)信息導(dǎo)入、程序框圖連接的處理流程,完成基于NI-VISA的遠(yuǎn)程控制程序設(shè)計,兩相結(jié)合,實(shí)現(xiàn)野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)軟件的設(shè)計與開發(fā)。
為實(shí)現(xiàn)野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)軟件開發(fā),應(yīng)用NI-VISA 編程接口來與各種儀器總線進(jìn)行通信,為遠(yuǎn)程控制系統(tǒng)的通信提供保障。NI-VISA總線 I/O軟件是一套與平臺、總線、環(huán)境獨(dú)立出來的集成軟件,可用于 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可以以一致的方式操作各種接口,并且具有很強(qiáng)的兼容性。
串口字節(jié)數(shù)是指靶數(shù)信息在單位時間內(nèi)通過NI-VISA編程接口的數(shù)量級水平,以bit/s作為衡量單位。對于野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)的上位機(jī)軟件而言,串口字節(jié)的數(shù)量級水平越高,就表示靶機(jī)設(shè)備中待顯示的靶數(shù)信息量越多。在實(shí)際應(yīng)用過程中,靶機(jī)設(shè)備顯示一個靶數(shù)信息和多個靶數(shù)信息所需的串口字節(jié)數(shù)量水平也有所不同[16]。簡單來說,就是在靶機(jī)設(shè)備中的所有靶數(shù)信息,都有且僅有一個串口字節(jié)與之保持獨(dú)立映射關(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編程主機(jī)元件的作用下,制定野外靶場設(shè)備遠(yuǎn)程控制主機(jī)的終止與啟用程序,并可以對已獲取的靶數(shù)信息進(jìn)行分析與處理,再將其中滿足串口字節(jié)數(shù)定義標(biāo)準(zhǔn)的數(shù)據(jù)參量,反饋到既定應(yīng)用結(jié)構(gòu)之中,從而生成完整的上位機(jī)控制程序[17]。具體配置原理如圖6所示。

圖6 遠(yuǎn)程串口配置原理
在實(shí)際應(yīng)用過程中,NI-VISA編程節(jié)點(diǎn)控制主機(jī)具備較強(qiáng)的適應(yīng)性能力,可在記錄野外靶場設(shè)備震動行為分析結(jié)果的同時,對上位機(jī)控制程序進(jìn)行初步修改,一方面判斷現(xiàn)有的串口字節(jié)數(shù)定義標(biāo)準(zhǔn)是否能夠滿足靶數(shù)信息的實(shí)時傳輸需求,另一方面也能夠?qū)?shù)據(jù)信息參量的輸出流量水平進(jìn)行嚴(yán)格把控[18]。
為使上位機(jī)軟件能夠準(zhǔn)確顯示野外靶場設(shè)備中的靶機(jī)狀態(tài)與射擊成績,遠(yuǎn)程串口的實(shí)時配置能力必須與NI-VISA接口所具備的數(shù)據(jù)信息編程能力完全匹配。
數(shù)據(jù)信息導(dǎo)入是指將靶數(shù)信息參量導(dǎo)入遠(yuǎn)程控制系統(tǒng)上位機(jī)軟件的實(shí)時處理過程,由于NI-VISA編程接口的存在,與靶機(jī)狀態(tài)和射擊成績相關(guān)的信息參量可在緩沖區(qū)組織中暫時存儲,并可根據(jù)遠(yuǎn)程串口配置原理,將符合字節(jié)數(shù)編碼原則的靶數(shù)信息反饋至核心控制主機(jī)中[19-20]。詳細(xì)的導(dǎo)入處理流程如圖7所示。

圖7 靶數(shù)信息導(dǎo)入流程圖
對于野外靶場設(shè)備而言,由于NI-VISA編程接口的存在,所有導(dǎo)入的靶數(shù)信息都可被數(shù)據(jù)庫主機(jī)直接記錄,這也是靶機(jī)狀態(tài)與射擊成績能夠完全符合實(shí)際射擊訓(xùn)練需求的主要原因[21-23]。
在野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)的上位機(jī)軟件執(zhí)行環(huán)境中,程序框圖決定了已導(dǎo)入靶數(shù)信息是否具有繼續(xù)存儲的價值,若考慮NI-VISA編程接口的作用能力,則可認(rèn)為框圖體系越完善,遠(yuǎn)程控制系統(tǒng)的實(shí)時存儲能力也就越強(qiá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)上位機(jī)軟件中的框圖信息的導(dǎo)入系數(shù),聯(lián)立公式(4),可將基于NI-VISA的靶數(shù)信息程序框圖標(biāo)準(zhǔn)定義條件表示為:
(5)
根據(jù)程序框圖定義標(biāo)準(zhǔn),處理已導(dǎo)入的靶數(shù)信息,實(shí)現(xiàn)基于NI-VISA的野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)軟件的順利應(yīng)用。
本次實(shí)驗(yàn)測試平臺的野外靶場設(shè)備包含重武器靶機(jī)、輕武器精度靶機(jī)、輕武器應(yīng)用靶機(jī)3種類型。
軟件應(yīng)用程序?qū)τ谝巴獍袌霭袡C(jī)設(shè)備的控制能力,表現(xiàn)在靶機(jī)示數(shù)與真實(shí)射擊成績之間的差值情況,一般來說,靶機(jī)示數(shù)越貼近真實(shí)射擊成績,則表示軟件應(yīng)用程序?qū)τ谝巴獍袌霭袡C(jī)設(shè)備的控制能力越強(qiáng),反之則越弱。設(shè)置串口字節(jié)數(shù)為256,野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)的傳輸程序標(biāo)度結(jié)果為10環(huán)。程序框圖處理已導(dǎo)入的靶數(shù)信息,為0~10環(huán)。
表2記錄了某人在重武器靶機(jī)、輕武器精度靶機(jī)、輕武器應(yīng)用靶機(jī)三類設(shè)備中的真實(shí)射擊成績。

表2 真實(shí)射擊成績
圖8反映了實(shí)驗(yàn)組、對照組靶數(shù)信息的實(shí)際顯示情況,其中實(shí)驗(yàn)組主機(jī)輸入基于NI-VISA的遠(yuǎn)程控制系統(tǒng)軟件程序,對照組主機(jī)輸入常規(guī)控制程序。

圖8 重武器靶機(jī)中的靶數(shù)信息
分析圖8可知,對于重武器靶機(jī)設(shè)備而言,實(shí)驗(yàn)組、對照組靶數(shù)信息均與真實(shí)射擊成績保持一致。這就表示基于NI-VISA的遠(yuǎn)程控制系統(tǒng)軟件程序、常規(guī)控制方法,均能較好滿足重武器射擊訓(xùn)練需求。
分析圖9可知,對于輕武器精度靶機(jī)而言,實(shí)驗(yàn)組靶數(shù)信息與真實(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中的真實(shí)射擊成績相比,并不能準(zhǔn)確顯示第二次射擊“9環(huán)”的結(jié)果。

圖9 輕武器精度靶機(jī)中的靶數(shù)信息
分析圖10可知,對于輕武器應(yīng)用靶機(jī)而言,實(shí)驗(yàn)組靶數(shù)信息依然能夠與真實(shí)射擊成績保持一致,對照組靶數(shù)信息顯示結(jié)果為8環(huán)、8環(huán)、8環(huán)、9環(huán)、10環(huán),與真實(shí)射擊成績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)用靶機(jī)中的靶數(shù)信息
綜上可知,對于重武器靶機(jī)、輕武器精度靶機(jī)、輕武器應(yīng)用靶機(jī)來說,應(yīng)用基于NI-VISA的遠(yuǎn)程控制系統(tǒng)軟件后,所顯示靶數(shù)信息都能與真實(shí)射擊成績完全保持一致。與常規(guī)控制程序相比,這種新型控制軟件可根據(jù)靶機(jī)設(shè)備的具體類型,為其提供最為適宜的工作模式,使其在顯示出真實(shí)射擊成績的同時,滿足各種不同的射擊訓(xùn)練需求,在軍事化技能訓(xùn)練中,具備較強(qiáng)的實(shí)際應(yīng)用價值。
在NI-VISA編程接口的作用下,野外靶場設(shè)備遠(yuǎn)程控制系統(tǒng)軟件從規(guī)范開發(fā)語言的角度著手,通過構(gòu)建三層架構(gòu)體系的方式,對數(shù)據(jù)庫表與通訊模塊結(jié)構(gòu)的連接能力進(jìn)行完善,根據(jù)已知的串口字節(jié)數(shù)定義標(biāo)準(zhǔn),可利用遠(yuǎn)程串口組織,將靶數(shù)信息導(dǎo)入數(shù)據(jù)庫體系之中,從而實(shí)現(xiàn)對程序框圖的規(guī)劃與完善。從實(shí)用性角度來看,這種軟件應(yīng)用程序可同時適應(yīng)重武器型、輕武器精度型、輕武器應(yīng)用型三類靶機(jī)結(jié)構(gòu),不但能夠?qū)崟r顯示靶機(jī)的狀態(tài)與射擊成績,也可以較好滿足多種不同的射擊訓(xùn)練需求。