倪 勇,夏育榮,蘇 潤
(中國電子科技集團公司第三十八研究所 浮空平臺部,安徽 合肥 230031)
空器囊體內部溫度與浮空器所處環境 溫度差稱為超熱。浮空器采用輕于空氣的氣體提供浮力,從而克服自身重力升空,而氣體體積受溫度變化影響較大,因此超熱對浮空器浮力影響較大。為研究和掌握浮空器超熱及其對浮力影響規律,需要在地面進行浮空器囊體內部超熱實驗。傳統的實驗方法使用溫度計和U型管分別記錄空氣囊體內部溫度和壓力,并人工觀察、記錄溫度和壓力值,這種方法自動化程度低,實驗人員勞動強度大,易造成疲憊,也容易出現人員讀數或記錄錯誤等情況。因此,針對囊體超熱實驗研究了一種自動化多傳感器數據采集系統。
本系統使用智能溫度傳感器和微差壓傳感器搭建,采用總線結構將溫度傳感器和微差壓傳感器連接到計算機,從而大大簡化了硬件電路的實現,同時降低了線路導線重量。溫度傳感器和微差壓傳感器供電由地面或浮空器上28V電源提供。上位機界面使用VC編程實現,可實時采集和顯示囊體內部溫度和氣壓的變化情況,同時可根據需要保存數據,便于后續處理和分析,上位機布置于地面時可進行超熱實驗地面研究;布置于浮空器上時,可進行浮空器升空超熱實驗。系統結構組成如圖1所示。系統各傳感器節點通過RS-485總線實現與上位PC機之間的信息通訊,從而實現數據的采集與顯示。
由于需要在囊體內部不同部位采集多個溫度量,因此在保證系統工作可靠性的前提下,為便于操作,總線結構采用RS-485形式。
RS-485差分數據傳輸的電氣規范,現已成為業界應用較為廣泛的標準通信接口之一。RS-485為總線式拓撲結構,在同一總線上最多可以掛接32個節點。在本系統中的RS-485通信網絡中采用的是主從通信方式,即一臺上位機(主機)帶多個傳感器(從機)的控制方式。由于主機串口為RS232接口,因此總線上位機一端使用一個RS-485轉RS-232轉換器實現與PC機的連接。
溫度傳感器選用了一款MT-WDT具有標準485通訊接口的高可靠性分布式測溫傳感器,具備微功耗、寬工作電壓(DC 5~28V)、寬測溫度范圍(-40℃~85℃)等特點,并采用金屬封閉式封裝,具有優良的抗紫外線、抗靜電、防雷、抗震、防水、防腐蝕性氣體的能力,適用于氣象探測、惡劣工業環境等需要高可靠性和穩定性、長期工作的應用領域。溫度傳感器采用晶體諧振式形式,是目前抗干擾能力最好的測溫方法。傳感器結構如圖2所示。

圖1系統結構組成圖
模塊的通訊協議遵照Modbus-RTU,波特率2400bps,8bit數據,1bit停止位,無奇偶校驗。Modbus協議中,數據存儲、傳輸均以“寄存器”為單位,每個寄存器都是2字節數據,高字節在先。通訊幀中,除CRC校驗低字節在先外,其余雙字節數據均高字節在先。

