CANbtreg()

<< 点击显示目录 >>

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

CANbtreg()

该功能块为CAN控制器配置特定的位定时寄存器值。

只支持SG4目标系统的Automation Runtime A2.87及以后版本。当在SG4项目中使用早于A2.87的AR版本集成该功能块时,会返回状态8815。

该功能块的执行时间与硬件有关。由于这个原因,建议只在周期时间长的循环程序中调用它。

除了标准波特率外,还可以设置其他任何波特率。在 CANopen() 之后,FBK必须被调用一次 ,以登记所设置的值。在配置过程中,CAN控制器被停止,初始化,然后重新启动。请注意,即使在目标系统被初始化时,CAN控制器也会被INA通信以标准的波特率初始化(也见 CANopen())。在某些情况下,这可能会导致初始化过程中出现总线故障。

INA通信可以通过系统软件的属性来禁用CAN。如果在Automation Studio的系统配置中没有定义接口,则默认定义了两个串行接口和一个CAN接口。如果在系统配置中定义了一个或多个接口,那么这个默认配置是无效的。

 

 

该功能块只能有条件地 用于冗余

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

 

手柄必须被初始化

不活动的CPU上的特殊错误代码

 

其他信息可以在 "冗余 " 部分找到

参数

输入/输出

参数

数据类型

说明

IN

enable

BOOL

该功能块仅在 enable 为<>0时执行 。

IN

us_id

UDINT

来自 CANopen()的用户标识

IN

treg0

UDINT

位计时寄存器0。

第0-5位


BRP - Baud Rate Prescaler

第6-7位


SJW - 同步跳变宽度

IN

treg1

UDINT

Bit Timing Register 1:

Bit 0-3


TSEG1 - 时间段1

第4-6位


TSEG2 时间段2

第7位


SPL - 采样模式

OUT

status

UINT

错误编号 (0=无错误)。

调用语法(自动化基础)

CANbtreg(enable,us_id,treg0,treg1,status)

注意事项

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

 

例子

Automation Basic

ANSI C

Structured Text