记一次CANOE报错“01-0047 Measurement stopped due to real time event processing overrun at simulation”的解决过程

在项目中有个做实验测试的CANOE面板程序,使用的Node节点做底层逻辑处理载体,需要连续运行时间较长,单次连续运行时间要5天以上,在程序长时间运行中频繁报如下的一个错误:

CANOE官方对这个错误的解释如下: 

中文翻译是下面这个意思: 

由于模拟时实时事件处理超限,测量停止。< t:代表运行了多长时间报了这个错误 >

CANoe可以处理的事件数量永久超过。因此事件处理已停止。

使用以下补救措施来解决过载情况:

  • 降低总线上的传输速率
  • 降低事件处理的复杂性(简化模型)
  • 提高计算能力 

通过这个说明,了解到大概是由于程序中处理的事件过多、过快,导致运行不过来,进而CANOE自动停止了,跟电脑性能也有一定关系。

之后通过对程序进行一系列的优化,最终解决了这个问题。实际测试中,不同环境都没有再出现这个问题。

下面是主要的优化点:

  1. 适当降低CAPL中调用定时器的频率时间,无用的定时器及时停止;
  2. 工程中,不同功能的节点进行拆分。例如车辆信息的节点和界面逻辑处理的节点,不要是同一个,可以按照模块划分为多个;
  3. CANOE存储的log按照时间或其他规则分包存储;
  4. 工程中如果有有调用文件打开关闭的函数,不要频繁打开关闭,可以按照时间规律的进行打开关闭,这个也是我发现的比较大的一个问题。我的程序中存储了txt格式的打印信息log,在存储时,每次有新的打印信息都会存储一次,现在修改成了每个小时存储一次;

以上是我对CANOE出现这个事件过载报错问题的一个解决思路,如果有其他同学也遇到这个问题,可以参考我这边的方式,也可以和我交流,完善这个问题的解决方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值