ArCanRtr()

<< 点击显示目录 >>

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

ArCanRtr()

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

启用

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

 

 

一旦输入参数 EnableFALSE 变为 TRUE,输入参数 IDFormat 被读取,初始化被异步执行。这意味着 BusyTRUE ,输出 ActiveFALSE

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

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

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

设置数据

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

 

 

 

为了配置 DataDataLengthEnable 必须为 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。