儀表遠程數(shù)據(jù)采集開發(fā)與應用
摘要:利用ActiveX控件的MSComm通信控件,實現(xiàn)了Windows下單臺PC機與多臺計量儀表的串行通訊,達到了對分散設備的集中控制和計量數(shù)據(jù)的自動采集、自動匯總以及自動打印功能。
關(guān)鍵詞:PC機 RS-485 計量儀表 大屏幕
一、引言
在工業(yè)生產(chǎn)中,能源、物資的計量設備分布在現(xiàn)場的各個區(qū)域,給設備的監(jiān)控和數(shù)據(jù)的統(tǒng)計帶來諸多不便,隨著智能儀表技術(shù)的不斷發(fā)展,其通訊技術(shù)也在不斷加強,當今的測量儀表大多帶有RS-485通訊或RS-232接口,用現(xiàn)場總線方式可以實現(xiàn)多臺測量儀表的集中監(jiān)控與數(shù)據(jù)采集,實現(xiàn)了儀表直接接入PC機,利用在現(xiàn)場安裝大屏幕實時顯示計量儀表數(shù)據(jù),使現(xiàn)場配料人員做到配料心中有數(shù),利用“遠程傳輸”到辦公室實現(xiàn)了Window環(huán)境下一臺PC機與多臺測量儀表的串行通信功能,并且對儀表數(shù)據(jù)實現(xiàn)自動計量與自動匯總。
二、系統(tǒng)的硬件設計
采用RS-485總線技術(shù)的傳統(tǒng)設計方式:根據(jù)RS-485電氣規(guī)定,在兩線制傳輸方式下,RS-485驅(qū)動器可帶32個接收器,實現(xiàn)多點半雙工通訊。系統(tǒng)方框圖如下圖所示:
圖中PC機通過RS-232接口,經(jīng)RS-232——RS-485模塊與多臺流量計儀表相連接,一條總線上最多可接32臺,每臺儀表被賦予各自的通訊地址碼用以識別身份,這樣上位PC機就能通過RS-485總線對掛在總線上的每個儀表進行通訊。實現(xiàn)對計量儀表的遠程數(shù)據(jù)采集與監(jiān)控。
三、計量儀表及通訊功能
通常采用MODBUS通訊協(xié)議,采用RS-485半雙工的方式,積算儀表作為從機,上位PC機作為主機,控制和監(jiān)視計量儀表的運行,通訊波特率大多為9600bps。通訊格式為:1位起始位,8位數(shù)據(jù)位,1位奇偶校驗位,1位停止位,每個從站被賦唯一的本機地址,采用主機輪詢,從機應答的通訊方式。主機通過發(fā)送命令幀啟動一次通訊,從機接收到數(shù)據(jù)后,判斷呼叫地址是否和本機地址相同,若不同,則不予理睬,若相同則根據(jù)命令幀中的特征字(命令字),發(fā)送主機要求的數(shù)據(jù)幀。
四、Windows下的ActiveX控件
在Windows環(huán)境下,出于對系統(tǒng)的安全考慮,操作系統(tǒng)完全接管了各種硬件資源,不允許用戶直接對包括串口在內(nèi)的硬件中斷進行管理,以往人們只能通過繁瑣的API騐isual C++標準通訊函數(shù)來控制各種硬件,現(xiàn)在VB6.0提供了一個ActiveX控件稱為MSComm控件,利用它可以方便地進行計算機串口的通訊管理。
五、用程序?qū)崿F(xiàn)對儀表的串行通訊控制
1、在WindowsVB6.0編程環(huán)境下,新建工程引用MSComm通訊控件,在窗體中至少添加以下幾個基本控件:
① 1個MSComm控件,控制名為MSComml,用于軟件對串口的訪問;
② 兩個定時器控件,名為(TimPeriodic和TimNonPeriodic),TimPeriodic用于使Pc機定時向各儀表發(fā)送周期性命令,使其定時回傳實時數(shù)據(jù);TimNonPeriodic用于控制兩次非周期性指令傳送之間的時間間隔;
③ 1個非周期性命令發(fā)送按鈕CmdNonPeriodic,用于非周期性指令的傳送啟動;
④若干個用于顯示儀表參數(shù)的文本框和設置儀表參數(shù)的對話框。
2、監(jiān)控軟件的核心是如何讀取和處理現(xiàn)場儀表的實時數(shù)據(jù),編程時應注意以下幾個問題:
① 主機采用輪詢方式訪問從機,從機應答到發(fā)送完數(shù)據(jù)有一定的時間間隔,一般設定為2s~3s;