CANopenEnableCyclicSync()

<< 点击显示目录 >>

主页  贝加莱CANopen通信使用助手 > 通过编程实现CANopen通讯 > 功能块与函数说明  > AsCANopen - Function blocks >

CANopenEnableCyclicSync()

该功能块用于启用或禁用PLC生成周期性的SYNC信息。

当启用时,如果上一个SYNC信息至少比 "synctime "输入指定的时间晚,控制器就会在两个连续的PLC周期之间产生一个SYNC信息。如果自上一个SYNC信息以来的时间小于SYNC_TIME,那么就不会产生新的SYNC信息。输入值 "synctime = 0 "安排控制器用一个SYNC信息结束每个PLC周期。在这种情况下,网络过程图像的交换与本地PLC输入和输出的过程图像的交换是同步的。

控制器不断检查在PLC周期结束时发送SYNC消息的时间条件。因此,用SYNC_TIME输入指定的时间是两个连续的SYNC信息之间的最小时间。

在最坏的情况下,两个SYNC信息之间的实际时间间隔可以通过一个PLC周期(系统滴答)的长度波动。

Tsync [最坏情况] = SYNC_TIME + TPLC周期

这个功能块只能作为 CANopenSendSync() 功能块的替代品  。

 

异步处理导致该功能块返回 ERR_FUB_BUSY ,直到FBK成功完成或发生错误。

 

这个函数块 不能 用于 冗余

 

参数

输入/输出

参数

数据类型

说明

IN

enable

BOOL

只有当 enable 为<>0时才会执行此功能块 。

IN

pDevice

UDINT

(transmitted as a pointer to STRING)

设备名称(语法:SL<x>.SS<y>.IF<z>)

IN

syncmode

BOOL

TRUE = 启用周期性SYNC信息的生成

FALSE = 禁用周期性SYNC信息的生成

IN

synctime

TIME

两个连续的SYNC信息之间的时间,或0为每个PLC周期后的SYNC信息。

OUT

status

UINT

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

OUT

error

UINT

根据CIA405_CANopen_KERNEL_ERROR 数据类型的错误代码  。

 

调用语法(Automation Basic)

CANopenEnableCyclicSync (enable, adr(Device), syncmode, synctime, status, error)