本記事では、MC_MoveAbsolute や MC_Jog などのモーションFBを使い、OMRON製R88DサーボをEasy PLCから直接制御する方法を解説します。Jog、相対/絶対位置制御、トリガ構成まで、実践で使えるラダー構成を紹介します。
さ、FAを楽しもう!

Reference Link
http://soup01.com/ja/category/inovance/
前書き
いつも私の技術ブログとYouTubeチャンネルをご覧いただき、心より感謝申し上げます。また、いまFullさん(full@桜 八重 (@fulhause) / X)と共に毎週水曜日の夜にお届けしている「高橋クリス」ラジオ番組を運営しています。
技術は独り占めせず、届けるもの
私たちは工場の生産技術や制御に関する技術情報を、ブログや動画などで無料公開しています。「知識は誰でもアクセスできるべき」という信念のもと、現場で役立つ具体的なノウハウやトラブル事例などを発信してきました。すべて無料で続けているのは、「知らなかったせいで困る人」を少しでも減らしたいからです。
また、もしあなたの現場で…
- 「このPLCとデバイスの組み合わせ、ちゃんと動くのかな?」
- 「EtherCAT通信でうまくいかない部分を検証してほしい」
- 「新しいリモートI/Oを試したいけど社内に検証環境がない」
など、困っている構成や試してみたいアイデアがあれば、ぜひお知らせください。機器の貸出や構成の共有が可能であれば、検証し、記事や動画で発信します(ご希望に応じて匿名対応も可能です)。
支援のかたち
現在、私達の活動はほぼ無償で続けており、記事や動画の制作には、時間と検証環境の整備が必要です。この活動を継続的にコンテンツを提供するためには、皆様の温かいご支援が大変重要です。
メンバーシップ(ラジオの応援)
Fullさんとのラジオをより充実させるための支援プランです。
https://note.com/fulhause/membership/join
Amazonギフトリスト
コンテンツ制作に必要な機材・書籍をリストにしています。
https://www.amazon.co.jp/hz/wishlist/ls/H7W3RRD7C5QG?ref_=wl_share
Patreon(ブログ・動画活動への応援)
月額での小さなご支援が、記事の執筆・検証環境の充実につながります。
https://www.patreon.com/user?u=84249391
Paypal
小さな支援が大きな力になります。
https://paypal.me/soup01threes?country.x=JP&locale.x=ja_JP
知ってたら助かること、届けたいだけです
あなたの応援が、知識の共有をもっと自由で持続可能なものにしてくれます。これからもどうぞよろしくお願いします。
soup01threes*gmail.com
技術はひとりじゃもったいない。
Implementation
Showing Comment
ラダー部品のコメントを表示するには、View Commentをクリックしてください。
Done!
M、X、Yなどのデバイスのコメントを編集するにはGlobal Variable>Element Tableをクリックします。
Element Tableが表示され、テーブルを右にScrollしてください。
一番右にはNote欄があり、これはコメントになります。
Network Comment
ラダー間にネットワークを追加したい場合は、ラダーを右クリック>Insert Networkします。
Network のコメント設定画面が表示され>OKで確定します。
Done!
Edit Device Comment
また、AutoShopは三菱などのツールと同じく、デバイス入力した後にコメントを入力できます。ラダー回路に部品を入力するときに下図のICONをクリックしてください。
コメント入力できるようになります。
Variable Table for Axis
AutoShopでサーボ軸を制御するには軸を追加するときの番号が必要です。下図で変数テーブルにiAxis0・iAxis1・iAxis2を定義し、それぞれの初期値を0,1,2に定義しました。
この整数データ・タイプの軸番号は、Motion Control>各軸部品から調べることができます。
Basic Settingに”Axis number”と欄があり、これは軸番号になります。
Add Motion Function Block
Motion関連のFBを使用するにはTools>MC axis Controlからプログラムに追加できます。
FBの追加方法としては追加したい位置を選択し>該当するMotion MC BlockをクリックすればOKです。
Done!
Variables using in this Tutorial
こちらは今回記事で定義した変数です。
MAIN Program
Net6
MC_ReadActualVelocityとMC_ReadActualPositionを使って現在位置と速度を読み取るプログラムです。この2つのFBを使えば、モーションの現在状態(位置・速度)をリアルタイムで監視可能になります。
Net7
これはMC_ReadStatusファンクションブロック(FB)を使って、軸のステータスを一括で読み取るプログラムです。
Net8
MC_ReadStatus の出力結果を使って「軸が正常な状態かどうか」を判定しているラダー回路です。
- Axis_0.bPowerState(サーボON)
- bStandStill(現在静止中)
- bValid(読み取りが有効)
- bEnabled(有効化されている)
- bErrorStop OFF(エラー停止していない)
- bError OFF(エラー中でない)
すべての条件が満たされたとき、 M0をONにします。
Net9
このラダーは、先ほどの 「軸が正常(Axis is Normal)」状態の判定結果を使って、Jog動作の有効化フラグを出力しています。
- Axis is Normal(M0)= TRUE(前段Net 153で生成した「軸が正常」状態)
- Enable_JOG(M4 )= Jog制御用のフラグとして出力
Net10
このラダーは、MC_Jogファンクションブロックを使った、Jog運転の実行回路です。これでサーボON → 状態チェック → Jog許可 → 実行まで、流れが完成です。
Net11
これは相対移動(MoveRelative)の有効化フラグのための回路です。
- M3:軸が正常な状態(前段で判定済み)
- R_TRIG1.Q:ボタンの立ち上がり検出
- M5:MoveRelative動作の実行許可フラグ
Net12
MoveRelativeを実行します。Y0はランプ出力で、Busyのときは点滅、Doneのときは点灯。そして絶対位置決めのコマンドがきたとき、Y0をOFFにします。
Net13
これは絶対移動(MC_MoveAbsolute)の有効化フラグのための回路です。
- M3:軸が正常な状態(前段で判定済み)
- F_TRIG1.Q:別のボタンの立ちさがり検出
- M6:MC_MoveAbsolute動作の実行許可フラグ
Net14
MC_MoveAbsoluteを実行します。Y1はランプ出力で、Busyのときは点滅、Doneのときは点灯。そして相対位置決めのコマンドがきたとき、Y1をOFFにします。
ダウンロード
最後はPLC>DownloadでプロジェクトをCPUにDownloadしましょう。
OKで進みます。
OKでCPUをストップします。
そしてDownloadが終わったら、またOKをクリックしCPUをRUNにしましょう。
結果
実機の動作確認は、YouTube上にアップロードしたデモ動画にてご確認いただけます。
INOVANCE.Easy Series PLC Basic MC Motion Control Blocks with OMRON Servo Motor