免费国产美女一级A作爱播放免费,日本动漫精品一区二区三区,ⅩⅩ国产全无遮挡无码,国产精品无码视频2020

  • <delect id="1z9bx"><center id="1z9bx"><ruby id="1z9bx"></ruby></center></delect>

      1. <u id="1z9bx"><sub id="1z9bx"></sub></u>

      2. 用VB6.0實現(xiàn)PC機對流量計遠程數(shù)據(jù)采集與監(jiān)控

        發(fā)布時間:2024-03-02
        用vb6.0實現(xiàn)pc機對多臺流量計遠程數(shù)據(jù)采集與監(jiān)控
        (本次測試的設(shè)備由上海立陽自動化生產(chǎn))
        作者 朱立榮(立陽技術(shù)部工程師)
        摘要: 利用vb6.0 activex 控件的mscomm通信控件,實現(xiàn)了windows9x下單臺pc機與多臺智能流量計的串行通訊,達到了對分散設(shè)備的集中控制和計量數(shù)據(jù)的采集和自動上報功能。
        關(guān)鍵詞:pc機;流量計;智能儀表;rs485;串口;事件驅(qū)動
        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
        一、 引言
        在工業(yè)生產(chǎn)中,能源、動力介質(zhì)的測量設(shè)備分布在現(xiàn)場的各個區(qū)域,給設(shè)備的監(jiān)控和數(shù)據(jù)的統(tǒng)計帶來諸多不便,隨著智能儀表技術(shù)的不斷發(fā)展,其通訊技術(shù)也在不斷加強,當今的流量測量儀表大多帶有rs-485通訊接口,*可以運用現(xiàn)場總線方式實現(xiàn)多臺測量儀表的集中監(jiān)控與數(shù)據(jù)采集。
        本文利用vb6.0的activex控件——microsoft communication 控件,方便的實現(xiàn)了window9x環(huán)境下一臺pc機與多臺流量計測量儀表的串行通信功能,完成24臺流量計的數(shù)據(jù)采集與管理。
        二、 系統(tǒng)的硬件設(shè)計:
        根據(jù)rs—485電氣規(guī)定,在兩線制傳輸方式下,rs—485驅(qū)動器可帶32個接收器,實現(xiàn)多半點雙工通訊,通訊距離在15m時波特率可達10mb/s,通訊距離在1.2m范圍內(nèi)波特率可達100mb/s,超過此距離可用repeater(中繼器),增大傳輸距離,系統(tǒng)方框圖如圖所示:
        圖中pc機通過rs232接口,經(jīng)rs232—rs485模塊與多臺流量計儀表相連接,一條總線上zui多可接32臺,每臺儀表被賦予各自的通訊地址碼用以識別身份,這樣上位pc即能通過rs—485總線對掛在總線上的每個儀表進行通訊。實現(xiàn)對流量計的遠程數(shù)據(jù)采集與監(jiān)控。
        三、 流量計結(jié)構(gòu)及通訊功能:
        3.1 流量計大致由三部分組成:
        1、 流量傳感器,包括殼體組合,前置放大電路等;
        2、 溫度傳感器組合;
        3、 流量積算儀表組合。
        隨著單片技術(shù)的不斷發(fā)展,流量積算儀大多采用單片計算機組成的智能系統(tǒng),在完成系統(tǒng)的采樣積算等功能的同時,還可以采用一定的通訊協(xié)議與遵循相同協(xié)議的設(shè)備聯(lián)網(wǎng),積算儀表系統(tǒng)中有1k以上字節(jié)的eprom可以*保存數(shù)據(jù)和命令,用戶的命令和系統(tǒng)運行參數(shù)可通過串口從pc機發(fā)送到積算儀表,積算儀表將其格式化后存入不同的eprom地址中,供運行時直接調(diào)用。
        3.2 積算儀表與計算機的通訊采用rs-485半雙工的方式,積算儀表作為從機,上位pc機作為主機,控制和監(jiān)視流量計的運行,通訊波特率大多為9600bps,通訊格式為:1位起始位,8位數(shù)據(jù)位,1位奇偶校驗位,1位停止位,每個從站被賦予*的本機地址,采用主機輪詢,從機應答的通訊方式。主機通過發(fā)送命令幀啟動一次通訊,從機接收到數(shù)據(jù)后,判斷呼叫地址是否和本機地址相同,若不同,則不與理睬,若相同則根據(jù)命令幀中的特征字(命令字),發(fā)送主機要求的數(shù)據(jù)幀。以tlxz系列流量計為例,命令幀的格式如下:
        項號
        1
        2
        3
        4
        字節(jié)數(shù)
        1字節(jié)
        2字節(jié)
        4字節(jié)
        1 字節(jié)
        意義
        起始字節(jié)(stx)
        從機地址(addr)
        特征字
        異或校驗(bcc)
        *項為幀頭(stx)取值41h,用以標志一幀的開始;第二項為從機地址(addr)流量計地址碼,取值為0—31,當?shù)刂反a兩個字節(jié)都為255時為廣播地址;第三項命令特征字為3a、3c、3f,用以命令流量計回傳的數(shù)據(jù)內(nèi)容,第四項bcc為異或校驗,為前面數(shù)據(jù)的異或校驗和用于通訊校錯。
        數(shù)據(jù)幀比較長,有12個字節(jié),其格式如下:
        項號
        1
        2
        3
        1
        字節(jié)數(shù)
        1字節(jié)
        2字節(jié)
        8字節(jié)
        1 字節(jié)
        意義
        起始字節(jié)(stx)
        從機地址(addr)
        用戶數(shù)據(jù)
        異或校驗
        命令幀與數(shù)據(jù)幀除第三項外,其它意義相同,數(shù)據(jù)幀的第三部內(nèi)容是從機根據(jù)主機發(fā)出的命令幀向主機發(fā)出的本機即時、累計數(shù)據(jù),或運行參數(shù)。
        另外主機還有一個特殊的命令幀——參數(shù)修改數(shù)據(jù)幀,它的格式為:
        項號
        1
        2
        3
        4
        5
        字節(jié)數(shù)
        1字節(jié)
        2字節(jié)
        1字節(jié)
        8字節(jié)
        1字節(jié)
        意義
        起始字節(jié)(stx)
        從機地址(addr)
        命令字
        用戶數(shù)據(jù)
        異或校驗
        該幀的命令字特征為3e,起始碼為3f,用以區(qū)別其它命令幀,第三部分是主機向從機發(fā)送的從機運行參數(shù),從機收到此幀后,將數(shù)據(jù)格式化,存入eprom中,以發(fā)送流量計的運行參數(shù),對此幀從機不回應。
        四、 vb6.0中的activex控件:
        在windows環(huán)境下,出于對系統(tǒng)的安全考慮,操作系統(tǒng)*接管了各種硬件資源,不允許用戶直接對包括串口在內(nèi)的硬件中斷進行管理,以往人們只能通過繁瑣的api函數(shù)或visualc++標準通訊函數(shù)來控制各種硬件,現(xiàn)在vb6.0提供了一個activex控件——microsoft communication control,version 6.0,稱為mscomm控件,利用它可以方便地進行計算機串口的通訊管理。mscomm控件有許多屬性,其中與串口有關(guān)的重要屬性有:
        commport
        設(shè)置串口號,類型short,設(shè)置為1、2、3等,分別表示com1、com2、com3
        settings
        設(shè)置串口通訊參數(shù)(b、p、d、s),類型string ,b表示波特率,p表示奇偶校驗(n—無校驗,e—偶校驗,o—奇校驗,m—符號校驗,s—空格校驗),d表示有效數(shù)據(jù)位數(shù),s表示停止位數(shù)
        portopen
        設(shè)置或返回通信端口狀態(tài),類型bool;
        inputmode
        從接收緩沖區(qū)讀取數(shù)據(jù)格式,類型variant,設(shè)置為0時表示字符串格式,設(shè)置為1時表示二進制格式
        input
        設(shè)置從緩沖區(qū)中讀取數(shù)據(jù),類型long;
        output
        向發(fā)送緩沖區(qū)中寫入數(shù)據(jù),類型long;
        inputlen
        設(shè)置或返回input 每次讀取的字節(jié)數(shù),類型short;
        rthreshold
        設(shè)置返回要接收的字符數(shù),類型short;
        sthreshold
        設(shè)置并返回發(fā)送緩沖區(qū)中允許的zui少字符數(shù),類型short;
        commevent
        串口事件,類型short;
        inputmode 使程序方便地選擇從緩沖區(qū)讀取數(shù)據(jù)格式。當串口接收到信息時mscomm 控件提供兩種處理方法,一種為查詢方式,一種為事件響應方式,利用setcommevent()函數(shù)設(shè)置串口響應事件。當響應事件發(fā)生時,系統(tǒng)會激活oncomm()事件。在oncomm()事件中添加用戶處理代碼,則可實現(xiàn)類似中斷的串口事件處理。
        五、 用vb6.0實現(xiàn)對流量計積算儀表的串行通訊控制:
        在windows9x vb6.0編程環(huán)境下,新建工程引用mscomm通訊控件,在窗體中至少添加以下幾個基本控件:
        1、 1個mscomm控件,控制名為mscomm1,用于軟件對串口的訪問;
        2、 兩個定時器控件,名為(timperiodic和timnonperiodic),timperiodic 用于使pc機定時向各儀表發(fā)送周期性命令,使其定時回傳實時數(shù)據(jù);timnonperiodic 用于控制兩次非周期性指令傳送之間的時間間隔;
        3、 1個非周期性命令發(fā)送按鈕cmdnonperiodic,用于非周期性指令的傳送啟動;
        4、若干個用于顯示儀表參數(shù)的文本框和設(shè)置儀表參數(shù)的對話框;
        監(jiān)控軟件的核心是如何讀取和處理現(xiàn)場儀表的實時數(shù)據(jù),編程時應注意以下幾個問題:
        ①、 主機采用輪詢方式訪問從機,從機應答到發(fā)送完數(shù)據(jù)有一定的時間間隔,一般設(shè)定為2—3秒;
        ②、 由于采用一個串口和半雙工通訊方式,一方發(fā)送數(shù)據(jù)時另一方必須等待接收,因此在發(fā)送非周期性命令時,必須停止輪詢,否則會發(fā)生數(shù)據(jù)包碰撞,使通訊失??;
        ③、 主機呼叫從機無應答時,要有報警設(shè)置,提示通訊出錯,一般設(shè)置3次呼叫無應答后,即可停止呼叫,提示通訊出錯,跳過此從機繼續(xù)執(zhí)行;
        ④、 當從機故障或停運時,應可自動跳過對此從機輪詢,以節(jié)省輪詢時間,并在顯示窗口提示,同時寫入故障記錄。
        下面給出讀取和處理現(xiàn)場儀表數(shù)據(jù)時的源代碼,供參考:
        5.1 窗體中各控件初始設(shè)置:
        sub form-load()
        mscomm1,commport=2 //選用com2口通訊
        mscomm1,setting=“9600,n,8,1 //設(shè)置通訊參數(shù)
        mscomm1,inputlen=0 //input將讀取緩沖區(qū)全部內(nèi)容
        mscomm1,inputlensize=1024 //設(shè)置接收緩沖區(qū)大小
        mscomm1,portopen=true n //打開通訊端口
        mscomm1,inbuffercount=0 //清除發(fā)送緩沖區(qū)
        mscomm.outbuffercount=0 //清除接收緩沖區(qū)
        timnonperiodic.interval=3000 //設(shè)置3秒定時間間隔
        timnonperiodic.interval=500 //設(shè)置0.5秒定時間間隔
        cmdpressed=false //命令按鈕在未激活狀態(tài)
        duringperiodic=false //周期命令傳輸未開始
        duringnonperiodic=false //非周期命令傳輸未開始
        end sub
        5.2 周期性命令的發(fā)送:
        sub timperiodic_timer()
        if duringnonperiodic=true then exit sub //非周期命令數(shù)據(jù)傳送未結(jié)束退出過程
        duringperiodic=true //周期命令準許發(fā)送
        call send date (periodic_command) //發(fā)送周期性命令
        mscomm1.rthreshold=r_periopie_byte //接收字節(jié)后引發(fā)oncommgk 事件
        end sub
        5.3 非周期命令的發(fā)送
        sub cmdnomperiodic_click()
        cmdpressed=true
        //允許發(fā)送
        end sub
        sub timnoperiodic_timer()
        //發(fā)送周期性命令
        if duringperiodic=true or cmdpressed=false then exit sub
        //周期性命令傳送未結(jié)束或本次傳送未被允許時,退出本過程
        cmdpressed=false
        //發(fā)送命令按鈕恢復禁止
        call senddate(noperiodic_command)
        //發(fā)送命令
        mscomm1.rthreshold=r_nonperiodic_byte
        //接收字節(jié)后引發(fā)oncomm事件
        5.4 數(shù)據(jù)的接收和處理:
        流量計積算儀表回傳數(shù)據(jù)時即可在主機上引發(fā)oncomm()事件,在此事件處理函數(shù)中,首先判斷接收數(shù)據(jù)的完整性,然后將數(shù)據(jù)一次全部讀到所定義的變量參數(shù)中,根據(jù)流量計通訊協(xié)議中定義的內(nèi)容,分別取出各個字節(jié),解析出意義,在屏幕上顯示,同時利用office自帶的access數(shù)據(jù)庫,在vb監(jiān)控程序中加入data控件,將數(shù)據(jù)存入數(shù)據(jù)庫中,使用vb的報表功能即可產(chǎn)生日、月、年報表,同時可以通過編程將數(shù)據(jù)發(fā)往企業(yè)內(nèi)部主數(shù)據(jù)庫,實現(xiàn)能源計量數(shù)據(jù)的自動上報。
        六、結(jié)語:
        本文利用vb6.0下的activex控件實現(xiàn)了在windows9x環(huán)境下,單臺pc與多臺流量計的通訊監(jiān)控。本系統(tǒng)在寶鋼集團調(diào)試系統(tǒng)中成功使用,實現(xiàn)了分散計量點數(shù)據(jù)的自動采集、匯總與上報,及時反應出生產(chǎn)中能源計量數(shù)據(jù),為生產(chǎn)的成本控制起到了積極作用,整個系統(tǒng)結(jié)構(gòu)簡單,無需購置價格昂貴的組態(tài)軟件,方便、靈活,具有較好的實際價值和使用性。
        參考文獻:
        1、范逸文、陳立元 visual basic與rs-232串行通信控制[m],清華大學出版社,2002年。
        2、王仲文等釋,精通串行通信[m],北京電子工業(yè)出版社,1995年。
        3、(美)steven holzner.visual basic 6.0 技術(shù)內(nèi)幕,機械工業(yè)出版社[m],1999。
        4、tlxz系列流量計說明書,2002年
        上一個:邊境之旅小鎮(zhèn)有什么用(邊境之旅小鎮(zhèn)招人設(shè)施全開柜子東西全都能拿)
        下一個:惠普打印機2723怎么聯(lián)網(wǎng)連接wifi(惠普2720無線打印機怎么連接手機)

        真正的好茶,你的身體會說話!
        聯(lián)想b490s筆記本參數(shù)(聯(lián)想b490好嗎)
        kytola,kytola公司的電機馬達具有高效率高質(zhì)量低噪音低消耗等優(yōu)點
        氣相色譜儀價格分析毛細管分析及色譜常見問題
        新用戶買試驗機時需注意的問題!
        4千以內(nèi)的筆記本電腦買哪款好,四千左右的筆記本電腦買哪個好
        電腦固態(tài)硬盤啥意思,電腦固態(tài)硬盤是啥
        遺贈房產(chǎn)過戶所需流程
        普洱茶什時候喝最減肥
        厚聲25121WJ036LT4E電阻