线程评级:
等待真正的机器人在线编程
# 1
你好,

我在用在线编程进行3D打印。
我使用3D打印配置模块生成了RoboDK程序。此外,我正在使用我的计算机(windows)和挤出机控制器(RAMBo板上的马林固件)之间的串行连接来发送挤出机控制的g代码。
因为我需要建立一个与Marlin的串行连接,所以我使用了一个单独的Python程序来发送g码。因此,我在RoboDK中使用了一个' extrder .py'程序来从RoboDK程序中获取回调,并将它们转储到数据库中,然后由该单独的Python程序读取。
现在,我的问题是,当我开始运行RoboDK主程序时,RoboDK不会等待实际的机器人完成线性移动,然后发送挤出机命令。这使得一切都不同步。

从附件的照片中可以看到,程序的一部分(4段路径中的一层)的执行顺序是这样的:move54将机器人移动到层的开始,然后有一个挤出命令和路径的第1段的move55命令。但是当move55之后没有等待时,问题就开始了,RoboDK发送了另一个挤出命令,对应于路径的第二段。当这三个命令(图中为2)全部执行后,RoboDK等待机器人完成移动,然后执行MoveL56和第3个挤出命令。它继续像这样不同步。


我的方法是在Extruder()回调之前添加一个命令/指令,以等待机器人完成任务。我使用了Python API的WaitBusy(), WaitMove()和WaitFinished()方法,但无法实现预期的行为。

如果你能帮我解决这个问题,我将不胜感激。我已经纠结了好几个星期了。用库卡机器人就快打印了,但做得不好,真是令人沮丧。如果还需要更多信息,请告诉我。

谢谢,
在我进入这个问题之前,你能读一下我对你上一个问题的回答吗?

杰里米
有关RoboDK及其功能的有用信息,请访问我们的在线文档通过观看我们的教程Youtube频道


# 3
(12-15-2021,晚上11时)杰里米写道:在我进入这个问题之前,你能读一下我对你上一个问题的回答吗?

杰里米

嗨,杰里米,

谢谢你的其他回答。
我知道离线编程方法可能更有前途。但我为在线编程开发了所有东西,只有一个问题使它不同步。
你知道如何让RoboDK在调用回调函数之前等待完成机器人移动吗(如我的第一篇文章所述)?这将立即推进我的项目,因为我可以成功地3D打印对象,并继续到我的研究的下一步…

谢谢你!
# 4
你明白为什么3D打印不能实现与驱动器?
有关RoboDK及其功能的有用信息,请访问我们的在线文档通过观看我们的教程Youtube频道


# 5
(01-04-2022, 09:05 pm)杰里米写道:你明白为什么3D打印不能实现与驱动器?

从来没有人说过3D打印驱动器是不可能的。握手可能不太顺利,现在我不介意结果不是很理想。如果解决了RoboDK执行顺序中的这个问题,为什么不能实现呢?还有别的原因吗?
这就像用电脑通过USB线在FDM 3D打印机上运行GCode一样……
# 6
你应该能够完成3D打印,另一方面,你可能没有光滑的边缘,由于有限的前视功能。

如果您将挤出机命令映射到由KUKA控制器管理的外部轴,则可能实现最优结果。为此,您应该修改SRC驱动程序文件以读取通过Extruder调用传递的E数字,并使用下一个线性移动命令更新它。

如果您想阻止移动,您可以尝试将ADVANCE变量设置为0并从移动命令中删除C_DIS标志。




浏览此线程的用户:
1客人(年代)