CANMulrd()

<< 点击显示目录 >>

主页  贝加莱CAN通讯使用例程说明 > 通过编程实现CAN通讯 > 功能块与函数说明 > CAN_Lib > CAN_Lib - CAN Function Blocks and Functions >

CANMulrd()

要使用CANMulrd函数,你必须首先使用 CANMulQueue 函数设置一个接收缓冲区  。

如果没有接收队列或队列是空的,该函数会在状态中发送一个错误。如果数据已经存储在队列中,它将被复制到data_adr输入的缓冲区中。电报的长度被返回到 size 输出。 ID 输出参数表示这个数据是从哪个ID发送的。如果接收队列已满(status=8810),队列中不再接受电报,直到使用 CANrd FBK  读取队列  。 状态 保持为8810,直到再次收到电报(并复制到队列中)和/或队列被完全读取(8877)。

 

 

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

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

 

手柄必须被初始化

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

隐藏指针的使用

 

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

参数

输入/输出

参数

数据类型

说明

IN

enable

BOOL

该功能块仅在 enable 为<>0时执行 。

IN

q_id

UDINT

来自CANMulQueue的标识符q_ident

IN

data_adr

UDINT

(given as a pointer)

CAN数据

OUT

size

UINT

数据的长度

OUT

ID

UDINT

收到数据的CAN标识符

OUT

status

UINT

状态反馈。

错误编号 (0=无错误)。

调用语法(自动化基础)

CANMulrd(enable, q_ident, adr(data), size, ID, status)

注意事项

如果CAN功能块在C函数中被本地调用(并且FBK结构在该函数中被本地声明,而不是用_LOCAL/_GLOBAL),那么静态FBK内存必须被初始化为0。

 

Examples

Automation Basic

ANSI C

Structured Text