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