儀表遠程數據采集開發與應用
摘要:利用ActiveX控件的MSComm通信控件,實現了Windows下單臺PC機與多臺計量儀表的串行通訊,達到了對分散設備的集中控制和計量數據的自動采集、自動匯總以及自動打印功能。
關鍵詞:PC機 RS-485 計量儀表 大屏幕
一、引言
在工業生產中,能源、物資的計量設備分布在現場的各個區域,給設備的監控和數據的統計帶來諸多不便,隨著智能儀表技術的不斷發展,其通訊技術也在不斷加強,當今的測量儀表大多帶有RS-485通訊或RS-232接口,用現場總線方式可以實現多臺測量儀表的集中監控與數據采集,實現了儀表直接接入PC機,利用在現場安裝大屏幕實時顯示計量儀表數據,使現場配料人員做到配料心中有數,利用“遠程傳輸”到辦公室實現了Window環境下一臺PC機與多臺測量儀表的串行通信功能,并且對儀表數據實現自動計量與自動匯總。
在工業生產中,能源、物資的計量設備分布在現場的各個區域,給設備的監控和數據的統計帶來諸多不便,隨著智能儀表技術的不斷發展,其通訊技術也在不斷加強,當今的測量儀表大多帶有RS-485通訊或RS-232接口,用現場總線方式可以實現多臺測量儀表的集中監控與數據采集,實現了儀表直接接入PC機,利用在現場安裝大屏幕實時顯示計量儀表數據,使現場配料人員做到配料心中有數,利用“遠程傳輸”到辦公室實現了Window環境下一臺PC機與多臺測量儀表的串行通信功能,并且對儀表數據實現自動計量與自動匯總。
二、系統的硬件設計
采用RS-485總線技術的傳統設計方式:根據RS-485電氣規定,在兩線制傳輸方式下,RS-485驅動器可帶32個接收器,實現多點半雙工通訊。系統方框圖如下圖所示:
采用RS-485總線技術的傳統設計方式:根據RS-485電氣規定,在兩線制傳輸方式下,RS-485驅動器可帶32個接收器,實現多點半雙工通訊。系統方框圖如下圖所示:

