Curve

用於建立資料和點,以自由曲線進行CP控制。定義數個點資料,並確保路徑正確。

格式
Curve 檔名, 動作曲線的開閉, 模式指定, 坐標軸數, 連續點資料指定

參數

檔案名稱
以字串指定儲存點數據的檔案名稱。副檔名固定為「.CVT」。若省略副檔名,則自動新增.CVT的副檔名。執行Curve命令,會自動建立檔案。不可指定路徑。此外,不受ChDisk等的影響。詳細內容請參閱ChDisk。
動作曲線的開閉
結束曲線動作時,指定動作曲線的開閉。此參數用於指定以下任一值。

  • C -生成的曲線為封閉曲線
  • O -生成的曲線為開放曲線
若指定開放曲線,則依Curve命令讓手臂停在連續點數據的最後點位置。若指定封閉曲線,則依Curve命令,通過最終點後仍繼續運作,讓手臂回到連續點資料的起點並停止動作。
模式指定
用於指定是否補償姿態(手臂是否朝U軸正切方向自動進行內插)。可用高階4位元指定ECP編號。
模式指定 姿態補償 ECP編號
十六進位 十進位
&H00 0 不執行 0
&H10 16 1
&H20 32 2
... ... ...
&HA0 160 10
&HB0 176 11
&HC0 192 12
&HD0 208 13
&HE0 224 14
&HF0 240 15
&H02 2 執行 0
&H12 18 1
&H22 34 2
... ... ...
&HA2 162 10
&HB2 178 11
&HC2 194 12
&HD2 210 13
&HE2 226 14
&HF2 242 15
若指定姿態補償,手臂便僅使用連續點數據起點的U軸坐標。姿態補償用於維持始終讓姿態軸在XY平面上與曲線接觸。諸如刀具那樣,屬於要持續進行正切方向控制的工具時進行指定。朝U軸的正切方向,指定要自動圓弧內插的封閉曲線時,U軸會從起點旋轉360度。因此,在執行CVMove命令前,為避免因U軸旋轉而發生錯誤,請以Range命令指定U軸動作範圍。
要使用ECP時,請在高階4位元上指定ECP編號。
若要生成顧及到包含在點資料中的附加軸位置的自由曲線,請將第9位元指定為「1」。例如,若不使用姿態補償及ECP,生成顧及到附加軸位置的自由曲線,請指定「&H100」。
以附加軸生成自由曲線時,無論機器人坐標系如何,S關節、T關節都將分別獨立地連接連續點資料。
附加軸由PG軸構成時,不會以連續點生成自由曲線,而建立在最終點動作的資料。
座標軸數
以2、3、4、6的整數指定在曲線動作中控制的坐標軸數。
  • 在未包含2 - 姿態的XY平面上生成自由曲線。(垂直6軸型(包含N系列)以外)
  • 在未包含3 - 姿態的XYZ空間生成自由曲線。(垂直6軸型(包含N系列)以外)
  • 在包含4 - 姿態的XYZ空間生成自由曲線。(垂直6軸型(包含N系列)以外)
  • 在包含6 - 姿態的XYZ空間生成自由曲線。(僅限於垂直6軸型(包含N系列))
未被選擇為控制對象的軸將維持上一次的編碼器脈衝位置,在Curve動作時不進行動作。
連續點數據指定 { 點數據|點編號(開始:結束) }​ [,輸出命令] ...
用逗號(,)分隔指定此參數的每個點數據。毫無遺漏地按升序或降序排列點資料時,可用冒號連接2個點編號進行指定(例:P (1:5))。
若要與動作同步,在中途開啟或關閉I/O輸出連接埠,可用逗號(,)分隔記述輸出命令。
如下所述,通常用逗號分隔指定連續點資料。
Curve "MyFile", O, 0, 4, P1, P2, P3, P4

或使用冒號按如下所述進行指定。

Curve "MyFile", O, 0, 4, P(1:4)

在上述範例中,使用P1、P2、P3、P4指定曲線。輸出命令可省略,在曲線動作時控制輸出操作的情况下使用。此命令可用於指定開啟和關閉I/O或記憶體I/O。在手臂通過連續點資料的特定點之後執行輸出命令。1個Curve陳述式可包含最多16個輸出命令。在以下範例中,手臂在通過P2之後執行「On 2」命令,然後手臂通過P3至P10的所有點。

Curve "MyFile", C, 0, 4, P1, P2, ON 2, P(3:10)

說明
此命令用於以指定的點資料建立可讓機器人手臂進行自由曲線CP動作的檔案,然後,將該資料儲存於控制器的檔案中。使用此命令建立的資料用於以CVMove命令執行CP動作之時。

曲線檔案被存放於控制器內的Compact Flash中。因此,若執行Curve,則發生寫入Compact Flash的操作。經常進行Compact Flash寫入操作會影響其使用壽命。建議只在必要時才執行Curve。

