在先前ifix项目中添加了语音模块,然后概率性跳出自动化(Automation)错误弹窗,先前分析了很多种原因,从代码的冗余,编码等角度进行了优化,效果不是很理想,仍然会概率性出现。经过反反复复大约3次分析,五天时间终于找到原因,并予以解决。分享给大家。

1.错误描述

后台事件调度,在调用前台画面时,概率性跳出如下图自动化错误提示,导致后续的调度无法执行,严重影响工厂的正常运营。

2.错误原因

深层原因:根据错误号,找到原因为:Call Rejected by Callee。fixbackground后台程序和workspace程序属于两个线程,当后台程序通过fixbackground调用前台的画面时,可能由于交互繁忙被拒绝,从而导致该错误发生。

浅层原因:为什么会出来这个错误弹窗?如何消除?根源在于后台脚本中调用了openpicture,closepicture,OpenTGDPicture等为命令包装器。(Command Wrappers)命令包装器是可以返回错误的子例程,如果在代码中没有处理这些错误,则会显示消息框,通过使用错误处理,它允许代码处理错误。因而,我们可以通过代码的方式将错误进行捕获处理。

我们可以通过如下方法进行验证:

在后台调度代码中,打开前台画面,然后里可以运行关闭画面代码,该demo可以100%复现该问题,从而定位到这个问题原因无误。

Private Sub FixEvent3_WhileTrue()

openpicture “故障报警.grf”,“”,“”,“”,1
closepicture "故障报警.grf", 1 End Sub

3.解决方案

根据ifix给出的关于openpicture的错误参数

默认情况下,OpenPicture使用错误选项0.以下是每个错误选项的说明。

  • 0(默认值) - 允许子例程提供错误消息。错误以消息框的形式显示。如果没有为intErrorMode参数创建条目,则使用默认值
  • 1作为Error Option参数,您可以在计时器或事件脚本中处理错误。例如,从那里,您可以将其发送到Windows NT事件日志。

  • 2作为错误选项参数,您可以将错误发送到警报历史记录。

下面进行修复验证:

1.将fixbackground.exe设置参数/service以后台服务方式运行。

2.脚本编写验证。

Private Sub FixEvent1_WhileTrue()

On Error GoTo HandleErr
Dim workspace As Object
Set workspace = GetObject("", "Workspace.Application")
Dim tagvar As Object
Set tagvar = workspace.Documents("User").Page.FindObject("PicNumBer")
tagvar.Description = "二期粗格栅1号污水泵" With workspace
OpenPicture "故障报警.grf", "", "", "", 1
closepicture "故障报警.grf", 1
End With
'OpenPicture tt, "", TOP, LEFT, 0, , NONE, "", 1
Exit Sub HandleErr: If Err.Number = -2147418111 Then
OpenPicture "故障报警.grf", "", "", "", 1
'Resume Next
Else
End If
End Sub

3.备注:依据上述给出的分析,我们可以直接设置OpenPicture "故障报警.grf", "", "", "", 2这种方法,可以直接跳过该条语音命令而在后台中不报错。

2019/7/8更新:

要实现多个事件能同时触发还得加参数


openpicture tt, "", TOP, LEFT, 1, , NONE, "", True

更多工业交流和工作帮助可以订阅我的个人订阅号哦!

