线程评级:
在线编程和连接挤出机(Duet-2-Board), RoboDK和KUKA KRC4
# 1
问题
嗨,所有论坛成员和亲爱的RoboD188bet体育官网体K团队,

我正在研究一个3D打印项目,用连接到kka机器人(KR-210 L-150-2与KRC4)的挤出机进行打印。

这篇文章有点长,但请完整阅读。它包含了很多来自你们文档的RoboDK代码,但是我必须把它粘贴到这里,这样你们就知道我到底在说什么。

我们目前所取得的成就:
  • 制造所有物理部件
  • 创建了RoboDK工具和环境所需的所有CAD部件
  • 连接挤出机与二重唱2板和所有挤出机电子
  • 成功连接RoboDK和KRC4(我们可以在线移动机器人)
现在我正在做这个项目最重要的部分:
我需要将挤出机(通过Duet-2-Board控制)的物料挤出速度/步骤与TCP的移动速度同步。

这就是为什么我首先必须编辑您的kRC4-Post-processor,如您的文档中所示:
//www.w5838.com/doc/en/Robot-Machining.html#Print3D

在RunCode中,我们添加了(如你所建议的)这部分:
代码:
def RunCode(self, code, is_function_call = False):
如果is_function_call:
如果code.startswith(挤出机():
#截取挤出机命令。
#如果程序调用是Extruder(123.56)
#我们将数字提取为字符串
#并将其转换为数字
自我。NEW_E_LENGTH = float(code[9:-1])
#跳过程序调用生成
返回
其他:
自我。Addline (code + "()")
其他:
#输出程序代码
self.addline(代码)

你的文档然后继续:


我们需要触发一个名为new_move伴随着每一个新的线性运动指令。我们可以在MoveL命令的开头添加这个调用:
代码:
def MoveL(self, pose,关节,conf_RLF=None):
""" "添加一个线性运动""" "
#处理3D打印挤出机集成
self.new_move(构成)
...
因为我还不是那么喜欢Python,我仍然在试图弄清楚你定义的所有不同的函数/代码片段。
我在这里找到了一些解释://www.w5838.com/doc/en/PythonAPI/postprocessor.html#post-processor-methods

实际上,我不知道这里可以用什么代码
代码:
self.new_move(构成)

您能给我一些提示吗?我该怎么做?到哪里去查找合适的信息?

为了能够在这里提供帮助,您可能还需要一些关于我们连接的更详细信息:
  1. Windows-Notebook与RoboDK通过以太网到一个开关
  2. Duet-2-Board(其连接到步进电机的挤出机)也通过以太网开关
  3. 开关连接到KRC4通过以太网
在文档中定义了kaka - krc4的模拟输出。
在本例中,我们既不使用KRC4的模拟输出,也不使用KRC4的数字输出,但我们希望通过使用第三个静态IP将Duetboard的以太网电缆连接(TCP通信)到RoboDK和KRC4。
例如:
  • KUKA-IP: 192.168.3。101
  • RoboDK-PC-IP: 192.168.3。102
  • Duetboard /挤出机:192.168.3。103
我们还发现了这段代码片段,这可能对我们有帮助,但我们不知道如何正确地集成它:
https://wiki.python.org/moin/TcpCommunication
所有我们需要的螺旋桨同步挤出机步骤与库卡速度作为一个字符串与E-Value,这可以直接到二重板控制步进电机。
这意味着G-Code的E-Value实际上不需要转换为Kuka-code,但它可能仍然是一个良好的同步所必需的,你认为呢?

你会,如果是,你会如何在krc4后处理器中正确定义这个连接?

我的问题是:我们必须在后置处理器中定义它还是在RoboDK中的其他地方定义它,因为挤出机也可以直接通过RoboDK控制。但它可以利用机器人的实际位置和/或速度来获得最高精度。
  • 直接从RoboDK发送到挤出机的优势:库卡上没有内存限制
  • 在库卡上运行的优势:可能会更好的同步/更少的延时。


在后期处理器中有一个连接部分:
代码:
setDO(self, io_var, io_value):
"""设置数字输出"""
If type(io_var) != str: #如果io_var是数字,则设置默认变量名
io_var = '$OUT[%s]' % str(io_var)
If type(io_value) != str: #如果io_value是一个数字,则设置默认变量值
如果io_value > 0:
io_value = 'TRUE'
其他:
io_value = 'FALSE'

#此时,io_var和io_value必须是字符串值
自我。Addline ('%s=%s' % (io_var, io_value))
在这里,我们可能必须定义一个tcp连接,但我们不知道如何定义。
如果你能提供一些关于如何更新RoboDK中的代码以及在哪里更新的信息,那将是极大的帮助!

先谢谢你。
顺便祝你圣诞快乐,新年快乐!




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