怎样保证多圈绝对式编码器位置信息掉电保存

线性模式(Finite)下,如果需要掉电保持数据,必须保存:

A:对象字典0x6064(用户实际反馈指令单位)

B:Axis.iTurn(溢出次数,PLC记录的伺服相对运动距离大于2^23指令单位时加一,注意:不是读取伺服的多圈值)

C:Axis.dwRatioTechUnitsDenom(比例单位分母)

D:Axis.iRatioTechUnitsNum(比例单位分子)。

模数模式(Module)下,如果需要掉电保持数据,必须保存:

A:对象字典0x6064(用户实际反馈脉冲单位)。

B:Axis.dwPosOffsetForResiduals(剩余位置偏移)。

C:Axis.dwRatioTechUnitsDenom(比例单位分母)。

D:Axis.iRatioTechUnitsNum(比例单位分子)。

其中0x6064是从编码器读取的,不需要保存。而C、D栏的数据在下载程序的时候已存储到PLC。所以程序只要保存B栏数据:

iTurn(溢出次数)、dwPosOffsetForResiduals (剩余位置偏移)。

多圈绝对值编码器位置保存功能块提供了保存、加载B栏数据的功能,功能块如下图所示:

功能块的参数的解释如下:

保存功能块的使用:

1、新建一个SMC3_PersistPosition类型的实例,命名SMC3_PersistPosition_0。

2、新建一个SMC3_PersistPosition_Data类型实例persistentData。变量类型为RETAIN PERSISTENT,如下图:

SMC3_PersistPosition_Data结构体变量如下

4、SMC3_PersistPosition_0实例的bEnable变量初始化为 TRUE,或者直接给输入端口赋值TRUE、Axis输入端为需要保存位置的轴。

5、新建保持变量文件,添加完成后,重新编译程序。

6、编译无误后,打开“PersistentVars”文件,在文件空白处右击选择“Add all instance paths(添加所有实例路径)”后,编译下载程序,绝对值编码器的数据保存功能已生效,如图:

注意:为了保证上电后SMC3_PersistPosition_0加载数据的正确性,需判断输出变量bPositionRestored的状态,如果数据读取正确,bPositionRestored的状态为TRUE。

Copyright © www.yanjuntech.cn 2018-2025 all right reserved,powered by Gitbook该文件修订时间: 2018-10-21 18:49:31

results matching ""

    No results matching ""