<< 点击显示目录 >> 主页 贝加莱CAN通讯使用例程说明 > 通过编程实现CAN通讯 > 功能块与函数说明 > CAN_Lib > CAN_Lib - CAN Function Blocks and Functions > CANupd() |
CANupd()函数向发送节点提供对RTR请求电报的响应。
在 使能 (1->0)处的负边 会 从内存中删除通信对象(COB)。这意味着系统中可以管理任何数量的RTR标识符。
请求电报(远程帧请求,见 CANrtr() 函数)可以从几个(不同的)接收节点发送。然而,对于请求的报文必须只有一个发送节点。
这个功能块只能有条件 地用于冗余。
适用的限制在下面的章节中描述。
其他信息可以在 "冗余 " 部分找到 。
输入/输出 |
参数 |
数据类型 |
说明 |
IN |
enable |
BOOL |
启用的含义 。 •位置边缘(0->1)。 定义CAN标识符的COB(COB=通信对象)。 •负边(1->0)。 删除COB。 •enable = 1。 更新数据。 |
IN |
us_ident |
UDINT |
来自 CANopen()的用户标识 |
IN |
can_id |
UDINT |
CAN Identifier |
IN |
data_adr |
UDINT (given as a pointer) |
存储更新数据的数据区的地址。 |
IN |
data_lng |
USINT |
更新数据的长度(字节)。 |
OUT |
status |
UINT |
如果RTR对象已经获得 一次,状态=8877 。如果已经获得了RTR对象,则返回状态=0。 |
CANupd(enable,us_ident,can_id,adr(data_adr),data_lng,status)
在CANupd FBK中,8877被发送至状态输出,直到CAN RTR对象被拾取一次。当CAN RTR对象被拾取后,FBK将状态输出为0。
如果CAN功能块在C函数中被本地调用(并且FBK结构在该函数中被本地声明,而不是用_LOCAL/_GLOBAL),那么静态FBK内存必须被初始化为0。