DELAY
工业机器人指令说明:
DELAY 指令用来延时工业机器人的运动,最小延时时间为 2,单位[ms]。指令语法:Delay <motionelement><delaytime>
指令用例:
program with ROBOT
Attach ROBOT
Move ROBOT P2
Delay ROBOT 2 ‘ 延 时 2ms Print “ROBOT IS STOPPED”
Detach
end with
end program
如上述用例所示,程序首先执行 MOVE 指令,控制工业机器人 ROBOT 从当前点移动到目标点 P2,等到工业机器人移动到 P2 点后开始执行 DELAY 指令,2ms 后打印输出“ROBOT IS STOPPED”。
SLEEP
指令说明:
SLEEP 指令的作用是延时程序(任务)的执行,最短延时时间为 1,单位
[ms]。
工业机器人指令语法:
Sleep <time>
指令用例:
program
with ROBOT
Attach ROBOT
Move ROBOT P2 ‘假设该运动的持续时间为 200ms; Sleep100 ‘ 延 时 100ms
D_OUT[25]=ON
Detach
end with end program
如上述用例所示,Move 指令开始执行的同时,SLEEP 指令开始执行,我们假设 MOVE 指令执行完(工业机器人运动到 P2 点)的时间要 200ms,那么,MOVE 指令执行了 100ms 后,D_OUT[25]就会输出为 ON,此时工业机器人还未到 P2 点。然后等到工业机器人运动到 P2 点后,整个程序执行完毕,上面例子说明了华数机器人中存在运动指令和逻辑指令同时执行的情况,也就是还未到达 P2 点时,信号就输出的情形。
工业机器人DELAY 与 SLEEP 的用法
在华数 II 型控制系统中,存在运动指令(MOVE、MOVES、CIRCLE)和非运动指令(除运动指令之外的指令)两种类型的指令。这两种指令是并行执行的, 并非执行完一条指令再执行下一条。请分析下列例子:
MOVE ROBOT P1 D_OUT[30] = ON
在这个例子中,第一条指令为运动指令,第二条指令为非运动指令。在系统
中,这两条指令是并行执行的,也就是说,当机器人还未运动到 P1 点的时候,
D_OUT[30]就有信号输出了。为了解决这个问题,需要控制系统执行完第一条指 令后再执行下一条指令,此时就用 DELAY 指令。即等待运动对象 ROBOT 完成运动后再进行延时动作。所以上述例子应该改为:
MOVE ROBOT P1 DELAY ROBOT 2 D_OUT[30] = ON
SLEEP 指令通常有两种应用场合:
第一种在循环中使用,请看如下例子:
WHILE D_IN[30] <> ON SLEEP 10
END WHILE
这个例子是等待 D_IN[30]的信号,若无信号则持续循环,等到信号后结束循环向下执行。由于循环中要一致扫描 D_IN[30]的值,所以循环体中必须加入 SLEEP 指令,否则控制器 CPU 过载容易出现异常报警。
SLEEP 应用的第二种场合是输出脉冲信号。请看如下例子:
D_OUT[30] = ON SLEEP 100 D_OUT[30]=OFF
上述例子中,D_OUT[30]输出了一个宽度为 100 毫秒的脉冲信号。其中必须
加 SLEEP 指令,否则脉冲宽度太短导致实际上没有任何脉冲信号输出。
如何防止信号提前发送
根据上面的知识可知,逻辑指令和运动指令是同时执行的,所以如果需要在程序中防止信号输出,应该加入 delay 指令,防止逻辑指令提前执行。如下例:
Move robot p1 Delay robot 2
D_out[25]=on
在运动指令 move robot p1 后面加上delay robot 2 即可防止还没到达p1 点时,
d_out[25]就输出的情形。
PRODUCT RECOMMENDATION
HOT NEWS