日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

在Visual Basic中用DDE完成報(bào)警控制

在Visual Basic中用DDE完成報(bào)警控制

更新時(shí)間:2022-05-06 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

作者:楊軍

北京首都國際機(jī)場污水處理廠設(shè)備運(yùn)行使用的是基于某一公司的SLC500(該公司的可編程控制器型號)計(jì)算機(jī)控制系統(tǒng)。全廠設(shè)備采用遠(yuǎn)程控制,由工作人員在中央控制室發(fā)布命令控制設(shè)備運(yùn)轉(zhuǎn)(如:根據(jù)集水井液位控制水泵啟停等),大大減輕了工作人員的勞動(dòng)強(qiáng)度。但由于設(shè)備出現(xiàn)故障時(shí)只顯示故障信息而沒有聲音報(bào)警,給工作人員及時(shí)發(fā)現(xiàn)問題帶來了極大不便。筆者對系統(tǒng)進(jìn)行分析后,利用VB編程通過DDE(Dynamic Data Exchange)與工控系統(tǒng)通訊,實(shí)現(xiàn)了系統(tǒng)語音報(bào)警的功能。

通訊系統(tǒng)分析
該系統(tǒng)為工業(yè)DH+網(wǎng),系統(tǒng)硬件環(huán)境由兩臺安裝1784-KTx通訊卡的工控PC機(jī)和五臺SLC500(AB公司的可編程控制器型號)組成。
PC機(jī)上的通訊軟件和工業(yè)組態(tài)軟件分別為RSLINX和RSVIEW。它們之間的通訊采用DDE(Dynamic Data Exchange 動(dòng)態(tài)數(shù)據(jù)交換)技術(shù),所以我們只要知道提供DDE服務(wù)的Application、Topic、Item就可以在VB開發(fā)環(huán)境下利用相關(guān)控件與RSLINX及RSVIEW進(jìn)行通訊了。

語音提示報(bào)警功能的實(shí)現(xiàn)
語音播放可以支持wav或MP3格式的聲音文件,由于MP3 文件體積小所以開發(fā)中我們選用這個(gè)格式。首先,我們從網(wǎng)站下載一個(gè)ActiveX控件用于播放語音,控件名為Mp3Play.OCX,下一步是錄制語音,我們先用Windows中的錄音機(jī)將所需提示的語音錄成wav格式,再用MP3轉(zhuǎn)換器將其轉(zhuǎn)成MP3格式。

總體結(jié)構(gòu)圖
A圖主要說明:DDE的建立以及出現(xiàn)報(bào)警后將報(bào)警信息插入到報(bào)警隊(duì)列最后。報(bào)警隊(duì)列是等候報(bào)警的信息的排隊(duì)。因?yàn)橛?jì)算機(jī)在廣播報(bào)警信息時(shí)一次只能廣播一條,建立報(bào)警隊(duì)列后同時(shí)發(fā)生的報(bào)警將等候上一條播完后再廣播。
B圖表示定時(shí)在報(bào)警隊(duì)列中檢查及有報(bào)警信息后的播放過程。

程序設(shè)計(jì)
下面舉實(shí)例來說明程序的具體實(shí)現(xiàn)過程:該程序?qū)?shí)現(xiàn)無論何種原因,當(dāng)進(jìn)水泵房故障停機(jī)時(shí),PC機(jī)將報(bào)警顯示“進(jìn)水泵故障!”。
我們首先建立好“進(jìn)水泵故障!”的語音文件,存為alarm.mp3,然后建立一個(gè)標(biāo)準(zhǔn)VB程序,在Form1上添加一個(gè)Timer控件用于控制程序循環(huán)、一個(gè)Mp3Play控件用于播放報(bào)警文件、一個(gè)Label控件用于建立DDE通訊和一個(gè)Listbox控件用于建立報(bào)警隊(duì)列。Name屬性均為默認(rèn),listbox 的visible 屬性設(shè)為False。
在Form1_load事件中加入如下代碼:
Timer1.enable=true ′打開定時(shí)器
End sub
在Label1的Label1_Change()中加入如下代碼:
Label1_Change()
dim i as integer
if label.caption=1 then
′如果變?yōu)閳?bào)警狀態(tài)則
For i=0 to listbox1.listcount-1
′檢查隊(duì)列,有此信息則不插入信息
If “alarm”=listbox1.list(i) then Exit sub
Next i
Listbox.AddItem(“alarm”)
′插入新報(bào)警信息到隊(duì)列最后
End sub
在Timer1的On_Timer事件中加入如下代碼:
Private Sub Timer1_Timer()
Dim retcode As Integer
Dim temstring As String
If LISTBOX1.ListCount = 0 Then Exit Sub ′檢查隊(duì)列是否為空
temstring = LISTBOX1.List(0)
′取出第一條報(bào)警信息
LISTBOX1.RemoveItem (0)
′將該條移出報(bào)警信息隊(duì)列
On Error GoTo error_handle
retcode = Mp3Play.Open(App.Path + temstring + ".mp3", "")
retcode = Mp3Play.Play ′播放語音報(bào)警
Exit Sub
error_handle: ′錯(cuò)誤處理
'retcode = Error
soundable = True
Resume Next
End Sub


完成以上工作后,在RSLINX和RSVIEW運(yùn)行之后啟動(dòng)該程序,就可以實(shí)現(xiàn)進(jìn)水泵故障的語音報(bào)警了。

上面只是個(gè)例子,在功能上及用戶界面上都還很不完善,但是利用同一方法可以實(shí)現(xiàn)在線設(shè)備的監(jiān)視及信號采集等工作,有興趣的話,讀者可以自己嘗試。以上代碼在VB6、Windows 9X環(huán)境下運(yùn)行成功。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 欧美日韩国产图片 | 久久婷婷综合在线视频观看6 | 天天色天天色天天色 | 成人免费网站视频www | 久久国产美女免费观看精品 | 中文字幕亚洲欧美 | 久久福利资源站免费观看i 久久高清 | 久久频精品99香蕉国产 | 日韩欧美国产高清在线观看 | 欧美一级裸片 | 毛片色| 久久精品香蕉视频 | 毛片视频网 | 婷婷综合久久中文字幕一本 | 国产精品免费一区二区三区四区 | 日韩亚洲欧美综合 | 欧美亚洲精品一区二三 | 国产成人久久一区二区三区 | 一本到亚洲网 | 免费色在线 | 伊人久久波多野结衣中文字幕 | 一区二区三区免费精品视频 | 欧美a在线观看 | 五月麻豆传媒婷婷 | 无马赛克在线观看的 | 1区1区3区4区产品乱码区 | 五月婷婷网 | 精品1区2区3区 | 欧美在线黄色片 | 国产成人精品免费视频大全可播放的 | 国产三级日本三级日产三级66 | 91精品国产91久久久久久最新 | 在线不卡中文字幕 | 亚洲狠狠ady亚洲精品大秀 | 欧美成人黄色网 | 国产精品手机在线播放 | 福利盒子在线视频免费 | 人人爱天天做夜夜爽2020麻豆 | 久草播放器 | 国产精品亚洲欧美日韩一区在线 | 五月天婷婷在线观看视频 |