IFIX组态----语音报警实例

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-10 12:08:26

在实际工程中需要对开关量的变位进行报警,为了提醒值班人员除在画面上以颜色,图标等提示外,一个非常好的报警方法是语音报警,将录制好的语音通过声卡播放出来。
播放语音文件(.WAV)可以通过API函数来进行,不需要单独的编写。播放WAV文件的函数有两个,对应于同步和异步。所谓同步是指一次只能播放一个语音文件,不可以连续播放;而异步则可以同时打开多个语音文件,一个个连续的播放,在多个报警同时到来时非常有用。
同步函数为:mciSendString 
使用时首先要声明:
Declare Function mciSendString Lib “winmm.dll” Alias “mciSendStringA” (ByVal lpstrCommand As String, ByVallpstrReturnString As String, ByVal uReturnLength As Long, ByValhwndCallback As Long) As Long
用法: 
Dim filename as String 
Dim cmd As String filename = “test.wav”
cmd = “open " & filename & " type WAVEAudio alias MyWav” 
Call mciSendString(cmd, 0, 0, 0)
Call mciSendString(“play MyWav”, 0, 0, 0)
异步函数为:mciSendString
使用时首先要声明:
Declare Function sndPlaySound Lib “winmm.dll” Alias “sndPlaySoundA” (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
用法:
Dim filename as String
filename = “test.wav”
Call sndPlaySound(filename, SND_SYNC)
可以连续调用 sndPlaySound 来进行连续多个语音文件的播放。

基于调度产生语音报警的方法如下:
第一步确定需要产生语音的点,这里以IFIX1_H2O_CMP0902_AUTO
(PCS CMP0902 自动控制)为例。
第二步从工作台的菜单中选择新建 Schedule。
第三步选择基于事件项。
在这里插入图片描述
双击名称弹出对话框如下:
在这里插入图片描述
名字和描述为默认,数据源选择如下:
在这里插入图片描述
Private Sub FixEvent1_OnTrue()
End Sub
添加一个模块。
在模块里添加对 API 函数的引用,这里以异步为例。
Declare Function sndPlaySound Lib “winmm.dll” Alias “sndPlaySoundA” (ByVal
lpszSoundName As String, ByVal uFlags As Long) As Long
修改事件脚本如下:
Private Sub FixEvent1_OnTrue()
Dim filename as String
filename = " D:\Dynamics\SampleSystem\test.wav"
Call sndPlaySound(filename, SND_SYNC)
End Sub
完成一个信号点语音报警的配置。
注意的是,调度需要在工作台的用户首选项里的后台启动里把刚才
生成的调度文件添加上。
在这里插入图片描述
然后,在系统配置的任务栏配置里,添加 FixBackgroundServer.exe。
在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!