CANxMulQueue()

<< 点击显示目录 >>

主页  贝加莱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)。

 

 

这个功能块只能有条件地 用于冗余

适用的限制在下面的章节中描述。

 

手柄必须被初始化

不活动的CPU上的特殊错误代码

隐藏指针的使用

 

其他信息可以在 "冗余 " 部分找到

参数

输入/输出

参数

数据类型

说明

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。