Curve命令用於使用三次樣條函數,獨立計算各指定點的X、Y、Z、U、V、W坐標值,並據此生成軌跡。因此,點之間的間隔或姿態變化較大時,難以預測被生成的軌跡。

不需在Curve命令前指定動作時的速度和加減速度。若是在執行CVMove之前,則可用SpeedS或AccelS等命令進行變更。

若在Curve命令參數的點組中使用本地坐標系中設定的點,則可設定通過該位置的曲線。若讓指定的點資料具有本地屬性,則可變更為Local陳述式(在Curve命令之後繼續)的本地坐標系上之點。

注意


  • 請盡可能進行姿態補償

    本公司建議盡可能進行姿態補償。尤其是使用CVMove對相同點組連續進行迴圈時,請進行姿態補償。若未進行姿態補償,在高速進行動作時,機器人有可能無法保持正確的位置。

  • 開放曲線點組的點數範圍

    為開放曲線時,請指定3~1000點。

  • 封閉曲線的點組點數範圍

    使用RC700系列、RC90系列的控制器時,封閉曲線請指定為3~1000點。

    使用T/VT時,封閉曲線請指定為3~300點。(在模擬器指定T/VT時,可動作到1000點,但在T/VT的實機環境下僅到300點為止。)

  • 點數多時,處理時間會延長

    以最大點數執行Curve命令時,開放曲線會需要數秒,封閉曲線則會需要數十秒左右的時間。

    特別是封閉曲線的處理時間較長,因此點數多時建議使用開放曲線。

    使用開放曲線製作與封閉曲線相近軌跡的範例如Curve範例2所述。

    但是,若以Curve命令產生自由曲線檔案,並以同樣的檔案進行多次CVMove動作時,只有在執行Curve命令的那一次需要上述時間。

  • 檔案相容性

    使用 Ver.7.5.1 或更高版本的韌體創建的檔案在早期版本的韌體中不可用。此外,使用Ver.7.5.1 或更早版本的韌體創建的檔案可用於Ver.7.5.1或更高版本的韌體。


常見錯誤

  • 欲將手臂移出活動範圍時

    Curve命令無法用於檢查已設定曲線的動作範圍。這意味著,在機器人手臂動作時,使用者設定的曲線軌跡可能超出活動範圍。此時,會發生「超出動作範圍」的錯誤。

  • 點的間隔不平均時

    點間隔不平均時,生成曲線的加速度可能會異常升高。屆時,可能會發生異常加速度錯誤。
    啟用下列設定可能會執行動作而不發生錯誤。
    垂直六軸機器人 (包括N系列), RS系列:AvoidSingularity SING_VSD
    水平多關節型機器人 (不含RS系列):VSD

參照
AccelS函數、Arc、CVMove、ECP、Move、SpeedS

Curve範例1
在以下範例中,使用被稱為MYCURVE.CVT的自由曲線檔案,追蹤通過P1至P7的曲線。同時,在P2開啟輸出連接埠,並在P7使手臂減速。

設定自由曲線

> curve "mycurve", O, 0, 4, P1, P2, On 2, P(3:7)

以直線方式將手臂移至P1

> jump P1

用已定義的自由曲線「mycurve」移動手臂

> cvmove "mycurve"

Curve範例2
以下列舉(1)開放曲線、(2)封閉曲線、(3)以開放曲線進行與封閉曲線相近動作的範例。

教導點如下列所示。

P0 = XY(0, 300, -50, 0)'起點・終點
P1 = XY(300, 200, -50, 0)
P2 = XY(300, 400, -50, 0)
P3 = XY(-300, 400, -50, 0)
P4 = XY(-300, 200, -50, 0)
P10 = XY(10, 299.7, -50, 0)   '起點之後
P11 = XY(-10, 299.7, -50, 0)  '終點之前

(1) 開放曲線

設定開放曲線的自由曲線

> Curve "mycurve_O", O, 0, 2, P(0:4), P0

使手臂直線移動至P0

> jump P0

以所定義之開放曲線的自由曲線「"mycurve_O」移動手臂

> CVMove "mycurve_O"

由於是開放曲線,起點與終點相同但不會順暢地連接。

(2) 封閉曲線

設定封閉曲線的自由曲線

> Curve "mycurve_C", O, 0, 2, P(0:4)

使手臂直線移動至P0

> jump P0

以所定義之封閉曲線的自由曲線「mycurve_C」移動手臂

> CVMove "mycurve_C"

由於是封閉曲線,起點與終點會順暢地連接。

(3) 以開放曲線進行與封閉曲線相近的動作

設定開放曲線的自由曲線。在起點之後與終點之前設定點。

> Curve "mycurve_O_mod", O, 0, 2, P0, P10, P(1:4), P11, P0

使手臂直線移動至P0

> jump P0

以所定義之開放曲線的自由曲線「mycurve_O_mod」移動手臂

> CVMove "mycurve_O_mod"

雖為開放曲線,但由於通過P10、P11,起點與終點會順暢地連接。