• <del id="qqie6"><sup id="qqie6"></sup></del>
  • <tfoot id="qqie6"></tfoot>
  • <ul id="qqie6"></ul>
  • 產品推薦:水表|流量計|壓力變送器|熱電偶|液位計|冷熱沖擊試驗箱|水質分析|光譜儀|試驗機|試驗箱


    儀表網>技術中心>分析方法>正文

    歡迎聯系我

    有什么可以幫您? 在線咨詢

    用VB6.0實現PC機對多臺流量計遠程數據采集與監控

    來源:上海立陽自動化有限公司   2007年02月06日 10:00  

    摘要: 利用VB6.0 ActiveX 控件的MSComm通信控件,實現了Windows9X下單臺PC機與多臺智能流量計的串行通訊,達到了對分散設備的集中控制和計量數據的采集和自動上報功能。

    關鍵詞:PC機;流量計;智能儀表;RS485;串口;事件驅動

    Collecting and controlling the Long-distance Data of Flowrates by
    Using Personal Computer Base on VB6.0
    Xiang Tan Steel Automatic Department
    Yu Wei Gang

    Abstract: This paper describes one personal computer series-communicating with many inlectual-flowrates under Windows9X by using MSComm controls of VB6.0 ActiveX’s.Coming to centralized controlling scattered measure Equipment and Automatic data collecting and switching.
    Key word: Personal computer; floweret; inlectual meter; Serial communication
    RS485; incident driving

    一、 引言
    在工業生產中,能源、動力介質的測量設備分布在現場的各個區域,給設備的監控和數據的統計帶來諸多不便,隨著智能儀表技術的不斷發展,其通訊技術也在不斷加強,當今的流量測量儀表大多帶有RS-485通訊接口,*可以運用現場總線方式實現多臺測量儀表的集中監控與數據采集。
    本文利用VB6.0的ActiveX控件——Microsoft Communication 控件,方便的實現了Window9X環境下一臺PC機與多臺流量計測量儀表的串行通信功能,完成24臺流量計的數據采集與管理。

    二、 系統的硬件設計:
    根據RS—485電氣規定,在兩線制傳輸方式下,RS—485驅動器可帶32個接收器,實現多半點雙工通訊,通訊距離在15m時波特率可達10Mb/s,通訊距離在1.2m范圍內波特率可達100Mb/s,超過此距離可用Repeater(中繼器),增大傳輸距離,系統方框圖如圖所示:

    圖中PC機通過RS232接口,經RS232—RS485模塊與多臺流量計儀表相連接,一條總線上zui多可接32臺,每臺儀表被賦予各自的通訊地址碼用以識別身份,這樣上位PC即能通過RS—485總線對掛在總線上的每個儀表進行通訊。實現對流量計的遠程數據采集與監控。

    三、 流量計結構及通訊功能:

    3.1 流量計大致由三部分組成:
    1、 流量傳感器,包括殼體組合,前置放大電路等;
    2、 溫度傳感器組合;
    3、 流量積算儀表組合。
    隨著單片技術的不斷發展,流量積算儀大多采用單片計算機組成的智能系統,在完成系統的采樣積算等功能的同時,還可以采用一定的通訊協議與遵循相同協議的設備聯網,積算儀表系統中有1K以上字節的EPROM可以*保存數據和命令,用戶的命令和系統運行參數可通過串口從PC機發送到積算儀表,積算儀表將其格式化后存入不同的EPROM地址中,供運行時直接調用。

    3.2 積算儀表與計算機的通訊采用RS-485半雙工的方式,積算儀表作為從機,上位PC機作為主機,控制和監視流量計的運行,通訊波特率大多為9600bps,通訊格式為:1位起始位,8位數據位,1位奇偶校驗位,1位停止位,每個從站被賦予*的本機地址,采用主機輪詢,從機應答的通訊方式。主機通過發送命令幀啟動一次通訊,從機接收到數據后,判斷呼叫地址是否和本機地址相同,若不同,則不與理睬,若相同則根據命令幀中的特征字(命令字),發送主機要求的數據幀。以TLXZ系列流量計為例,命令幀的格式如下:

    項號
    1
    2
    3
    4
    字節數
    1字節
    2字節
    4字節
    1 字節
    意義
    起始字節(STX)
    從機地址(ADDR)
    特征字
    異或校驗(BCC)

    *項為幀頭(STX)取值41H,用以標志一幀的開始;第二項為從機地址(ADDR)流量計地址碼,取值為0—31,當地址碼兩個字節都為255時為廣播地址;第三項命令特征字為3A、3C、3F,用以命令流量計回傳的數據內容,第四項BCC為異或校驗,為前面數據的異或校驗和用于通訊校錯。
    數據幀比較長,有12個字節,其格式如下:

    項號
    1
    2
    3
    1
    字節數
    1字節
    2字節
    8字節
    1 字節
    意義
    起始字節(STX)
    從機地址(ADDR)
    用戶數據
    異或校驗

    命令幀與數據幀除第三項外,其它意義相同,數據幀的第三部內容是從機根據主機發出的命令幀向主機發出的本機即時、累計數據,或運行參數。
    另外主機還有一個特殊的命令幀——參數修改數據幀,它的格式為:

    項號
    1
    2
    3
    4
    5
    字節數
    1字節
    2字節
    1字節
    8字節
    1字節
    意義
    起始字節(STX)
    從機地址(ADDR)
    命令字
    用戶數據
    異或校驗

    該幀的命令字特征為3E,起始碼為3F,用以區別其它命令幀,第三部分是主機向從機發送的從機運行參數,從機收到此幀后,將數據格式化,存入EPROM中,以發送流量計的運行參數,對此幀從機不回應。

    四、 VB6.0中的ActiveX控件:

    在Windows環境下,出于對系統的安全考慮,操作系統*接管了各種硬件資源,不允許用戶直接對包括串口在內的硬件中斷進行管理,以往人們只能通過繁瑣的API函數或VisualC++標準通訊函數來控制各種硬件,現在VB6.0提供了一個ActiveX控件——Microsoft Communication Control,Version 6.0,稱為MSComm控件,利用它可以方便地進行計算機串口的通訊管理。MSComm控件有許多屬性,其中與串口有關的重要屬性有:

    CommPort
    設置串口號,類型short,設置為1、2、3等,分別表示COM1、COM2、COM3
    Settings
    設置串口通訊參數(B、P、D、S),類型string ,B表示波特率,P表示奇偶校驗(N—無校驗,E—偶校驗,O—奇校驗,M—符號校驗,S—空格校驗),D表示有效數據位數,S表示停止位數
    PortOpen
    設置或返回通信端口狀態,類型Bool;
    InputMode
    從接收緩沖區讀取數據格式,類型VARIANT,設置為0時表示字符串格式,設置為1時表示二進制格式
    Input
    設置從緩沖區中讀取數據,類型Long;
    Output
    向發送緩沖區中寫入數據,類型Long;
    InputLen
    設置或返回Input 每次讀取的字節數,類型Short;
    Rthreshold
    設置返回要接收的字符數,類型Short;
    Sthreshold
    設置并返回發送緩沖區中允許的zui少字符數,類型Short;
    CommEvent
    串口事件,類型Short;

    InputMode 使程序方便地選擇從緩沖區讀取數據格式。當串口接收到信息時MSComm 控件提供兩種處理方法,一種為查詢方式,一種為事件響應方式,利用SetCommEvent()函數設置串口響應事件。當響應事件發生時,系統會激活OnComm()事件。在OnComm()事件中添加用戶處理代碼,則可實現類似中斷的串口事件處理。

    五、 用VB6.0實現對流量計積算儀表的串行通訊控制:

    在Windows9X VB6.0編程環境下,新建工程引用MSComm通訊控件,在窗體中至少添加以下幾個基本控件:
    1、 1個MSComm控件,控制名為MSComm1,用于軟件對串口的訪問;
    2、 兩個定時器控件,名為(TimPeriodic和TimNonPeriodic),TimPeriodic 用于使PC機定時向各儀表發送周期性命令,使其定時回傳實時數據;TimNonPeriodic 用于控制兩次非周期性指令傳送之間的時間間隔;
    3、 1個非周期性命令發送按鈕CmdNonPeriodic,用于非周期性指令的傳送啟動;
    4、若干個用于顯示儀表參數的文本框和設置儀表參數的對話框;
    監控軟件的核心是如何讀取和處理現場儀表的實時數據,編程時應注意以下幾個問題:
    ①、 主機采用輪詢方式訪問從機,從機應答到發送完數據有一定的時間間隔,一般設定為2—3秒;
    ②、 由于采用一個串口和半雙工通訊方式,一方發送數據時另一方必須等待接收,因此在發送非周期性命令時,必須停止輪詢,否則會發生數據包碰撞,使通訊失敗;
    ③、 主機呼叫從機無應答時,要有報警設置,提示通訊出錯,一般設置3次呼叫無應答后,即可停止呼叫,提示通訊出錯,跳過此從機繼續執行;
    ④、 當從機故障或停運時,應可自動跳過對此從機輪詢,以節省輪詢時間,并在顯示窗口提示,同時寫入故障記錄。
    下面給出讀取和處理現場儀表數據時的源代碼,供參考:

    5.1 窗體中各控件初始設置:

    Sub Form-load()
    MSComm1,CommPort=2 //選用COM2口通訊
    MSComm1,Setting=“9600,N,8,1 //設置通訊參數
    MSComm1,Inputlen=0 //Input將讀取緩沖區全部內容
    MSComm1,InputlenSize=1024 //設置接收緩沖區大小
    MSComm1,PortOpen=True n //打開通訊端口
    MSComm1,InBufferCount=0 //清除發送緩沖區
    MSComm.OutbufferCount=0 //清除接收緩沖區
    TimNonPeriodic.Interval=3000 //設置3秒定時間間隔
    TimNonPeriodic.Interval=500 //設置0.5秒定時間間隔
    CmdPressed=False //命令按鈕在未激活狀態
    DuringPeriodic=False //周期命令傳輸未開始
    DuringNonPeriodic=False //非周期命令傳輸未開始
    End Sub

    5.2 周期性命令的發送:

    Sub TimPeriodic_Timer()
       If DuringNonPeriodic=True Then Exit Sub //非周期命令數據傳送未結束退出過程
              DuringPeriodic=True //周期命令準許發送
              Call Send Date (Periodic_COMMAND) //發送周期性命令
              MSComm1.Rthreshold=R_PERIOPIE_BYTE //接收字節后引發OnCommgk 事件
    End Sub

    5.3 非周期命令的發送

        Sub CmdNomPeriodic_click()

     
               CmdPressed=true

    //允許發送
         End Sub

     
         Sub TimNoPeriodic_Timer()

    //發送周期性命令
              If DuringPeriodic=True or CmdPressed=False Then Exit Sub

    //周期性命令傳送未結束或本次傳送未被允許時,退出本過程
               CmdPressed=false

    //發送命令按鈕恢復禁止
               Call SendDate(NoPeriodic_COMMAND) //發送命令
              MSComm1.Rthreshold=R_NONPERIODIC_BYTE //接收字節后引發Oncomm事件

    5.4 數據的接收和處理:

    流量計積算儀表回傳數據時即可在主機上引發OnComm()事件,在此事件處理函數中,首先判斷接收數據的完整性,然后將數據一次全部讀到所定義的變量參數中,根據流量計通訊協議中定義的內容,分別取出各個字節,解析出意義,在屏幕上顯示,同時利用OFFICE自帶的Access數據庫,在VB監控程序中加入DATA控件,將數據存入數據庫中,使用VB的報表功能即可產生日、月、年報表,同時可以通過編程將數據發往企業內部主數據庫,實現能源計量數據的自動上報。

    六、結語:

    本文利用VB6.0下的ActiveX控件實現了在Windows9X環境下,單臺PC與多臺流量計的通訊監控。本系統在寶鋼集團調試系統中成功使用,實現了分散計量點數據的自動采集、匯總與上報,及時反應出生產中能源計量數據,為生產的成本控制起到了積極作用,整個系統結構簡單,無需購置價格昂貴的組態軟件,方便、靈活,具有較好的實際價值和使用性。

    參考文獻:
    1、范逸文、陳立元 Visual Basic與RS-232串行通信控制[M],清華大學出版社,2002年。
    2、王仲文等釋,精通串行通信[M],北京電子工業出版社,1995年。
    3、(美)Steven Holzner.Visual Basic 6.0 技術內幕,機械工業出版社[M],1999。
    4、TLXZ系列流量計說明書,2002年

    免責聲明

    • 凡本網注明“來源:儀表網”的所有作品,均為浙江興旺寶明通網絡有限公司-儀表網合法擁有版權或有權使用的作品,未經本網授權不得轉載、摘編或利用其它方式使用上述作品。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:儀表網”。違反上述聲明者,本網將追究其相關法律責任。
    • 本網轉載并注明自其它來源(非儀表網)的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或和對其真實性負責,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品第一來源,并自負版權等法律責任。
    • 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。
    聯系我們

    客服熱線: 15267989561

    加盟熱線: 15267989561

    媒體合作: 0571-87759945

    投訴熱線: 0571-87759942

    關注我們
    • 下載儀表站APP

    • Ybzhan手機版

    • Ybzhan公眾號

    • Ybzhan小程序

    企業未開通此功能
    詳詢客服 : 0571-87759942
    主站蜘蛛池模板: 成人网视频免费播放| 亚洲国产成人久久综合碰| 国产成人爱片免费观看视频| 国产成人av三级在线观看| 亚洲国产成人久久综合一区| 69成人免费视频无码专区| 国产精品成人免费综合| 1314成人网| 国产成人无码av在线播放不卡 | 老司机成人精品视频lsj| 成人乱码一区二区三区AV| 亚洲成人网在线| 国产成人综合色视频精品| 成人精品一区二区三区中文字幕| 国产成人3p视频免费观看| 成人精品视频99在线观看免费 | 亚洲国产精品成人精品小说| 成人区人妻精品一区二区不卡视频| 久久国产成人精品国产成人亚洲| 国产成人午夜福利在线播放 | 国产精品欧美成人| 日本成人福利视频| 色综合天天综合网国产成人网| 亚洲国产成人一区二区精品区| 国产成人精品亚洲一区| 国产欧美日韩成人| 国产成人精品999在线| 成人18视频日本| 国产成人精品高清免费| 成人久久久久久| 成人小视频在线观看| 成人免费无码大片a毛片软件| 在线成人综合色一区| 国产成人无码午夜视频在线观看| 国产精品成人免费视频网站| 成人三级精品视频在线观看| 国产成人综合久久综合| 国产精品成人无码久久久| 国产成人亚洲综合无码| 久久精品成人欧美大片免费| 亚洲国产成人久久精品app|