ArCanSend()

<< 点击显示目录 >>

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

ArCanSend()

传输所提供的CAN帧。也可以在一个循环中用来传输多个CAN帧,直到传输缓冲区满。

只要输入参数 EnableFALSE 变为 TRUE,初始化就会异步执行,所以 Busy 等于 TRUE ,输出 Active 等于 FALSE

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

如果输入参数 EnableTRUE 变为 FALSE,非初始化将被异步执行。这意味着 BusyTRUE ,输入参数 ActiveFALSE

一旦脱初始化完成,输出参数 BusyFALSE ,输出参数 ActiveFALSE。在这个阶段,可以再次启用该功能块。

 

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

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

 

通信

异步执行

 

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

 

clip0052

输入/输出

参数

数据类型

说明

IN

Enable

BOOL

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

IN

DeviceName

STRING[127]

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

IN

Frame

ArCanFrameType

CAN帧

IN

SendFrame

BOOL

如果该输入为 "true",则该帧被复制,空闲缓冲区的数量被递减1,直到该帧被传输。

OUT

Busy

BOOL

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

OUT

Active

BOOL

功能块处于活动状态。

OUT

Error

BOOL

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

OUT

StatusID

DINT

错误数

OUT

NumberOfFreeBuffers

UDINT

设备的空闲缓冲区数量。

 

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

名称

价值

描述

arCAN_ERR_BUFFER_FULL

-1070584146

控制器的缓冲区已满,等待后再传输更多的帧。

arCAN_ERR_INVALID_PARAMETER

-1070584147

检查参数。

arCAN_ERR_DEVICE_NAME

-1070584148

检查设备名称。

arCAN_ERR_INVALID_DATALENGTH

-1070584150

数据长度无效。