目录
工程描述
前情回顾
Why—面板设计
What——面板设计
How——设计/配置Panel控件
Xvehicle工程中Panel的设计过程
Result——Panel设计
仿真工程X-Vehicle:
该工程包含三个 ECU:Engine、Door和Display。
通过Control面板来仿真引擎状态切换、车速调整和车门 开关的操作,同时在Display面板上显示相关的状态。
在上篇操作(CANoe-第2个仿真工程-XVehicle—1总线数据库设计(思路)_lamanchas的博客-CSDN博客)中,我们通过定义数据库中的数据,创建了了XVehicle项目的各个ECU(门,引擎,显示器)、CAN总线、通信需要的信号、报文、变量,以及通信信号和通信节点间的相关关系。如下图所示:
通信节点——ECU | ![]() |
通信消息——环境变量 | ![]() |
通信消息——报文 | ![]() |
通信消息——信号 | ![]() |
通信网络——结构 | ![]() |
通信网络——通信节点 |
![]() |
通信网络—— 各个通信节点的 信号收发情况 |
![]() ![]() ![]() |
至此ECU通信定义完成,本节要做的是:实现仿真Control和Display面板。
完成了通信网络的定义,接下来就需要在网络上进行通信。
通信的过程就涉及到信号发送,接收信号展示状态变化。那么如何使各个ECU发出信号,以及由如何使ECU展示信号下发后自己的状态变化,就是今天的主要工作——面板设计。
面板主要是用可视化控件的形式,仿真零部件。这样针对零部件的操作,零部件的状态显示都会更加直观。
比如,开关这个部件(在panel中称为控件),在panel中如下图,通过配置它的属性,通过鼠标点击就可以完成‘开’信号和‘关’信号的发送。通过拖拽Speed控件的滑钮,更改引擎速度。
又比如,仪表盘这个控件,在引擎接收到对应信号之后,可以直观展示当前速度。
通过上面的举例,我们可以发现,开关和仪表盘,一个是发出信号的,一个是展示信号的。这也是面板中控件分类标准之一。
控件按控制和显示可划分2种:控制控件、显示控件。
其中,控制控件,用于关联信号、系统变量、环境变量。
显示控件,用于实时显示 信号、变量、诊断参数的值。
主要的控件有:
详细的控件功能解释可以通过下文了解: CANoe之Panel Designer的使用(CANoe系列其二)_第55号小白鸭的博客-CSDN博客_canoe panel面板
Panel控件配置有两个重要的部分:
一是,配置控件的自身属性,比如显示样式,字体,信号的格式(取值范围,步长);如果是控制控件,那么 还有控制方式(比如开关控件使用哪种鼠标操作,代表开、关);如果是显示控件,那么还要配置显示图片(比如车门状态,收到左车门开的信号时,使用图片展示)
另外一个是选择控件要关联的Symbol。Panel控件与这些Symbol相连,意味着Panel控件接入了之前定义的通信网络:Panel控件会从这些Symbol获取到自己需要的信息,或者向这些Symbol写入自己要发送的信息。具体的发送和接收的实现则通过ECU上的CAPL编程实现,会在下一节展开描述(写好了放链接在这里)。
其中Symbol有两种类型:一种是Signal,一种是Variable。选好要关联的类型后,再在Symbol中选择该类型中具体的变量进行关联。
PS:Variable又包括环境变量、系统变量。环境变量是在工程关联的dbc中创建的,而系统变量是在CANoe工程工具栏的Environment下的System Variables中创建的。(两者的功能区别也是一个点,先占坑,写好了链接放这里)
步骤概括如下:
具体的操作步骤请移步(https://blog.csdn.net/lamanchas/article/details/122168798)
在上述步骤完成后,控制和显示面板就完成了定义,并且接入了通信网络。
之后我们就可以使用图像化界面,很方便的改变改变信号或变量的值,并直观查看到系统的输出状态。
END