Move
將手臂從目前位置到指定位置之間進行直線內插動作。
格式
Move 目標坐標 [ROT] [ECP] [CP] [Till | Find] [!平行處理!] [SYNC]
參數
- 目標坐標
- 以點數據指定目標位置。
- ROT
- 以工具姿態變化為優先,決定動作速度和加減速度。可省略。
- ECP
- 用於指定外部控制點的動作。可省略。(唯有使用ECP選項時方可啟用)
- CP
- 指定路徑運動。可省略。
- Till | Find
- 用於記述Till或Find運算式。可省略。
Till | Find Till Sw(運算式) = {On | Off} Find Sw(運算式) = {On | Off}
- ! 平行處理 !
- 可增加平行處理陳述式,以便在動作中可執行I/O等命令。可省略。
- SYNC
- 用於預約動作命令。在以SyncRobots開始動作之前,機器人不進行動作。
說明
Move用於將手臂從目前位置直線移動至目標坐標。Move可讓所有關節同時開始動作、同時停止。執行Move命令前,應事先對目標坐標進行教導。以AccelS命令控制Move的加減速。以SpeedS命令控制Move的速度。若用SpeedS設定的值超過任何一個各關節容許速度,則關閉馬達勵磁,並停止機器人。
Move的速度和加減速度分別使用SpeedS和AccelS的設定值。關於速度和加減速度的關係,請參閱「注意」項目中的「連同CP使用Move」。但是,指定ROT修飾參數時的速度和加減速度分別使用SpeedR和AccelR的設定值。此時,SpeedS和AccelS的設定值即呈停用狀態。
通常,移動距離為「0」且只進行姿態關節動作時,會發生錯誤。可透過附加ROT修飾參數並以工具姿態變化的加減速為優先,進行毫無錯誤的動作。附加ROT修飾參數時,若姿態無變化且移動距離不是「0」,會發生錯誤。
此外,工具姿態變化速度對於移動距離過大時,或指定的旋轉速度超過機械手的極限時,也會發生錯誤。屆時,請降低指定速度,或附加ROT修飾參數並以姿態變化的加減速度為優先。
使用ECP時,工件會在與指定ECP編號因應的外部控制點上直線移動。此時的尖端關節中心不會沿著直線。
若要讓機器人在尚未完成Move動作前減速並停止,使用者可使用Till修飾詞指定該條件。在此指定的條件為,使用Sw命令檢查其中一項輸入位元。使用者檢查輸入為ON/OFF,並按照指定的條件停止手臂。此功能類似於輸入條件成立後便停止Move這樣的插斷。如果在Move動作期間輸入條件未成立,手臂就會到達以目標坐標指定的位置。
可省略Till修飾詞。關於Till修飾詞的詳細內容,請參閱Till命令。
注意
無法用Move進行的動作
無法在執行動作之前確認動作範圍。因此,即便目標坐標位置在容許動作範圍之內,當來到此處的軌道通過容許動作範圍之外時,手臂就會突然停止,對伺服施加衝擊,而有發生障礙的危險。為防止發生這種情況,在高速執行Move前,請先以低速確認動作範圍。也就是,即便目標坐標在手臂動作範圍之內,以Move動作來到此處的軌道位於手臂容許動作範圍之外時,便無法運作手臂。
連同CP一起使用Move
若使用CP參數,則在開始減速的同時,移至下一個陳述式控制動作命令。其便利之處在於,使用者可連接數個動作命令,以恆定的速度執行連續動作。在未指定CP的Move命令時,手臂一定會減速,並停於指定的目標坐標上。
向Move指示適當的速度和加減速度
請注意,SpeedS和AccelS命令雖用於指定Move動作中的機械手速度和加減速度,但SpeedS和AccelS屬於對直線以及曲線動作的命令。Speed和Accel命令適用於PTP動作。
常見錯誤
欲執行直線移動距離為0的動作時
Move若執行僅變更4自由度機器人(水平多關節型(包含RS系列)等)的U坐標值或6自由度機器人(垂直6軸型(包含N系列))的U、V、W坐標值的動作,則會發生錯誤。此時,請使用ROT參數。
超過關節限制速度的錯誤
在指示動作中,只要有1個關節超過容許速度,就會發生超速錯誤。發生馬達超速錯誤時手臂即停止動作,並關閉馬達勵磁。
RS系列執行了通過原點附近的動作時
RS系列若用Move執行通過原點附近的動作,可能會發生超速錯誤。針對通過原點附近這樣的動作,請執行以下對策。
- 請降低SpeedS的設定速度。
- 請變更為不通過原點附近的路徑。
- 請使用Go等PTP動作,以代替Move。
參照
AccelS、Arc、CP、Go、Jump、Jump3、Jump3CP、SpeedS、Sw、Till
Move範例
以下範例是讓手臂執行P0~P1的PTP動作,然後再以直線返回到P0的簡易範例。在程式下半段輸入位元2變為ON之前,手臂朝P2直線移動。若在動作中輸入位元2變成ON,即便手臂尚未到達P2,也會減速並停止,然後執行以下程式命令。
Function movetest
Home
Go P0
Go P1
Move P0
Move P2 Till Sw(2) = On
If Sw(2) = On Then
Print "Input #2 came on during the move and"
Print "the robot stopped prior to arriving on"
Print "point P2."
Else
Print "The move to P2 completed successfully."
Print "Input #2 never came on during the move."
EndIf
Fend
以下是連同CP一起使用Move的範例。下圖所示為從P100開始的圓弧軌道。P100~P101為直線移動,從P101開始進行圓弧移動,通過P102向P103繼續繪製圓弧。P103~P104呈直線動作,在此期間減速並停止。請注意,在P104停止之前,不會在中途點減速。在以下函式中編寫這種動作的程式。
Function CornerArc
Go P100
Move P101 CP '不在P101停止
Arc P102, P103 CP '不在P103停止
Move P104 '在P104減速並停止
Fend