文件名称:
CAPL 脚本模拟整车环境实现CAN 收发监控
开发工具:
文件大小: 383kb
下载次数: 0
上传时间: 2019-03-17
详细说明:功能设计思路如下:
1:整车环境模型搭建
2:实时监控XXX节点的发送帧
3:模拟节点发送CAN帧,观测xxx节点能否正常接收
4:实时监控总线负载率
5:界面化编程
【非纯代码,设计思路及部分代码】21:整车环境模型搭建
由于整车环境与实验室环境存在很大的差异,导致实验室环境下测试结论在
整玍环境下是不可靠的,为避免整乍CAN异常,很冇必要模拟整乍环境验证当
前节点CAN是否符合设计预期
Simulation Setu
E-IT Networks
口CAN
Ecu
ECU
E-U
AC
ANgeLN世c
D参垦患品D患品
二
Networ
甲 erective Generater:
p Replar blocks
=0 databases
e FT_CAN
垦」步」由
注意:由于以上各节点绑定DBC中的节点,模型会自动按照DBC中配置发送
相应帧,如果涉及该帧的相关功能验证,建议点击〓按钮 disable cav帧:
2.2:实时监控XXX节点的发送帧
如果想监控ⅹ节点,首先新堦测试节点,编写相应CAPL脚本自动接收总线上CAN数
据,并做 Checksum, Rollingcounter, Timeout校验,观测整车环境下有无丢帧等
异常情况;【CAPL编程:建议直接参考手册,很完善的瓷料】
On message ik
Switch(this id
Case ox123
Timeout校验
Check sum校验
Rollingcounter校验
Break
Case Ox124
Timeout校验
Checksum校验;
Rollingcounter校验;
Ibreak
Default break
具体 Checksum, Rollingcounter, Timeout校验的策略很多,此处便不多加赘述;
2.3模拟节点发送CAN帧,观测ⅹx节点能否正常接收
按照帧周期触发定时器向总线推送该数据,如果此帧属于关键帧,那么需按
照 Checksum及 RollOut策略实时更新数据,观测在整车环境能否正常接收报文;
settimer( timerⅹxx,xx. GenMsgCyclctime):按照DBC配置周期设置定时
器
On timertimer xxx
X
XⅩ
v1= random(100)
XXX.v2- random(100)
Xxx. rollingcounter RollCnt
Xxx. Checksum Checksum
Output(Xxx)
setTimer(timer XXx, xxx. GenMsgCycleTime)
2.4:实时监控总线负载率
直接调用相应接口函数即可:
Busload = canGet BusLoad( channel)
2.5:界面化编程
251:搭建视图层: Panel Designer:拖拉控件
目:/x9 x Pane 1. EvEVO
Symb)lEsplcrer
oo box
日PTC4l
5D00
PLOp论w
Sir db
Check bca
YCU ICUrgLeg
Hc od Eidt
Eackoroud mac choose mage.
D Spe
Appearance
2.5.2:视图层与 database绑定
何个控件都需要右击绑定属性:基本是 attach signal/ attach
environment
Δ tach signal:将该控件绑定总线上的该信号,该控件实时反馈总线上该
信号的数值,capl脚本中不需要额外的配置
Attach enyironment:将该控件绑定一个环境变量,在capl脚本中就可基
于此环境变量进行相应的动作、事件【 putvalue, getvalue】;那么问题来了,
这个环境变量如何配置?
具体配置见下图,需在DBC文件中新増该环境变量,并设置类型,权限,单
位, table等值;注意:此环境变量不必与DBC中的信号进行关联;
f Overall View
GI Networks
Environment variable"En BMS STATUS
旦EcUs
Definition a Control units4 Attributes Value Descriptions Comment
B-A Environment variables
A Env BMS STATUS
A Env MCU RunMode
Name
Eny BMS STATUS
A Env VCU MCUModeReq
Vaue Type
A Env_VCU_MCUTrqReq
日- Network nodes
Readwrite
E- ABS
由AC
BC
aue Table
BMS
Initial value.
0k0
DCDC
里EPB
Minimumm
由Eps
Maximum
0k0
甲Fs
2.53:数值的更新、获取
由上推断:控件绑定了环境变量,但是环境变量却没有与DBC中的信号进行
关联,那么如何需要获取、更新该数值呢?
在CAPL脚本视图中控件数值变更会触发一个事件,再基于 getvalue接口获
取视图中的数值;
On enyvar环境变量
Zzx= getvalue(环境变量)
Putvalue(环境变量,3
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.