Beckhoff Example #01 : TF50x0 | TwinCAT 3 NC PTP

PLC

その昔、TwinCAT3が出る前のTwinCAT2のみの時代、Beckhoff日本法人はまだ無くネット上の情報も希薄であったため、Beckhoff公式ヘルプからダウンロードできるサンプルプログラムを頼りに独習していました。
本稿では、その昔に独習の為にしていたようにサンプルプログラムの入手から動かすまでを解説します。

本稿で使用するサンプルプログラムは「Tc2_MC2」ライブラリ用サンプルの一つ「PTP – point to point movement」で、仮想軸に対して”MC_MoveAbsolute”を実行して途中で速度変更しながら絶対位置移動で行って帰ってくるを繰り返します。

本稿で使用するプログラムはTwinCAT3 XARをインストールしたパソコンでも動作しますが、個人的にはお勧めできないためCX5140を使用しています。

1 構成

2 サンプルプログラムのダウンロード

Beckhoff Twincat3 InfoSysの下記リンクから「Sample PTP Move.zip」をダウンロードし解凍します。
https://infosys.beckhoff.com/english.php?content=../content/1033/tcplclib_tc2_mc2/70177163.html&id=

3 サンプルプログラムを開く

TwinCAT3 XAEを起動し、“FILE”の“Open Solution from Archive…”を選択して解凍したフォルダ内の「Sample_PTP_Move.tnzip」を開きます。

4 サンプルプログラムの実行

CX5140とオンライン接続した状態とします。(Localで実行する場合は不要)

“BUILD”>“Build Solution”でビルドします。

“Activate Configuration”

“OK”

“OK”

“Login”

“Yes”

5 動作確認
5.1 Scope view

仮想軸の動きをグラフ表示するために“Scope view”の設定が予めサンプルに含まれています。
“Scope NC Project”を右クリックし”Change Target System”からRun Mode中のターゲットを選択します。

“Start Record”を選択しロギング開始します。

プログラムを“Start”すると仮想軸が動作開始し、仮想軸の位置、速度、加速度、偏差は以下のようになります。

5.2 動作解説

プログラム中のCASE文の状態“state”と仮想軸の関係は以下のようになります。

① 正方向に移動開始
 “state”=“MOVESTATE_FORWARD”:目標位置1500mm、目標速度500mm/s、バッファモードMC_BufferdでMC_MoveAbsoluteを実行して絶対位置移動開始。
 “state”=“MOVESTATE_NEWTARGETPOSITION”:目標位置5000mm、目標速度1500mm/s、バッファモードMC_BlendingPreviousでMC_MoveAbsoluteを実行して変更を予約する。
(前の命令の目標速度500mm/sを中継速度にする)
② 現在位置1500mmに到達
 軸を停止せずに、目標位置5000mm、目標速度1500mm/sで動作継続する。
③ 現在位置5000㎜に到達
 “state”=“MOVESTATE_BACKWARDS”:目標位置100mm、目標速度2000mm/s、バッファモードMC_BufferdでMC_MoveAbsoluteを実行して負方向に絶対位置移動開始。
 “state”=“MOVESTATE_BACKWARDSSLOW”:目標位置0mm、目標速度100mm/s、バッファモードMC_BlendingNextでMC_MoveAbsoluteを実行して変更を予約する。
(この命令の目標速度100mm/sを中継速度とする)
④ 現在位置100mmに到達
 軸を停止せずに、目標位置0mm、目標速度100mm/sで動作継続する。(②と異なり到達時に現在速度は100mm/sになっている)
⑤ 現在位置0mに到達
 ①に戻る

(Scope Viewの設定は解説の為にサンプルを少し弄っています)

6 参考文献

Beckhoff : MC_MoveAbsolute

以上。