线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
机器人读取速度
# 1
你好!

我的设置:KRC4控制器和库卡KR16-2机器人。

我试图从我的机器人读取速度(prog.speed_mm),因为我想改变TCP(工具中心点)的速度,当它处于最高速度时,但保持速度低于100毫米/秒。有人能帮我一下吗?
在我的代码中,当TCP速度高于100mm/s时,我试图修改jointspeed。以下是我目前掌握的信息:


提前感谢!
Stefan


代码:
迭代查找速度指令(INS_SPEED)并将其更新为75 mm/s。
从robolink导入*

RDK = Robolink ()
prog = RDK。ItemUserPick('Machining2', ITEM_TYPE_PROGRAM) #按名称打开正确的程序

遍历程序中的所有指令
for i in range(prog.InstructionCount()):
ins_name, ins_type, *_ = prog.Instruction(i)

#检查是否为“设置速度”指令
如果ins_type == INS_TYPE_CHANGESPEED:
print(“正在更新指令%i”%i)

如果食物。speed_mm >= 100
#删除指令
prog.InstructionDelete(我)

#选择之前的指令(之后会添加任何新指令)
张prog.InstructionSelect (max (0))

添加新的速度指令
prog.setSpeed (*, 100)
# 2
您共享的代码看起来不错。你有什么问题吗?

对于你不想修改的速度,你应该使用-1和setSpeed:
prog.setSpeed (*, 100)

此外,如果你使用setParam修改现有的指令,它会更快:
//www.sinclairbody.com/doc/en/PythonAPI/exam...structions

例子:
代码:
当ins_id < ins_count:
获取与指令相关的特定数据
#这个操作总是返回一个dict (json)
instruction_dict = prog.setParam(ins_id)

#打印指令数据
# indentted_values = json。转储(instruction_dict,缩进= 4)
print("\n\n指令:" + str(ins_id))
打印(instruction_dict)

注意:每条指令的类型是唯一的,不能改变。
#然而,将Type值设置为-1将删除该指令(与InstructionDelete()相同)
如果instruction_dict['Type'] == INS_TYPE_CHANGESPEED:
#降低速度:
newvalues = {'Speed': 50}
if instruction_dict['Speed'] > 50:
new_speed = 0.8 * instruction_dict['Speed']
newvalues = {'Speed': new_speed}
打印(“减速到:%”)。3f" % new_speed)

#更新指令数据
掠夺。setParam (ins_id newvalues)
如果您不提供新名称,# RoboDK可能会更改指令名称
# 3
Albert,非常感谢你的帮助!
你提供的链接解决了我的问题。

然而,-1不起作用。

似乎setParam指令修改Json文件,你能告诉我这个文件位于哪里吗?
通过修改这个Json文件,你能纠正机器人的路径吗?例如:移动所有Z +20mm?

提前感谢!




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