<< 点击显示目录 >> 主页 贝加莱CAN通讯使用例程说明 > 通过编程实现CAN通讯 > 功能块与函数说明 > CAN_Lib > CAN_Lib - CAN Function Blocks and Functions > CANexcep() |
当 收到 一个带有 CAN 标识符 can_id 的帧时 ,CANexcep()函数会激活一个预先安装好的异常对象,异常编号为 exc_no 。
请注意,这个异常对象可以在CAN中断处理程序(回调)的背景下被调用。
当使用CP15x时,异常资源的开销大约为150微秒。此外,还有软件对象的应用部分。因此,在循环系统中调用CANexcep()功能块时,建议谨慎行事(违反周期时间)。
可以为同一个异常编号 exc_nr定义多个CAN标识符 ,因为 异常触发 的CAN标识符 can_id 可以通过 异常对象中的CANgetid() 函数来 确定 。
这个功能块只能有条件地 用于冗余。
适用的限制在下面的章节中描述。
其他信息可以在 "冗余 " 部分找到 。
输入/输出 |
参数 |
数据类型 |
说明 |
IN |
enable |
BOOL |
启用的含义 。 •位置边缘(0->1)。 定义COB(COB=通信对象),CAN标识符除外。 •负边(1->0)。 删除COB,有异常。 |
IN |
us_ident |
UDINT |
来自 CANopen()的用户标识 |
IN |
can_id |
UDINT |
CAN Identifier |
IN |
exc_no |
USINT |
异常的编号(异常编号208到223是为CAN保留的)。 |
OUT |
status |
UINT |
错误编号 (0=无错误)。 |
CANexcep(enable,us_ident,can_id,exc_nr,status)
注意。
EXC-支持从操作系统V2.65和Automation Studio V2.3开始。
如果CAN功能块在C函数中被本地调用(并且FBK结构在此函数中被本地声明,而不是用_LOCAL/_GLOBAL),那么静态FBK内存必须被初始化为0。