張浩宇,張 旭
1.山東旅游職業(yè)學院,山東 濟南250200
2.海軍航空大學,山東 煙臺264001
在農林建設和礦山開發(fā)過程中,會使用許多電爆裝置。例如爆炸工程中常用的混合爆破網絡,就是由電起爆裝置-導爆索-塑料導爆管網等典型火工部件組成的;氣體爆破器材通常采用電激發(fā)式起爆裝置作為爆破首發(fā)火工品;礦山機車用滅火設備則采用電爆管作為其起爆裝置。為保證各類電爆裝置的可靠性,在使用前或一定時期內,需要對其狀態(tài)參數(shù)進行檢測和分析。由于電爆裝置均裝有火炸藥等含能材料,存在固有的敏感性和不安定性,會對現(xiàn)場檢測人員及裝備構成潛在風險。針對上述安全性測試需求,本文介紹一種基于VB 與單片機的遠控型電爆裝置數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)采用模塊化結構形式,具有操作簡便、可靠性高、維護方便等突出優(yōu)點,可很好地滿足電爆裝置性能監(jiān)控的高效性和高安全性需求。
電爆裝置遠程數(shù)據(jù)采集系統(tǒng)采用上位-下位機兩級結構形式。上位機單元由遠控計算機、打印機及UPS 電源組成,下位機則由電爆裝置檢測儀、微型打印機及直流供電電源組成(圖1)。
圖1 系統(tǒng)結構框圖Fig.1 System structure framework
圖2 上位機軟件組成Fig.2 Composition of the upper computer Software
上位的遠控計算機用于測試過程的遠程控制,可配置微軟的Access、Excel 等不同類型的數(shù)據(jù)庫,對前置的電爆裝置檢測儀進行控制,發(fā)送檢查命令,接收測試儀發(fā)送回來的實測值,并進行實時數(shù)據(jù)判讀。同時,利用計算機強大的數(shù)據(jù)儲存和處理功能,完成數(shù)據(jù)存儲、歷史數(shù)據(jù)查尋、測試表格生成以及測試結果打印等各項功能。上位機軟件組成如圖2 所示。
下位的電爆裝置檢測儀可以工作在遠控和本地兩種工作模式。遠控工作模式指測試儀通過RS232 通信電纜連接到遠控計算機,接收遠控計算機指令工作,并將測試數(shù)據(jù)實時上傳[1]。本地工作模式則是指測試儀獨立完成測試,將測試結果保存到測試儀本地存儲介質,對測試結果獨立判斷,并實施數(shù)據(jù)管理和打印數(shù)據(jù),是輔助模式,主要用于測試儀自檢及應急測試。
下位的電爆裝置檢測儀是一臺基于單片機的終端測試設備,由單片機核心板、A/D 變換模塊、綜合適配模塊和打印控制模塊構成數(shù)據(jù)采集及變換主通道,由LCD 液晶顯示器、16 位不銹鋼金屬工業(yè)級數(shù)字小鍵盤、嵌入式微型打印機和可充電供電模塊,組成外圍控制輔助通道,共同完成數(shù)據(jù)采集及通信傳輸功能。本文重點介紹單片機控制板、A/D 變換模塊及打印控制模塊等硬件電路設計。
單片機核心板是基于AT89C52 微處理器的最小配置工作單元,用于實現(xiàn)下位機的數(shù)據(jù)采集、結果貯存、狀態(tài)分析及傳輸打印等各種控制功能[2]。其中,AT89C52 是一款低電壓、高性能的CMOS 8位單片機,內置通用8 位中央處理器和Flash 存儲單元,器件采用ATMEL 公司的高密度、非易失性存儲技術生產,兼容標準MCS-51 指令系統(tǒng)[3]。
A/D 變換模塊用以完成被測狀態(tài)參量的數(shù)據(jù)變換及采集。本設計選用美國AD 公司的ADC0808轉換芯片,采樣分辨率為8 位,以逐次逼近原理進行模/數(shù)轉換。其內部有一個8 通道多路開關,可根據(jù)地址碼鎖存譯碼信號,只選通8 路模擬輸入中的一個進行A/D 轉換[4]。
打印控制模塊用于控制微型打印機輸出本地測試結果。目前常用的微型打印機主要有熱敏型和點陣針兩類。熱敏型采用加熱打印頭的方式,灼熱打印紙印字,打印速度較快,但數(shù)據(jù)易脫色,不能長期保存。因此,本設計選用TPUP-AT 系列點陣針打印機。該打印機采用并行接口形式,使用STB(數(shù)據(jù)選通觸發(fā)脈沖)、BUSY(線路忙)、ACK(應答脈沖)和DATA0-DATA7(輸入數(shù)據(jù)信號)作為信號特征[5]。本系統(tǒng)分配AT89C52 單片機的P0 用于數(shù)據(jù)傳輸;P2.0 連接打印機STB 接口,實現(xiàn)通訊信號控制;P2.2 與打印機BUSY 線相連,給打印機提供忙線信號[6]。
系統(tǒng)軟件設計包括人機界面控制,指令及數(shù)據(jù)傳輸,以及狀態(tài)參數(shù)檢測等各控制環(huán)節(jié),具體可分為下位檢測儀控制程序設計和上位計算機控制程序設計兩部分。
下位機的控制過程為:通過串行通信口接收上位機控制指令,經綜合適配單元及A/D 變換單元,獲取待測電爆裝置狀態(tài)參數(shù),并實現(xiàn)本地數(shù)據(jù)顯示、儲存及數(shù)據(jù)上傳。
在Keil uVisoin 集成開發(fā)環(huán)境下[7],采用C51 語言開發(fā)下位機控制程序。該集成開發(fā)環(huán)境可編譯匯編源程序及C 源代碼,創(chuàng)建HEX 文件,連接和重定位目標文件和庫文件,是一款功能強大的集成開發(fā)調試工具。本文僅給出串行通信初始化子程序[8]。
下位機配置有RS232 串行通信接口,串口采用方式1 工作模式,即10 位異步通信方式。一幀字符由1 位起始位,8 位數(shù)據(jù)位和1 位停止位組成,故設置SM0=0,SM1=1。波特率發(fā)生器為T1定時/計數(shù)器,工作在方式2,即采用8 位自動重裝方式,故設置TMOD|=0x20。采用11.0592MHz晶振,由“波特率及計數(shù)初值”數(shù)值表可知,應設TH1=0xfd,TL1=0xfd。設置電源控制寄存器PCON中SMOD=0,保持其初始波特率不變,故設PCON|=0x00。
void Init_ser()//T1 作為波特率發(fā)生器
上位計算機機操作程序包括串行通信、面板控制、數(shù)據(jù)顯示、數(shù)據(jù)庫管理、性能評估、報表生成及打印等軟件功能單元。上位機程序設計采用由微軟開發(fā)的包含協(xié)助開發(fā)環(huán)境的VB 編程語言。該語言提供一個可視化設計平臺,具有事件驅動和強大的數(shù)據(jù)庫功能,具有開發(fā)速度非常快,效率極高等突出優(yōu)點。本文僅給出串行通信、報表生成和打印程序設計。
3.2.1 串行通信單元VB 編程環(huán)境提供了串行通信控件Mscomm,用以便捷開發(fā)串行通信程序,讓用戶可以通過操作界面與串行端口進行溝通及傳送數(shù)據(jù)[9]。主要有事件驅動和查尋兩種工作方式。
本系統(tǒng)采用事件驅動方式,該方式是處理端口通信的一種有效方法。當有事件發(fā)生時,程序會被告知。程序利用Mscomm 控件來偵測并處理這些事件。預先裝程序寫入控件的事件程序區(qū)塊中,一旦事件發(fā)生自動執(zhí)行該段程序??丶饕獙傩裕?/p>
CommPort:設置通信端口代號,一般計算機會有1 至2 個標準串口,也可利用USB 轉RS232接口(安裝驅動),進行串行通信。
Settings:設置初始化參數(shù),以字符串的形式設置波特率、校驗碼、數(shù)據(jù)位、停止位四個參數(shù)。波特率即每秒通信的以BIT 為單位的數(shù)據(jù)量,本系統(tǒng)采用9600 波特率。
Portopen:設置串口狀態(tài),即端口的“打開”、“關閉”兩種狀態(tài)。使用串口進行通信前要打開串口,使用完畢后要關閉串口。在VB 中用邏輯值true 代表打開,用false 代表關閉。
Output:將待傳送的數(shù)據(jù)寫入傳輸寄存器,即向串口寫數(shù)據(jù)。
串口通信初始化設置程序:
3.2.2 報表生成 報表生成采用基本表格與內容修改相結合的方式產生,即以一個基本表格為基礎,根據(jù)采集時間、參量數(shù)據(jù)的不同,進行部分內容更新,并生成一個新報表[10]。采用VB 的OLE 自動化技術獲取控制Excel2003 句柄,編寫控制Excel 操作程序,直接控制Excel 的一系列操作。
3.2.3 報表打印 報表打印主要包括打開表格文件、打印設置以及數(shù)據(jù)打印等主要環(huán)節(jié)。報表打印引入commondialog 函數(shù),打印采用表單的“PrintOut”屬性完成。操作程序如下:
本文從工程作業(yè)實際需求出發(fā),采用上位機-下位機結構形式,設計開發(fā)了基于VB 與單片機控制的一體化自動檢測系統(tǒng),可實現(xiàn)采集過程的遠程控制、自動判讀和性能分析,在保障作業(yè)過程有序高效的同時,也有效降低了火工檢測作業(yè)風險。該系統(tǒng)的實際使用表明,數(shù)據(jù)采集精度、可靠性和安全性均達到設計指標要求,具備良好的應用前景。