PLC(シーケンサ)でサーボモータの座標演算を行うことはあるでしょうか?
座標演算を行う目的として、途中位置にいても近い位置にサーボモータを位置決め指令できることが利点です。
距離の場合は特に気にすることはありませんが、degree座標の場合は0~359degreeと範囲が決まっており、オフセットなどを行うと演算が複雑になります。
なぜ複雑になるか。それはオフセット値を加算すると359degreeを越えてしまい、次の演算は0degreeからというのを考慮したプログラム構成を作らなくてはいけないからです。
どのようなことなのか、簡略図で説明します。
サーボモータdegree制御
サーボモータポジション
サーボモータポジションオフセット
図のようにオフセットを考慮しない0~359degree以内で処理できるのが一番簡単なのですが、機械構成上の都合や制御範囲の都合上、様々な条件によって制約され演算を複雑にするしかありません。
このような場合の演算方法をGX Works3プログラムにて紹介します。
広告
サーボポジション演算プログラム
プログラム1 初期化
プログラム2 初期化
プログラム3 FOR~NEXTポジション演算
プログラム4 FOR~NEXTポジション演算詳細内容
Point.360deg以上となった場合を考慮して、それぞれのオーバーフロー分で演算を分ける
プログラム5 FOR~NEXTポジション演算詳細内容
サーボポジション演算プログラムシミュレーション結果
プログラムシミュレーション結果1
プログラムシミュレーション結果2
まとめ
・サーボモータを使用する際にはオフセットを考慮したプログラムを検討
・機械構成の都合で制御プログラムをどのようにするか考える
・オフセットをする場合360deg以上となる場合があるため、オーバーフロー分として演算を考慮する