CAPL编程资料下载.pdf
- 文档编号:16120991
- 上传时间:2022-11-20
- 格式:PDF
- 页数:62
- 大小:1.23MB
CAPL编程资料下载.pdf
《CAPL编程资料下载.pdf》由会员分享,可在线阅读,更多相关《CAPL编程资料下载.pdf(62页珍藏版)》请在冰豆网上搜索。
被0除?
超出数组的上限或下限?
超出消息数据域的上偏移或下偏移?
在CAPL子程序调用时堆栈溢出?
使用浏览器菜单命令CompilerFindrun-timeerrors通过错误索引号查找?
使用runError()函数自定义运行时错误北京恒润科技有限公司6数据库的访问?
直接从CANoe的测量设置或仿真设置窗口打开CAPL浏览器,自动关联数据库?
通过浏览器菜单命令关联数据库?
在浏览器的编辑窗格中,通过交互菜单选项插入信号或消息名到CAPL程序中北京恒润科技有限公司7导入/导出ASCII文件?
FileImport导入纯ASCII文件到CAPL浏览器中?
FileExport导出CAPL程序为ASCII文件导出的导出的导出的导出的ASCIIASCII格式的格式的格式的格式的CAPLCAPL程序程序程序程序浏览器格式的浏览器格式的浏览器格式的浏览器格式的CAPLCAPL程序程序程序程序浏览器格式结构信息北京恒润科技有限公司8CAPL编程概述?
CAPL是CAN总线访问编程语言(CANAccessProgrammingLanguage)?
类C语言?
应用于VectorCAN工具节点编程?
基于事件建模的语言?
总线事件?
属性事件?
时间事件CAPLCAPL程序程序程序程序并口串口启动/停止键盘输入环境变量定时CAN总线CAN总线北京恒润科技有限公司9CAPL程序的应用?
节点仿真?
网络仿真?
仿真控制系统的环境?
节点测试?
网关北京恒润科技有限公司10CAPL程序对于事件的响应?
CAPL程序能够检测事件,并执行和事件相关的程序。
检测的事件类型包括:
程序开始执行事件?
程序停止执行事件?
键盘输入事件?
CAN消息的接收事件?
定时器超时事件?
图形面板输入事件(该项只在CANoe中应用)?
CAPL程序是基于事件程序的组合北京恒润科技有限公司11CAPL的事件类型事件类型事件类型事件类型事件类型事件名事件名事件名事件名程序执行条件程序执行条件程序执行条件程序执行条件事件过程语法结构事件过程语法结构事件过程语法结构事件过程语法结构*PreStartCANoe初始化时执行onpreStartStart测量开始时执行onstartStopMeasuremet测量结束时执行onstopMeasurementBusOff硬件检测到BusOff时执行onbusOffErrorActive硬件检测到ErrorActive时执行onerrorActiveErrorPassive硬件检测到ErrorPassive时执行onerrorPassiveWarningLimit硬件检测到WarningLimit时执行onwarningLimitCAN消息事件自定义接收到指定的消息时执行onmessageMessage时间事件自定义定时时间朝过时执行ontimerTimer键盘事件自定义键值指定的键被下时执行onkeyKey错误帧事件ErrorFrame硬件每次检测到错误帧时执行onerrorFrame环境变量事件自定义指定的环境变量值改变时执行onenvVarEnvVarCAN控制器事件系统事件*“事件过程语法结构”列中兰色字体表示该程序的关键字;
深红色字体表示用户自定义的名称;
“”内是CAPL程序体,用户可根据需要使用CAPL语言编写。
北京恒润科技有限公司12CAPL基本语法?
CAPL语言的语法与C语言基本相同:
注释?
/放置在需要注释的语句之前,注释单行?
/*注释起始符,其后的内容被注释?
*/注释结束符,结束由/*开始的注释?
事件过程?
分号语句结束符?
大括号北京恒润科技有限公司13消息过程?
onmessage123/对消息123(dec)反应?
onmessage0x123/对消息123(hex)反应?
onmessageMotorData/对消息MotorData(符号/名字)反应?
onmessageCAN1.123/*对CAN通道1收到消息123反应*/?
onmessage*/对所有消息反应?
onmessage100-200/对100-200间消息反应北京恒润科技有限公司14键盘过程?
onkeya/按a键反应?
onkey/按空格键反应?
onkey0x20/按空格键反应?
onkeyF1/按F1键反应?
onkeyCtrl-F12/按Ctrl+F12键反应?
onkeyPageUP/按PageUp键反应?
onkeyHome/按Home键反应?
onkey*/按所有键反应北京恒润科技有限公司15时间过程?
时间过程表示法:
ontimermyTimer/对myTimer设定的时间到反应?
定时器的申明?
msTimermyTimer;
/将myTimer申明ms为单位的变量?
timermyTimer;
/将myTimer申明s为单位的变量?
定时器的设置?
setTimer(myTimer,20);
/将定时值设定为20ms,并启动?
cancelTimer(myTimer);
/停止定时器myTimer每次使用每次使用每次使用每次使用setTimersetTimer的设置,只能触发一次时间过程的设置,只能触发一次时间过程的设置,只能触发一次时间过程的设置,只能触发一次时间过程北京恒润科技有限公司16环境变量过程?
环境变量过程onenvVar对环境变量值的改变产生反应?
测量设置中的CAPL节点不会阻止环境变量在数据流图中的传输?
环境变量过程常用的函数:
getValue()/获取环境变量的值?
putValue()/设置环境变量的值?
可使用this在过程内部访问环境变量的值北京恒润科技有限公司17CAPL中的数据类型?
无符号整数?
byte(1字节)?
word(2字节)?
dword(4字节)?
有符号整数?
int(2字节)?
long(4字节)?
浮点数?
float(8字节)?
double(8字节)?
CAN消息类型?
message?
定时器类型?
timer(秒为单位)?
msTimer(毫秒为单位)?
单个字符?
char(1字节)北京恒润科技有限公司18消息的申明?
消息申明的格式?
Message0xAmy_msg1;
Message100my_msg2;
MessageEngineDatamy_msg3;
消息数据的索引?
my_msg1.byte(0)/数据字节0?
my_msg2.word
(2)/从第2字节开始的一个字?
my_msg3.EngSpeed/*如果使用了符号数据库,可使用信号符号名来索引消息中的信号*/北京恒润科技有限公司19CAPL程序的组成?
一个完整的CAPL程序由三个部分组成:
申明与定义全局变量?
各种事件过程?
申明与定义自己的函数variables/申明全局变量onstart/过程指令块onmessagexxx/过程指令块onkey1/过程指令块My_function_1(Para_1,Para_2,)/函数体My_function_n(Para_1,Para_2,)/函数体北京恒润科技有限公司20CAPL程序执行顺序?
事件过程之间无关联,执行顺序由运行时间事件决定?
事件过程通过全局变量和子程序决定?
事件过程为一整体,不能被其它事件中断variablesintcounter;
onmessage0x1a1counter=counter+1;
onkeyawrite(“%d”,counter);
writeread北京恒润科技有限公司21针对消息的一些常用语句?
常进行读写if(this.id=100)/消息ID?
常写的msg.can=2;
/消息所使用的CAN控制器编号msg.dlc=8;
/消息中包含的数据字节长度?
常读的dwordt;
t=this.time;
/消息的时标,单位是10usif(this.dir!
=RX)return;
/消息的收发特性注意:
注意:
thisthis是关键字,在事件过程中代表所定义的触发事件名是关键字,在事件过程中代表所定义的触发事件名是关键字,在事件过程中代表所定义的触发事件名是关键字,在事件过程中代表所定义的触发事件名北京恒润科技有限公司22关键字this?
在事件过程中,关键字this指定事件对象的数据结构?
this可作为参数使用?
对于this值的改变仅在过程内部有效onmessage100bytebyte_0;
byte_0=this.byte(0);
.onenvVarSwitchintval;
val=getvalue(this);
.北京恒润科技有限公司23CAPL指令块Counter=counter+1;
if(counter=256)counter=0;
stop();
北京恒润科技有限公司24CAPL中输出文本inth=100;
charch=a;
chars1008=“hundred”;
write(“Hundredasanumber:
%d,%x”,h,h);
write(“Hundredasastring:
%s”,s100);
write(“Thesquarerootoftwois%6.4g”,sqrt(2.0);
北京恒润科技有限公司25处理信号onmessage0x64if(this.byte
(2)=0xFF)write(“Thirdbyteofthemessageisinvalid”);
onmessageMotorDataif(this.temperature.phys=150)write(“Warning:
criticaltemperature”);
北京恒润科技有限公司26传输信号onkeyamessageMotorDatamMoDa;
mMoDa.temperature.phys=60;
mMoDa.speed.phys=4300;
output(mMoDa);
onkeybmessage100m100=dlc=1;
m100.byte(0)=0x0B;
output(m100);
北京恒润科技有限公司27周期性消息发送的CAPL示例Variables/定义全局变量定义全局变量message0x555msg1=dlc=1;
/定义消息变量msg1,并初始化数据字节代码为1msTimertimer1;
/定义定时器变量timer1onstart/系统过程系统过程setTimer(timer1,100);
/初始化定时器变量timer1的值为100msec,并启动ontimertimer1/时间过程时间过程(对于定时器变量timer1)setTimer(timer1,100);
/重新设置timer1,并启动msg1.byte(0)=msg1.byte(0)+1;
/改变消息数据字节output(msg1);
/输出消息北京恒润科技有限公司28环境变量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAPL 编程