ArCanRtr()

<< 点击显示目录 >>

主页  贝加莱CAN通讯使用例程说明 > 通过编程实现CAN通讯 > 功能块与函数说明 > ArCan >

ArCanRtr()

该功能块提供一个RTR响应帧,一旦收到指定ID的RTR请求,就会自动传输。

启用

如果  在该功能块中 输入 Enable 被设置为 TRUE ,就会提供一个具有配置的ID和配置的格式的响应帧。这些参数只有在输入 Enable 被从 FALSE 设置  为 TRUE 时才适用  (即边缘控制)。一旦收到具有配置的ID和格式的RTR请求,就会传送响应帧。如果响应帧被成功传输,输出 ResponseSent 被设置为 TRUE。

 

 

一旦输入参数 Enable 从 FALSE 变为 TRUE,输入参数 ID 和 Format 被读取,初始化被异步执行。这意味着 Busy 是 TRUE ,输出 Active 是 FALSE。

循环执行是同步的,在一个周期内可以多次调用该功能块。  这时 输出 Busy是TRUE ,输出 Active 是 TRUE。

如果输入参数 Enable 从 TRUE 变为 FALSE,非初始化将以异步方式执行。这意味着输出 "忙" 为 "true" ,输出 "活跃" 为 "false"。

一旦去初始化完成,输出 Busy 为 FALSE ,输出 Active 为 FALSE。然后该功能块可以再次被启用。

设置数据

必须使用 输入 SetData 来改变要传输的数据。如果输入 SetData 被设置为 TRUE,要传输的数据将被复制到输入参数 Data的内部缓冲区  ,要传输的长度由输入 DataLength 配置  (SetData 是水平控制的)。只要 SetData 为 "真",输出 ResponseSent 就被设置为 "假"。

 

 

 

为了配置 Data 和 DataLength,Enable 必须为 TRUE。

 

这个功能块只能  在某些情况下用于 冗余 !这一点 在以下章节中有所描述。

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

 

通信

异步执行

 

关于冗余的更多信息,请看 冗余部分 。

clip0051

输入/输出

参数

数据类型

说明

IN

Enable

BOOL

只要这个输入被设置,功能块就会被激活。

IN

DeviceName

STRING[127]

CAN接口的名称,例如:SS1.IF1。

IN

ID

UDINT

RTR请求的CAN标识符

IN

Format

UDINT

arCAN_11BIT或arCAN_29BIT - RTR请求的CAN标识符的格式

IN

DataLength

UDINT

参数数据的长度

IN

Data

ARRAY[0..63]OF BYTE

在RTR请求期间应该传输的数据。

IN

SetData

BOOL

应用要传输的数据和要传输的长度并重置参数 ResponseSent

OUT

Busy

BOOL

该功能块处于活动状态,必须继续被调用。

OUT

Active

BOOL

该功能块处于活动状态,可以对RTR请求做出反应。

OUT

Error

BOOL

在执行功能块时发生错误。

OUT

StatusID

DINT

错误编号

OUT

ResponseSent

BOOL

一旦RTR响应被成功传输给RTR请求者,则为TRUE;自上次用SetData调用功能块后,为TRUE。

这些错误号码可以被返回。

名称

价值

描写

arCAN_ERR_INVALID_PARAMETER

-1070584147

检查参数。

arCAN_ERR_DEVICE_NAME

-1070584148

检查设备名称。

arCAN_ERR_INVALID_DATALENGTH

-1070584150

数据长度无效。

arCAN_ERR_INVALID_ID

-1070584145

检查ID。