查看: 11601|回复: 30
收起左侧

[IS620系列应用问题] [IS620]【分享】AM600与IS620N多圈绝对值编码器应用指导

GGG 2019-9-12 16:29:29 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
本帖最后由 GGG 于 2019-9-16 16:18 编辑

AM600IS620N多圈绝对值编码器应用指导

1、AM600绝对位置计算方法
1.1 、线性模式(Finite)
AM600的实际位置Axis.fActPosition是通过计算得出的,参与计算的变量有:
A:对象字典0x6064(用户实际反馈指令单位)。
B:Axis.iTurn(溢出次数,PLC记录的伺服相对运动距离大于2^32指令单位时加一,注意:不是读取伺服的多圈值)。
C:Axis.dwRatioTechUnitsDenom(比例单位分母)。

D:Axis.iRatioTechUnitsNum(比例单位分子)。
计算公式:fActPosition = ((iTurn *2^32 + 0x6064)* iRatioTechUnitsNum)/ dwRatioTechUnitsDenom

--------------------
例如:后台软件配置如下图所示(注意电子齿轮比为1:1
图片.png

通过后台软件监控当前Axis.fActPosition、A、B、C、D的值分别为:
图片.png

((iTurn *2^32 + 0x6064)* iRatioTechUnitsNum)/ dwRatioTechUnitsDenom
= ((1 * 2^32 +(-100663300)) * 1)/8388608
= (2^32/8388608) – 100663300/8388608

= 512 –12.000000476837158203125
= 499.999999523162841796875(与监控的Axis.fActPositon的值相同)
--------------------
1.2、旋转模式(Modulo)
该模式下,AM600的实际位置Axis.fActPosition的计算方法是另一种,参与计算的变量有:
A: 对象字典0x6064(用户实际反馈脉冲单位)。
B: Axis.dwPosOffsetForResiduals (剩余位置偏移)。
C:Axis.dwRatioTechUnitsDenom(比例单位分母)。
D:Axis.iRatioTechUnitsNum(比例单位分子)。
计算公式:fActPosition = ((((DWORD)0x6064)- dwPosOffsetForResiduals) * iRatioTechUnitsNum / dwRatioTechUnitsDenom))
--------------------

例如:后台配置
图片.png
通过后台软件监控当前Axis.fActPosition、A、B、C、D的值分别为:

fActPosition = ((((DWORD)0x6064)- dwPosOffsetForResiduals) * iRatioTechUnitsNum / dwRatioTechUnitsDenom))
= (1282891723–1275068416)* 5 / 8388608
= (2330216 * 45)/ 1048576
= 4.663054347038269(与监控的Axis.fActPositon的值相同)。


2、 AM600如何保存绝对位置信息
2.1、保存功能块
通过上面的计算方法,如果需要掉电保持数据,必须保存B、C、D栏的值。其中0x6064是从编码器读取的,不需要保存。而C、D栏的数据在下载程序的时候已存储到PLC。所以程序只要保存B栏数据:iTurn(溢出次数)、dwPosOffsetForResiduals (剩余位置偏移)。多圈绝对值编码器位置保存功能块提供了保存、加载B栏数据的功能,功能块如下图所示:
图片.png
功能块的参数的解释如下:
图片.png

2.2、保存功能块的使用

2.2.1、新建一个SMC3_PersistPosition类型的实例,命名SMC3_PersistPosition_0
图片.png
2.2.2、新建一个SMC3_PersistPosition_Data类型实例persistentData。变量类型为RETAIN PERSISTENT,如下图:
图片.png
SMC3_PersistPosition_Data结构体变量如下
图片.png
2.2.3、SMC3_PersistPosition_0实例的bEnable变量初始化为 TRUE,或者直接给输入端口赋值TRUE、Axis输入端为需要保存位置的轴。
2.2.4、新建保持变量文件,添加完成后,重新编译程序。
图片.png
2.2.5、编译无误后,打开“PersistentVars”文件,在文件空白处右击选择“Add all instance paths(添加所有实例路径)”后,编译下载程序,绝对值编码器的数据保存功能已生效,如图:
图片.png
注意:为了保证上电后SMC3_PersistPosition_0加载数据的正确性,需判断输出变量bPositionRestored的状态,如果数据读取正确,bPositionRestored的状态为TRUE



图片.png




上一篇:IS620N EthetrCat应用——欧姆龙主控
下一篇:伺服驱动器MODBUS通讯时地址转换方式?

已有 0 人打赏作者

回复 邀请回答送花

使用道具 举报

海龙王 2019-9-15 09:40:02 来自手机 | 显示全部楼层
这种方式不够严谨,有bug。如果伺服电机溢出位置附近i。然后断电。机构往溢出方向动了。因为设备断电了无法记录iturn次数。这时候再上电位置就是错的
回复 送花

使用道具 举报

GGG 2019-9-16 16:24:54 | 显示全部楼层
海龙王 发表于 2019-9-15 09:40
这种方式不够严谨,有bug。如果伺服电机溢出位置附近i。然后断电。机构往溢出方向动了。因为设备断电了无法 ...

那怎么弄比较好?
回复 送花

使用道具 举报

海龙王 2020-2-23 22:49:41 来自手机 | 显示全部楼层
GGG 发表于 2019-9-16 16:24
那怎么弄比较好?

   旋转模式  轴当前位置到设定的模数值(用户单位)会清零。那么  可以在PLC启动参数里调整6091 01和6091 02值使上位机设定的模数值对应的编码器值刚好也溢出(清零)就可以。
回复 送花

使用道具 举报

慢生活 2020-7-18 16:43:55 来自手机 | 显示全部楼层
海龙王 发表于 2020-2-23 22:49
旋转模式  轴当前位置到设定的模数值(用户单位)会清零。那么  可以在PLC启动参数里调整6091 01和6091  ...

能否举个例子说明下,这样听起来不是特别明白
回复 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部