Ifix语音报警系统的开发应用
2015-08-15秦萍
秦 萍
(西林钢铁集团有限公司,黑龙江 伊春153025)
随着钢铁企业的不断发展壮大,企业产能的不断提高,设备的逐步更新换代,设备的自动化逐渐替代了人工操作,成为生产的主导,而人的主要工作则转换成监控生产设备的异常状态。但是由于生产的扩大化,设备的数量也急剧增多,单靠人的24h目不转睛的盯住设备不能保证达到预期效果。一旦设备出现故障,而人不能及时发现并处理解决就有可能造成重大事故。那么,如何能够让操作人员及时发现设备异常状态,初期通过音响报警缓解了这个问题,但经过长期的应用问题也随之产生,那就是每个设备的报警声音都一样,分不出轻重缓急,也分不出到底是哪个设备出了问题,一旦多个设备同时出现问题,就会使操作人员手忙脚乱,出现差错。语音报警系统则是根据设备的异常状态触发ifix中的调度,来播放语音报警,操作人员听到语音报警后就能够准确的知道是哪一个设备出现了异常,当出现多个设备同时报警时就可以根据轻重缓急进行故障处理,避免忙中出错。
1 Ifix简介
Intellution Dynamics是第一个开放式的,基于组件技术的,完全一体化的自动化软件产品家族。它被设计成去除了软件包的约束,令工厂平台与商业系统之间易于集成与协同工作,正如Intellution Dynamics组件与第三方应用程序之间所体现的关系。针对Intellution早先的版本,增加了许多重要功能并改善了结构,包括:强大的即插即用结构。组件化的对象结构。集成化的Intellution WorkSpace开发环境。Microsoft VBA脚本。全面支持OPC、OLE和ActiveX。增强了的安全性和可靠性。高级图形。可扩展的配置向导结构;广泛的Internet支持;增强的报警。增强的网络性能;这些改善明显的减小了自动化工程设计时间,允许更快的和简化的系统升级和维护,在Intellution Dynamics和第三方的应用程序之间提供了无缝的集成功能,并且大大的增加了生产率。
Intellution Dynamics的开放式结构通过集成第三方组件和应用程序,可以让你自定义系统。这种即插即用结构允许你使用你自己的应用和对象很快并且很容易的增强,或在某种情况下替换Intellution Dynamics内嵌功能。这种强大的、灵活的结构有助于对连续过程的改善,通过建立和重新使用比以前更快的应用程序有效的降低集成成本。用Intellution Dynamics能快速容易的改变你的系统而不会简慢或中断你的现场过程。
2 系统实现
2.1 文本转换成语音
利用转换软件文语通将设置好的文本转换成语音。
2.2 播放语音报警的函数
播放语音文件(.WAV)可以通过API函数来进行,不需要单独的编 写。播放WAV文件的函数有两个,对应于同步和异步。所谓同步是指一次只能播放一个语音文件,不可以连续播放;而异步则可以同时打开多 个语音文件,一个个连续的播放,在多个报警同时到来时非常有用。
同步函数为:mciSendString
使用时首先要声明:Declare Function mciSend-String Lib"winmm.dll"Alias"mciSendStringA"(ByVal lpstrCommand As String,ByVal lpstrReturn-String As String,ByVal uReturnLength As Long,By-Val hwndCallback As Long)As Long
用法:
Dim filename as String Dim cmd As String filename="test.wav"
cmd="open"&filename&"type WAVEAudio alias MyWav"
CallmciSendString(cmd,0,0,0)
CallmciSendString("play MyWav",0,0,0)
异步函数为:mciSendString
使用时首先要声明:Declare Function sndPlay-Sound 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来进行连续多个语音文件的播放。
2.3 用调度产生语音报警
2.3.1 ifix调度
ifix调度程序是一个电子表格,分别是基于时间触发(time-based entries)的输入和基于事件触发(event-based entries)的输入。双击调度中的空白行,弹出输入对话框。创建输入之后,可以编辑调度表格中的独立单元格来修改调度,而不需要重新启动对话窗口。
基于时间的输入创建一个计时器对象,而基于事件的输入创建一个事件对象。这些iFIX对象具有在VBA中能使用的相关属性、方法和事件。这些对象显示在系统树中。作为对象,它与调度的脚本相关联。
2.3.2 采用调度产生语音报警的方法
第一步确定需要产生语音的点,这里以Fix32.FIX.PT00907A_L.F_CV(焦煤压力低报警)为例。
第二步从工作台的菜单中选择新建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:DynamicsSampleSystem est.wav"
Call sndPlaySound(filename,SND_SYNC)End Sub
完成一个信号点语音报警的配置。
注意的是,调度需要在工作台的用户首选项里的后台启动里把刚才生成的调度文件添加上。
2.3.3 调度后台运行
调度可以在前台或后台运行。当创建新的调度时,默认在前台运行。作为前台任务运行调度,工作台必须处于运行时环境下。调度在前台运行时对测试和调试VBA脚本是非常有用的。
调度在后台运行,则要启动FixBackgroundServer任务。如果FixBackgroundServer没有运行,当调度被添加到后台任务时,则自动启动该任务。为了建立在后台运行的调度,必须改变调度属性对话框里的默认设置,可以通过单击调度右键从弹出菜单中选择调度属性。可以使用这个对话框来改变后台运行的新建调度或已有调度的默认设定。可以选择在前台或后台运行,也可以通过设定窗口属性,修改静态刷新速率。
然后,在系统配置的任务栏配置里,添加Fix-BackgroundServer.exe。
3 结语
通过ifix报警系统在西钢自动控制系统中的应用,操作人员可以及时准确地理解系统的当前状态,特别是发生多个报警时,能够及时提醒操作人员报警的具体参数,以判断故障的轻重缓急,并方便、迅速、可靠地对设备做出相应的调整,为及时查明原因并作出正确处理赢得了时间,大大提高了工作效率。该语音报警系统随时处于监控状态,在一定程度上提高了系统的安全性和可靠性,在高炉稳产、安全生产等方面发挥了重要作用。