<< 点击显示目录 >> 主页 贝加莱CAN通讯使用例程说明 > 通过编程实现CAN通讯 > 功能块与函数说明 > ArCan > ArCanSend() |
传输所提供的CAN帧。也可以在一个循环中用来传输多个CAN帧,直到传输缓冲区满。
只要输入参数 Enable 从 FALSE 变为 TRUE,初始化就会异步执行,所以 Busy 等于 TRUE ,输出 Active 等于 FALSE。
循环执行是同步的,在一个周期内可以多次调用该功能块。输出参数 Busy 等于 TRUE ,输出参数 Active 等于 TRUE。
如果输入参数 Enable 从 TRUE 变为 FALSE,非初始化将被异步执行。这意味着 Busy 是 TRUE ,输入参数 Active 是 FALSE。
一旦脱初始化完成,输出参数 Busy 为 FALSE ,输出参数 Active 为 FALSE。在这个阶段,可以再次启用该功能块。
这个功能块只能 在某些情况下用于 冗余 !这一点 在以下章节中有所描述。
适用的限制在以下章节中描述。
关于冗余的更多信息,请看 冗余部分 。
输入/输出 |
参数 |
数据类型 |
说明 |
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 |
数据长度无效。 |