<< 点击显示目录 >> 主页 贝加莱CAN通讯使用例程说明 > 通过编程实现CAN通讯 > 功能块与函数说明 > CAN_Lib > CAN_Lib - CAN Function Blocks and Functions > CANTime() |
CANTime()函数块用于读取一个CAN对象的时间戳。
请注意。
这个函数块只在SG3目标的发送方向上起作用。
指定的can_id必须首先在目标系统上作为一个对象存在(COB必须存在)。这个对象在调用其他CAN_LIB FBKs(即 CANwrite、 CANread等)时被创建 。
SystemTick参数定义了一个以系统时钟为单位的自由运行的计数器(10ms对应于SG3/SG4目标系统的SG_TickCount),在CAN2000驱动(SG3)或设备任务(即SG4目标系统的SS1.IF2)中成功发送或接收一个CAN消息后输入。SystemStamp参数描述了一个硬件时间戳。
这个功能块只能有条件地 用于冗余。
适用的限制在以下章节中描述。
其他信息可以在 "冗余 " 部分找到 。
输入/输出 |
参数 |
数据类型 |
说明 |
IN |
enable |
BOOL |
该功能块仅在 enable 为<>0时执行 。 |
IN |
us_ident |
UDINT |
来自 CANopen() / CANMulOpen()的用户识别码 |
IN |
can_id |
UDINT |
CAN标识符 |
IN |
SystemTick |
UDINT (given as a pointer) |
指向SystemTick计数器的一个UDINT的指针 以系统时钟为单位的自由运行计数器(10ms对应SG3/SG4目标上的SG_TickCount)。 数值范围。0 - 4294967295 (相当于42,949,672秒) |
IN |
SystemStamp |
UDINT (given as a pointer) |
指向SystemStamp的一个UDINT的指针 CAN对象的可选时间戳。它在适当的硬件上代表一个以500ns为单位的自由运行的计数器。 值范围为0-65535(相当于32.7675毫秒)。 |
OUT |
status |
UINT |
错误编号 (0=无错误)。 |
CANTime (enable, us_ident, can_id, adr (SystemTick), adr (SystemStamp), status)
如果CAN功能块在C函数中被本地调用(并且FBK结构在此函数中被本地声明,而不是用_LOCAL/_GLOBAL),那么静态FBK内存必须被初始化为0。
这个FBK不 被CANMulOpen FBK所支持 。