このシリーズではWittensteinのcyber® simco® drive 2とcyber® dynamic lineを使用し試運転からPLCと繋がるまでを紹介します。第3話ではTwinCAT Online Control PanelからWittensteinを動かしてみたり、最低限必要なパラメータを洗い出します。
Thanks!
この記事はBeckhoff JapanとWittenstein Japanが機材を貸してくださったおかけです。
ベッコフ日本法人ベッコフオートメーション株式会社
IPC6920-005・EL6910・EL1904はベッコフ日本法人ベッコフオートメーション株式会社さまが貸してくださったものです。Beckhoff Automationは1980 年会社設立、PCベースの制御技術をベースにしたオープンオートメーションシステム導入の先頭に立つドイツ企業です。
ベッコフ日本法人ベッコフオートメーション株式会社は、2011年に横浜に本社、2017年に名古屋オフィスを設立しました。
Address
横浜オフィス(本社)
ベッコフオートメーション株式会社
〒231-0062
神奈川県横浜市 中区桜木町1-1-8
日石横浜ビル18階
HP
こちらはベッコフ日本法人ベッコフオートメーション株式会社様のホームページです。
どうぞよろしくお願いします。
https://www.beckhoff.com/ja-jp/
Wittenstein
WITTENSTEIN cyber motor は、高度な技術が求められるサーボモータと駆動用電子部品に加えて、非常に大きな出力密度を発揮する完結型メカトロニクス駆動システムの開発および製造を行っています。 超高真空、高温環境、放射能環境に対応する特殊モータの専門技術も保有しています。
Address
ヴィッテンシュタイン・ターナリー株式会社
〒386-0005
長野県上田市古里99-5
HP
https://cyber-motor.wittenstein.jp/
Reference Link
こちらはTwinCATとSiemensのS210 DriveとProfinetで連携する記事です。
立ち上げからCloud Connectまでの説明もあります。
TwinCAT NC?
TwinCAT NC PTPはMotion Contrlを3つのLayerに切り分けています。それはPLC軸・NC軸・物理軸になります。簡単なイメージは以下のようです。
PLC Axis
TwinCAT内のMontion Control Blocksやライブラリのことに該当します。例えばTcMc2.libの中に規定されたすべてのMontion Control Function BlockやAxis_REFというデータタイプです。そのAxis_REFはPLC軸とも呼びます。
NC Axis
NC軸はまたSetPointGenerator・Controller・I/O制御に分けられています。
SetPointGenerator
Setpoint GeneratorはNCがPLCのコマンドを受信したあと、加速度などの特性から毎周期の目標位置・速度・加減速(例えば2ms)を計算し更新し続けます。
注意するのはそのSetpoint GeneratorはDrive Hardwareと関係がありません。
Controller
Controller部分はいま該当するServo ObjectがCSV Mode(速度同期)やCSP Mode(位置同期)がない場合は、TwinCAT NCの中では位置制御するにはPID運算が必要になります。
注意するのはSERVO本体にCSP Modeがあれば、そのあたり特に調整する必要がありません。
I/O Control
I/O Controlの部分はSetpoint GeneratorがNC軸に設定された様々なパラメータから生成した制御データを、Servoに制御するために必要なProcess Dataに変換します。もちろん、Servoの種類によりFeebackされるデータも異なります。
注意するのそれらの計算はTwinCATが全部やってくれて、Userはやるべきことは正しくパラメータを設定するだけになります。パラメータの設定はPLCからADS コマンド経由で変更できます。
Physics Axis
物理軸は2つの部分に分けられており、それはFeedbackとDriveです。
TwinCATのは多彩あHardwareをSupportし、異なる物理軸ではエンコーダの設定・Gear数・Position Loop・Speed Loop・Current Loopなど(もしFieldbus経由ならProcess Dataの設定、今回の記事ではProfidrive)を正しく設定しましょう。
NC Axis Type?
Continuous Axis
Axisを追加されたきのDefault設定になります。NCは周期的に軸の状態を取得したり精度高く制御したりなどができます。特に必要でなければContiuous Axisを選んでください。
Encoder Axis
Encoder AxisはNCから位置情報を読み取るだけで、制御することができません。このEncoder AxisはMaster軸として設定し、他のSlave軸はそのMasterに追従し同期は可能です。
Time Generator
時間軸です。止まることができず、永遠に1mm/sの速度で運動します。もちろんプログラムから現在の位置を変更はできます。
Implementation
Add NC/PTP NCI Configuration
MOTIONを右クリック>Add New Itemします。
NC/PTP Configurationを選び>Okします。
NC-Task Objectが追加されました。
Add Axis
Axes>右クリック>Add New Itemします。
Axis 名を入れてい、OKします。
Axisが追加しました。
Link to IO
次はAxisをWittensteinのDriveとLinkします。
Axis>SettingsのTabを開き>Link To I/Oをクリックします。
前の記事で追加したProfiDriveを選び>Okします。
これでProfiDriveとTwinCAT NC Linkをしました。
Parameters
Axis
初めに動かすときはPosition Log Monitoring などををFalseにしてください。
Enc
次はEncパラメータです。
ParametersのTabにScaling Factor Numentor・Scaling Factor Denominaterのパラメータがあり、簡単にいいますとScaling Factor Numentorはサーボモータが一回転するにはなんmm進めたを設定します。
今回はすごくざっくりで、10mmで782632.0を進めた仮説で行きます。
Drive
最後はDriveのパラメータを設定します。
Parametersの中にOutput Scaling Facotr(Velocity)とう、大事なパラメータがあります。
本来ならPROFIdriveのTabにあるP2000をDriveから読み取り、Output Scaleを計算できますが、WittensteinのDriveはP2000というパラメータがありませんので、別の方法からこのパラメータ値を求める必要があります。
How to configure it?
まずOnline Tabから Controller KV-Factorを0にDownloadします。
最初に782632.0Inc/10mmをTwinCAT側で設定したこと覚えていますか?
Target Velocityを10mm/sに設定し、Driveを運転させます。
次はMotionGUI2 Softwareから実際のCount/s値をMonitorします。
Actual Velocityで実際何Count/sを確認し、そして実際出力されたSpeedは7826.32になってます。つまり目標の782632.0Inc/10mmと100倍の差があります。
なので、こちらのパラメータは100.0になります。(もちろんこの計算はすごくざっくりで、本当のアプリケーションでは何回も検証も必要になります。)
Test it
最後はOnline TabからControl Panel経由でDriveを制御してみます。
Set Enabling
”Set”Buttonをクリックします。
Controller・Feed Fw・Feed BwのCheckboxを入れて、Override[%]を100にし>Okします。
Reset
F8ボタンをクリックしDriveをリセットします。
StatusはReadyになり、そして停止してる状態です。(NOT Moving)
実はMotionGUI2 Softwareでも同じ状態を確認できます。
”Show Advanced”のCheckboxを入れます。
このStatus wordは実際TwinCATに送るStatus wordと同じです。
Move Jog
こちらはJog Operationの動画です。
Move Abs
こちらは絶対位置位置の動画です。