Skip to main content

保持轴位置

具有绝对编码器的轴可以保存位置,以便它在重新启动控制器后保持其先前的位置。不需要进行自控。这个 SMC3_PersistPositionSMC3_PersistPositionLogical 功能块提供保存操作的功能。必要的数据保存在中 SMC3_PersistPosition_DataSMC3_PersistPositionLogical_Data

这个 bPositionStored 输出表明内容是否为 PersistentData 已经改变了。这发生在不同的时间,具体取决于持久性的类型。

编码器保留的值范围必须配置为 SMC_PersistPosition.maxPersistedValue 输入。对于多圈编码器,该值设置为 16#FFFFFFFFFF。例如,对于 12 位单圈编码器,该值设置为 2^12 = 40

有关更多信息,请参阅: 数据持久性

提示

通过声明使实例持久化为 VAR_PERSISTENT 或 Application Composer 的 Persistence Manager。

使用物理轴保持多圈绝对编码器的轴位置

要求:轴有一个多圈绝对值编码器。

使用 SMC3_PersistPosition FB 使物理轴的位置保持不变。相应的程序在运动任务中运行。

  1. 创建的实例 SMC3_PersistPosition 轴的功能块。

    pp: SM3_BASIC.SMC3_PersistPosition;

  2. 实例化一个持久化的数据结构 SMC3_PersistPosition_Data 类型。

    pp_Data: SM3_BASIC.SMC3_PersistPosition_Data1;

  3. 扩展运动任务的程序,以便调用 SMC3_PersistPosition 实例在那里实现。

    在 CFC 中实现的调用:

    _sm_img_call_of_SMC3_PersistPosition.png

    功能块与运动任务一起循环调用。这 SMC3_PersistPosition 实例在启动操作期间执行已保存位置的恢复。在正常操作中,FB 将实际位置保存在各自的数据结构中。

带物理轴的单圈绝对值编码器轴位保持

要求:物理轴有一个单圈绝对值编码器。

使用 smc3_persistPosition 使轴的位置保持不变的功能块。相应的程序在运动任务中运行。只有当轴在关闭和打开控制器之间没有移动任何距离或只有很短的距离(最大为单圈距离的一半)时,才能正确显示位置。例如,您可以使用机械制动器来执行此操作。如果在控制器关闭时轴大幅移动,则其位置不正确。无法通过 FB 进行检查

  1. 创建的实例 SMC3_PersistPosition 轴的功能块。

    ppst_X: SM3_BASIC.SMC3_PersistPositionSinglturn;

  2. 对的持久数据结构进行实例化 SMC3_PersistPosition_Data 类型。

    ppst_Data_X: SMC3_PersistPositionSingleturn_Data;

  3. 扩展运动任务的程序,以便调用 SMC3_PersistPosition 实例已实现,其持久数据结构也已实现 SMC_PersistPosition_Data 类型被传递给它。

保持逻辑轴的轴位置

要求:轴是合乎逻辑的。

使用 smc3_persistPositionLogic 使逻辑轴的位置保持不变的功能块。仅当上级物理轴的位置保持不变时,这才有效。无法通过这些 FB 使虚拟轴的位置

  1. 创建的实例 SMC3_PersistPositionLogical 轴的功能块。

    ppl: SM3_BASIC.SMC3_PersistPositionLogical;

  2. 实例化一个持久化的数据结构 SMC3_PersistPositionLogical_Data 类型。

    ppl_Data: SMC3_PersistPositionLogical_Data;

  3. 扩展运动任务的程序,以便调用 SMC3_PersistPositionLogical 实例被实现并且持久化数据类型 SMC3_PersistPositionLogical_Data 传递给它。