圖2 溫度傳感器原理框圖
在RS-485總線上,每個模塊都必須有唯一的地址(機號),因此需要對每個模塊設置地址。地址設置使用了Modbus協議中的“寫寄存器”命令,地址設置采用了廣播方式。因此,在進行地址設置時,RS-485總線上一次只允許尋址一個模塊,同時為了防止模塊地址因誤操作被修改,模塊只有在上電10秒內才能接收寫地址指令。
微差壓傳感器選用了一款精密智能壓力傳感器,該系列傳感器可適用于干性氣體。傳感器帶有不銹鋼隔膜,適用于腐蝕性介質的測量,產品基于先進硅壓阻技術,內含微處理器進行補償和通訊。該傳感器在超過工業溫度范圍內能達到0.05%的精度,由于內部壓力敏感元件的重復性好和利用單片機進行數字補償,可獲得穩定的高精度,在-40~85℃的溫度范圍內,具有0.05%FS的典型精度,年穩定性優于0.025%。傳感器提供RS-485 和4-20mA 兩種不同輸出形式,數字輸出采樣速度最高可達到每秒120 點。傳感器原理結構如圖3所示。
微差壓傳感器通過RS-485總線聯網,一臺PC機最多可掛接32個傳感器,每個傳感器具有有一個獨立的地址。利用這種網絡模式,用戶可以在某個傳感器,或一組傳感器、或網絡上所有傳感器通訊;改變波特率,從1200 至28800bps;設定壓力讀數形式,對每個傳感器單位進行設定。

圖3 微差壓傳感器原理框圖
本系統軟件使用VC++進行編寫,串口通信部分使用MSComm控件。Microsoft Communication Control(簡稱MSComm)是Microsoft公司的簡化Windows下串行通訊編程的ActiveX控件,它為應用程序提供了通過串口收發數據的簡便方法。MSComm控件具有完善的串行數據的接收和發送功能,它不但包括了全部Windows API中關于串行通信函數所具有的功能,還提供了更多的對象屬性來滿足不同用戶的編程需要。用戶只需通過設置并監視其屬性和事件,即可完成串口編程,實現與被控制對象的串行通信、數據交換;并監視或響應在通信過程中可能發生的各種錯誤和事件。
MSComm控件的工作原理類似中斷方式,其通信功能的實現,實際上是調用了API函數。通信過程的實質是通過對MSComm控件屬性的操作和對OnComm事件的響應來完成對串行口的查詢、設置及通信。
它提供兩種處理通訊的方式:事件驅動法和查詢法。其中事件驅動通訊是利用MSComm控件的OnComm事件捕獲并處理通訊事件,它類似于硬件的中斷方式,具有響應及時和可靠性高的特點。查詢法則是通過檢查MSComm的CommEvent屬性值來查詢事件和錯誤。本程序中采用的是事件驅動方式。
MSComm控件在程序中的使用方法和步驟如下:
(1)加入MSComm控件;
(2)設定通信端口號,即CommPort屬性;
(3)設定傳輸速度等參數,即Setting屬性;
(4)開啟通信端口,即將PortOpen屬性設置為True;
(5)使用Input和Output屬性,輸入和輸出數據;
(6)關閉通信端口時將PortOpen屬性設置為False。
在本系統的串口通訊的編程中需要注意兩個問題。一是每次打開串口前需要加入該串口是否已經打開的判斷,否則易引起程序錯誤。二是本例中使用的兩種傳感器波特率并不相同,溫度傳感器為2400bps且不可更改,微差壓傳感器雖然可調,但通過實驗發現,其通信只能穩定工作在9600bps或更高波特率下,因此在與不同傳感器進行通信時,必須對串口設置進行修改,實驗結果表明,串口通信完全可以在兩種波特率模式下很好地切換工作。
由于本系統使用傳感器較多,為避免時序混亂,因此使用輪詢方式定時查詢各傳感器數據,并顯示和存儲。軟件流程如圖4所示。
由于采用輪詢方式進行數據采集,因此定時器1用于確定輪詢時間。定時器1的時間由所有傳感器通信時間總和決定。設定定時器1的好處是任意兩次采集傳感器數據的時間間隔基本相等,這為后續的數據處理提供了便利。
定時器2用于設定傳感器反饋時間,如果定時器時間內傳感器無反饋,則說明傳感器通信失敗,此時將在界面顯示該傳感器為空,同時跳過該傳感器查詢下一個傳感器數據。定時器2的時間設定需根據各溫度傳感器和微差壓傳感器的通信格式和波特率計算通信傳輸時間。
PC機按照定時器2的時間向各傳感器發送詢問指令,傳感器收到詢問指令后,將溫度或壓力信息按照約定的通信格式傳輸到PC機,數據傳輸到達PC機時,將產生一個串口中斷,程序響應中斷讀取串口數據。
PC機讀取數據后首先按照約定的校驗方式對數據進行檢查,如通過校驗,則提取溫度或壓力值并顯示在界面上,否則說明通信發生錯誤并丟棄數據,部分程序顯示界面如圖5所示。最后,程序根據設定決定是否保存數據。

