CAPL 脚本模拟整车环境实现CAN 收发监控

所需积分/C币:50 2019-03-17 01:02:24 383KB PDF
收藏 收藏 2
举报

功能设计思路如下:          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 <none> BMS Initial value. 0k0 DCDC 里EPB Minimumm 由Eps Maximum 0k0 甲Fs 2.53:数值的更新、获取 由上推断:控件绑定了环境变量,但是环境变量却没有与DBC中的信号进行 关联,那么如何需要获取、更新该数值呢? 在CAPL脚本视图中控件数值变更会触发一个事件,再基于 getvalue接口获 取视图中的数值; On enyvar环境变量 Zzx= getvalue(环境变量) Putvalue(环境变量,3

...展开详情
试读 5P CAPL 脚本模拟整车环境实现CAN 收发监控
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    抢沙发
    一个资源只可评论一次,评论内容不能少于5个字
    img
    觞宇霖
    • GitHub

      绑定GitHub第三方账户获取
    • 签到新秀

      累计签到获取,不积跬步,无以至千里,继续坚持!

    关注 私信 TA的资源

    上传资源赚积分,得勋章
    最新推荐
    CAPL 脚本模拟整车环境实现CAN 收发监控 50积分/C币 立即下载
    1/5
    CAPL 脚本模拟整车环境实现CAN 收发监控第1页
    CAPL 脚本模拟整车环境实现CAN 收发监控第2页

    试读已结束,剩余3页未读...

    50积分/C币 立即下载 >