CANupd()

<< 点击显示目录 >>

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

CANupd()

CANupd()函数向发送节点提供对RTR请求电报的响应。

使能 (1->0)处的负边 会 从内存中删除通信对象(COB)。这意味着系统中可以管理任何数量的RTR标识符。

请求电报(远程帧请求,见 CANrtr() 函数)可以从几个(不同的)接收节点发送。然而,对于请求的报文必须只有一个发送节点。

 

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

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

 

手柄必须被初始化

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

隐藏指针的使用

 

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

参数

输入/输出

参数

数据类型

说明

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。

 

例子

Automation Basic

ANSI C

Structured Text