圖4 軟件流程圖
除數據顯示外,對于囊體壓力這一重要數據,程序還以曲線圖的形式加以顯示,以直觀了解壓力變化情況。
程序設有保存數據按鈕,按下按鈕時,將在C盤根目錄下建立一個文件夾,文件夾以當前時間為文件名,文件名格式為“年-月-日,時-分-秒”,為便于對每個傳感器的輸出進行單獨數據處理,此時程序將在該目錄下以各傳感器類型和節點號為名稱保存一個TXT文檔,如“溫度1”,在各文檔中分別記錄當前傳感器輸出值,記錄格式為“年-月-日,時-分-秒 XX℃”。記錄效果如圖6所示。

圖5 部分程序顯示界面

圖6 數據記錄
由于實驗時間持續較長,為保證單個文件不至于過大導致文件出錯,程序設定每個整點時間重新生成一個文件夾,同樣以當前日期和時間命名該文件夾,同時將保存路徑自動切換至該文件夾,生成新的數據文件。
該多通道傳感器數據采集系統開發成本較低,除傳感器費用外,基本無其它支出。系統開發完成后,在囊體超熱實驗過程中投入使用并得到了良好的驗證。
囊體超熱實驗同時進行了兩個氣球囊體的測試,共連續運行168小時,程序運行穩定,無意外情況發生,數據記錄完整。實驗界面如圖7所示。

圖7 應用程序界面
該套系統投入運行后,工作人員對囊體超熱實驗的狀況能隨時監控,減輕了勞動強度實現了囊體超熱實驗自動化的預期目的。同時,提供了較為完善的數據記錄功能,使后續試驗數據處理的精度大為提高,時間大為縮短。該系統實時性好,可靠性高,故障率低,成本低,維護簡單方便,能長時間無差錯地實現多通道傳感器數據采集、顯示和保存相比于傳統人員監視和手工記錄的方式,采用該系統進行囊體超熱實驗,人員由過去的4人輪流值班,減少為1人每隔2小時檢查一次,工作強度大為降低,且采用電子文檔記錄實驗數據的方式,省去了手工記錄數據并錄入計算機分析的過程,減少了數據出錯概率。系統經過7天24小時連續實驗,有效獲取并記錄了全部實驗數據,實驗全程系統運行穩定,降低了勞動強度,提高了勞動效率,采用電子方式記錄的實驗數據極大的方便了實驗結束后的數據分析,提供了數據分析的準確性,系統研制達到了預期目的。
[1] 林濤,鄒黎華,耿勇男.多類型多通道的數據采集系統設計[J].電子測量與儀器學報,2009,23(51):236-239.
[2] 鄧福偉,劉振興,周恒.多通道數據采集系統的設計[J].微計算機信息,2008(25):148-150.
[3] 薛海濤,和衛星,陳曉萍.數據采集系統中Modbus協議的實現廳[J].微計算機信息,2007,23(10):68-69.
[4] 朱文忠.基于VC的串行通信的實現方法探析[J].微電子學與計算機,2007,24(1):159-161.
[5] 張宏林.精通Visual C++串口通信技術與工程實踐(第三版)[M].北京:人民郵電出版社,2008:106-109.
[6] 姚領田.精通MFC程序設計[M].北京:人民郵電出版社,2006:87-92.