<< 点击显示目录 >> 主页 贝加莱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 数据类型的错误代码 。 |
CANopenEnableCyclicSync (enable, adr(Device), syncmode, synctime, status, error)