分享
 
 
 

在Visual Basic中用DDE实现报警控制

王朝厨房·作者佚名  2007-01-04
窄屏简体版  字體: |||超大  

作者:杨军

北京首都国际机场污水处理厂设备运行使用的是基于某一公司的SLC500(该公司的可编程控制器型号)计算机控制系统。全厂设备采用远程控制,由工作人员在中央控制室发布命令控制设备运转(如:根据集水井液位控制水泵启停等),大大减轻了工作人员的劳动强度。但由于设备出现故障时只显示故障信息而没有声音报警,给工作人员及时发现问题带来了极大不便。笔者对系统进行分析后,利用VB编程通过DDE(Dynamic Data Exchange)与工控系统通讯,实现了系统语音报警的功能。

通讯系统分析

该系统为工业DH+网,系统硬件环境由两台安装1784-KTx通讯卡的工控PC机和五台SLC500(AB公司的可编程控制器型号)组成。

PC机上的通讯软件和工业组态软件分别为RSLINX和RSVIEW。它们之间的通讯采用DDE(Dynamic Data Exchange 动态数据交换)技术,所以我们只要知道提供DDE服务的Application、Topic、Item就可以在VB开发环境下利用相关控件与RSLINX及RSVIEW进行通讯了。

语音提示报警功能的实现

语音播放可以支持wav或MP3格式的声音文件,由于MP3 文件体积小所以开发中我们选用这个格式。首先,我们从网站下载一个ActiveX控件用于播放语音,控件名为Mp3Play.OCX,下一步是录制语音,我们先用Windows中的录音机将所需提示的语音录成wav格式,再用MP3转换器将其转成MP3格式。

总体结构图

A图主要说明:DDE的建立以及出现报警后将报警信息插入到报警队列最后。报警队列是等候报警的信息的排队。因为计算机在广播报警信息时一次只能广播一条,建立报警队列后同时发生的报警将等候上一条播完后再广播。

B图表示定时在报警队列中检查及有报警信息后的播放过程。

程序设计

下面举实例来说明程序的具体实现过程:该程序将实现无论何种原因,当进水泵房故障停机时,PC机将报警显示“进水泵故障!”。

我们首先建立好“进水泵故障!”的语音文件,存为alarm.mp3,然后建立一个标准VB程序,在Form1上添加一个Timer控件用于控制程序循环、一个Mp3Play控件用于播放报警文件、一个Label控件用于建立DDE通讯和一个Listbox控件用于建立报警队列。Name属性均为默认,listbox 的visible 属性设为False。

在Form1_load事件中加入如下代码:

Timer1.enable=true ′打开定时器

End sub

在Label1的Label1_Change()中加入如下代码:

Label1_Change()

dim i as integer

if label.caption=1 then

′如果变为报警状态则

For i=0 to listbox1.listcount-1

′检查队列,有此信息则不插入信息

If “alarm”=listbox1.list(i) then Exit sub

Next i

Listbox.AddItem(“alarm”)

′插入新报警信息到队列最后

End sub

在Timer1的On_Timer事件中加入如下代码:

Private Sub Timer1_Timer()

Dim retcode As Integer

Dim temstring As String

If LISTBOX1.ListCount = 0 Then Exit Sub ′检查队列是否为空

temstring = LISTBOX1.List(0)

′取出第一条报警信息

LISTBOX1.RemoveItem (0)

′将该条移出报警信息队列

On Error GoTo error_handle

retcode = Mp3Play.Open(App.Path + temstring + ".mp3", "")

retcode = Mp3Play.Play ′播放语音报警

Exit Sub

error_handle: ′错误处理

’retcode = Error

soundable = True

Resume Next

End Sub

完成以上工作后,在RSLINX和RSVIEW运行之后启动该程序,就可以实现进水泵故障的语音报警了。

上面只是个例子,在功能上及用户界面上都还很不完善,但是利用同一方法可以实现在线设备的监视及信号采集等工作,有兴趣的话,读者可以自己尝试。以上代码在VB6、Windows 9X环境下运行成功。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有