线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
Python API: setDO和waitDI会导致崩溃
# 1
你好,
我想使用API设置数字输入或输出指令,但当我尝试时,RoboDK总是崩溃。
为了测试的目的,我创建了一个包含程序调用的程序(见附件)。这些程序调用触发一个python脚本,python脚本应该管理IO指令。下面是python代码:

代码:
从robolink导入*

RDK = Robolink()

Itemtype = 2
机器人= RDK。产品(‘KUKA KR 6 R900’,产品类型)

Io_var = 6
Io_value = 1

robot.setDO (io_var io_value)
机器人是连接的,通常IO指令工作正常,但如果由python脚本执行,则不正常。出于某种原因,RoboDK不能这样处理指令。是RoboDK不支持这个程序,还是我的编程有问题?如果我有什么不清楚的地方,请告诉我。


附加文件 缩略图(s)

# 2
你好大卫,

这应该行得通。我无法重现坠机过程。

如果你想操作机器人的输入/输出(Run on robot选项),你可以在操作robot变量之前触发robot. connect()。

另一种选择是添加以下代码片段,以便在连接到机器人时强制更改运行模式:

代码:
status, message = robot.ConnectedState()
if status == ROBOTCOM_READY:
# RDK.setRunMode (RUNMODE_RUN_ON_ROBOT)
机器人连接()#这已经改变了运行模式

您能提供一个重现崩溃的RDK项目吗?

艾伯特
# 3
嗨,阿尔伯特,
这可能已经是解决方案了。我不调用robot.Connect()或RDK。setRunMode在python脚本中,因为机器人已经通过GUI连接,我希望这是足够的。我明天试试你的方法,然后带着结果回来。
非常感谢。
# 4
我尝试了几个版本,但没有一个是有效的。附带的RDK项目包含五个程序,它们调用五个略有不同的python脚本,它们都会导致RoboDK崩溃。请注意,我将您建议的代码从RUNMODE_RUN_ON_ROBOT更改为RUNMODE_RUN_ROBOT。


附加文件
.rdk KRC_DO_online.rdk(大小:318.47 KB /下载:32022世界杯国家队名单28)
# 5
发生崩溃是因为您提供的机器人名称不存在:
机器人= RDK。产品(‘KUKA KR 6 R900’,产品类型)
如果指定一个名称,则必须有名称匹配(在本例中为KUKA KR 6 R900 six)。

或者,你可以只提供一个空字符串:
机器人= RDK.Item (itemtype”)

我们刚刚发布了一个新的更新,以避免RoboDK崩溃。但是,您仍然会在代码中得到一个错误,因此最简单的方法是在获得机器人时提供一个空字符串。
# 6
很抱歉打扰你,谢谢你调查这个问题。在其他的脚本中,我得到了这个正确的,但显然没有复制粘贴它在这种情况下…




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