Beckhoffの補間動作機能「NC I」の2つのサンプルプログラムの内、Gコードを使用しない「PlcInterpolationSimpleSample」を動かします。
1 構成
2 サンプルプログラムのダウンロード
Beckhoff Twincat3 InfoSysの下記リンクから「2944140171.zip」をダウンロードします。
https://infosys.beckhoff.com/english.php?content=../content/1033/tf5100_tc3_nc_i/3281888011.html&id=
3 サンプルプログラムを開く
ダウンロードしたZipを解凍し、「PlcInterpolationSimpleSample.sln」を開きます。
4 サンプルプログラムの立ち上げ
CX5140とオンライン接続した状態とします。(Localで実行する場合は不要)
“BUILD”>“Build Solution”でビルドします。
“Activate Configuration”を選択します。
“OK”
“はい”
“OK”
“Login”
“Yes”
“Start”
5 動作確認
5.1 プログラムの操作
プログラムPOU“MAIN”の変数“bExecute”の“Prepared value”に“TRUE”を入力して“Write values”を選択すると動作します。
5.2 Scope view
あらかじめScope viewのサンプルが含まれていますが、新たに“XYZ Scope”を追加してみます。
“TwinCAT Measurement Project1”を右クリックし“Add”から“New Item”を選択します。
“XYZ Scope Project”を選択し任意の名前を入力して“Add”を選択します。
追加した”Scope Project1”を右クリックし”Change Target System”からターゲットを選択します。
“DataPool”を右クリックし”Target Browser“を選択します。
ターゲットの“501:TCNC.NcTaskSaf”を選択し、“Axes”の“X.ActPos”を右クリックして“Add to Scope”を選択します。
同様に“Y.ActPos”と“Z.ActPos”を追加します。
追加した3個のActPosを複数選択して“Axis Group”に追加します。
以下のようになります。
“Start Record”を選択しロギング開始します。
プログラムPOU“MAIN”の変数“bExecute”の“Prepared value”に“TRUE”を入力して“Write values”を選択すると動作します。
5.3 動作解説
補間動作の設定はプログラムPOU“MAIN”の下のアクション“PrepareTable”の中で実行する“FB_NciFeedTablePreparation”のインスタンス“fbFeedTablePrep”で行っています。
位置と速度の設定値は構造体配列“aPositionCmds”の初期値に9個分格納されており、下表のようになっています。
① | fPosX:=1000.0 | fPosY:=100.0 | fPosZ:=500.0 |
② | fPosX:=1200.0 | fPosY:= 80.0 | fPosZ:=300.0 |
③ | fPosX:=1250.0 | fPosY:= 80.0 | fPosZ:=300.0 |
④ | fPosX:=1200.0 | fPosY:= 80.0 | fPosZ:=300.0 |
⑤ | fPosX:= 900.0 | fPosY:=100.0 | fPosZ:=500.0 |
⑥ | fPosX:= 100.0 | fPosY:=100.0 | fPosZ:=300.0 |
⑦ | fPosX:= 100.0 | fPosY:=100.0 | fPosZ:=100.0 |
⑧ | fPosX:= 100.0 | fPosY:=100.0 | fPosZ:=300.0 |
⑨ | fPosX:= 800.0 | fPosY:= 80.0 | fPosZ:=500.0 |
表の位置とXYZ Chartの実際の軌跡との関係は以下のようになります。
6 参考文献
Beckhoff: TF5100 | TwinCAT 3 NC I
以上。