CANoe入门基础Stepbystep系列
- 格式:doc
- 大小:1.03 MB
- 文档页数:21
canoe的使用流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!1. 准备工作确保你已经安装了 canoe 软件,并具备相应的硬件设备,如 CAN 总线接口卡。
CANoe基础功能及操作介绍黎先辉20200610目录1.概要 (3)2.工程建立 (3)2.1.CANoe功能概述 (3)3.工程配置 (4)3.1.硬件连接 (4)3.2.通道配置 (5)3.2.1.通道数量配置 (5)3.2.2.通道匹配 (6)3.3.加载DBC文件 (7)4.报文监测及分析 (8)4.1.数据来源设置 (8)4.2.CAN Statistics窗口 (9)4.3.Trace窗口 (9)4.4.Graphics窗口 (10)4.4.1.添加信号 (11)4.4.2.常用工具 (11)4.4.3.信号配置 (12)4.5.Logging窗口 (14)4.5.1.分包存储配置 (14)4.5.2.长报文回放 (15)1.概要CANoe是Vector公司的针对汽车电子行业开发的专用工具,主要用于总线开发及测试、ECU开发及测试、报文分析及诊断等方面,贯穿从需求分析到系统实现的完整开发过程。
CANoe丰富的功能和配置选项被OEM和供应商的网络设计工程师、开发工程师和测试工程师所广泛使用。
2.工程建立首次打开软件需要建立一个CANoe工程,File→New→Default,弹出图2.1模板选择窗口,工程模版库中有很多模板,可根据自己的需求选择最相近的一个模板,也可以把自己习惯使用的模块保存为自定义模板,下图中的CanOffLine_Li模板就是我新建的,还可以在右下角添加描述,后续新建工程时可以直接选用。
CANoe的工程文件包含两个文件,建议单独建立文件夹,针对需要多次打开使用的工程,建议另存工程,可以避免重复配置或数据回放。
图2.1CANoe工程模板选择窗口2.1.CANoe功能概述CANoe功能很比较多,汽车电子常用到的功能基本都有,包括CAN报文分析、虚拟节点、测试、诊断等功能,详见图2.2。
(1)CAN报文分析包括离线报文分析和在线报文分析;(2)虚拟节点可模拟部线节点周期性发送报文,可用于实车调试、台架调试或负载测试;(3)CANoe有较强大的测试功能,可以支持各类ECU测试;(4)支持UDS协议,通过导入.cdd文件,实现对ECU进行诊断或刷写。
canoe使用教程目录•引言•CANoe软件概述•CAN网络基础知识•使用CANoe进行CAN网络仿真•使用CANoe进行CAN网络监控与分析•使用CANoe进行CAN网络测试与验证•总结与展望01引言目的和背景01介绍canoe软件的基本功能和特点,帮助用户更好地了解和使用该软件。
02提供详细的canoe软件使用教程,指导用户完成各种操作和任务。
03分享canoe软件的使用经验和技巧,提高用户的工作效率和准确性。
0102030405canoe 软件的基本概念和术语解释。
canoe 软件的安装和配置方法。
canoe 软件的高级功能和使用技巧。
canoe 软件的基本操作和功能介绍。
canoe 软件在实际应用中的案例分析和解决方案。
教程范围02CANoe软件概述1234强大的CAN 网络仿真功能实时数据分析与监控灵活的报文编辑与发送丰富的诊断与测试功能软件功能和特点支持多通道CAN 网络仿真,可模拟复杂的CAN 通信场景。
提供直观的报文编辑界面,支持多种CAN 报文格式,并可定时或触发发送。
可对CAN 网络数据进行实时采集、解析和显示,支持多种数据格式和图表展示。
集成多种CAN 诊断协议,支持ECU 诊断、故障注入等测试功能。
01020304主界面报文编辑窗口图形化显示窗口诊断与测试窗口软件界面介绍包括菜单栏、工具栏、项目浏览器、报文显示窗口等部分,提供全面的软件操作和信息展示功能。
用于创建和编辑CAN 报文,支持多种报文格式和属性设置。
提供诊断协议配置、故障注入等测试功能操作界面。
以图形化方式展示CAN 网络数据,包括报文时序图、状态机等。
安装步骤配置要求驱动程序安装软件设置软件安装与配置确保计算机满足最低系统要求,如操作系统版本、处理器、内存等。
下载软件安装包,解压后运行安装程序,按照提示完成安装过程。
启动软件后,进行必要的设置,如选择语言、配置CAN 通道参数等。
根据硬件接口类型和操作系统要求,安装相应的CAN 接口驱动程序。
CANoe是Vector公司的针对汽车电子行业的总线分析工具,现在我用CANoe7.6版本进行介绍,其他版本功能基本差不多。
硬件我使用的是CAN case XL.1,CANoe软件的安装很简单,先装驱动,再装软件。
安装完成,插上USB,连接硬件,这样在控制面板中,Vector Hardware 进行查看通过查看信息可知,CANcaseXL中的两个piggy,一个是251(高速CAN),一个是7269(LIN),另外常用的还有1054(低速CAN,或称容错CAN),因为CANcaseXL中只能支持两路通讯,这样piggy可以自由组合2,硬件连接正常,打开CANoe软件文案大全File->New Configuration 可以选择新建工程的模版,我们这里选择CAN_500kBaud.tcn,这样新建了波特率为500K CAN工程,可以File->Save Configuration,进行保存3,接下来就要使用CAN db++ Editor工具对总线网络节点,消息,信号,进行定义了。
点击工具栏的这个图标,或开始菜单中找这个工具启动启动后,File->Create Database,选择CANTemplate.dbc,选择目录及文件名,进行保存右键 Network nodes->New ,进行网络节点的定义,这里只需要填写Name即可,例如:Node_A文案大全然后添加Node_B,完成后如下图,这样在Network nodes目录下面添加出来两个节点节点添加完成后,下一步添加CAN消息,右键Messages->New,这是需要定义名称,ID,DLC等信息,如下:文案大全然后在Transmitters页面,点击Add按钮,添加Node_A为发送节点,意思就是说,此消息是从Node_A节点发送出来的文案大全其实还有一种方法就是,此时暂时不定义发送节点,然后直接以拖曳的方式拖曳到发送节点上,功能上是一样的有了消息,消息里携带的东西自然是信号咯,那么我们开始创建一个信号右键Signals->New,填写如下信息文案大全信号当然要放到消息中咯,切换到Messages页面,Add 我们刚刚建立的Message_A,当然和上面一样,采用拖曳的方式从Signal到Message中建立关联也是可以的。
基础应用CANoe是Vector公司的针对汽车电子行业的总线分析工具,现在我用CANoe7.6版本进行介绍,其他版本功能基本差不多。
硬件我使用的是CANcaseXL.1,CANoe软件的安装很简单,先装驱动,再装软件。
安装完成,插上USB,连接硬件,这样在控制面板中,VectorHardware进行查看通过查看信息可知,CANcaseXL中的两个piggy,一个是251(高速CAN),一个是7269(LIN),另外常用的还有1054(低速CAN,或称容错CAN),因为CANcaseXL中只能支持两路通讯,这样piggy可以自由组合2,硬件连接正常,打开CANoe软件File->NewConfiguration可以选择新建工程的模版,我们这里选择CAN_500kBaud.tcn,这样新建了波特率为500KCAN工程,可以File->SaveConfiguration,进行保存3,接下来就要使用CANdb++Editor工具对总线网络节点,消息,信号,进行定义了。
点击工具栏的这个图标,或开始菜单中找这个工具启动启动后,File->CreateDatabase,选择CANTemplate.dbc,选择目录及文件名,进行保存右键Networknodes->New,进行网络节点的定义,这里只需要填写Name即可,例如:Node_A然后添加Node_B,完成后如下图,这样在Networknodes目录下面添加出来两个节点节点添加完成后,下一步添加CAN消息,右键Messages->New,这是需要定义名称,ID,DLC 等信息,如下:然后在Transmitters页面,点击Add按钮,添加Node_A为发送节点,意思就是说,此消息是从Node_A节点发送出来的其实还有一种方法就是,此时暂时不定义发送节点,然后直接以拖曳的方式拖曳到发送节点上,功能上是一样的有了消息,消息里携带的东西自然是信号咯,那么我们开始创建一个信号右键Signals->New,填写如下信息信号当然要放到消息中咯,切换到Messages页面,Add我们刚刚建立的Message_A,当然和上面一样,采用拖曳的方式从Signal到Message中建立关联也是可以的。
CANoe 入门 Step by step系列(二)CAPL编程CAPL就是Communication Application Programming Laguage的缩写,CAPL类似于C语言的语法,因此所有的语法请参考C语言教程,这里不在这里进行详述,关于C语言,毫无疑问的,首先推荐大家看谭浩强老师的书,经典中的经典,看完这本C语言应该没问题了。
CAPL在CANoe中起到重要的作用,他将所有的部分联系起来(请看下图)现在我们给予上一节的基础上,来着重介绍CAPL编程。
CAPL语法是C语言的,又有一些C++的特性,this指针,事件等,对于事件的理解可以学习任意一种面对对象语言,首推C#.NET,可以参考我的博客学习,当然这个似乎比CAPL本身更加难,事件也更加多,但这并不妨碍对事件的理解,其中的事件类型如下图:下面来几个小例子帮助理解来个CANoe版本的hello world!来兴奋一小下吧。
开整~在打开CANoe,新建个工程,在Simulation Setup中加个Network node ,点铅笔,忘了吗,上一节刚讲过,右键Start->New,键入如下代码编译后,关闭CAPL Brower。
运行CANoe工程,结果如下,哇塞成功咯,好有成就感啊。
这个例子似乎跟CAN通讯没啥太大关系啊,好,我们接下来再做一个例子运行结果如下,按键盘b键,将发送一个CAN消息,连dlc是啥都不知道的同学,推荐先学习一下CAN基础知识,推荐瑞萨公司的《CAN 入门书》,讲的非常的好。
运行刚刚的那个例子你会发现,按一下b,只发送一条消息,但在实际应用中CAN消息都是循环连续发送的,我们要对刚刚的程序进行一些修改。
完成这样的功能。
程序如下:variables{message 0x400 msgA = {dlc=1};mstimer timerA;int conditionA = 0;}on key 'a'{conditionA = !conditionA;if(conditionA ==1){setTimer(timerA,200);}}on timer timerA{if(conditionA==1){setTimer(timerA,200);}msgA.byte(0) = msgA.byte(0)-1;output(msgA);}运行结果如下:按A键,Timer启动,发送消息接下来我们一起来看总结一下CAPL编程的要点:CAPL编程的学习,需要通过不断在实践中的积累,此外别无他法。
最好的学习方式是什么?模仿。
有人会问,那不是山寨么?但是我认为,那是模仿的初级阶段,当把别人最好的设计已经融化到自己的血液里,变成自己的东西,而灵活运用的时候,才是真正高级阶段。
正所谓画虎画皮难画骨。
但初级阶段仍然是必须经历的过程,他会使你在达到高级阶段的过程中少走很多弯路,下面我们来迈出这一步。
先研究一下别人的简单例子。
最好的例子莫过于Vector本身的Demo了,这个在安装完CANoe之后就会被自动安装。
先看最简单的一个,名字叫Easy,但并不简单哦,比我们之前介绍的所有的东西都整合再一起了,很简单,但很全面。
但是假如你说,这个我自己也可以完全自己写出来(并不是仅仅是看懂哦),那么我可以肯定的说,在工作中,你完全可以胜任一般的任务要求哦~,剩下的只是工作量的问题了。
但我相信到现在为止,你们很多人,都无法写出这样的程序,所以我建议你们把这个程序好好的研究明白,这点很重要。
废话不多说,上图,下面是打开运行后的界面。
通过面板可以控制,及显示很多动画效果,做的非常的漂亮。
在其余的窗体也将主要的数据以图表等表现方式呈现出来。
我们先看一下DBC的内容吧Signals:EngineSpeed 车速信息FlashLight 双跳灯HeadLight 大灯OnOff 引擎状态Messages:EngineState 引擎状态:包含的信号有OnOff,EngineSpeedLightState 灯光状态:包含的信号有FlashLight,HeadLightNetwork nodes:Display 显示节点,接收所有消息Engine 引擎节点,发送EngineState 消息Light 灯光节点,发送LightState 消息Environment variables: 环境变量,一般与界面的组件相关联,这样就实现了图形化界面的控制与显示,下面就是关联的界面组件EnvEngineSpeedDspMeterEnvEngineSpeedDspTextEnvEngineSpeedEntryEnvEngineStateDspEnvEngineStateSwitchEnvHazardLightsSwitchEnvHeadLightSwitchEnvLightDsp注意一下信号的信息:Definition页面的,Init.Val的输入框使能了,之前是灰色的状态,为什么呢?点击一下蓝色的带下划线的连接,弹出窗台如下:意思是说这个值的设置,必须要定义的属性才能有效,之前一直没有提到信号的属性,这次还是第一次遇到哦。
CANoe 入门Step by step系列(一)基础应用CANoe是Vector公司的针对汽车电子行业的总线分析工具,现在我用CANoe7.6版本进行介绍,其他版本功能基本差不多。
硬件我使用的是CAN case XL.1,CANoe软件的安装很简单,先装驱动,再装软件。
安装完成,插上USB,连接硬件,这样在控制面板中,Vector Hardware(硬件)进行查看通过查看信息可知,CANcaseXL中的两个piggy,一个是251(高速CAN),一个是7269(LIN),另外常用的还有1054(低速CAN,或称容错CAN),因为CANcaseXL(can情况XL最大)中只能支持两路通讯,这样piggy可以自由组合2,硬件连接正常,打开CANoe软件File->New Configuration(新配置)可以选择新建工程的模版,我们这里选择CAN_500kBaud.tcn,这样新建了波特率为500K CAN工程,可以File->Save Configuration(保存配置),进行保存3,接下来就要使用CAN db++ Editor(编辑)工具对总线网络节点,消息,信号,进行定义了。
点击工具栏的这个图标,或开始菜单中找这个工具启动启动后,File(文件)->Create Database(创建数据),选择CANTemplate.dbc(模板),选择目录及文件名,进行保存右键Network nodes(网络节点)->New(新的),进行网络节点的定义,这里只需要填写Name (名字)即可,例如:Node_A(节点A)然后添加Node_B(节点B),完成后如下图,这样在Network nodes(网络节点)目录下面添加出来两个节点节点添加完成后,下一步添加CAN消息,右键Messages(信息)->New(新的),这是需要定义名称,ID(件),DLC(数据链路控制)等信息,如下:然后在Transmitters(信号传送器)页面,点击Add(增加)按钮,添加Node_A(节点A)为发送节点,意思就是说,此消息是从Node_A(节点A)节点发送出来的Receivers(接收器)、Layout(布局;设计)、Attributes(属性)、Comment(评论;意见)Definition(定义;解说)、Signals(信号)、Transmitters(信号传送器)Type(类型)、ID(件),DLC(数据链路控制)、TxMethod(方法)Cycle Time(循环时间)其实还有一种方法就是,此时暂时不定义发送节点,然后直接以拖曳的方式拖曳到发送节点上,功能上是一样的Add(增加)Remove(移动)View(观察)Address(演说)有了消息,消息里携带的东西自然是信号咯,那么我们开始创建一个信号右键Signals(信号)->New(新的),填写如下信息信号当然要放到消息中咯,切换到Messages(信息)页面,Add 我们刚刚建立的Message_A,当然和上面一样,采用拖曳的方式从Signal(信号)到Message中建立关联也是可以的。
©2008. HiRainTechnologies. All rights reserved.CANoe快速入门©2007. HiRain Technologies. All rights reserved.CANoe概述p CAN总线开发工具p测试p分析p仿真p记录©2007. HiRain Technologies. All rights reserved.Virtual total system©2007. HiRain Technologies. All rights reserved.©2007. HiRain Technologies. All rights reserved.©2007. HiRain Technologies. All rights reserved.p硬件接口卡&“狗”p CANcardXLp CANcaseXLp收发器p CANcab (CANpiggy)p251, 1041, 1054…p LINcab (LINpiggy)p7259CAN卡©2007. HiRain Technologies. All rights reserved.CANoe组成p功能强大、操作简单p CANoep数据库支持p CANdb++ Editorp可编程p CAPL、DLLp虚拟仪表p Panel Editor & Panel Designer©2007. HiRain Technologies. All rights reserved.多总线p软件p硬件p控制面板p Vector Hardwareq License->Overview©2007. HiRain Technologies. All rights reserved.p硬件p CAN卡类型(编号)p收发器类型p应用程序通道p应用程序p License信息©2007. HiRain Technologies. All rights reserved.p CANoep通道设置p Configuration->Optionsp Configuration Settings->Channel Usage©2007. HiRain Technologies. All rights reserved.灵活=复杂HW channels Channel1Channel2 Channel1 Channel2 PiggyBack1 PiggyBack2CANcardXL #2Hardware CANalyzer1 CANalyzer2... CANoe1 CANoe2 CANoe1 for LIN...App channelsApplication©2007. HiRain Technologies. All rights reserved.从复杂到简单p CANoep波特率设置p Configuration->Hardware Configuration©2007. HiRain Technologies. All rights reserved.基本术语——报文(消息)与信号报文:engine data (ID 100)ID 100B0B1B2CRC信号发动机温度(第二字节,0-6位)未用(第二字节,第七位)发动机转速(第一,二字节)转换规则发动机转速:rpm=1*Bit value (0xFF 代表错误)发动机温度:ºC =2* Bit value –50 (0x7F 代表错误)©2007. HiRain Technologies. All rights reserved.基本术语——环境变量与系统变量p环境变量p节点的I/O信号p可用于面板或真实I/Op系统变量p节点内部参数p或需要观测的某个数值p例如:系统变量1 = 报文1.信号1 -报文2.信号2©2007. HiRain Technologies. All rights reserved.p CANoep CANdb++ Editorp CAPLp Panel Editor & Panel Designer©2007. HiRain Technologies. All rights reserved.p CANoep8大窗口p Trace Windowp Bus Statistics Windowp Statistics Windowp Data Windowp Graphic Windowp Write Windowp Simulation Setupp Measurement Setup©2007. HiRain Technologies. All rights reserved.p Trace Windowp报文ID和报文名称(数据库)p信号(数据库)p时间(相对值或绝对值)p通道p DLCp Dir(Tx或Rx)p更多内容见p右键点击窗口空白处->Configuration->Columns©2007. HiRain Technologies. All rights reserved.清空Trace 窗口暂停Trace 窗口差额(相对)时间显示卷屏(绝对)时间显示报文详细信息窗口显示配置Trace 窗口查找©2007. HiRain Technologies. All rights reserved.p Data Windowp数据库p信号名称p信号值(Value)p信号单位p原始值(Raw Value)p Bar图©2007. HiRain Technologies. All rights reserved.p Data Window p添加信号p右键单击空白处p Add SignalsppR©2007. HiRain Technologies. All rights reserved.p Graphics Windows p支持数据库p显示信号曲线p不同的颜色和线形p右键单击空白处p选择Configurationp放大、缩小、平移…©2007. HiRain Technologies. All rights reserved.p Graphics Windows p添加信号p右键单击空白处p Add Signalsp选择需要的信号p支持鼠标拖放p与Trace窗口同步©2007. HiRain Technologies. All rights reserved.p Statistics Windowp显示报文出现频率p显示错误帧出现频率p统计报告p右键单击空白处p Configurationp Activep生成统计报告(Write Window)Message frequencyID©2007. HiRain Technologies. All rights reserved.p Bus Statistics Window p总线负载p数据帧p错误帧p CAN卡控制器状态p ACTIVEp WARNINGp PASSIVEp OFF©2007. HiRain Technologies. All rights reserved.p Write Windowp总线负载p数据帧p错误帧p CAN卡控制器状态p License信息p统计报告p CAPL输出窗口p Printf = Write©2007. HiRain Technologies. All rights reserved.pMeasurement Setup p View->Measurement Setup p 每个模块对应一个窗口p 增加新模块(窗口)p 插入功能块p 数据记录©2007. HiRain Technologies. All rights reserved.p 新增模块(窗口)p 主干线上右键©2007. HiRain Technologies. All rights reserved.p插入功能块p支线上节点上右键©2007. HiRain Technologies. All rights reserved.p数据记录p默认状态关闭p多种记录文件格式p多种记录触发配置©2007. HiRain Technologies. All rights reserved.p记录文件p右键点击文件图标->Logging file configuration©2007. HiRain Technologies. All rights reserved.p记录配置方式p双击Logging模块p全部记录p单次记录p触发记录p记录数据回放©2007. HiRain Technologies. All rights reserved.p Simulation Setupp View->Simulation Setupp主干线添加模块©2007. HiRain Technologies. All rights reserved.p Simulation Setup p View->Simulation Setup p 支线添加模块©2007. HiRain Technologies. All rights reserved.CANoe练习1.周期报文发送2.梯形信号发送3.正弦信号发送©2007. HiRain Technologies. All rights reserved.p 发生器模块发送周期报文p 设置发送内容©2007. HiRain Technologies. All rights reserved.p 发生器模块发送周期报文p 设置发送周期©2007. HiRain Technologies. All rights reserved.p发生器模块发送阶梯信号©2007. HiRain Technologies. All rights reserved.p 交互式发生器模块发送正弦信号©2007. HiRain Technologies. All rights reserved.欢迎进入CAPL的世界p CAPL(C AN A ccess P rogramming L anguage ) p类C语言p仿真p单个节点和整个网络p外部环境p测试p面向事件的编程语言p总线事件p键盘事件p时间事件©2007. HiRain Technologies. All rights reserved.CAPL Browser标题栏菜单条工具条浏览树窗格编译信息窗格状态条全局变量编辑窗格CAPL 程序编辑窗格©2007. HiRain Technologies. All rights reserved.CAPL事件事件类型事件名程序执行条件事件过程语法结构*系统事件PreStart CANoe初始化时执行on preStart { … }Start测量开始时执行on start { … } StopMeasuremet测量结束时执行on stopMeasurement { … }CAN控制器事件BusOff硬件检测到BusOff时执行on busOff { … } ErrorActive硬件检测到ErrorActive时执行on errorActive { … } ErrorPassive硬件检测到ErrorPassive时执行on errorPassive { … } WarningLimit硬件检测到WarningLimit时执行on warningLimit { … }CAN消息事件自定义接收到指定的消息时执行on message Message{ … }时间事件自定义定时时间朝过时执行on timer Timer{ … }键盘事件自定义键值指定的键被下时执行on key Key{ … }错误帧事件ErrorFrame硬件每次检测到错误帧时执行on errorFrame { … }环境变量事件自定义指定的环境变量值改变时执行on envV ar EnvV ar{ … }©2007. HiRain Technologies. All rights reserved.CAPL基本语法p类C语言,语法与C语言基本相同p注释p//放置在需要注释的语句之前,注释单行p/*注释起始符,其后的内容被注释p*/注释结束符,结束由‘/*’开始的注释p分号程序结束标识p大括号函数体counter = counter+1; if (counter==256){counter=0;stop();}©2007. HiRain Technologies. All rights reserved.消息事件p on message 123 //对消息123(dec)反应p on message 0x123 //对消息123(hex)反应p on message MotorData //对消息MotorData(符号名字)反应p on message CAN1.123 //对CAN 通道1收到消息123反应p on message * //对所有消息反应p on message 100-200 //对100-200间消息反应©2007. HiRain Technologies. All rights reserved.p on key ‘a’//按‘a’键反应p on key ‘’//按空格键反应p on key 0x20 //按空格键反应p on key F1 //按F1键反应p on key Ctrl-F12 //按Ctrl + F12键反应p on key PageUP //按PageUp键反应p on key Home //按Home键反应p on key * //按所有键反应©2007. HiRain Technologies. All rights reserved.p定时器声明p msTimer myTimer; //将myTimer 申明ms为单位的变量p timer myTimer;//将myTimer 申明s为单位的变量p定时器函数p setTimer(myTimer,20);//将定时值设定为20ms,并启动p cancelTimer(myTimer);//停止定时器myTimerp定时器事件p on timer myTimer//对myTimer 设定的时间到反应©2007. HiRain Technologies. All rights reserved.环境变量事件p环境变量函数p getValue()//获取环境变量的值p putValue()//设置环境变量的值p环境变量事件p on envVar XXX©2007. HiRain Technologies. All rights reserved.©2007. HiRain Technologies. All rights reserved.p全局变量和局部变量p变量定义int i;message 0x123 HiRain;message MotorData Vector;©2007. HiRain Technologies. All rights reserved.完整的CAPL程序p三个部分p变量p各种事件p自定义函数on start{…//过程指令块}on message xxx{…//过程指令块}on key‘1’{…//过程指令块}My_function_1(Para_1, Para_2, …) {…//函数体}…My_function_n(Para_1, Para_2, …) {…//函数体}variables{…//申明全局变量}©2007. HiRain Technologies. All rights reserved.CAPL输出文本p Write Windowp write函数int h=100;char ch=‘a’;char s100[8]=“hundred”;write(“Hundred as a number:%d,%x”,h,h);write(“Hundred as a string:%s”,s100);write(“The square root of two is %6.4g”,sqrt(2.0));。
CANoe 入门Step by step系列(一)基础应用CANoe是Vector公司的针对汽车电子行业的总线分析工具,现在我用CANoe7.6版本进行介绍,其他版本功能基本差不多。
硬件我使用的是CAN case XL.1,CANoe软件的安装很简单,先装驱动,再装软件。
安装完成,插上USB,连接硬件,这样在控制面板中,Vector Hardware(硬件)进行查看通过查看信息可知,CANcaseXL中的两个piggy,一个是251(高速CAN),一个是7269(LIN),另外常用的还有1054(低速CAN,或称容错CAN),因为CANcaseXL(can情况XL最大)中只能支持两路通讯,这样piggy可以自由组合2,硬件连接正常,打开CANoe软件File->New Configuration(新配置)可以选择新建工程的模版,我们这里选择CAN_500kBaud.tcn,这样新建了波特率为500K CAN工程,可以File->Save Configuration (保存配置),进行保存3,接下来就要使用CAN db++ Editor(编辑)工具对总线网络节点,消息,信号,进行定义了。
点击工具栏的这个图标,或开始菜单中找这个工具启动启动后,File(文件)->Create Database(创建数据),选择CANTemplate.dbc(模板),选择目录及文件名,进行保存右键Network nodes(网络节点)->New(新的),进行网络节点的定义,这里只需要填写Name(名字)即可,例如:Node_A(节点A)然后添加Node_B(节点B),完成后如下图,这样在Network nodes(网络节点)目录下面添加出来两个节点节点添加完成后,下一步添加CAN消息,右键Messages(信息)->New(新的),这是需要定义名称,ID(身份证件),DLC(数据链路控制)等信息,如下:然后在Transmitters(信号传送器)页面,点击Add(增加)按钮,添加Node_A(节点A)为发送节点,意思就是说,此消息是从Node_A(节点A)节点发送出来的Receivers(接收器)、Layout(布局;设计)、Attributes(属性)、Comment(评论;意见)Definition(定义;解说)、Signals(信号)、Transmitters(信号传送器)Type(类型)、ID(身份证件),DLC(数据链路控制)、TxMethod(方法)Cycle Time(循环时间)其实还有一种方法就是,此时暂时不定义发送节点,然后直接以拖曳的方式拖曳到发送节点上,功能上是一样的Add(增加)Remove(移动)View(观察)Address(演说)有了消息,消息里携带的东西自然是信号咯,那么我们开始创建一个信号右键Signals(信号)->New(新的),填写如下信息信号当然要放到消息中咯,切换到Messages(信息)页面,Add 我们刚刚建立的Message_A,当然和上面一样,采用拖曳的方式从Signal(信号)到Message中建立关联也是可以的。
Switch(转换)Length(长度)Byte Order(字节顺序)Unit(单元)Value Type(数值类型)Init.val(初始化.牛顿(十万牛顿没平米))Factor(因素)Offset(抵消;补偿)Minimum (最小值)Maximum(最大值)Value T able(值表格)Automatic min-max calculation (自动值-最大计算)上面信息中Intel(英特尔)模式和Motorola(摩托罗拉)格式的区别如下:用0和1来表示开关信号状态似乎还不是很直观,我们可以使用on和off来表示就好了,于是View(观察)->Value T ables(值表),右键空白处->New(新的),键入如下信息:定义好了之后,还需要跟信号进行关联。
右键需要关联的信号->Edit Signal,Value T able(编辑信号值表)中关联刚才建立的那个Value T albe(值表)项Definition(定义)Value Descriptions(值描述)这样一个信号就完成了,另外还需要加一个类似的信号,可以点击Signal(信号)根目录,在右边选择Signal复制,及粘贴,然后双击复制好的Signal后,进行一些编辑,然后用上面方法关联Message(消息)即可快速建立第二个信号了,是不是很方便继续添加第三个信号,Indicator_A(指示器),跟上面一样,但是我这个信号想放在Message 的第二个字节的位置,怎么办?其实很简单,有两种方法:第一种,右键已经关联好的,即在Message目录下的信号,Edit mapped signal(编辑映射信号),在弹出的对话框中的Startbit(起始位)中填8,这样就这个信号就跑到该消息的第二个字节中了。
第二种方法,右键该消息->Edit Message(编辑消息),在Layout(布局)页面中,拖动信号的色块进行移动Message Mame(消息名称)Signal Name(信号名称)Startbit(起始位)Multiplexortype(多路复用器类型)以上Message_A消息及消息下所定义已经定义完成Definition(定义)Signals(信号)Transmitters(信号传送器)Receivers(接收器)Layout(布局)Attributes(属性)Commentp(评论)Multiplexor signal(多路复用器信号)Arrange(排列)To Front(前)To Back(后)Bit index(一些指数)Inverted(反向的)如法炮制另外一个消息Message_B,完成后如下图。
下面创建环境变量,右键Environment variables(环境变量)陆续把其他环境变量加好,Indicator(指示器)的Access(使用权)属性为Write(写入)哦,加完如下:数据库的定义这款基本上就OK了。
保存后关闭CANdb++ Edito(编辑)r,回到CANoe主程序中。
请在Configuration(配置)->Options(选项)->Configuration Settings(配置设置)->Channel Usage (通道使用)设置使用的通讯通道,因为这个只需要1路CAN,其他都设置为0就可以。
点这个选项页面可出现Simulate Setup(模拟设置)界面Trace(追踪)Configuration(配置)Analysis(分析)右键Databases(数据库)->Add(增加),把刚刚创建好的dbc给加载进来,之后再连线上右键->Insert Network Node(插入网络节点)结果如下:Insert(插入)Network(网络)Node(节点)CAPL(连续退火机组)Test(测试)Module(模块)NET(网络)XML(可扩展)Generator(发生器;发电机)Block(限制)Interactive(交互式的)Replay(重放)Paste(粘贴)Shortcut(捷径)Switch All Blocks to Simulation(所有模块模拟开关)Switch All Blocks to Real-time Mode(切换所有模块实时模式)右键这个ECU模块->Configuration(配置),在Network Node(网络节点)选择Node_A,完成,然后添加Node_BCommon(普通)Components(组件)Buses(公共)Settings(设置)State(规定)Simulated (模仿)Execution(执行)Normal(正常的)Extended(延伸的)Node Specification(节点规范)File(文件)Edit(编辑)compile(编制)完成后如下图,这样dbc与CANoe的关联就好了。
4,界面设计网络及相应的关系设置好之后,应该设计界面了,一个良好的界面可以直观的显示及控制各种信号。
界面设计工具有两种:一种是Panel Designer(面板设计),新的界面设计工具,另外一种是Panel Editor(面板编辑)是老的界面设计工具,无论采用何种工具设计的界面,都可以和CANoe 很好的兼容,没有问题。
下面我们先用第一种界面设计工具来完成界面的设计点击工具栏的这个图标或File->Open Panel Designer,打开界面编辑器,界面如下:保存一下该界面,起名为Panel_A(仪表板),一个空的界面上可以放置右上边若干组件。
放置好之后,选中界面上的组件的时候,右下侧回显示当前选中的组件的属性,可以更改相应的大小位置等,但最重要的是Symbol(符号)属性,这里要说一下,每个界面组件也都需要与CANoe 关联,否则单纯的界面是没有任何意义的,关联主要是信号和环境变量,在Symbol属性的Symbol Filter(象征过滤器)属性中可以进行选择,我们这里关联的是环境变量,所以选择Environment Variable(环境变量),然后再点击上面的Symbol属性,然后在弹出的页面中选择相应关联的变量完成后可以按同样的方法设计Panel_B,也可以Save As 的方法快速建立同样的Panel但是与环境变量的关联和界面的文字需要进行微调。
这样两个Panel都已完成。
也已经建立了与CANoe 之间的关联。
5,CAPL编程所有的前期准备工作和组装工作都已完成,现在需要编写程序使整个系统有机的运行起来。
回到CANoe的Simulation Setup(仿真设置)界面,然后点击Node_A模块的,像铅笔一样的图标,填写程序名称,这里Node_A,然后打开编程界面,完成以下程序。
然后完成Node_B 程序。
小技巧:如果背不出具体的消息名称,信号名称或环境变量,可以右键程序空白处,你会得到意外的惊喜,试试看。
OK大功告成6,运行现在点击工具栏,运行程序。
注意:这里表示实际的网络,所有的消息是发送到物理的网络上的,如果只是验证程序,设置成这样就可以了完整运行结果如下:.-就是这样,一步一步的,我们完成了第一个完整的CANoe应用工程,虽然这只是入门第一步,但整个CANoe的开发流程基本涵盖,如果能跑出上面的运行结果,依然能够给我们很多的惊喜。
我们需要这样的惊喜,因为这是我们继续前行的动力。
Swith(开关)Indicator(指示器)分类: 汽车电子。