前回のEPOS Studioでモータが回り、いろいろなパラメータが、調整されたはずです。USBケーブルでつながったEPOS4ですが、動作時はEtherCATがEnable状態になっていたので、制御はイーサネット経由だったのではないかと想像しています。
USBケーブルを抜いて、TwinCATを立ち上げます。
TwinCATの設定資料
EPOS3 EtherCAT Application Notes Collection
EPOS4 Application Notes
EtherCAT マスター接続ガイド
youtube
TwinCAT 3 PLC Tutorial Motion NC-PTP
エラー
初期のころよく出ていたのが次のエラーです。
PCが立ち上がった後、常駐部が起動します。そのあと、次のバッチ・ファイルを管理者権限のコマンドプロンプトで動かします。
cd C:\TwinCAT\3.1\System win8settick.bat
このタイミングが良いのかどうかは、不明ですが、一度でエラーが消えないければ、三回以上実行してみます。
すごくアナログ的ですが、今、このエラー・メッセージは出ていません。
設定を始める
第2回のTwinCATをインストールした時点で、カプラ類の入出力ができるかどうかの確認を行いました。
ここからモータの設定を始めます。
ソリューションエクスプローラのI/Oから、ドライブ4(EPOS4)をダブルクリックし、中央画面のプロパティを表示し、スロットのタブを見ます。CSP Modeが選択されています。
スロットは、運転モードの選択になります。通常、
• サイクル同期位置制御 Cyclic Synchronous Position (CSP)
• サイクル同期回転数制御 Cyclic Synchronous Velocity (CSV)
• サイクル同期トルク制御 Cyclic Synchronous Torque (CST)
に加えて、
• Profile Position Mode (PPM)
• Profile Velocity Mode (PVM)
も選べます。しかし、筆者は、意味がわかっていませんので、デフォルトのサイクル同期位置制御CSP Modeのままで設定を進めます。
同じプロパティ画面のDCタブを選択します。「詳細設定」を押して出てきたパネルで、「有効」にチェックが入っていたら、OKです。EtherCATの時間管理をこのドライブ4(EPOS4)が行い、そのサイクルは2000usだという設定です。
ソリューションエクスプローラののMOTIONーNC-Task 1 SAFをダブルクリックし、中央のプロパティのタスクを見ます。
サイクルティック(サイクル周期)が2msなのを確認します。資料のうち二つが2msで、一つは1msです。カプラのときは、みな1msをセットしたように記憶しています。
軸の設定
ソリューションエクスプローラのMOTIONの軸ー軸1をダブルクリックし、「設定」のタブを開き、「I/Oにリンク...」が「ドライブ4(EPOS4)」に割り当てられていることを確認します。
パラメータ・タブで、電源電圧やモータ許容値を考慮しモータ速度を設定します。適当ではいけないのですが、わからないので、適当な値を入れています。入力するのはOffline値の項目です。
「その他の設定」をクリックし、デッドタイム補正を入れます。いろいろなところ参考にすると、6msぐらいのようです。解説では、NC-Task SAFサイクル周期の約 3 ~ 4 倍の値だそうです。
次に、エンコーダの項目Encをクリックします。「エンコードカウント方向の反転」はFALSEからTRUEに変えました。
「スケーリング係数計算値」と「その下のスケーリング係数の分母」は互いに関係しあいます。スケーリング係数計算値は、解説では、500 パルス/回転のエンコーダの場合、4逓倍x500=2000 → 1/2000=0.0005とあります。ここで使用しているエンコーダは1024パルスなので、0.001にしました。母数は、回転を直線に変化するジグを使うときなどに、何回転すれば1mm移動するかを定義するものだと思われます。これらのパラメータの桁が大きくずれていると、モータは振動しているのに、ほとんど回転しないという事態になります。
位置制御ループCtrlをクリックします。「位置コントローラP」が選択されていました。Pは何の頭文字なんでしょうか?わかりません。PIDも選べますが、このままにしておきます。
同じところの「パラメータ」のタブを選択します。解説に従い、「位置制御:比例定数Kv」は1(もとは0だが、1に訂正。図は古い)、「フィードフォワード速度...」は1.0を入れました。
Driveをダブルクリックします。「パラメータ」のタブを見ます。
「モータ極性の逆転」はTRUEに変更します。
「基準速度」は600がフィルされていました。
「位置および速度のスケーリング:」の「出力スケーリング係数」は、解説によれば、
– Scaling = 7500 / ( エンコーダ・パルス数 * 4)
– 例 500 パルス / 回転のエンコーダの場合: Scaling = 7500 / (500 * 4) = 3.75
なので、ほぼ倍の7を入れました。
上部メニューにあるフロッピ2個のアイコンを押して、保存します。
試運転
上部メニューにある「構成の有効化」アイコンをクリックします。いくつかのパネルが出ます。OKを押して進めます。「軸1」をクリックします。
オンラインのタブを見ます。「有効化の設定」ボタンを押し、「すべて」を押してOKで閉じます。
F2やF3を押すと、モータが回ります。
「機能」のタブを選択します。
「動作モード」を、繰り返しの「Reversing Sequence」に変更します。「ターゲット位置」は「1」mm、「ターゲット速度」は「20」、「Idle Time」は「1」秒にし、「開始」をクリックします。終わらすときは「停止」です。
「ターゲット位置」によって、回転する角度は異なります。画面では1.0002mmと行き過ぎているので、この後すぐに1.0000まで戻ります。1秒その位置を維持し、0の位置まで回転(CCW)します。
位置コントローラPのPは、PID制御のP(比例制御)動作なのかもしれません。目標位置に近づくと減速し、行き過ぎるの戻るという動作をしているように見えます。Kvはゲインかもしれません。エンコーダの値などが適切でないと、振動(いったりきたり)して目標値に止まらないという動作をしたことがあります。