线程评级:
使用API模拟waitDI的问题
# 1
你好,

我有一些问题时,模拟语句waitDI使用RoboDK API。

我附加了一个rdk文件。在车站里有一个python程序叫做“IO Test”,这是我有问题的一个。Prog2只是用于使用GUI检查WaitDI指令(工作正常)。

当执行“IO Test”时,机器人应该在模拟过程中等待一些DI的激活,但它只是跳过该指令。SetDO工作正常,因为我能够看到输出如何改变值,同时模拟。

我将非常感激在这个问题上的任何帮助。

谢谢你!

艾马尔
我认为我没有正确地制作rdk文件附件。我把它附在这篇文章里。


附加文件
.rdk IO Test.rdk(大小:156.58 KB /下载:241)
# 3
你好,艾马尔,
谢谢你的来信。
RDK.waitDI()函数暂时不能从API中使用,用于模拟目的。这是我们将来一定会改进的。然而,有一种简单的方法可以绕过它。
我们可以使用RDK.getParam('in1')检索站点参数,并通过在弹出的消息框中单击' ok '来模拟DI被用户设置为1。通过点击“取消”,将会引发一个异常。下面程序中的注释将进一步解释。

代码:
def WaitForBox ():
"""等待数字输入1为1。该功能将在模拟模式下工作以及生成机器人程序。
为了模拟,我们运行第一个if语句下的语句,它模拟一个waitDI,而else语句下的代码用于生成机器人程序"""
robot.setDO(着干活,1)
Di_param = 'in1'
Di_value = 1
Di_timeout = 2 #timeout in seconds
if RDK.RunMode() == RUNMODE_SIMULATE:
Tstart = time.time()
getparam (di_param) != di_value:
#如果我们想要一个超时,检查超时:
如果di_timeout >= 0且time.time() > (tstart + di_timeout):
#选项继续:
if mbox("数字输入超时:" + di_param + "\nContinue?"):
打破
raise Exception("数字输入超时" + di_param)
其他:
机器人。添加waitDI(di_param, di_value) #,使用waitDI生成机器人程序
robot.setDO(着干活,0)


这里另一个重要的事情是检查RDK.RunMode(),否则您将无法为机器人生成程序。 找到所附的.rdk文件。

希望这能有所帮助。


附加文件
.rdk IO Test.rdk(大小:156.67 KB /下载:239)




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