工艺对象中“与编码器进行数据交换”选项这里编码器的高精度怎么设定?怎么理解高精度。
Figure 1绝对值编码器组态
首先我们要理解Gx_XIST1和G1_XIST2的作用。
从下面图片可以看出,以报文3举例,G1_XIST1占用PZD6和PZD7两个字共计32位,G1_XIST2同理。
组态工艺对象以后,位置环放到PLC里来执行,因此轴和工艺对象要交互位置数据,编码器分为增量型和绝对值型。对于增量型只需要知道走过多少脉冲数就行,因此只需要用到报文中的Gx_XIST1这个双字来表示编码器的实际位置值。
而对于绝对值编码器,上电以后需要从驱动轴上读取当前位置,也需要知道运行起来走过的实际位置,因此会使用Gx_XIST1和G1_XIST2两个双字。对绝对值编码器而言,工艺对象只在上电的时候将绝对值编码器的当前位置和圈数以及精分的值通过G1_XIST2映射到G1_XIST1中,采用G1_XIST1作为驱动轴的实际位置值。
了解了Gx_XIST1和G1_XIST2的作用以后,再来了解一下工艺对象编码器组态界面高精度的位怎么设置。
1、对于增量型编码器只需要设定Gx_XIST1的参数。
Gx_XIST1的数据结构如下图所示:
Figure 2 G1_XIST1数据结构
单圈脉冲数:编码器的实际分辨率,由编码器类型决定,比如V90伺服2500线的增量编码器,对于使用第三方电机或者编码器的话需要得到这个参数。如下图所示。
精分辨率:加了编码器脉冲数的分辨率,比如2500线的方波编码器,我们感觉精度不够,想增加分辨率,那么就需要对它的每个脉冲进行精分。对于AB相脉冲的增量编码器,最大的细分精度就是把一个脉冲周期内的上升沿和下降沿都计入,就是4倍频,那么转一圈的脉冲就变成了2500x4=10000个脉冲。十进制4用二进制表示就是BIN:11.占两个位,所以Gx_XIST1中的位参数填写 2 。
2、对于绝对值编码器需要用到Gx_XIST1和Gx_XIST2两个参数。
还是先从Gx_XIST2的数据结构开始了解。
Figure 4G1_XIST2数据结构
单圈脉冲数和精分辨率与G1_XIST1具有同样的信息,这里不再重复。但是为什么G1_XIST2这里的精分辨率是9bit呢?可以是11bit吗?我们接着往下看。
多圈分辨率:编码器整圈的圈数,工艺对象根据圈数和单圈脉冲数确定绝对位置值。
从G1_XIST2数据结构图可以看出,32位的区域分了三部分,由于编码器圈数和每圈的脉冲数是固定的因此留给精分辨率的位数最多只剩下了11位。有理论说精分变率太高以后会有抖动因此最后两位舍弃,因此一般组态时G1_XIST2的参数比G1_XIST1的参数少2.例如:
· 有BiSS接口的21位单圈绝对值编码器
· 每转增量:2048
· 转数:1
· 细分:
· Gx_XIST1中的位: 12
· Gx_XIST2中的位:10
· 具有BiSS接口的20位+12位多圈绝对值编码器
· 每转增量:2048 211
· 转数:4096 212
· 细分:
· Gx_XIST1中的位: 11
· Gx_XIST2中的位: 9 32-11-12=9位
因此细分决定了编码器的分辨率,组态工艺对象时要根据编码器的类型和编码器本身的参数决定Gx_XIST1和G1_XIST2填写的数值,这个数值是有上限的。
对于上图的第三方绝对值编码器14bitx12bit来说留给细分的位数只有32-14-12=6位。