【中級編】PLC(シーケンサ)によるサーボモータdegree座標検索演算方法

f:id:vv_6ong_3ka_cp:20210107071442p:plain

PLC(シーケンサ)でサーボモータの座標演算を行うことはあるでしょうか?

座標演算を行う目的として、途中位置にいても近い位置にサーボモータを位置決め指令できることが利点です。

距離の場合は特に気にすることはありませんが、degree座標の場合は0~359degreeと範囲が決まっており、オフセットなどを行うと演算が複雑になります。

なぜ複雑になるか。それはオフセット値を加算すると359degreeを越えてしまい、次の演算は0degreeからというのを考慮したプログラム構成を作らなくてはいけないからです。

どのようなことなのか、簡略図で説明します。

サーボモータdegree制御
f:id:vv_6ong_3ka_cp:20210107040756p:plain

サーボモータポジション
f:id:vv_6ong_3ka_cp:20210107040808p:plain

サーボモータポジションオフセット
f:id:vv_6ong_3ka_cp:20210107040819p:plain

図のようにオフセットを考慮しない0~359degree以内で処理できるのが一番簡単なのですが、機械構成上の都合や制御範囲の都合上、様々な条件によって制約され演算を複雑にするしかありません。

このような場合の演算方法をGX Works3プログラムにて紹介します。

広告


サーボポジション演算プログラム

プログラム1 初期化
f:id:vv_6ong_3ka_cp:20210107065543p:plain

プログラム2 初期化
f:id:vv_6ong_3ka_cp:20210107065600p:plain

プログラム3 FOR~NEXTポジション演算
f:id:vv_6ong_3ka_cp:20210107065611p:plain

プログラム4 FOR~NEXTポジション演算詳細内容
f:id:vv_6ong_3ka_cp:20210107065621p:plain
Point.360deg以上となった場合を考慮して、それぞれのオーバーフロー分で演算を分ける
プログラム5 FOR~NEXTポジション演算詳細内容
f:id:vv_6ong_3ka_cp:20210107065632p:plain


サーボポジション演算プログラムシミュレーション結果

プログラムシミュレーション結果1
f:id:vv_6ong_3ka_cp:20210107065517p:plain

プログラムシミュレーション結果2
f:id:vv_6ong_3ka_cp:20210107065527p:plain


まとめ
・サーボモータを使用する際にはオフセットを考慮したプログラムを検討
・機械構成の都合で制御プログラムをどのようにするか考える
・オフセットをする場合360deg以上となる場合があるため、オーバーフロー分として演算を考慮する



www.niwakafa.com

www.niwakafa.com

www.niwakafa.com