CAPL编程简介

CAPL编程简介

ID:37823975

大小:525.73 KB

页数:8页

时间:2019-05-31

CAPL编程简介_第1页
CAPL编程简介_第2页
CAPL编程简介_第3页
CAPL编程简介_第4页
CAPL编程简介_第5页
资源描述:

《CAPL编程简介》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、消息与信号�消息,数据容器�数据标识�传输的数据块(最多8字节)用符号描述�信号,实际使用的信息�信号长度可能从1位到多字节�需要物理单位,需要转换单位�对错误的描述用符号描述CAPL编程�CAPL是CAN总线访问编程语言(CANAccessProgrammingLanguage)�类C语言�应用于VectorCAN工具节点编程�基于事件建模的语言�总线事件�属性事件�时间事件应用(1)节点仿真(2)网络仿真�(3)仿真控制系统的环境(4)节点测试(5)网关CAPL程序对事件的响应CAPL程序能够检测事件,并执行和事件相关的程序。检测

2、的事件类型包括:程序开始执行事件程序停止执行事件�键盘输入事件�CAN消息的接收事件�定时器超时事件�图形面板输入事件(该项只在CANoe中应用)�CAPL程序是基于事件程序的组合CAPL事件的基本类型消息过程�onmessage123//对消息123(dec)反应�onmessage0x123//对消息123(hex)反应�onmessageMotorData//对消息MotorData(符号//名字)反应�onmessageCAN1.123/*对CAN通道1收到消息123反应*/�onmessage*//对所有消息反应�onmessage

3、100-200//对100-200间消息反应键盘过程onkey„a‟//按‘a’键反应onkey„‟//按空格键反应onkey0x20//按空格键反应onkeyF1//按F1键反应onkeyCtrl-F12//按Ctrl+F12键反应onkeyPageUP//按PageUp键反应onkeyHome//按Home键反应onkey*//按所有键反应时间过程时间过程表示法:ontimermyTimer//对myTimer设定的时间到反应定时器的申明msTimermyTimer;//将myTimer申明ms为单位的变量timermyTime

4、r;//将myTimer申明s为单位的变量定时器的设置setTimer(myTimer,20);//将定时值设定为20ms,并启动cancelTimer(myTimer);//停止定时器myTimer每次使用etTimer的设置,只能触发一次时间过程环境变量过程环境变量过程onenvVar对环境变量值的改变产生反应�测量设置中的CAPL节点不会阻止环境变量在数据流图中的传输�环境变量过程常用的函数:�getValue()//获取环境变量的值�putValue()//设置环境变量的值�可使用this在过程内部访问环境变量的值数据类型无符号

5、整数byte(1字节)word(2字节)dword(4字节)有符号整数int(2字节)long(4字节)浮点数float(8字节)double(8字节)�CAN消息类型�message�定时器类型�timer(秒为单位)�msTimer(毫秒为单位)�单个字符�char(1字节)消息的声明消息申明的格式�Message0xAmy_msg1;�Message100my_msg2;�MessageEngineDatamy_msg3;�消息数据的索引�my_msg1.byte(0)//数据字节0�my_msg2.word(2)//

6、从第2字节开始的一个字�my_msg3.EngSpeed/*如果使用了符号数据库,可使用信号符号名来索引消息中的信号*/程序执行顺序事件过程之间无关联,执行顺序由运行时间事件决定事件过程通过全局变量和子程序决定事件过程为一整体,不能被其它事件中断针对消息的一些常用语句常进行读写if(this.id==100){…}//消息ID常写的msg.can=2;//消息所使用的CAN控制器编号msg.dlc=8;//消息中包含的数据字节长度常读的dwordt;t=this.time;//消息的时标,单位是10usif(this.dir!=RX){

7、return;}//消息的收发特性注意:thisthis是关键字,在事件过程中代表所定义的触发事件名CAPL指令块Counter=counter+1;If(counter==256){Counter=0;Stop();}CAPL中输出文本Inth=100;Charch=‟a‟;Chars100[8]=”hundred”;Write(“Hundredasanumber:%d,%x”,h,h);Write(“Hundredasastring:%s,%x”,s100);Write(“Hundredasanumber:%6.4g”,sqrt(2.0)

8、)处理信号:Onmessage0x64{If(this.byte(2)=0xFF);Write(“thirdbyteofmessageisinvalid”);}On

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。