CANngp()

<< 点击显示目录 >>

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

CANngp()

根据NMT从机上的CAL,该功能块可用于 节点守卫协议

只  接受nd_state 参数的第0到6位  。切换位是在节点守护响应的发送中断中处理的。

 

状态参数检查自上次调用该功能块以来是否收到了新的RTR请求。如果没有收到RTR请求,  状态参数被设置为8877,节点状态 nd_state 被接受。

 

使能 (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

nd_state

USINT

节点状态

OUT

status

UINT

状态

说明

0

收到新的RTR请求。

8807

COB正在使用中或CAN总线没有插入。

8877

没有收到新的RTR请求。

xxxx

错误编号也会输出到 状态 输出。

调用语法(自动化基础)

CANngp(enable,us_ident,can_id,nd_state,status)

注意事项

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

 

例子

Automation Basic

ANSI C

Structured Text