文章目录
- openpnp - 执行M400命令后,超时错误的解决方法
- 概述
- 笔记
- 备注
- END
openpnp - 执行M400命令后,超时错误的解决方法
概述
在X轴齿隙校正时,出现M400的命令超时错误。能重现。
查了资料,有人遇到过。看了github上的一个帖子(2017年)有讨论。
问题原因:
- openpnp无法确定一个命令执行完,到底要花费多长时间,只有控制器知道,所有只能设置命令超时值的参数来取这个参数。
- openpnp软件有bug,用了命令超时这个参数后,并没有结合轴的速度来估算机械动作停止的时间。
应该在预估机械动作停止后,再看看是否命令超时,否则会导致这个超时参数不准。
因为根据轴的运动速度的不同,动作需要的时间也不同。应该先根据轴的速度,来预估动作结束时间,然后在机械动作预估结束后,再用命令超时时间来看是否命令回包超时。这可以说是一个bug, 也可以说不是一个bug.
现在已经过了6年,官方没改这块。应该觉得这不是一个bug.
那个帖子提出的解决方法:将命令超时,设置为一个特别大的值(e.g. 100秒)。
试了一下好使。
笔记
我先改的命令等待时间,由默认的50ms改为了150ms, 对M400命令超时无帮助。
然后改的命令超时时间,有默认的5秒改为了60秒,这时就不会出现M400命令的超时错误了。
备注
M400命令超时,不局限于齿隙校正,移动等命令。
只要需要花时间来完成的命令都可能会遇到M400命令超时的情况。
在官方头铁的情况下,作为用户,只能是将命令超时值改的大一些(根据自己设备情况)。