ifix 自动化(Automation)错误弹窗的解决方案的更多相关文章

  1. 自动化(Automation)兼容的数据类型

    自动化(Automation)兼容的数据类型    

  2. [Windows Phone] APP上架,遇到错误2001的解决方案。(Error:2001)

    [Windows Phone] APP上架,遇到错误2001的解决方案.(Error:2001) 问题情景 最近在开始玩Windows Phone的开发,开发的过程中虽然有点小挫折,但是参考网络许多前 ...

  3. 常见ORACLE错误,及解决方案(遇则即时更新)

    1.当登陆时提示“ORA-03113:通信通道的文件结束”时:        解决方案:                     需在X:\oraclexe\app\oracle\product\10 ...

  4. ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案(文档ID 1623284.1)

    ORA-01578和ORA-26040--NOLOGGING操作引起的坏块-错误解释和解决方案(文档ID 1623284.1) (一)NOLOGGING操作引起的坏块(ORA-01578和ORA-26 ...

  5. 用户'sa'登录失败(错误18456)解决方案图解

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://thenear.blog.51cto.com/4686262/865544 htt ...

  6. Rose2003执行出现 -2147417848 (80010108)':Automation 错误

    上篇博客在结尾的时候.我提到了Ration Rose2003执行出现"-2147417848 (80010108)':Automation错误"的问题.今天这篇博客就来介绍一下怎样 ...

  7. 打开WPS时出现MathType错误弹窗怎么办

    MathType是一款特别优秀的公式编辑器,特别是在文档中出现大量的复杂数学公式需要编辑时.不过MathType与Office的兼容性还算好,与WPS的兼容性要略逊一筹,有时候会出现如下的报错弹窗.提 ...

  8. Layer 一个让你想到即可做到的web弹窗/层 解决方案

    最近工作上面用到的web弹窗组件layer layer是一款口碑极佳的web弹层组件,她具备全方位的解决方案,致力于服务各个水平段的开发人员,您的页面会轻松地拥有丰富而友好的操作体验. layer官方 ...

  9. 关于“System.Data.OleDb.OleDbException,外部数据库驱动程序 (1) 中的意外错误。”的解决方案

    网站之前运行一直很正常,但有一次用户在导入格式为xls的excel文件,发生了错误,跟踪错误后抛出如下的异常: 错误提示: 未处理System.Data.OleDb.OleDbException HR ...

随机推荐

  1. 有效Ajax案例

    <script>$(document).ready(function(){ $("input:submit").click(function(){ $.ajax({ t ...

  2. ffmpeg实战-音视频基础概念

    转发自白狼栈:查看原文 关于音视频,相信大家都看过电影(视频),听过音乐(音频),至少应该都知道mp4是视频文件,mp3是音频文件. 对于一个音视频文件,都有哪些属性呢?以视频为例,我们可以通过 ff ...

  3. 【题解】 hdu2955 Robberies

    有抱负的罗伊·劫匪已经看过很多美国电影,他知道坏人通常会被抓住,经常是因为他们太贪心了.他决定在银行抢劫案中工作一段时间,然后退休后到一所大学从事一份舒适的工作. 题目: 罗伊去几个银行偷盗,他既想多 ...

  4. Java进阶 | 泛型机制与反射原理

    一.泛型的概念 1.基础案例 泛型在Java中的应用非常广泛,最常见则是在集合容器中,先看下基础用法: public class Generic01 { public static void main ...

  5. Jrebel、IDEA的激活与Springloaded使用

    又有很长一段时间没写了,这次这篇随笔主要是分享下Jrebel与IDEA的激活方法以及推荐下Jrebel的替代工具Springloaded. 先来说下Jrebel的激活方法吧,之前有同事遇到了Jrebe ...

  6. 透彻理解USB总线应用之枚举

    Hello,大家好,今天我们来讨论一下USB总线中的枚举(Enumeration),首先简单介绍一下USB系统的基本架构,它由USB主机.USB设备与USB电缆(本文忽略它)组成,如下图所示: 最常见 ...

  7. IP地址与子网的划分

    一.IP地址 1.IP地址的定义 (1).IP地址有32位二进制数组成,一般用点分十进制来表示 (2).IP地址由两部分组成 网络部分(NETWORK) 主机部分(HOST) 2.IP地址的分类 IP ...

  8. hive学习笔记之九:基础UDF

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  9. centos 8 下解压.tar.gz文件

    执行命令 tar 参数 文件名 参数: -c :建立一个压缩文件的参数指令(create 的意思): -x :解开一个压缩文件的参数指令: -t :查看 tarfile 里面的文件: 特别注意,在参数 ...

  10. 初识Sonarqube

    Sonarqube 官方网站地址: 官方网站地址:https://www.sonarqube.org/ Sonarqube 官方介绍: 使用 SonarQube 静态分析,您可以在一个地方衡量项目中所 ...