ifix -研究调度事件(event)在运行态进行激活和停止的方法

1.研究背景(基本原理)

ifix在使用后台调度时,有时需要将某些事件调度进行手动激活或停止。对于运营人员来说,切换到编辑模式来做,过于复杂,遂实现在运行态实现该功能。

基本原理:

通过后台找到确定的event对象,通过该对象的StopEvent,StartEvent方法实现停止和激活功能,通过Status方法实现对该事件对象状态查看。

2.实现方法

准备工作:在界面上做两个按钮,分别用来实现激活和停止调度功能。

分别对该两按钮进行编程如下:

1.激活按钮:(对点位状态进行弹窗显示)

Private Sub CommandButton1_Click()
Dim Var1 As Object
Dim Var2 As Object
Dim strMsg As Boolean
Dim Msg As String


Set Var1 = GetObject(, "FixBackGroundServer.Application")
Set Var2 = Var1.System.FindObject("tt.FixEvent1")

Var2.StartEvent
strMsg = Var2.Status
If strMsg = True Then

Msg = "该点位已激活"
End If

MsgBox Msg, vbOKOnly, "Message"
End Sub

2.停止按钮(使用循环对多个事件进行操作)

Private Sub CommandButton2_Click()
Dim Var1 As Object
Dim Var2 As Object
'Dim al As Variant

'al = Array("tt.FixEvent1", "tt.FixEvent2", "tt.FixEvent3", "tt.FixEvent4", "tt.FixEvent5")
Set Var1 = GetObject(, "FixBackGroundServer.Application")
'For Each i In al
        ' Set Var2 = Var1.System.FindObject("tt.FixEvent" + i)
       ' Var2.StopEvent
     ' Next i
      For i = 1 To 5
       Set Var2 = Var1.System.FindObject("tt.FixEvent" + CStr(i))
       Var2.StopEvent
       Next i
'Set Var2 = Var1.System.FindObject("tt.FixEvent1")

End Sub

3.总结

对功能的相应新增,主要还是需要对ifix相关属性文档进行深入查看,掌握VB一定基础编程即可。

4.实际效果补充

现场实际测试下来,需要补充两个问题:

1.激活和停止状态显示

新建模块进行统一调用,在模块中将该点.A_ALMCK属性进行改变,从而做到激活/停止显示不同状态区分。

Public Sub AlarmCheck(ByVal AlarmName As String, ByVal Tagname As String)
Dim Var1 As Object
Dim Var2 As Object
Dim strMsg As Boolean
Dim Msg As String
Dim tag As String
Dim lValue As String
Dim VALUE1 As String
VALUE1 = "NONE"
Set Var1 = GetObject(, "FixBackGroundServer.Application")
Set Var2 = Var1.System.FindObject(AlarmName)
tag = "Fix32.Fix." + Tagname + ".A_ALMCK"

lValue = ReadValue(tag)
If StrComp(lValue, VALUE1) = 1 Then
Shell (System.BasePath & "\DBBLOAD -DDATABASE")
Var2.StartEvent
strMsg = Var2.Status
writevalue "COS", tag
If strMsg = True Then
Msg = "该点位已激活"
End If
MsgBox Msg, vbOKOnly, "Message"
Shell (System.BasePath & "\DBBSAVE -DDATABASE")
Else
Var2.StopEvent
writevalue "NONE", tag
Shell (System.BasePath & "\DBBSAVE -DDATABASE")
Msg = "该点位已停止"
MsgBox Msg, vbOKOnly, "Message"
End If


End Sub
Private Sub CommandButton3_Click()

Call AlarmCheck("tt.FixEvent1", "test3")

End Sub

以该点状态为区分,可进行可视化或颜色区分来作为激活停止标志。

Fix32.FIX.TEST3.A_ALMCK = "NONE"

2.停止转为激活后,出现该点位误报问题

未解决误报问题,在激活前利用DBBLOAD 函数将数据重载解决。

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值