在我的先前一篇关于语音报警系统制作的文章中,阐述了如何通过标签组来获得@name@的详细内容,以通过这种方式来进行详细的设备故障播报。经过一段时间的试运行,发现使用标签组的方式会产生较大的耦合,(即当标签组内容或者脚本内容发生错误时,脚本会弹出错误,妨碍了其他脚本的执行)

于是,在现场将所有的绑定标签组的报警脚本修改为直接传参到全局变量,实现解耦。

1.后台调度修改:

Private Sub FixEvent2_WhileTrue()
’将全局变量PicNumBer赋值为所需要报警的设备名称
Dim workspace As Object
Set workspace = GetObject("", "Workspace.Application")
Dim tagvar As Object
Set tagvar = workspace.Documents("User").Page.FindObject("PicNumBer")
tagvar.Description = "二期粗格栅2号污水泵" Dim TOP As Integer
Dim LEFT As Integer
TOP = Int((50 * Rnd) + 1)
LEFT = Int((50 * Rnd) + 1)
Dim conODBC As ADODB.Connection
Dim StrD As String
Dim userid As String
Dim username As String
Dim groupname As String
System.FixGetUserInfo userid, username, groupname
StrD = Format(Now, "yyyy-mm-dd hh:mm:ss")
Set conODBC = New ADODB.Connection
conODBC.ConnectionString = "DSN=QPWS;UID=sa;PWD=;"
conODBC.Open "QPWS", "sa", ""
conODBC.Execute "insert into kaitingshijian (DateTimee,mingcheng,neirong,operator) values ('" + StrD + "','二期粗格栅污水泵2', '故障', '" + username + "')"
conODBC.Close
openpicture "故障报警.grf", "", TOP, LEFT, 0, , NONE, "", True End Sub

2.1弹窗界面初始化:

Private Sub CFixPicture_Initialize()
Dim a As String
User.jishu.CurrentValue = User.jishu.CurrentValue + 1
playSound ("D:\alarm.wav")
'将设备名称赋值给text标签的caption属性 Text2.Caption = User.PicNumBer.Description
'故障报警.LoadTagGroupFile User.PicNumBer.Description
'故障报警.tagGroupSubstitution "@name@", a
'JTTS_ActiveX1.Play (a)
JTTS_ActiveX1.Play (Text2.Caption + Text1.Caption + Text2.Caption + Text1.Caption + Text2.Caption + Text1.Caption)
End Sub

2.2界面关闭:

Private Sub CFixPicture_Close()
If User.tagname.CurrentValue = False Then
User.tagname.CurrentValue = True
Else
Dim a As String
a = Text2.Caption
Dim conODBC As ADODB.Connection
Dim StrD As String
Dim userid As String
Dim username As String
Dim groupname As String
System.FixGetUserInfo userid, username, groupname
StrD = Format(Now, "yyyy-mm-dd hh:mm:ss")
Set conODBC = New ADODB.Connection
conODBC.ConnectionString = "DSN=QPWS;UID=sa;PWD=;"
conODBC.Open "QPWS", "sa", ""
conODBC.Execute "insert into querenguzhang (DateTimee,mingcheng,neirong,operator,queren) values ('" + StrD + "','" + a + "', '故障', '" + username + "','未确认')"
User.jishu1.CurrentValue = User.jishu1.CurrentValue + 1
conODBC.Close
End If
End Sub

2.3确认按钮脚本编写:

Private Sub CommandButton1_Click()
Dim a As String
a = Text2.Caption
Dim conODBC As ADODB.Connection
Dim StrD As String
Dim userid As String
Dim username As String
Dim groupname As String
System.FixGetUserInfo userid, username, groupname
StrD = Format(Now, "yyyy-mm-dd hh:mm:ss")
Set conODBC = New ADODB.Connection
conODBC.ConnectionString = "DSN=QPWS;UID=sa;PWD=;"
conODBC.Open "QPWS", "sa", ""
conODBC.Execute "insert into querenguzhang (DateTimee,mingcheng,neirong,operator,queren) values ('" + StrD + "','" + a + "', '故障', '" + username + "','已确认')"
conODBC.Close
User.tagname.CurrentValue = False 'If (User.jishu.CurrentValue > 0) Then
'User.jishu.CurrentValue = User.jishu.CurrentValue - 1
'Else
'User.jishu.CurrentValue = 0
'End If closepicture
End Sub

显示效果如图:

