线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
ExtruderSpeed()功能,用于3D打印与ABB IRB120
# 1
你好!我目前正在用ABB IRB120做一个3D打印项目。对于挤出机,我使用arduino Mega/RAMPS进行挤出机控制和保持控制。我注意到,在生成RAPID代码时,roboDK将g代码中的E值转换为一个名为“ExtruderSpeed()”的函数,该函数似乎设置了挤出速度而不是how many毫米长丝挤出如下面的部分所示

代码:
MoveL[[-0.000, 0.000, 0.350),(0.00000000, 0.00000000, -1.00000000, 0.00000000),(1, 1, 1,0)、(9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],[130.00,500,5000,1000],z1, IRBpelletextruder, \ WObj: = Frame2;
ExtruderSpeed 0.000;
MoveL[[-0.000, 0.000, 0.350),(0.00000000, 0.00000000, -1.00000000, 0.00000000),(1, 1, 1,0)、(9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],v40, z1, IRBpelletextruder, \ WObj: = Frame2;
ExtruderSpeed 13.000;
,123.450 MoveL[[147.614, 0.350),(0.00000000, 0.00000000, 1.00000000, 0.00000000),(1, 1, 1,0)、(9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],[130.00,500,5000,1000],z1, IRBpelletextruder, \ WObj: = Frame2;
ExtruderSpeed 0.000;
,123.450 MoveL[[147.614, 0.350),(0.00000000, 0.00000000, 1.00000000, 0.00000000),(1, 1, 1,0)、(9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],v40, z1, IRBpelletextruder, \ WObj: = Frame2;
,123.450 MoveL[[147.614, 0.350),(0.00000000, 0.00000000, 1.00000000, 0.00000000),(1, 1, 1,0)、(9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],v30, z1, IRBpelletextruder, \ WObj: = Frame2;
ExtruderSpeed 3.000;
,120.891 MoveL[[149.933, 0.350),(0.00000000, 0.00000000, 1.00000000, 0.00000000),(1, 1, 1,0)、(9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],v30, z1, IRBpelletextruder, \ WObj: = Frame2;
,120.432 MoveL[[150.392, 0.350),(0.00000000, 0.00000000, 1.00000000, 0.00000000),(1, 1, 1,0)、(9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],v30, z1, IRBpelletextruder, \ WObj: = Frame2;
,118.115 MoveL[[152.948, 0.350),(0.00000000, 0.00000000, 1.00000000, 0.00000000),(1, 1, 1,0)、(9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],v30, z1, IRBpelletextruder, \ WObj: = Frame2;
,117.704 MoveL[[153.450, 0.350),(0.00000000, 0.00000000, -1.00000000, 0.00000000),(1, 1, 1,0)、(9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],v30, z1, IRBpelletextruder, \ WObj: = Frame2;
,115.647 MoveL[[156.222, 0.350),(0.00000000, 0.00000000, 1.00000000, 0.00000000),(1, 1, 1,0)、(9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],v30, z1, IRBpelletextruder, \ WObj: = Frame2;
,115.287 MoveL[[156.762, 0.350),(0.00000000, 0.00000000, 1.00000000, 0.00000000),(1, 1, 1,0)、(9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],v30, z1, IRBpelletextruder, \ WObj: = Frame2;
,113.513 MoveL[[159.722, 0.350),(0.00000000, 0.00000000, -1.00000000, 0.00000000),(1, 1, 1,0)、(9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],v30, z1, IRBpelletextruder, \ WObj: = Frame2;
,113.206 MoveL[[160.295, 0.350),(0.00000000, 0.00000000, 1.00000000, 0.00000000),(1, 1, 1,0)、(9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年9 e + 09年]],v30, z1, IRBpelletextruder, \ WObj: = Frame2;

有什么办法可以避免这种情况吗?或者我需要更改的选项?因为当我用软件中包含的3D打印示例生成代码时,它似乎将G代码中的E值翻译为与要挤出的长丝毫米有关的数字,而不是如下段所示的设置速度。

代码:
rdkSpeed: = (1000.0,500, 1000.0,500);
MoveAbsJ [[29.080182,61.286059,29.900204,-150.914601,91.036706,-179.423374],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj;
rdkSpeed: = (83.3,500, 83.3,500);
MoveL [[-59.027,-59.027,5.000],[0.00000001,0.00000000,1.00000000,-0.00000001],[0,-2,-2,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj;
挤出机(1);
MoveL [[-59.027,-59.027,5.000],[0.00000001,0.00000000,1.00000000,-0.00000001],[0,-2,-2,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj;
挤出机(0.000);
rdkSpeed: = (130.0,500,130.0,500);
MoveL [[-59.027,-59.027,10.000],[0.00000000,0.00000000,1.00000000,0.00000000],[0,-2,-2,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj;
挤出机(-2.000);
rdkSpeed: = (40.0,500, 40.0,500);
MoveL [[-59.027,-59.027,10.000],[0.00000000,0.00000000,1.00000000,0.00000000],[0,-2,-2,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj;
挤出机(0.000);
rdkSpeed: = (130.0,500,130.0,500);
MoveL [[-59.027,-59.027,10.000],[0.00000000,0.00000000,1.00000000,0.00000000],[0,-2,-2,0],rdkExtax], rdkSpeed, rdkZone, rdkTool, \WObj:=rdkWObj;
挤出机(2.000);
rdkSpeed: = (40.0,500, 40.0,500);

这是由于Slic3r吗?还是《RoboDK》中的某个场景?请让我知道!谢谢你!
# 2
ABB IRC5机器人控制器的默认后置处理器实现了将挤出机位置转换为速度(您目前看到的)的示例。这是根据机器人的速度和点与点之间的距离计算出来的。

你可以很容易地改变这种行为在后处理器通过做这两个修改:
注释对new_move的调用(第625行)。这是实现速度示例的部分。
当检测到Extruder调用时,注释返回命令(在RunCode中,第820行)

见ABB IRC5后置处理器附件。


附加文件
. py ABB_RAPID_IRC5_Extruder.py(大小:44.42 KB /下载:72022世界杯国家队名单29)
# 3
(05-30-2019, 11:47 pm)艾伯特写道:ABB IRC5机器人控制器的默认后置处理器实现了将挤出机位置转换为速度(您目前看到的)的示例。这是根据机器人的速度和点与点之间的距离计算出来的。

你可以很容易地改变这种行为在后处理器通过做这两个修改:
注释对new_move的调用(第625行)。这是实现速度示例的部分。
当检测到Extruder调用时,注释返回命令(在RunCode中,第820行)

见ABB IRC5后置处理器附件。

非常感谢!
# 4
亲爱的艾伯特:
我正在用发那科R30iA做一个3D打印项目。
我使用Slic3r来生成G代码。G代码中的E指令表示要挤出多少mm的长丝。
但是,RoboDK没有将E值转换成以mm/s为单位的挤出速度,如附件所示。
如何将挤出长度转换为挤出速度???

非常非常感谢!

Loaferhit


附加文件 缩略图(s)

# 5
嗨Loaferhit,

我认为你没有理解E值的正确含义。
它代表了你的挤出机需要喂多少长丝,而不是机械臂模具(EOAT)的速度。
实际挤出机相对于零件的速度为60毫米/秒,这很可能是以前由G-Code设置的。

现在,RoboDK正在将挤出机的值转移到机器人控制器,这样你就可以创建一个子程序来捕捉这个值,并驱动你的挤出机内部电机,这样它就可以在两点之间提供适量的灯丝。

希望它能帮助你更好地理解这个过程。

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


# 6
杰里米是对的。E值是灯丝穿过打印头齿轮的距离。然后,F值给出与喷嘴出口流速相关的打印速度,根据所有切片参数(层宽度,高度,挤出倍率等)计算出E值。F也是RoboDK用来设置TCP速度的值(使用指令“SetSpeed()”)。

由于E值被捕获并在RoboDK程序指令中抛出,作为一个名为“Extruder()”的函数调用,您需要在发那科后处理器的函数“RunCode()”中创建一个if,并管理您正在使用的打印头控制器的任何I/O或信号接口编程,并将此E值转换为您的需求。实际上,在RoboDK的文档中有一个非常简单的教程,我根据自己的需要遵循并在此基础上构建://m.sinclairbody.com/doc/en/Robot-Machinin...rint3Dpost

不幸的是(或幸运的是),没有一种方法可以做到这一点。在我们的实验室,我们使用发那科控制器上的I/O端口在每次挤出开始时发送E值,作为“机器人速度与喷嘴出口速度”的相同比率,并且每次该比率发生变化(因此我们不会每次都有E值时发送信号)。此外,就像我在另一个线程中提到的那样,我们使用发那科选项TCPP(速度预测)来修改挤出倍增器,以避免在机器人减速或加速时过度挤出。

我希望这个简短的解释对你有所启发,如果你有任何问题,请随时提问。

JFCh
# 7
你好,亲爱的RoboDK社区,

我也在做一个3d打印项目,但使用的是Yaskawa-H50机器人。我的问题实际上是我的g代码包含E值,但在生成相应的JOB代码时,RoboDK没有将g代码中的E值转换为挤出/丝料进给速度的函数。

所以我的问题是,我怎样才能控制进给的速度对应于机械臂的速度?

提前感谢!
奥托


附加文件 缩略图(s)

# 8
嗨,奥托,

这是因为Motoman后处理器被限制为7个字符,任何超过7个字符的内容都将被截断。
你能做的就是进入你的“3D打印项目”中的“项目事件”。
在右边,你会看到“挤出(%1)”,只需输入“E(%1)”,你只保存了6个字符的数字。

如果有帮助,请告诉我。
我从来没有在Motoman上使用带参数的job调用,所以我不知道确切的语法是什么。
如果需要的话,我可以帮你。

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


# 9
你好杰里米,

谢谢你的回答。是的,理论上是可行的。下周我要在机器人上测试一下。

我得到的数字代表了每秒有毫米的细丝。不是吗?
当答案是肯定的,这意味着,我必须找到一个方程之间的数字和我的挤出电机的转速。
不管怎么说,我觉得速度太快了比如每秒900毫米的细丝。


附加文件 缩略图(s)

嗨,奥托,

你应该在论坛的其他地方看看,其他人已经发表了关于这个主题的文章。
一般来说是速度,但在你的情况下,似乎是累积长度。
切片器中的参数当然可以改变这一点。

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






浏览此主题的用户:
1客人(年代)