SMC_SetPersistPos指令简介:
功能:保存掉电前的圈数,重新上电后根据圈数和轴当前坐标计算出ActPos。重新下载硬件组态,该功能失效。
前期准备:A4N+H36
A4N绝对值系列伺服驱动器匹配绝对值编码器时,根据实际应用情况可设置 P41 (总线式绝对值编码器设定),选用绝对值编码器的使用方式(默认增量方式)。如使用绝对值方式,接好线缆,初次上电,伺服可能会出现 6 号错误(P244 Bit6 为 1),此时需设置 P282=16来清除绝对值编码器错误,然后重新上电(控制电源)。
H36的固件需要2.49及以上,需添加新的SMC库。
线性轴:当位置数据溢出时,PLC将以iTurn记忆607A溢出次数(线性模式)。当从0到2^31再从-2^31到0递增变化,每溢出一次iTurn变量加1;而0到-2^31再从2^31到0递减变化,每溢出一次iTurn变量减1。 轴目标位置(fSetPosition)、反馈位置(fActPosition计算方法: fActPosition = ((iTurn 2^32 + dwActPosition) iRatioTechUnitsNum)/ dwRatioTechUnitsDenom 其中变量: iTurn :溢出次数 dwLastPosition :上一次命令位置(每个周期会同步607A的值) dwActPosition :当前周期6064的值 iRatioTechUnitsNum :缩放比例分子 dwRatioTechUnitsDenom : 比例缩放分母 由于iTurn属于轴内存变量,掉电数据不保持。所以PLC重启、热复位、下载程序操作导致iTurn值为据默认值0。因而导致目标位置(fSetPosition)、反馈位置(fActPosition)与断电前不一致。
A4N的圈数范围是(-16384~16383),可以在伺服驱动器面板P242查看。绝对值编码器单圈位置为2^17;即0~131071。 硬件组态中设置量纲比131072:1。 此时使用相对位置指令,Dis=1,实际电机跑一圈,607A和6064在映射中可以在线查看到值为131072.
当DIS大于16384时,位置溢出后,位置计数和圈数会从-16384开始向0递增。ActPos会持续累加。
例如:不溢出
(断电前)DIS=16384时,P242=16384,6064=-2147483648,6064值/131072=-16384,根据公式ActPos=1*32768+(-16384)=16384。
(重新上电)如果这时候没使用该保持指令,断电后,溢出值无法保存下来,重新上电后就变成ActPos=0*32768+16384(上电后读回来的6064)。因为处于溢出临界值,所以断上电几乎没有差异。
溢出:
(断电前)DIS=16384.1时溢出,6064=-2147470635,6064值/131072=-16,383.9,根据公式ActPos=1*32768+(-16,383.9)=16384.1。
(重新上电)如果这时候没使用该保持指令,断电后,溢出值无法保存下来,重新上电后就变成ActPos=0*32768+(-16,383.9)(上电后读回来的6064)=-16383.9。就会和断电前的位置不同。
(重新上电带掉电保持)如果使用该保持指令,断电后,溢出值保存下来,重新上电后就变成ActPos=1*32768+(-16,383.9)(上电后读回来的6064)=16384.1。就会和断电前的位置相同。
旋转轴:旋转模式和线性轴模式一样,溢出后掉电重启只读6064的位置,不保存溢出周期数。
举例说明:还是按照上面的量纲。模值360。也就是一个旋转周期,转360圈。
溢出:
(断电前)DIS=16744时,P242=-16024,6064=-2100297728,6064值/131072=-16024,根据公式ActPos=1*32768+(-16024)=16744,然后除以360周期数取余数就是实际值184。
(重新上电不带掉电保持)如果这时候没使用该保持指令,断电后,溢出值无法保存下来,重新上电后就变成ActPos=0*32768+(-16024)=-16024,然后除以360周期数取余数就是实际值176(因为360一个周期,整除后还剩下-184,也就是正176)。明显与断电前的位置不同
(重新上电带掉电保持)如果使用该保持指令,断电后,溢出值保存下来,重新上电后就变成ActPos=1*32768+(-16024)=16744,然后除以360周期数取余数就是实际值184。就会和断电前的位置相同。
下面列出几种情况:
一、未溢出不带保持
断电前:ActPos=239.5975 重新上电:ActPos=239.5974
断电前后几乎没差别,在没溢出的情况下,根据当前圈数计算出来的位置是准确的。
二、溢出不带保持
断电前:ActPos=58.39796 重新上电:ActPos=50.39745
断电前后明显差别,在溢出的情况下,没保存溢出数,只根据当前圈数计算出来的位置是不准确的。
三、溢出带保持
断电前:ActPos=213.8979 重新上电:ActPos=213.8965
断电前后几乎没差别,在溢出的情况下,保存溢出数等,根据当前圈数计算出来的位置是准确的。
|