现象:修改A_STOP指令的“减速度”后,触发A_STOP指令后轴不按照设定的“减速度”停止依旧以某个固定的速度停机或立即停下。
注1:此处“减速度”并不是“减速时间”。减速度(单位:u/s²)在总线型指令中,取值范围 为1-65536000 ,这个值设定越大; 对应减速时间越短,值越小,对应减速时间越长。
注2:A_VELMOVE(速度控制运动)指令,如果“减速度”为0,那么这条指令生效时,轴的“减速度”会以轴配置中 “最高减速度”*“默认减速度百分比”% 作为“减速度”
解决:轴实际的减速度是取当前运动的指令中的减速度和 A_STOP 指令中的减速度较大值。
所以如果使用A_VELMOVE(速度控制运动)指令时要让轴按照A_STOP 指令设置的减速度停止,就需要保证A_VELMOVE指令中的“减速度”小于等于A_STOP指令的“减速度”。
如: 使用 “A_VELMOVE D1000 D100 M0 K0 ”控制轴运动时,
用“A_STOP D1100 D110 M10 K0”让轴停止时,
需要 D1008=D1100且D1108=0(减速停止)
可使用C语言
#define SysRegAddr_HD_D_HM_M
#define FHD *(float*)&HD
#define LHD *(FP64*)&HD
#define LDD *(FP64*)&D
LDD[1100]=FHD[0]*FHD[2]/FHD[4];//HD0为设置的减速度mm/s,HD2为每圈脉冲数,HD4为每圈对应位移
LDD[1008]=LDD[1100];//保证两个减速度一样
注:减速停止时轴不会被除A_STOP指令外的指令打断,即直到减速停机后,轴才会接受除A_STOP以外其他控制轴运动的指令。
验证程序
A_PLSF的减速度=“默认速度”/“减速时间” 此处减速时间单位为毫秒
即实际 减速度=默认速度/减速时间*1000 大小才和其他指令一致。
“减速时间”或“默认速度”为0,减速度也等于默认减速度
此处以 默认减速度 等于 65536000*100%为例 单位为 u/s²
情景1:A_VELMOVE设置减速度为0,A_STOP设置减速度为0,即两指令中减速度都为默认减速度,轴会以轴配置中以默认减速度作为“减速度”
情景2:A_VELMOVE设置减速度为1310720,A_STOP设置减速度为0,即两条指令减速度分别为1310720和默认减速度,轴会以两者中数值更大的默认减速度作为“减速度”
情景3:A_VELMOVE设置减速度为0,A_STOP设置减速度为1310720,即两条指令减速度分别为默认减速度和1310720,轴会以两者中数值更大的默认减速度作为“减速度”
情景4:A_VELMOVE设置减速度为2621440,A_STOP设置减速度为1310720,即两条指令减速度分别为2621440和1310720,轴会以两者中数值更大的2621440作为“减速度”