iFix的默认报警音响是通过主板发声的。如果要转到音箱,需要写VBA脚本。
首先,新建一个基于事件项的调度。
触发信息里数据源使用Fix32.THISNODE.ALARMCOUNTERS.F_CV > 0。这里ALARMCOUNTERS是iFix当前报警数量。
事件类型选择“为真时”。
编辑脚本:
Private Declare Function sndPlaySound& Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) ‘声明API调用
Const SND_ASYNC = &H1 ‘SND_ASYNC作为函数的参数,表示循环播放
Private Sub FixEvent1_OnTrue() ‘事件为真时
Dim X%
Dim Pausetime, Start
aa: If Fix32.Fix.ALARMCOUNTERS.F_CV > 0 Then ‘当报警数大于零,即有未确认报警
X% = sndPlaySound("c:\aaa.wav", &H1) ‘调用sndPlaySound函数播放硬盘上的wav文件
Else
GoTo BB
End If
Pausetime = 5 ‘循环延时,视所播放声音文件长度调整
Start = Timer
Do While Timer < Start + Pausetime
DoEvents
Loop
GoTo aa
BB:
End Sub
报警音响将一直持续循环播放到确认报警为止。
如果要求报警音响可选,在触发信息数据源里面添加AND某变量为1或0,然后在相应画面做个切换该数字量的按钮即可。
以上
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
在iFix3.5环境下验证有效。
附:在iFix里实现脉冲按钮脚本
(1)
ToggleDigitalPoint "Fix32.THISNODE.BBB.F_CV"
Dim Pausetime, Start
Pausetime = 2
Start = Timer
While Timer < Start + Pausetime
DoEvents
Wend
ToggleDigitalPoint "Fix32.THISNODE.BBB.F_CV"
(2)
Public Sub PAUSE(PAUSETIME As Double)
Dim CURRENTTIME As Date
CURRENTTIME = Time
While Time < DateAdd("S", PAUSETIME, CURRENTTIME)
DoEvents
Wend
End Sub
以上放到globals-user的脚本里。
Private Sub CommandButton32_Click()
closeDigitalPoint " Fix32.THISNODE.BBB.F_CV "
user.PAUSE 2
openDigitalPoint " Fix32.THISNODE.BBB.F_CV "
End Sub
以上放到按钮脚本中。