马上注册,享受更多特权
您需要 登录 才可以下载或查看,没有帐号?立即注册 ![](source/plugin/zhanmishu_wechat/template/static/img/wechat_login.png)
x
关于CODESYS中两轴SCARA解析功能块的BUG 先上图:file:///C:/Users/ADMINI~1.WIN/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png 在图上可以看到 插补器的bEmergency_Stop被 SMC_TRATO_Scara2.bError 置 True; file:///C:/Users/ADMINI~1.WIN/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg SMC_TRATO_Scara2.bError 是因为插补器所得目标点XY轴笛卡尔坐标位置不可达。 file:///C:/Users/ADMINI~1.WIN/AppData/Local/Temp/msohtmlclip1/01/clip_image005.png 我们把第一个臂长和第二臂长都设为200长,那么我们第一次给PLC与伺服上电后,我们就可以用file:///C:/Users/ADMINI~1.WIN/AppData/Local/Temp/msohtmlclip1/01/clip_image007.png 两轴SCARA的正解功能块得到当前的笛卡尔坐标位置为(400,0),但是你在PLC在线的情况下 你会发现SMC_TRAFOF_Scara2.dy的值在0 附近跳动,而SMC_TRAFOF_Scara2.dx的值是400,稳稳的不跳动。 那么我要在CNC的G代码中把这个当前给到插补器中,即下图: file:///C:/Users/ADMINI~1.WIN/AppData/Local/Temp/msohtmlclip1/01/clip_image009.png 那么这个当前值就很可能是SCARA不可到达的一个位置,所以只要在这个点上,让插补器一工作,SMC_TRATO_Scara2.bError 就会被触发。见下图: file:///C:/Users/ADMINI~1.WIN/AppData/Local/Temp/msohtmlclip1/01/clip_image011.jpg 说明一下:这个波形图是我在程序内把插补器后的SMC_TRAFO_Scara2.bError给屏蔽后路的曲线。可以看出,插补器工作的第一时间输出了一个SMC_TRATO_Scara2.bError。 但是这个点又是SMC_TRAFOF_Scara2自己计算得来的,所以是自己的反解打了自己反解一个大嘴巴子! 这是一个BUG! 希望这个分享能给将来要做或正在做两轴Scara的朋友有所帮助! 想知道我是怎么解决的吗?可以发贴哦!
|