張浩宇 張 旭 胡 慧 呂曉峰
(1.山東旅游職業(yè)學(xué)院 濟(jì)南 250200)(2.海軍航空大學(xué) 煙臺(tái) 264001)
導(dǎo)彈裝備操作人員技能培訓(xùn),具有人員多、訓(xùn)練強(qiáng)度大、設(shè)備利用率高等突出特點(diǎn),在操作過程中通常需引入突發(fā)故障,以訓(xùn)練人員的應(yīng)急處置能力。實(shí)際的導(dǎo)彈裝備結(jié)構(gòu)復(fù)雜、造價(jià)高,使用次數(shù)和壽命都有嚴(yán)格要求,且很難產(chǎn)生和復(fù)現(xiàn)各種故障現(xiàn)象。因此,利用實(shí)裝進(jìn)行操作人員技能培訓(xùn),既不經(jīng)濟(jì)也不現(xiàn)實(shí),無法取得應(yīng)有的培訓(xùn)效果。本文介紹一種基于VB與單片機(jī)的模擬訓(xùn)練系統(tǒng),可很好滿足導(dǎo)彈裝備高強(qiáng)度培訓(xùn)的需求。
系統(tǒng)采用上位機(jī)(主控計(jì)算機(jī))模塊和下位機(jī)(STC單片機(jī))模塊兩級(jí)結(jié)構(gòu)形式。模擬訓(xùn)練系統(tǒng)組成框圖如圖1所示。
上位機(jī)模塊由PC機(jī)、故障設(shè)置導(dǎo)演臺(tái)及打印機(jī)三個(gè)部分組成。其中,PC機(jī)為中心顯示控制單元,用于人機(jī)對(duì)話操作,實(shí)現(xiàn)虛擬面板操作控制及測試數(shù)據(jù)動(dòng)態(tài)顯示;故障設(shè)置導(dǎo)演臺(tái)主要用于設(shè)置操作故障,并實(shí)時(shí)監(jiān)控受訓(xùn)人員的操作狀態(tài)和過程;操作數(shù)據(jù)形成報(bào)表,由打印機(jī)進(jìn)行輸出。
圖1 模擬訓(xùn)練系統(tǒng)組成框圖
下位機(jī)模塊由 STC89C52單片機(jī)[1]核心板、系統(tǒng)自檢、交直流供電組合、模擬VXI機(jī)箱、綜合適配單元、繼電器控制單元、數(shù)據(jù)采集及變換板、模擬信號(hào)發(fā)生器、面板操作狀態(tài)指示單元等組成。其中,單片機(jī)核心板作為上位機(jī)命令的執(zhí)行單元,由STC89C52單片機(jī)和外圍電路組成,通過USB(轉(zhuǎn)RS232)接口,與上位PC機(jī)相連接,接收上位機(jī)控制指令,控制其他功能單元,并將數(shù)據(jù)及狀態(tài)回傳[2];系統(tǒng)自檢單元提供原始參量(如電阻值、開關(guān)狀態(tài)值)用于全系統(tǒng)自檢;交直流供電組合則為全系統(tǒng)工作提供交、直流電源;模擬VXI機(jī)箱用于產(chǎn)生VXI自檢信號(hào),以完成機(jī)箱自檢過程;綜合適配用于實(shí)現(xiàn)采集模擬量的調(diào)理;繼電器控制單元用于信號(hào)及數(shù)據(jù)的輸入輸出控制;數(shù)據(jù)采集及變換板用于各路輸入數(shù)據(jù)的信號(hào)調(diào)理及變換處理;模擬信號(hào)發(fā)生器用于產(chǎn)生開關(guān)量、數(shù)字量及模擬量等輸出信號(hào);面板操作及狀態(tài)指示單元,用于監(jiān)視面板開關(guān)及按鍵信息,并控制面板狀態(tài)指示燈及蜂鳴器動(dòng)作,以實(shí)時(shí)顯示系統(tǒng)工作狀態(tài)。
在基于VB與單片機(jī)的模擬訓(xùn)練系統(tǒng)中,軟件設(shè)計(jì)是重要的組成部分,包括下位機(jī)單片機(jī)控制程序模塊和上位PC機(jī)操作程序模塊。下位機(jī)與上位機(jī)之間采用RS232串行通信方式。
上位PC機(jī)內(nèi)配有RS-232串行標(biāo)準(zhǔn)接口,可依據(jù)RS-232串行協(xié)議,與下位單片機(jī)(采用TTL電平)進(jìn)行點(diǎn)對(duì)點(diǎn)串行通信。由于兩者之間存在邏輯電平差異,本文采用MAX232芯片完成電平轉(zhuǎn)換。單片機(jī)與PC的通信接口電路如圖2所示[3]。
圖2 單片機(jī)與PC串行通信接口電路
單片機(jī)控制程序模塊主要由串行初始化和串行中斷處理兩部分組成。
1)串口初始化
串口選擇方式1,即10位異步通信方式,設(shè)置SM0=0,SM1=1。
選擇T1為波特發(fā)生器,并使其工作在方式2,故設(shè)置TMOD=0×20。系統(tǒng)采用11.0592MHz晶振,為獲得9600波特率,TH1、TL1均設(shè)為0xFD。
初始化程序如下:
2)串行中斷處理
單片機(jī)共有5個(gè)中斷源,其中串口中斷為inter?rupt4[4]。當(dāng)上位PC機(jī)經(jīng)串行口發(fā)出控制指令后,下位單片機(jī)啟動(dòng)中斷處理子程序:首先關(guān)閉串行口接收中斷標(biāo)志位RI,即RI=0;然后將串行輸入數(shù)據(jù)傳遞給Rdat,即Rdat=SBUF;最后對(duì)Rdat進(jìn)行判讀,控制下位機(jī)進(jìn)入對(duì)應(yīng)的工作狀態(tài)。判讀值與工作狀態(tài)對(duì)應(yīng)關(guān)系如下:
如果下位單片機(jī)單向接收上位機(jī)控制指令,則其main()函數(shù)僅需要執(zhí)行初始化子程序即可,表述如下:
上位機(jī)操作程序模塊采用了面向?qū)ο蟮脑O(shè)計(jì)方法,模塊結(jié)構(gòu)如圖3所示。
圖3 PC機(jī)操作程序模塊結(jié)構(gòu)圖
本文著重介紹兩個(gè)主要程序模塊設(shè)計(jì)。
1)串行通信模塊
系統(tǒng)采用Mscomm控件,通過事件驅(qū)動(dòng)方式[5],實(shí)現(xiàn)與下位機(jī)的串行通信。當(dāng)控件檢測到下位機(jī)有事件發(fā)生時(shí),即執(zhí)行相應(yīng)的控制程序,完成雙機(jī)通信任務(wù)??刂瞥绦蛑饕a如下:
2)報(bào)表及打印模塊
(1)報(bào)表生成
通過獲取Excel2003句柄,控制Excel的操作過程[6]。
①獲取Excel句柄
引用Microsoft Excel 11.0 object Library,如圖4所示。
建立Excel對(duì)象,獲得句柄:
②打開Excel工作簿
③創(chuàng)建表單
④填寫表單
圖4 引用Microsoft Excel類型庫
⑤保存工作薄
“cslj”意為測試路徑,用于建立存放測試報(bào)表的文件夾,由窗口輸入值確定。該文件夾與每位操作人員的每一次操作相對(duì)應(yīng),具有唯一性。
⑥交還Excel控制句柄
(2)報(bào)表打印
報(bào)表打印是通過引入CommonDialog函數(shù)完成[7]。
①打開表格文件
VB提供一組基于Windows的標(biāo)準(zhǔn)對(duì)話框界面,用戶可利用對(duì)話框工具在窗體上創(chuàng)建包括打開(Open)在內(nèi)的六種對(duì)話框。對(duì)話框不是標(biāo)準(zhǔn)控件,須在“工程”菜單中“部件”對(duì)話欄中選定Micro?soft Common Dialog Control 6.0,將該標(biāo)準(zhǔn)控件加入窗體,并通過對(duì)工具條編程實(shí)現(xiàn)打印設(shè)置[8]。
②打印設(shè)置
利用CommonDialog部件的打印對(duì)話框進(jìn)行打印設(shè)置[9]。
③打印
通過對(duì)工具條編程實(shí)現(xiàn)打印[10]。
系統(tǒng)可以工作在故障設(shè)置模式,依據(jù)上位機(jī)輸入的故障碼不同,可以對(duì)每一項(xiàng)測試內(nèi)容可以進(jìn)行故障設(shè)置,當(dāng)運(yùn)行到故障點(diǎn)時(shí),會(huì)彈出相應(yīng)的故障提示信息[11]。操作人員可點(diǎn)擊“繼續(xù)”完成后續(xù)內(nèi)容測試,也可以點(diǎn)擊“終止”按鈕,退出當(dāng)前操作。故障狀態(tài)顯示如圖5所示。
圖5 故障狀態(tài)顯示界面
1)設(shè)置全局變量
設(shè)置全局變量用于工作模式的選擇。每一個(gè)測試單元工作時(shí),會(huì)首先判斷各自對(duì)應(yīng)的全局變量值,以決定進(jìn)入“故障模式”還是“正常模式”[12]。
'測試故障標(biāo)志
2)故障設(shè)置
通過串口由上位機(jī)接收故障代碼[13]。
本文從操作人員技能培訓(xùn)實(shí)際需求出發(fā),以實(shí)際裝備為模擬對(duì)象,遵循“外觀一致、接口一致、操作流程一致”的基本原則,研制了基于VB與單片機(jī)的智能化導(dǎo)彈操作模擬訓(xùn)練系統(tǒng)。同時(shí),在系統(tǒng)中增加了故障設(shè)定、特情處置及訓(xùn)練效能評(píng)估等一系列實(shí)裝所不具備的輔助訓(xùn)練功能,構(gòu)成一套功能完備、造價(jià)低廉、可高強(qiáng)度使用的模擬訓(xùn)練系統(tǒng)。較好地實(shí)現(xiàn)了控制培訓(xùn)成本、擴(kuò)大培訓(xùn)規(guī)模的設(shè)計(jì)要求,大幅度縮短了培訓(xùn)時(shí)間,顯著提高了培訓(xùn)效率,起到了“事半功倍”的良好效果。