线程评级:
库卡KRL的python
# 1
亲爱的论坛用户:

我想知道是否有可能在我的python脚本中包含KUKA KRL代码。用KRL我会写:BAS ( #工具 ,2)激活Tool2。现在我想知道如何用RoboDK API激活工具?

我试着想出一个变通办法。我想在Python脚本中创建一个KUKA程序,传递KRL命令并运行该程序。这并没有起作用。也许我错误地解释了AddProgram()函数。这些是我在python脚本中尝试过的几行代码:

prog = RDK.AddProgram('Set_Tool_Program')
prog.RunInstruction (BAS(#工具,2),INSTRUCTION_INSERT_CODE)
prog.RunCode ()
prog.WaitFinished ()


有人知道如何合并KRL吗?”BAS (#工具, 2)命令进入我的python脚本?

提前谢谢你!
(附件= 1670写道:KatCla pid='7083' dateline='1607094418']亲爱的论坛用户,

我想知道是否有可能在我的python脚本中包含KUKA KRL代码。用KRL我会写:BAS ( #工具 ,2)激活Tool2。现在我想知道如何用RoboDK API激活工具?

我试着想出一个变通办法。我想在Python脚本中创建一个KUKA程序,传递KRL命令并运行该程序。这并没有起作用。也许我错误地解释了AddProgram()函数。这些是我在python脚本中尝试过的几行代码:

prog = RDK.AddProgram('Set_Tool_Program')
prog.RunInstruction (BAS(#工具,2),INSTRUCTION_INSERT_CODE)
prog.RunCode ()
prog.WaitFinished ()


有人知道如何合并KRL吗?”BAS (#工具, 2)命令进入我的python脚本?

提前谢谢你!

大家好,

我可以运行我的python脚本。为了创建和运行程序,我使用了以下几行代码:

RDK.AddProgram(“Set_Tool_Program”)
学监= RDK.Item (Set_Tool_Program, ITEM_TYPE_PROGRAM)
prog.RunInstruction (BAS(#工具,2),INSTRUCTION_INSERT_CODE)
问= prog.RunCode ()
prog.WaitFinished ()
打印(问)

因为我的程序只包含一个命令(更改活动工具),而函数RunCode()返回1,所以我认为理论上该指令应该能够成功执行。但实际上它并没有被执行,因为我的活动工具仍然是相同的。


现在我想问项目树中的程序可以执行哪种指令?
附在项目树中的程序片段。


任何帮助我都很高兴!


附加文件 图像(年代)

# 3
我猜你用的是机器人司机。大多数机器人控制器不支持使用驱动程序定制指令。

然而,你可以在你的RoboDKSync文件中定制一个程序调用触发器,如下所述:
//www.w5838.com/forum/Thread-Program-...29#pid4529

因此,您可以将程序调用(例如program(2))链接到BAS(#TOOL,2)。
# 4
(附件= 1705写道:Albert pid='7211' dateline='1607963965']我假设你正在使用机器人驱动程序。大多数机器人控制器不支持使用驱动程序定制指令。

然而,你可以在你的RoboDKSync文件中定制一个程序调用触发器,如下所述:
//www.w5838.com/forum/Thread-Program-...29#pid4529

因此,您可以将程序调用(例如program(2))链接到BAS(#TOOL,2)。

亲爱的艾伯特,

非常感谢您的回复!

我不完全确定我是否理解正确,但我修改了RoboDKSync文件,如附件所示。
用我的python脚本,我尝试运行“RunCodeCustom”命令,但我不确定如何传递程序ID,以便在同步文件中选择正确的CASE。

根据你的建议,我尝试了一下:
机器人。RunCodeCustom (“项目2”,INSTRUCTION_CALL_PROGRAM)
以便进入CASE 2。

这是行不通的。看来我又在编程了。
能否帮我传递一下程序id,以便在Sync文件中选择正确的CASE ?还是为了消除我的误解?

非常感谢!


附加文件 缩略图(s)

# 5
你能试着调用RunInstruction而不是RunCodeCustom吗?

例如:
代码:
机器人。INSTRUCTION_CALL_PROGRAM RunInstruction(“项目2”)

这应该进入CASE2。请记住,这个开关盒在另一个开关盒里面。
# 6
(2020年12月26日下午03:00)艾伯特写道:你能试着调用RunInstruction而不是RunCodeCustom吗?

例如:
代码:
机器人。INSTRUCTION_CALL_PROGRAM RunInstruction(“项目2”)

这应该进入CASE2。请记住,这个开关盒在另一个开关盒里面。

艾伯特你好,
再次感谢您的回复!

我会试试你的建议。谢谢你!

澄清误解:你在另一个线程中提到我不能按名称触发程序,所以“程序2”是固定语法?我不需要调整"程序"吗?只是下面的整数,取决于输入什么大小写?我的RoboDKSync文件是默认文件。我还需要调整什么吗?

你说“这个开关盒在另一个开关盒里面”是什么意思?我是否需要自己设置外部(第一)开关外壳的对应外壳(case 13 => COM_ACTION = 13) ?在我的理解中:调用“RunInstruction(program_id,…)”触发(进入)第一个开关case的第13个case,并使用program_id选择第二个开关case的case。不是这样吗?

谢谢你的帮助!




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