儀表遠程數(shù)據(jù)采集開發(fā)與應用
摘要:利用ActiveX控件的MSComm通信控件,實現(xiàn)了Windows下單臺PC機與多臺計量儀表的串行通訊,達到了對分散設備的集中控制和計量數(shù)據(jù)的自動采集、自動匯總以及自動打印功能。
關鍵詞:PC機 RS-485 計量儀表 大屏幕
一、引言
在工業(yè)生產(chǎn)中,能源、物資的計量設備分布在現(xiàn)場的各個區(qū)域,給設備的監(jiān)控和數(shù)據(jù)的統(tǒng)計帶來諸多不便,隨著智能儀表技術的不斷發(fā)展,其通訊技術也在不斷加強,當今的測量儀表大多帶有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總線技術的傳統(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函數(shù)或Visual 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;
② 由于采用一個串口和半雙工通訊方式,一方發(fā)送數(shù)據(jù)時另一方必須等待接收,因此在發(fā)送非周期性命令時,必須停止輪詢,否則會發(fā)生數(shù)據(jù)包碰撞,使通訊失敗。
3、數(shù)據(jù)的接收和處理:計量儀表回傳數(shù)據(jù)時即可在主機上引發(fā)OnComm( )事件,在此事件處理函數(shù)中,首先判斷接收數(shù)據(jù)的完整性,然后將數(shù)據(jù)一次全部讀到所定義的變量參數(shù)中,根據(jù)儀表通訊協(xié)議中定義的內(nèi)容,分別取出各個字節(jié),解析出意義,在屏幕上顯示,利用在VB監(jiān)控程序中加入DATA控件,將數(shù)據(jù)存人數(shù)據(jù)庫中,使用VB的報表功能即可產(chǎn)生日報、月報及年報。
六、結束語
本文利用Windows下的ActiveX控件實現(xiàn)了在Windows環(huán)境下,單臺PC與多臺計量儀表的遠程通訊監(jiān)控。本系統(tǒng)在萊鋼機制公司中成功使用,實現(xiàn)了分散計量點數(shù)據(jù)的自動采集、自動匯總,及時反應出生產(chǎn)中計量數(shù)據(jù),為生產(chǎn)的成本控制起到了積極作用。整個系統(tǒng)結構簡單、方便、靈活,具有較好的實用價值。
關鍵詞:PC機 RS-485 計量儀表 大屏幕
一、引言
在工業(yè)生產(chǎn)中,能源、物資的計量設備分布在現(xiàn)場的各個區(qū)域,給設備的監(jiān)控和數(shù)據(jù)的統(tǒng)計帶來諸多不便,隨著智能儀表技術的不斷發(fā)展,其通訊技術也在不斷加強,當今的測量儀表大多帶有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總線技術的傳統(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函數(shù)或Visual 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;
② 由于采用一個串口和半雙工通訊方式,一方發(fā)送數(shù)據(jù)時另一方必須等待接收,因此在發(fā)送非周期性命令時,必須停止輪詢,否則會發(fā)生數(shù)據(jù)包碰撞,使通訊失敗。
3、數(shù)據(jù)的接收和處理:計量儀表回傳數(shù)據(jù)時即可在主機上引發(fā)OnComm( )事件,在此事件處理函數(shù)中,首先判斷接收數(shù)據(jù)的完整性,然后將數(shù)據(jù)一次全部讀到所定義的變量參數(shù)中,根據(jù)儀表通訊協(xié)議中定義的內(nèi)容,分別取出各個字節(jié),解析出意義,在屏幕上顯示,利用在VB監(jiān)控程序中加入DATA控件,將數(shù)據(jù)存人數(shù)據(jù)庫中,使用VB的報表功能即可產(chǎn)生日報、月報及年報。
六、結束語
本文利用Windows下的ActiveX控件實現(xiàn)了在Windows環(huán)境下,單臺PC與多臺計量儀表的遠程通訊監(jiān)控。本系統(tǒng)在萊鋼機制公司中成功使用,實現(xiàn)了分散計量點數(shù)據(jù)的自動采集、自動匯總,及時反應出生產(chǎn)中計量數(shù)據(jù),為生產(chǎn)的成本控制起到了積極作用。整個系統(tǒng)結構簡單、方便、靈活,具有較好的實用價值。
文章版權歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。
下一篇:位移傳感器—光柵的原理和應用