前言
今天介绍TSMaster的新功能—CANoe自动化模块。该模块的功能是通过激励CANoe内部的系统变量,配合运行在CANoe中的CAPL脚本来响应变量变化事件,从而实现对CANoe的自动控制。需要下载到最新版本的TSMaster,也就是2022年11月4日之后的版本。
一、打开CANoe自动化模块
点击CANoe自动化模块的图标即可打开窗口。
在任何操作前首先需要连接CANoe,点击让CANoe作为TSMaster的一个子模块,这个过程会启动CANoe。如果没有安装CANoe或是CANoe的自动化服务器没有注册,TSMaster就会打印错误信息。用户可以根据错误的信息提示自行注册。
二、示例配置
在CANoe启动完成后,我们可以随意打开一个带系统变量的示例配置。我们可以找一下programming一栏的各种示例。
例如,COM Automation via Python这个示例配置。打开之后会发现有一个Simulation Setup,我们可以浏览一下其中各个仿真节点的逻辑。
可以看到,这是模拟一辆车的车灯的运行情况,我们到Analysis可以看到,它有面板、各种按钮、trace还有graphic。第一个脚本是引擎的控制;第二个是灯的控制。我们可以看到在灯的控制里面有这样一个系统变量变化事件,就是双闪灯的开关,这段控制代码是通过激励双闪灯的系统变量-HazardLightsSwitch来实现双闪灯的闪烁功能。
三、实现CANoe双闪灯闪烁
回到TSMaster中,点击刷新系统变量列表,展开就可以看到CANoe当前状态中所有的系统变量。
其中就有一个Lights,这个Namespace底下有一个HazardLightsSwitch,这就是我们要控制的变量。
> 首先我们启动CANoe的仿真。点击TSMaster的启动仿真按钮,CANoe的仿真也就正常启动。需要说明的是:刚才看到的所有界面的操作都可以用TSMaster的脚本自动完成。
> 我们在界面上尝试修改CANoe的双闪灯的系统变量,可以双击也可以按回车键,之后会弹出一个修改对话框,输入1按回车,然后转到CANoe,我们就可以发现在CANoe中这辆车的双闪灯已经开始闪烁了。
> 我们再回到TSMaster中,将这个变量改为0按回车,可以看到双闪灯就熄灭了。这就是CANoe自动化模块目前支持的核心功能。它能够通过系统变量来进行自动化,这个模块后续还会增加新的控制功能,敬请期待...
四、在TSMaster中控制双闪
> 我们点击停止来停止这个仿真,然后打开一个自动化模块的界面,按回车,添加一个动作,这个动作我们设置为API函数调用,在此需要使用CANoe自动化模块自带的众多API。我们选择小程序库函数,这里列出的就是CANoe自动化模块它内部的24个API函数。
> 首先第一个函数是连接CANoe,双击就可以把它加进来,连接CANoe之后的第二步,我们可以将这个代码复制Ctrl c加Ctrl v。那么第二步就是启动仿真,启动仿真自然就是canoe_start回车,这样就选中了canoe_start API。
> 启动仿真之后,我们可能需要等待个1秒钟,按回车,然后双击这个新的动作,我们可以选择依然是API调用,但是这时候是我们内部的系统函数。
> 然后我们选wait,显示的时间就是1000毫秒,消息是wait some time,在1秒之后我们希望触发双闪灯的变量变化。同样回车,然后选中我们的新动作,就改为API函数调用库函数,函数名称需要通过set来进行过滤。
> 这里有一些设置系统变量的函数,假若我们设定完成之后,可能需要等待个5秒钟来观察。那么我们就把这个wait的参数时间改为5000,接下来需要将这个变量设成0以停止双闪灯。然后我们可能还需要再停个3秒钟进行观察,那么这时候再次copywait函数,并且把它改成3000,接下来就是停止仿真和停止断开CANoe的连接。
> 停止仿真自然就是canoe_stop,断开连接自然就是disconnect。我们就继续复制和粘贴,并且将它改成disconnect,这样就完成了一张流程图的设计。那么通过流程图的方式,我们完成了控制逻辑的设计。同时这张流程图就是可执行程序,可以按F9来执行。切换到CANoe可以看到双闪灯闪烁,并且过了5秒之后双闪灯就熄灭了。最后整个过程就跑完了,仿真也停止了。
在此,我们相信TSMaster的CANoe自动化模块的用户需求会有很多。现有的逻辑依然可以在CANoe中运行,相当于两个软件可以联合仿真。一方面实现了很多只有CANoe CAPL脚本才能够执行的特有功能;另一方面可以提高开发调试和测试的效率。
以上就是我们本章节为大家演示的TSMaster的CANoe自动化模块功能,更多详细操作步骤可以到B站进行观看哦!
标签:仿真,TSMaster,变量,双闪灯,CANoe,模块 From: https://blog.51cto.com/u_15714299/5919645