<< 点击显示目录 >> 主页 贝加莱CAN通讯使用例程说明 > 通过编程实现CAN通讯 > 功能块与函数说明 > CAN_Lib > CAN_Lib - CAN Function Blocks and Functions > CANMulQueue() |
CANMulQueue函数用于在读取方向上为多个CAN标识符安装一个队列。
如果 用一个大于0的值定义了 大小 ,那么就为指定的CAN标识符建立了一个接收队列。该队列和相应的通信对象(COB)通过再次调用enable = 0而被删除。队列的内容被删除,在 size 输入 上的值为0 , enable = 1。当队列已满时,不能再接受电报(状态=8810)。队列在内存中的 每个条目(大小) 需要10字节。
这个功能块只能有条件地 用于冗余。
适用的限制在下面的章节中描述。
其他信息可以在 "冗余 " 部分找到 。
输入/输出 |
参数 |
数据类型 |
说明 |
IN |
enable |
BOOL |
该功能块仅在 enable 为<>0时执行 。 |
IN |
us_ident |
UDINT |
us_ident来自CANopen / CANMulOpen |
IN |
pCAN_id |
UDINT (given as a pointer) |
地址/指向CAN标识符阵列的指针 |
IN |
ID_nr |
USINT |
CAN标识符的数量 |
IN |
size |
UINT |
队列中电报的数量。队列内容被删除,大小=0。 |
OUT |
q_id |
UDINT |
CANmulrd的标识符 |
OUT |
status |
UINT |
错误编号 (0=无错误) |
CANMulOpen(enable, us_ident, adr(CAN_id), ID_nr, size, q_ident,status)
如果CAN功能块在C函数中被本地调用(并且FBK结构在该函数中被本地声明,而不是用_LOCAL/_GLOBAL),那么静态FBK内存必须被初始化为0。