<< 点击显示目录 >> 主页 贝加莱CAN通讯使用例程说明 > 通过编程实现CAN通讯 > 功能块与函数说明 > CAN_Lib > CAN_Lib - CAN Function Blocks and Functions > CANxrd() |
为了使用CANxrd()功能块,你必须首先使用 CANqueue() 功能块设置一个接收缓冲区 。
如果不存在接收队列或者队列是空的, 状态 输出会显示相应的错误信息。如果数据已经存储在队列中,它将被复制到缓冲区(缓冲区地址在 data_adr 输入)。CAN标识符被返回到 can_id 输出。电报的长度被返回到 size 输出。
如果接收队列已经满了(status = 8810),就不能再接受电报,直到队列被CANxrd()函数读取。
这个功能块只能有条件 地用于冗余。
适用的限制在下面的章节中描述。
其他信息可以在 "冗余 " 部分找到 。
输入/输出 |
参数 |
数据类型 |
说明 |
IN |
enable |
BOOL |
只有当 enable <> 0时才会执行此功能块 。 |
IN |
q_id |
UDINT |
来自 CANqueue()的队列标识 。 |
IN |
data_adr |
UDINT (given as a pointer) |
存储来自接收队列的CAN数据的数据区的地址。 |
OUT |
can_id |
UDINT |
CAN标识符 |
OUT |
size |
UINT |
CAN数据的长度(字节)。 |
OUT |
Status |
UINT |
错误编号 (0=无错误)。 |
CANxrd(enable,q_ident,adr(data_adr),can_id,size,status)