ーーーーーーーーーーーーーーーーーーーーーーーーーーー
FA電気設計屋の技術倉庫は、下記、スポンサーの提供で記事を作成しております。
■ つよぽん@制御設計 https://x.com/kubisu_taka21
■ たけ@電気制御×FA起業 https://x.com/eletri_0309
■ 箱入り https://x.com/hakomussu
https://hakoden.jp/
■ ドラフター|東大阪機械制御 https://x.com/drafter_san
東大阪機械制御 | 関西で制御設計を任せるなら東大阪機械制御
■ T.K https://x.com/Electricalggggg
ーーーーーーーーーーーーーーーーーーーーーーーーーーー
キーエンスPLC、最新機種のKV-X520が出たことにより、EtherCAT経由のSV3が登場しております。
性能が上がったのはもちろんですが、今までの通信方式メカトロリンクではなく、EtherCAT。
こちらには驚いた方も多いかと思います。
SV3を使用したというものをあまり見ていませんので、実際の現場に投入・置き換えされているところは少ないのが現状かと思います。
私なりに少し立ち上げに苦労しましたので、そちらをまとめました。
今回はキーエンスKV-X520 EtherCAT SV3通信設定について紹介します。
EtherCAT サーボSV3通信設定
初期設定

右クリックで開くを選択。

SV3をドラック&ドロップする。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
注意点として、
① ネットワーク構成通りにハード(現実)も繋ぐ必要がある
② HUBもネットワーク構成の一部になる
③ 入出力は全て変数で登録する
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
サーボ設定
SV2同様、SV3はモーション設定、SV3設定で細かいサーボの設定が可能です。

プログラム
変数設定
基本的なパラメータは初期割付で変数が割り当たるようです。
特殊なパラメータが必要なようでしたら、自分で変数を追加する必要があります。

制御方式 ファンクションブロック・リレー設定

ユニット構成のKV-X520をクリックし、右側の指令方法でプログラム上でどのようにサーボを制御するか選択することができます。
・ファンクションブロック
キーエンスが提供しているファンクションブロックを使って、サーボ制御することが可能です。
「メリット」
① 基本的にはメーカー(国際規格準拠)が保証しているものですので、適切に使えば簡単に制御が可能。
② 内部処理を気にせず、どの軸に対しても同様のファンクションブロックで対応できる。
「デメリット」
① ファンクションブロックに準拠した使い方でないと機能しない。
② 内部処理がブラックBOXのため、どのような処理がされているかわからず、複雑な制御や特殊な制御をしたいときに邪魔になる。
・リレー
キーエンスが提供しているファンクションブロックを使用せず、既存のSV2と同様なリレーを用いてサーボを制御することができます。
「メリット」
① SV2と同様の処理を流用できる。
② 内部処理がブラックBOXでないため、自分なりの制御を思い存分に記述できる。
「デメリット」
① 基本的に動作しない場合、自分自身のプログラムに起因している。
② ファンクションブロックなら簡単な処理も、すべて自分自身でプログラムを作る必要がある。
リレー方式 参考
軸制御中、こちらの信号がオンしている時は軸が制御(動作中)になっていますので、制御不可です。

軸エラー中ではなく、動作可能状態でサーボオンしてください。
そうでない場合にサーボオンすると、基本的にエラーを吐くはずです。

サーボオンすると、サーボレディがオンします。
サーボレディがオンしない場合、
① 動力電源が入っていない。
② 設定したパラメータが間違っている。
③ 動作可能状態でサーボオンしなかった。
などが挙げられます。

Y5315:サーボオン します。

_MC_PointParam[K1].Point[K1].PositioningMode 軸1のポイント1のモードを設定。ビット13をオンすると速度制御モードへ。
_MC_PointParam[K1].Point[K1].TargetPos 軸1のポイント1の目標位置を設定。TO_LREALで、32ビット符号付を浮動小数へ変換。浮動小数として格納。
_MC_AxisCtrl[K1].PointNo 軸1の動作させるポイントNo.を設定。今回はポイント1にしたいので、1を格納。
Y5300 軸1 位置決め制御開始をオンすると動作開始。

_MC_PointParam[K1].Point[K1].TargetVel 速度を設定。浮動小数扱い。
_MC_PointParam[K1].Point[K1].Acceleration / _MC_PointParam[K1].Point[K1].Deceleration 加速・減速時間を設定。

Axis_1_ピッチ出しCV1.Status.MechanicalPos 現在位置の情報が浮動小数として格納されいているため、浮動小数から、LREAL_TO_DINTで32ビット符号付へ変換。

まとめ
・SV3の変数は浮動小数も多いため、扱いには注意すること。・リレー方式にすれば、SV2同様に制御することが可能。
・変数の取り扱いは必須。