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