1、YBCCANoe培训培训 CAPL语言编程 Interaction Layer(交互层)CANoe与Matlab联合仿真第1页,共34页。YBCCAPL语言编程语言编程u类C语言u仿真 单个节点和整个网络 外部环境 测试u面向事件的编程语言第2页,共34页。YBC各种事件各种事件消息事件on message 123on message 0 x123on message MCUon message CAN1.MCUon message*on message 100-200键盘事件on key aon key on key F1on key Ctrl-F12on key PageUPon key
2、Homeon key*第3页,共34页。YBC时间事件定时器声明msTimer ybctimer ybc定时器函数setTimer(ybc,20)cancelTimer(ybc)定时器事件on timer ybc环境变量事件环境变量函数getValue()putValue()环境变量事件on envVar XXX第4页,共34页。YBC 数据类型message MCU MCU;message MCU CAPL_MCU;output(CAPL_MCU);第5页,共34页。YBCPractise1 新建一个数据库,该数据库有一个节点,设置该节点每200ms发送一条EngineData报文。每当按下
3、a键,在Write Window窗口输出一句话“XXX EngineData messages have sent”,(其中XXX为已经发送的EngineData报文数量),然后利用PANEL面板中的input/output box给EngineData报文下的Enginespeed信号赋值。2 模拟红绿灯,按下红绿灯启动开关按钮之后,红灯亮,红灯持续几秒之后闪烁,然后绿灯亮,绿灯闪烁几秒之后红灯亮,如此反复。第6页,共34页。YBCInteraction Layer(交互层)(交互层)第7页,共34页。YBC报文属性报文属性第8页,共34页。YBC第9页,共34页。YBC第10页,共34页。
4、YBC信号属性信号属性第11页,共34页。YBC第12页,共34页。YBC举例说明IL的应用 新建一个数据库,该数据库有两个节点,NodeA,NodeB;两个节点分别发送Msg1和Msg2报文;两个报文分别包含Sgn1和Sgn2信号。通过Panel面板改变Sgn1的值,观察效果。第13页,共34页。YBCCANoe与与Matlab联合仿真联合仿真CANoeSimulink modelCANoeCANoe中只能对信号进行简单的采集和处理,如果要对信号进行比较复杂的控制上的处理的话,就要用到simulink模块与CANoe的联合仿真,将CANoe采集到的信号通过simulink中的模型进行运算,然
5、后将结果再通过CANoe发送到总线上。第14页,共34页。YBCMatlab Simulink与与CANoe的无缝连接的无缝连接安装Vector_Addon_Matlab_Interface_V23.exe,在安装的过程中会提示与哪个CANoe版本集成(如果电脑中有多个CANoe版本的话)。第15页,共34页。YBC安装好之后在simulink库中会多出CANoe库。第16页,共34页。YBCMatlab Simulink 仿真模型,仿真模型,CANoe仿真网络:仿真网络:在simulink中运行模型,通过CANoe仿真网络节点和报文信息,此方式的缺点是运行时simulink和CANoe要同时
6、打开,比较繁琐。第17页,共34页。YBC在仿真开始之前要对simulink进行相关的一些设置。第18页,共34页。YBC第19页,共34页。YBC第20页,共34页。YBC第21页,共34页。YBCOffline模式是以simulink的时钟为基准;synchronized模式是以CANoe的时钟为基准。第22页,共34页。YBCOffline模式Synchronized模式第23页,共34页。YBC在在CANoe中启动中启动simulink模型进行模型进行仿真仿真将simulink模型生成.dll文件,然后在CANoe的节点中将给文件链接进去。第24页,共34页。YBC!在编译之前要将当前
7、的工作路径设置为模型所在的文件夹下第25页,共34页。YBC编译完成之后会自动生成一个新的文件夹XXX_cn_rtw,其中.dll文件就在该文件夹中的Release文件夹中。第26页,共34页。YBC将生成的.dll文件导入到CAN总线的虚拟节点中。右键-configuration-components-add找到.dll文件,然后点击确定。第27页,共34页。YBC在在CANoe中即可以运行中即可以运行simulink模型模型第28页,共34页。YBC这里我们会发现,生成.dll文件之后,在模型中更改一些值之后,在CANoe中没有响应。第29页,共34页。YBC这个问题怎么解决呢?在节点上右键-configuration-simulink将文件添加到相应的位置,然后重新编译simulink模型。第30页,共34页。YBC编译完成之后在view窗口下会出现模型的名称。第31页,共34页。YBC这时就可以对模型当中的一些量进行更改,问题解决。第32页,共34页。YBC第33页,共34页。YBC演讲完毕,谢谢观看!第34页,共34页。