SMC3_PersistPosition

功能块 SMC3_PersistPosition

名称

类型

初始值

描述

VAR_IN_OUT

Axis

AXIS_REF_SM3

 

“AXIS_REF_SM3”.

PersistentData

SMC3_PersistPosition_Data

 

持久数据结构体,用于位置保存

VAR_INPUT

bEnable

BOOL

FALSE

TRUE:功能块被激活

FALSE:功能块没有激活。要回复上次位置并在初始化的时候保存, bEnable 需要被设置为 TRUE 应用开始处启动。

VAR_OUTPUT

bPositionRestored

BOOL

 

TRUE:自上次启动,位置将会被加载

bPositionStored

BOOL

 

TRUE:在过去的调用中,用于恢复的相关更改的数据并且保存在PersistentData

bBusy

BOOL

 

TRUE:功能块被激活

bError

BOOL

FALSE

TRUE:错误发生。参阅nErrorID

nErrorID

SMC_ERROR

SMC_NO_ERROR

错误定义, “SMC_ERROR”

可能的错误

  • SMC_PP_WRONG_AXIS_TYPE:虚轴或者本地轴不支持。在这种情况下使用SMC3_PersistPositionLogical。

eRestoringDiag

SMC3_PersistPositionDiag

SMC3_PersistPositionDiag.SMC3_PPD_RESTORING_OK

关于加载位置的动态诊断信息

  • SMC3_PPD_RESTORING_OK:位置成功恢复
  • SMC3_PPD_AXIS_PROP_CHANGED:至少一个轴的属性 (比例,位置周期,运动类型 (模态/直线))发生改变,所以不能恢复位置。
  • SMC3_PPD_DATA_STORED_DURING_WRITING:数据显示当功能块从轴结构体中复制数据 PersistentData被保存。可能原因:
    • 保持不同步
    • 功能块控制无效

使用 SMC3_PersistPosition

对于每个轴,建立一个功能块实例并且填充数据结构,例如,定义VAR PERSISTENT (剩余变量) 或者将它们关联到应用程序开发器的保持变量上 (保持变量管理)。在运动周期中周调用功能块。在启动过程中,功能块会获取保存的回复的位置值,并且在正常操作情况下保存当前位置值到数据结构中。保持机制保存这个数组并且会在下一次启动的时候重新加载。

VAR
    pp: SM3_BASIC.SMC3_PersistPosition;
    {attribute 'ac_persist' := 'PersistenceChannel'}
    Data1: SM3_BASIC.SMC3_PersistPosition_Data;
VAR_END
 
插图 110: SMC3_PersistPosition示例