|
作者:馬誌剛
摘要:介紹了以VB6.0為開發工具,采用iDAQ-8000係(xi)列(lie)模(mo)塊(kuai),通(tong)過(guo)計(ji)算(suan)機(ji)的(de)串(chuan)口(kou),實(shi)現(xian)多(duo)個(ge)傳(chuan)感(gan)器(qi)輸(shu)出(chu)信(xin)號(hao)的(de)采(cai)集(ji)處(chu)理(li)。對(dui)采(cai)集(ji)到(dao)的(de)信(xin)號(hao)再(zai)轉(zhuan)化(hua)為(wei)直(zhi)觀(guan)的(de)數(shu)字(zi)來(lai)進(jin)行(xing)數(shu)據(ju)處(chu)理(li)。描(miao)述(shu)了(le)係(xi)統(tong)的(de)軟(ruan)、硬件設計方法。 關鍵詞:數據采集、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實現數據的計算處理。 zaicixitongzhongshujucaijiqishixianyuanshishujudecaijihechulishizhichengweinengbeijisuanjichulideshuzixinhao。tongguojiekouzhuanhuanqishishujucaijiqiyujisuanjitongxin。tongguoPC采集檢測的數據,並編製適當的算法進行數據的最後處理計算,得到我們想要的試驗數據,從打印顯示設備中顯示、打印需要的數據。
三.硬件構成 RS-232是目前最常用的一種串行通信接口,是PC機的標準配置。RS-232通信協議的標準提供15m以內的單端線路的單向數據傳輸,最大數據傳輸速率20KB/S。要實現PC機對RS-485數據的采集,就需要通過協議轉換,將RS-485數據轉換為可以與PC通訊的RS-232協議數據。通過計算機的串行通信口實現對數據采集模塊的數據通訊,通過計算機來處理采集來的數據。 係統選用的數據采集模塊為iDAQ-8017,是 八通道模擬輸入模塊,來進行傳感器輸出的原始數據的采集。它的輸入類型是直接的模擬量輸入,主要特性: 61656;輸入通道:采用6路差分和2路單端輸入; 61656;輸入範圍為,±5V,有效分辨率為16位; 61656;采樣頻率10次/秒,精度為±0.05%; 61656;輸出:輸出RS-485協議數據。 係統選用的接口轉換器為iDAQ-8520,是 一種通訊模塊其功能是將RS-485協議的數據轉換為RS-232協議數據。主要特性: 61656;協議:RS-485(2線)或RS-232(4線)協議; 61656;速率:1200,2400,4800,9600,19.2K,38.4Kbps; 61656;隔離電壓:5000Vrms。 因為模塊的隔離電壓高達5000V,因此可以將傳輸線上的噪聲隔離掉,即使線路上的設備因高電壓的侵襲而損壞時,也不致影響到監控計算機端,而達到保護的目的。
四.現場模塊各個模塊的設置: 1.iDAQ-8017 地址:01 VIN0:傳感器1信號; VIN1:傳感器2信號 VIN2:傳感器3信號 2.iDAQ-8520 此模塊實現RS-485協議到RS-232協議的轉換。 3.AM-T-V20/U5 係xi統tong中zhong實shi際ji形xing成cheng的de接jie地di點dian較jiao多duo,由you於yu各ge接jie地di點dian的de電dian位wei不bu同tong,就jiu會hui產chan生sheng低di回hui路lu的de電dian流liu疊die加jia在zai信xin號hao中zhong,使shi信xin號hao失shi去qu了le真zhen實shi性xing和he穩wen定ding性xing。為wei消xiao除chu地di回hui路lu電dian流liu,係xi統tong通tong過guo增zeng加jia信xin號hao隔ge離li放fang大da器qi(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.采集數據 係(xi)統(tong)在(zai)工(gong)業(ye)現(xian)場(chang)使(shi)用(yong),存(cun)在(zai)大(da)量(liang)的(de)幹(gan)擾(rao)源(yuan),幹(gan)擾(rao)侵(qin)入(ru)係(xi)統(tong)的(de)前(qian)向(xiang)通(tong)道(dao),疊(die)加(jia)在(zai)信(xin)號(hao)上(shang),特(te)別(bie)是(shi)前(qian)向(xiang)通(tong)道(dao)的(de)傳(chuan)感(gan)器(qi)接(jie)口(kou)是(shi)小(xiao)電(dian)壓(ya)信(xin)號(hao)輸(shu)入(ru),致(zhi)使(shi)數(shu)據(ju)采(cai)集(ji)誤(wu)差(cha)加(jia)大(da)。在(zai)軟(ruan)件(jian)中(zhong)采(cai)用(yong)算(suan)術(shu)平(ping)均(jun)值(zhi)法(fa)這(zhe)一(yi)最(zui)簡(jian)單(dan)的(de)數(shu)字(zi)濾(lv)波(bo)方(fang)法(fa)。在(zai)這(zhe)種(zhong)方(fang)法(fa)中(zhong),對(dui)一(yi)點(dian)數(shu)據(ju)連(lian)續(xu)采(cai)樣(yang)多(duo)次(ci),計(ji)算(suan)平(ping)均(jun)值(zhi),以(yi)其(qi)平(ping)均(jun)值(zhi)作(zuo)為(wei)該(gai)點(dian)的(de)采(cai)樣(yang)結(jie)果(guo)。本(ben)程(cheng)序(xu)采(cai)用(yong)取(qu)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
|