可変速コンベヤー対応モード 補正値と加速度、減速度制限値の設定

コンベヤーの速度変化に対するロボットの追従遅れは、コンベヤーの速度, コンベヤーの加減速度, 使用するロボット機種, Inertia設定, Weight設定などにより異なります。

そのため、使用環境に応じた補正値とコンベヤー追従後の加速度、減速度の制限値を設定する必要があります。また、ロボットの追従遅れを改善するためには、補正値を調整し、最適値を設定する必要があります。

ロボットの追従遅れ量は、Cnv_PosErr関数で取得し、補正値はCnv_PosErrOffset、コンベヤー追従後の加速度、減速度の制限値はCnv_AccelLimで設定します。

キーポイント


補正値を調整するときは、Cnv_Fineの設定値を、"0"にしてください。"0"以外の値の場合は、Cnv_PosErr関数で追従遅れ量を正しく取得できません。

個数優先モードと精度優先モードでは、補正値の取得と補正値の設定はできません。

補正値の取得は、「精度優先モード 追従遅れ取得」の設定を確認してください。動作させるプログラムは、後述のサンプルプログラムを使用してください。

制限値は、コンベヤーを停止や稼働させる場合のコンベヤー加速度, 減速度より大きい値に設定してください。設定値の目安は、コンベヤー加速度、減速度の2倍程度です。

制限値を上げ過ぎた場合、コンベヤーの速度ムラやノイズによってロボットの動作が振動的になります。また下げ過ぎた場合、コンベヤーを停止してもロボットは追従して停止せず、ロボットの動作エリア外まで動く可能性があります。その場合は追従中止線を設定するか、下流限でトラッキングを止めるようにプログラムしてください。

加速度、減速度の制限値を設定後、以下の手順で補正値を設定し、ロボットの追従遅れ量を取得します。

最適値な補正値を求めるために、補正値を変更して複数回実施します。

Integer fileNum                          ' ファイル番号宣言
Function Cnv_PosErr_measure
  Motor On
  Go P0                                  ' ロボット動作開始位置に移動
  Power High
  Speed 100
  Accel 100, 100
  Cnv_Accel 1, 2000
  Cnv_Fine 1,0                           ' Fine設定
  Cnv_Mode 1,2                           ' 可変速コンベヤー対応モード
  Cnv_PosErrOffset 1,10                  ' 補正値を設定
  ' コンベヤー稼働チェック
  If Cnv_Speed(1) < 0.1 Then
    Print "コンベヤーが稼働していません"
    Exit Function
  EndIf

  ' 仮想ワークをキューに登録する
  Cnv_QueRemove 1, All                   ' キューのクリア
  Cnv_Trigger (1)                        ' コンベヤーパルスをラッチ
  Cnv_QueAdd 1, XY(0, CY(P1@Cnv(1)), CZ(P1@Cnv(1)), CU(P1@Cnv(1)), 0, 0) /CNV(1)
   ' P1を基に仮想ワークをキューに登録

  Wait Cnv_QueLen(1, CNV_QUELEN_PICKUPAREA) > 0
  ' キューが追従開始領域内に入るまで待機
  Xqt CnvPosErrTest                      ' 別タスクで補正値を取得開始

  '動作実行
  Go Cnv_QueGet(1,0)                     ' スカラロボットの場合
  'Go Cnv_Queget(1,0):U(90):V(0):W(180)  ' 6 軸ロボットの場合

  Do
    Wait 0.02
  Loop Until (CX(RealPos@CNV(1)) >= Cnv_Downstream(1))
  ' 下流限に到達するまで待つ
  Go here                                ' ロボット停止
  Cnv_QueRemove 1, All                   ' キューの初期化
  Wait 0.5
  Quit CnvPosErrTest                     ' 補正値の取得終了
  motor off

Fend

Function CnvPosErrTest
  fileNum = FreeFile                     ' ファイル番号取得
  WOpen "poserr.csv" As #fileNum         ' csvファイル名
  Print #fileNum, "Time[sec],Cnv_PosErr[mm],Cnv_Speed[mm/s]"
  TmReset 0
  Do
    Print #fileNum, Tmr(0), ",", Cnv_PosErr(1), ",",
    Cnv_Speed(1)
    Wait 0.01
  Loop
Fend

Epson RC+ 8.0のプロジェクトフォルダーに、 "poserr csv"が作成されます。表計算ソフトなどでファイルを開き、折れ線グラフ、または散布図を作成してください。

補正値を変えて複数回データを取得すると、次のようなグラフが作成できます。

コンベヤートラッキング動作後のCnv_PosErr関数の戻り値は、コンベヤートラッキング動作中に取得したCnv_PosErrピーク値になります。グラフを作成するときは、このピーク値を使うと便利です。

追従遅れがプラスの場合、ロボットがワークより下流に進み過ぎていることを意味します。

補正値に対して、ロボットの追従遅れをプロットすることで、最適な補正値を設定することができます。

上図の結果から、以下のような補正値の設定をコンベヤートラッキングのプログラムに追加してください。

Cnv_PosErrOffset 1, 22.7  ' 補正値

注意


  • 本手順で説明する補正値は参考値です。設定した補正値や、動作環境によっては、作業が成功しない場合や、振動が発生する場合があります。
  • ロボットが、設定とは違う動作を行った場合は、すぐに非常停止ボタンを押してください。