儀表遠(yuǎn)程數(shù)據(jù)采集開發(fā)與應(yīng)用

當(dāng)前位置:首頁 >> 儀器儀表資訊

儀表遠(yuǎn)程數(shù)據(jù)采集開發(fā)與應(yīng)用

 摘要:利用ActiveX控件的MSComm通信控件,實(shí)現(xiàn)了Windows下單臺(tái)PC機(jī)與多臺(tái)計(jì)量?jī)x表的串行通訊,達(dá)到了對(duì)分散設(shè)備的集中控制和計(jì)量數(shù)據(jù)的自動(dòng)采集、自動(dòng)匯總以及自動(dòng)打印功能。

關(guān)鍵詞:PC機(jī) RS-485 計(jì)量?jī)x表 大屏幕

一、引言

在工業(yè)生產(chǎn)中,能源、物資的計(jì)量設(shè)備分布在現(xiàn)場(chǎng)的各個(gè)區(qū)域,給設(shè)備的監(jiān)控和數(shù)據(jù)的統(tǒng)計(jì)帶來諸多不便,隨著智能儀表技術(shù)的不斷發(fā)展,其通訊技術(shù)也在不斷加強(qiáng),當(dāng)今的測(cè)量?jī)x表大多帶有RS-485通訊或RS-232接口,用現(xiàn)場(chǎng)總線方式可以實(shí)現(xiàn)多臺(tái)測(cè)量?jī)x表的集中監(jiān)控與數(shù)據(jù)采集,實(shí)現(xiàn)了儀表直接接入PC機(jī),利用在現(xiàn)場(chǎng)安裝大屏幕實(shí)時(shí)顯示計(jì)量?jī)x表數(shù)據(jù),使現(xiàn)場(chǎng)配料人員做到配料心中有數(shù),利用“遠(yuǎn)程傳輸”到辦公室實(shí)現(xiàn)了Window環(huán)境下一臺(tái)PC機(jī)與多臺(tái)測(cè)量?jī)x表的串行通信功能,并且對(duì)儀表數(shù)據(jù)實(shí)現(xiàn)自動(dòng)計(jì)量與自動(dòng)匯總。

二、系統(tǒng)的硬件設(shè)計(jì)

采用RS-485總線技術(shù)的傳統(tǒng)設(shè)計(jì)方式:根據(jù)RS-485電氣規(guī)定,在兩線制傳輸方式下,RS-485驅(qū)動(dòng)器可帶32個(gè)接收器,實(shí)現(xiàn)多點(diǎn)半雙工通訊。系統(tǒng)方框圖如下圖所示:

 

圖中PC機(jī)通過RS-232接口,經(jīng)RS-232——RS-485模塊與多臺(tái)流量計(jì)儀表相連接,一條總線上最多可接32臺(tái),每臺(tái)儀表被賦予各自的通訊地址碼用以識(shí)別身份,這樣上位PC機(jī)就能通過RS-485總線對(duì)掛在總線上的每個(gè)儀表進(jìn)行通訊。實(shí)現(xiàn)對(duì)計(jì)量?jī)x表的遠(yuǎn)程數(shù)據(jù)采集與監(jiān)控。

三、計(jì)量?jī)x表及通訊功能

通常采用MODBUS通訊協(xié)議,采用RS-485半雙工的方式,積算儀表作為從機(jī),上位PC機(jī)作為主機(jī),控制和監(jiān)視計(jì)量?jī)x表的運(yùn)行,通訊波特率大多為9600bps。通訊格式為:1位起始位,8位數(shù)據(jù)位,1位奇偶校驗(yàn)位,1位停止位,每個(gè)從站被賦唯一的本機(jī)地址,采用主機(jī)輪詢,從機(jī)應(yīng)答的通訊方式。主機(jī)通過發(fā)送命令幀啟動(dòng)一次通訊,從機(jī)接收到數(shù)據(jù)后,判斷呼叫地址是否和本機(jī)地址相同,若不同,則不予理睬,若相同則根據(jù)命令幀中的特征字(命令字),發(fā)送主機(jī)要求的數(shù)據(jù)幀。

四、Windows下的ActiveX控件

在Windows環(huán)境下,出于對(duì)系統(tǒng)的安全考慮,操作系統(tǒng)完全接管了各種硬件資源,不允許用戶直接對(duì)包括串口在內(nèi)的硬件中斷進(jìn)行管理,以往人們只能通過繁瑣的API騐isual C++標(biāo)準(zhǔn)通訊函數(shù)來控制各種硬件,現(xiàn)在VB6.0提供了一個(gè)ActiveX控件稱為MSComm控件,利用它可以方便地進(jìn)行計(jì)算機(jī)串口的通訊管理。

五、用程序?qū)崿F(xiàn)對(duì)儀表的串行通訊控制

1、在WindowsVB6.0編程環(huán)境下,新建工程引用MSComm通訊控件,在窗體中至少添加以下幾個(gè)基本控件:

① 1個(gè)MSComm控件,控制名為MSComml,用于軟件對(duì)串口的訪問;

② 兩個(gè)定時(shí)器控件,名為(TimPeriodic和TimNonPeriodic),TimPeriodic用于使Pc機(jī)定時(shí)向各儀表發(fā)送周期性命令,使其定時(shí)回傳實(shí)時(shí)數(shù)據(jù);TimNonPeriodic用于控制兩次非周期性指令傳送之間的時(shí)間間隔;

③ 1個(gè)非周期性命令發(fā)送按鈕CmdNonPeriodic,用于非周期性指令的傳送啟動(dòng);

④若干個(gè)用于顯示儀表參數(shù)的文本框和設(shè)置儀表參數(shù)的對(duì)話框。

2、監(jiān)控軟件的核心是如何讀取和處理現(xiàn)場(chǎng)儀表的實(shí)時(shí)數(shù)據(jù),編程時(shí)應(yīng)注意以下幾個(gè)問題:

① 主機(jī)采用輪詢方式訪問從機(jī),從機(jī)應(yīng)答到發(fā)送完數(shù)據(jù)有一定的時(shí)間間隔,一般設(shè)定為2s~3s;

發(fā)布人:2008/8/14 9:43:002425 發(fā)布時(shí)間:2008/8/14 9:43:00 此新聞已被瀏覽:2425次