亞當模塊數據采集系統VB6.0的實現
摘要:介紹了以VB6.0為開發工具,采用iDAQ-8000系列模塊,通過計算機的串口,實現多個傳感器輸出信號的采集處理。對采集到的信號再轉化為直觀的數字來進行數據處理。描述了系統的軟、硬件設計方法。
關鍵詞:數據采集、VB、RS-232C Abstract: ThepaperpresentshowtouseVB6.0torealizetheDAQ system.ThesystemmakeusedofEVOCiDAQ-800modules.
The datathatbetweenPCandARKmodulesistransferedbyRS-232 serialcommunicationprotocol.Itintroducesthedesignof hardwareandsoftwareofthissystem. Keywords: DataAcquisitionVBRS-232
一.前言
隨著計算機技術的發展,將現場數據采集模塊作為底層數據采集單元,以PC機作為監視終端,在工業現場得到了越來越廣泛的應用。它具有硬件電路簡單、顯示操作界面友好等優點。本文重點介紹了利用Visual Basic6.0實現現場數據采集的上位機采集方法。
二.系統組成
整個系統原理框圖如圖1所示。系統通過iDAQ-8000系列模塊直接從傳感器采集模擬信號,亞當iDAQ-8000系列模塊是分布式的遠端數據采集模塊。然后,連接到上位機上采用VB實現數據的計算處理。
在此系統中數據采集器實現原始數據的采集和處理使之成為能被計算機處理的數字信號。通過接口轉換器使數據采集器與計算機通信。通過PC采集檢測的數據,并編制適當的算法進行數據的最后處理計算,得到我們想要的試驗數據,從打印顯示設備中顯示、打印需要的數據。
三.硬件構成
RS-232是目前最常用的一種串行通信接口,是PC機的標準配置。RS-232通信協議的標準提供15m以內的單端線路的單向數據傳輸,最大數據傳輸速率20KB/S。要實現PC機對RS-485數據的采集,就需要通過協議轉換,將RS-485數據轉換為可以與PC通訊的RS-232協議數據。通過計算機的串行通信口實現對數據采集模塊的數據通訊,通過計算機來處理采集來的數據。
系統選用的數據采集模塊為iDAQ-8017,是 八通道模擬輸入模塊,來進行傳感器輸出的原始數據的采集。它的輸入類型是直接的模擬量輸入,主要特性: 輸入通道:采用6路差分和2路單端輸入; 輸入范圍為,±5V,有效分辨率為16位; 采樣頻率10次/秒,精度為±0.05%; 輸出:輸出RS-485協議數據。
系統選用的接口轉換器為iDAQ-8520,是 一種通訊模塊其功能是將RS-485協議的數據轉換為RS-232協議數據。主要特性: 協議:RS-485(2線)或RS-232(4線)協議; 速率:1200,2400,4800,9600,19.2K,38.4Kbps; 隔離電壓:5000Vrms。
因為模塊的隔離電壓高達5000V,因此可以將傳輸線上的噪聲隔離掉,即使線路上的設備因高電壓的侵襲而損壞時,也不致影響到監控計算機端,而達到保護的目的。
四.現場模塊各個模塊的設置:
1.iDAQ-8017
地址:01 VIN0:傳感器1信號; VIN1:傳感器2信號 VIN2:傳感器3信號
2.iDAQ-8520
此模塊實現RS-485協議到RS-232協議的轉換。
3.AM-T-V20/U5
系統中實際形成的接地點較多,由于各接地點的電位不同,就會產生低回路的電流疊加在信號中,使信號失去了真實性和穩定性。為消除地回路電流,系統通過增加信號隔離放大器(AM-T-V20/U5)來切斷地回路電流而使信號線性通過,達到抑制干擾的目的。信號放大器選用T系列小信號隔離放大模塊,模塊將現場傳感器輸出的mV級的小信號隔離放大到0-5V的電壓信號后輸入到現場采集模塊iDAQ-8017中。
五.軟件設計
對采集到的數據進行編程處理,在所有的程序設計語言中,本文選用Microsof的VisualBasic來進行程序的編制。VB中帶有一個MSCOMM的通信控件,用此控件可以方便的實現通訊功能。來實現從數據采集器中讀入數據。數據采集的基本實現流程如圖2所示。
1.程序初始化
MSComm控件可以讓你通過串行口傳輸和接收數據,它的屬性眾多,要通過MSComm控件進行串行通訊,必須先對它進行初始參數設置。其屬性設置為 MSComm1.CommPort=1'指定使用COM1作通信傳輸 MSComm1.Settings="9600,N,8,1" '設置初始參數,波特率9600,無奇偶校驗位,8位數據位1位停止位 MSComm1.InputLen=0'Input將讀取接收緩沖區的全部內容 MSComm1.OutBufferCount=0'清除接收緩沖區數據 MSComm1.RThreshold=8'引起OnComm事件的接收緩沖器收到的字符數 MSComm控件提供兩種處理通信的方式:事件驅動方式和查詢方式,在事件發生時需要得到通知。MSComm控件具有CommEvent屬性處理此類問題,當CommEvent屬性發生變化時,表示發生了一個通訊或錯誤事件。CommEvent屬性發生變化時,將觸發MSComm控件的OnComm事件,因此我們在該過程中進行檢測和接收數據。 SelectCaseMSComm1.CommEvent'根據下列情況處理通信與錯誤事件 CasecomEvCD'CarrierDetect線狀態變化 CasecomEvCTS'Clear-To-Send線狀態變化 CasecomEvDSR'Data-Set-Ready線狀態變化 CasecomEvRing'檢測到Ring CasecomEvReceive'收到Rthreshold定義的字符數 buf=MSComm1.Input'將接收到的字符串存入buf中 EndSelect
2.采集數據
系統在工業現場使用,存在大量的干擾源,干擾侵入系統的前向通道,疊加在信號上,特別是前向通道的傳感器接口是小電壓信號輸入,致使數據采集誤差加大。在軟件中采用算術平均值法這一最簡單的數字濾波方法。在這種方法中,對一點數據連續采樣多次,計算平均值,以其平均值作為該點的采樣結果。本程序采用取5次平均值,以減少系統的隨機干擾對采集結果的影響。當觸發數據采集命令后,通過MSComm控件實現數據采集,其程序編制為: TimeDelay100'延時100mS sum=0 MSComm1.PortOpen=True'打開串行通信口 Fori=1To5'對同一數據連續采5次 MSComm1.Output=""'清空傳輸寄存器 MSComm1.InputLen=0'Input將讀取接收緩沖區的全部內容 MSComm1.Output="#011"&vbCr'向1#亞當模塊1通道發出讀取數據命令 sum=sum+val(buf) Next sum=sum/5'取平均值 JTW.Caption=sum('顯示采集的數據 TimeDelay100'延時100mS MSComm1.PortOpen=False'關閉串行通信口采集到的數據,通過程序編制存放在一定位置,通過編制相應的算法程序用于其他用途。
六.結論
本文敘述的數據采集系統,硬件連接簡單、方便。對于PC機日益普及的今天,不需要增加太多的硬件設備就可以實現數據的采集。VB 6功能強大,編程簡單,根據具體應用要求,增加適當的算法,可實現對采集到的數據進行不同功能的擴展,具有一定的通用性。
參考文獻
1.范逸之、陳立元編著《VisualBasic與RS-232串行通信控制》中國青年出版社,2002
2.求是科技,《VisualBasic串口通信工程開發實例導航》人民郵電出版社,2003
文章版權歸西部工控xbgk所有,未經許可不得轉載。