圖中PC機通過RS-232接口,經RS-232——RS-485模塊與多臺流量計儀表相連接,一條總線上最多可接32臺,每臺儀表被賦予各自的通訊地址碼用以識別身份,這樣上位PC機就能通過RS-485總線對掛在總線上的每個儀表進行通訊。實現對計量儀表的遠程數據采集與監控。
三、計量儀表及通訊功能
通常采用MODBUS通訊協議,采用RS-485半雙工的方式,積算儀表作為從機,上位PC機作為主機,控制和監視計量儀表的運行,通訊波特率大多為9600bps。通訊格式為:1位起始位,8位數據位,1位奇偶校驗位,1位停止位,每個從站被賦唯一的本機地址,采用主機輪詢,從機應答的通訊方式。主機通過發送命令幀啟動一次通訊,從機接收到數據后,判斷呼叫地址是否和本機地址相同,若不同,則不予理睬,若相同則根據命令幀中的特征字(命令字),發送主機要求的數據幀。
通常采用MODBUS通訊協議,采用RS-485半雙工的方式,積算儀表作為從機,上位PC機作為主機,控制和監視計量儀表的運行,通訊波特率大多為9600bps。通訊格式為:1位起始位,8位數據位,1位奇偶校驗位,1位停止位,每個從站被賦唯一的本機地址,采用主機輪詢,從機應答的通訊方式。主機通過發送命令幀啟動一次通訊,從機接收到數據后,判斷呼叫地址是否和本機地址相同,若不同,則不予理睬,若相同則根據命令幀中的特征字(命令字),發送主機要求的數據幀。
四、Windows下的ActiveX控件
在Windows環境下,出于對系統的安全考慮,操作系統完全接管了各種硬件資源,不允許用戶直接對包括串口在內的硬件中斷進行管理,以往人們只能通過繁瑣的API函數或Visual C++標準通訊函數來控制各種硬件,現在VB6.0提供了一個ActiveX控件稱為MSComm控件,利用它可以方便地進行計算機串口的通訊管理。
在Windows環境下,出于對系統的安全考慮,操作系統完全接管了各種硬件資源,不允許用戶直接對包括串口在內的硬件中斷進行管理,以往人們只能通過繁瑣的API函數或Visual C++標準通訊函數來控制各種硬件,現在VB6.0提供了一個ActiveX控件稱為MSComm控件,利用它可以方便地進行計算機串口的通訊管理。
五、用程序實現對儀表的串行通訊控制
1、在WindowsVB6.0編程環境下,新建工程引用MSComm通訊控件,在窗體中至少添加以下幾個基本控件:
① 1個MSComm控件,控制名為MSComml,用于軟件對串口的訪問;
② 兩個定時器控件,名為(TimPeriodic和TimNonPeriodic),TimPeriodic用于使Pc機定時向各儀表發送周期性命令,使其定時回傳實時數據;TimNonPeriodic用于控制兩次非周期性指令傳送之間的時間間隔;
③ 1個非周期性命令發送按鈕CmdNonPeriodic,用于非周期性指令的傳送啟動;
④若干個用于顯示儀表參數的文本框和設置儀表參數的對話框。
2、監控軟件的核心是如何讀取和處理現場儀表的實時數據,編程時應注意以下幾個問題:
① 主機采用輪詢方式訪問從機,從機應答到發送完數據有一定的時間間隔,一般設定為2s~3s;
② 由于采用一個串口和半雙工通訊方式,一方發送數據時另一方必須等待接收,因此在發送非周期性命令時,必須停止輪詢,否則會發生數據包碰撞,使通訊失敗。
3、數據的接收和處理:計量儀表回傳數據時即可在主機上引發OnComm( )事件,在此事件處理函數中,首先判斷接收數據的完整性,然后將數據一次全部讀到所定義的變量參數中,根據儀表通訊協議中定義的內容,分別取出各個字節,解析出意義,在屏幕上顯示,利用在VB監控程序中加入DATA控件,將數據存人數據庫中,使用VB的報表功能即可產生日報、月報及年報。
1、在WindowsVB6.0編程環境下,新建工程引用MSComm通訊控件,在窗體中至少添加以下幾個基本控件:
① 1個MSComm控件,控制名為MSComml,用于軟件對串口的訪問;
② 兩個定時器控件,名為(TimPeriodic和TimNonPeriodic),TimPeriodic用于使Pc機定時向各儀表發送周期性命令,使其定時回傳實時數據;TimNonPeriodic用于控制兩次非周期性指令傳送之間的時間間隔;
③ 1個非周期性命令發送按鈕CmdNonPeriodic,用于非周期性指令的傳送啟動;
④若干個用于顯示儀表參數的文本框和設置儀表參數的對話框。
2、監控軟件的核心是如何讀取和處理現場儀表的實時數據,編程時應注意以下幾個問題:
① 主機采用輪詢方式訪問從機,從機應答到發送完數據有一定的時間間隔,一般設定為2s~3s;
② 由于采用一個串口和半雙工通訊方式,一方發送數據時另一方必須等待接收,因此在發送非周期性命令時,必須停止輪詢,否則會發生數據包碰撞,使通訊失敗。
3、數據的接收和處理:計量儀表回傳數據時即可在主機上引發OnComm( )事件,在此事件處理函數中,首先判斷接收數據的完整性,然后將數據一次全部讀到所定義的變量參數中,根據儀表通訊協議中定義的內容,分別取出各個字節,解析出意義,在屏幕上顯示,利用在VB監控程序中加入DATA控件,將數據存人數據庫中,使用VB的報表功能即可產生日報、月報及年報。
六、結束語
本文利用Windows下的ActiveX控件實現了在Windows環境下,單臺PC與多臺計量儀表的遠程通訊監控。本系統在萊鋼機制公司中成功使用,實現了分散計量點數據的自動采集、自動匯總,及時反應出生產中計量數據,為生產的成本控制起到了積極作用。整個系統結構簡單、方便、靈活,具有較好的實用價值。
本文利用Windows下的ActiveX控件實現了在Windows環境下,單臺PC與多臺計量儀表的遠程通訊監控。本系統在萊鋼機制公司中成功使用,實現了分散計量點數據的自動采集、自動匯總,及時反應出生產中計量數據,為生產的成本控制起到了積極作用。整個系統結構簡單、方便、靈活,具有較好的實用價值。
文章版權歸西部工控xbgk所有,未經許可不得轉載。