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