Intouch/ifix语音报警系统制作(2)的更多相关文章

  1. Intouch/ifix语音报警系统制作(3-利用自定义过程和函数,重构先前版本)

    在语音模块嵌入了半年左右的时间,经过实际使用发现,代码冗余,重复太多,维护较难,新增也不易,故而对整个框架进行整理,实现简单添加,维护容易的目的. 1.代码优化 1.1构建自定义过程 name 参数代 ...

  2. Intouch/ifix语音报警系统制作(4-自动发送邮件提醒)

    在近期项目完成后,有遇到情况:类似于语音报警后,中控室人员未及时报告给我们造成了事件的危害升级,以及造成很不好的影响.针对这个情况特此添加语音报警后,自动发送邮件提醒,完善现有的报警机制. 1.函数编 ...

  3. Intouch/ifix关于语音报警的一种设置思路

    工控项目最近升级改造,需要使用Intouch/ifix提供一个语音报警功能.这个不像先前提供的单一的声音报警,业主方要求能详细的提供某某水泵或者是某某设备故障报警,这就要求我们这边对语音解析或者基础控 ...

  4. powershell《语音报警系统》

    用powershell实现:“倩女幽魂姥姥”版<语音报警系统> ------[第一章 前言]------ win7,及以上版本中,是自带语音库的,系统自带一套女声中文库,一套女声英文库.用 ...

  5. 用powershell实现:“倩女幽魂姥姥”版《语音报警系统》

    ------[第一章 前言]------ win7,及以上版本中,是自带语音库的,系统自带一套女声中文库,一套女声英文库.用powershell调用,从而发音,制作报警系统.是一件太简单的事情,只需要 ...

  6. 关于intouch/ifix嵌入视频控件并使用(海康,大华)

    2017年下半年项目开始接触利用intouch工控软件来进行项目二次开发.其中关于驱动的问题始终是上位机的重中之重,暂且不表(嘿嘿--),首先遇到的问题就是在弹窗中嵌入视频控件,监控设备的开停状态.经 ...

  7. intouch/ifix嵌入视频控件2(报警视频联动初步思路)

    在项目中有朋友遇到类似的需求,ifix中嵌入视频,并实现报警与视频的联动功能.诸如,重要设备启动时,摄像头自动弹窗,并持续一段时间自动弹窗关掉:设备故障时,摄像头自动截图,录像一段时间存储:设备停止时 ...

  8. Intouch 关于报表数据的一种思路

    在熟悉Intouch项目有一段时间了,也做有相关的三个项目,关于Intouch的一些报表数据的采集,也有了自己一定的看法(主要还是因为自己是野路子)今天就把我常用的一种制作思路,提供给大家.(仅供参考 ...

  9. 10款.net 图形插件

    在如今这个读图时代,图形图表的可视化数据表现形式已成为一种趋势.因为图表能直观的展示信息.对比和趋势等,所以许多项目开发中都需要用到图表控件,而很多图表控件都是在.NET平台下开发的,今天就为大家推荐 ...

随机推荐

  1. 《吃透MQ系列》之扒开Kafka的神秘面纱

    大家好,这是<吃透 MQ 系列>的第二弹,有些珊珊来迟,后台被好几个读者催更了,实属抱歉! 这篇文章拖更了好几周,起初的想法是:围绕每一个具体的消息中间件,不仅要写透,而且要控制好篇幅,写 ...

  2. 【题解】coin HDU2884 多重背包

    题目 Coins Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  3. SCP,SSH应用

  4. [翻译]在GC上加入DPAD

    本文90%通过机器翻译,另外10%译者按照自己的理解进行翻译,和原文相比有所删减,可能与原文并不是一一对应,但是意思基本一致. 译者水平有限,如果错漏欢迎批评指正 译者@Bing Translator ...

  5. golang 用defer 捕获error 需小心

    有时一个函数内需要根据最后是否出错,决定是否执行某个操作.这时候如果函数的分支又比较多,就会比较麻烦了. defer 处理这个情况刚好合适 func main() { var err error by ...

  6. VLAN的基础介绍与使用方法

    一.VLAN概述与优势 二.VLAN的种类 三.VLAN的范围 四.VLAN的三种接口模式 五.VLAN的实例操作 一.VLAN概述与优势 VLAN(虚拟局域网)通过为子网提供数据链路连接来抽象出局域 ...

  7. 12、Linux磁盘设备基础知识(1)

    GB TB PB EP ZB YB BB:

  8. layui创建后台框架

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  9. AcWing 1277. 维护序列

    #include <bits/stdc++.h> #define ll long long #define N 4000010 using namespace std; ll t[N],a ...

  10. JavaScript编写计算器的发展史

    JavaScript编写计算器的发展史: 编写一个普通的四则运算: <!DOCTYPE html> <html lang="en"> <head> ...