如何使用VeriStand的User Channels、Alarms、Procedures功能?

描述

上一次分享我们学习了VeriStand的Stimulus Profile功能,小编快马加鞭为大家奉上VeriStand中User Channels(用户通道)、Alarms(警报)、Procedures(处理)功能的使用教程。

在模型在环仿真测试(MIL)中,模型的输入、输出不与实际硬件产生关联,即使数值超过允许范围也不会产生实际损失;对于硬件在环仿真测试(HIL),与硬件相关联的参数超出安全范围意味着硬件处于异常状态或有损坏风险,通常需要对仿真进行及时干预来重置参数甚至停止运行。

例如在汽车自动驾驶HIL测试过程中距离传感器相关参数显示距离过近、模型控制的电机转速过快、电机温度过高等,需要在出现上述情况时及时干预防止造成损失。

作为一款强大的HIL系统开发工具,VeriStand针对以上问题提供了Alarms、Procedures功能来完成对系统运行异常的干预。此外User Channels是由用户创建的可在VeriStand中使用的变量。本次教程使用Alarms、Procedures两个功能来监控User Channels的值,超过指定范围时执行预设的处理程序,学习掌握这三个功能的使用方法。

软件环境:

1. VeriStand2020

2. MATLAB R2019a

3. GCC编译器

软件安装和创建VeriStand工程并添加模型等操作的教程,参考文章:知识分享 | VeriStand创建MIL测试环境

本文教程:

如何使用VeriStand的User Channels、Alarms、Procedures功能

一、创建User Channels

User Channels是由用户创建的变量,存储单个值,可以在Procedures、Stimulus Profile等中使用,或者作为模型和Alarms的触发。

gcc编译器

User Channels面板布局如上图,各功能可以参考英文描述尝试使用,点击Add User Channels添加一个用户变量。

gcc编译器

创建一个trigger变量作为Alarms的触发,在Workspace添加数值输出控件并映射到trigger变量,此处省略该步骤教程。

二、创建Alarms

Alarms警报用于监控指定通道的数值是否在范围内,并根据该通道的数值执行预设的程序操作。

gcc编译器

Alarms面板布局如上图,其中:

Alarms列表:显示已有Alarms的列表。主要需要讲一下Priority(优先级)的概念,优先级是指Alarms调用的Procedure的执行优先级,优先级列的数值在【0,31】之间,数值越小则对应警报程序优先级越高,高优先级的警报可以中断执行中的较低优先级警报程序。

Alarms Groups:

a、不同Group的Alarms并行执行,不受优先级影响。

b、同一Group的Alarms:优先级高的Alarms优先执行(中断程序插队),同一优先级的Alarms根据触发时间排队执行。

本教程只用到一个警报程序,不考虑优先级的影响。

gcc编译器

Alarms面板布局如上图,其中:

Alarm Source:通过映射指定一个通道,监控该通道的数值是否在范围内。

Alarm Limit:允许的数值范围,上下限可以在下拉列表指定为常数、映射变量、无,三种中的一个。

Reset Behavior:不重置或重置Alarm的方式,如果触发Alarm后不重置,则该Alarm只会生效一次。

Procedure Priority:该Alarm指定Procedure程序的执行优先级,数值在【0,31】之间。

Default State:默认启用或不启用Alarm。

Delay Duration(sec):触发Alarm到开始执行对应Procedure的延迟时间。

Mod:Normal模式正常调起Procedure执行,Indicate Only模式指仅弹出消息,不执行对应Procedure。

gcc编译器

点击图中所示图标选择已有的Procedure,创建方法在下文。

三、创建Procedure

Procedure是程序启动或触发警报时执行的程序。

gcc编译器

gcc编译器

添加Procedure,面板布局和Procedure的各种执行步骤说明如上图。

gcc编译器

Procedure中没有else语句和if语句搭配,只能通过跳转执行不同步骤。

编写了一个Procedure执行功能:trigger变量小于5时,延迟3秒后置0,;trigger大于5时先置为2,延迟3秒后再置0。

Alarm Command的Reset Alarm用于重置Alarm,若无该指令,则后续无法再次触发Alarm,最后记得添加End步骤,否则Alarm Command的Reset Alarm指令无效。

四、执行结果

gcc编译器

gcc编译器

最后简单添加映射,布置Workspace面板,部署项目程序查看执行结果。

gcc编译器

gcc编译器

五、总结

本次教程实现了对用户变量trigger的监控,当其超出范围时执行Procedure重置变量值;在实际HIL测试中,监控的通道通常是影响到测试设备和人员安全的相关变量,根据安全范围执行Procedure保证测试安全。



审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分