ロボット制御

PLCでFanucロボットを自動起動する方法|Keyence連携で完全自動化!

fa-engineer

🔶導入文

この記事では Fanucロボット × Keyence PLC を組み合わせて、
「PLCからロボットを自動で起動させる方法」についてわかりやすく解説していきます。

「Ethernet/IPの設定まではできたけど、実際の自動起動ってどうやるの?」
「RSRとかPNSとか聞いたことあるけど、どれを使えばいいの?」
そんな方に向けた内容です。

※Ethernet/IPの設定がまだの方は、先にこちらの記事を読んでおくとスムーズです👇


🔶Fanuc側の設定:自動起動の基本

まずはFanuc側の設定から見ていきましょう。
ロボットを自動で起動する場合、**「どの方法でプログラムを起動するか」**を選ぶ必要があります。

Fanucでは次の4つの起動方式が用意されています。

  • RSR
  • PNS
  • STYLE
  • OTHER

それぞれの特徴を理解しておくと、システム仕様に応じて最適な方式を選べます。
結論から言うと、私は 「OTHER」方式 をよく使用しています。
理由も含めて順番に解説します。


🔷RSR方式

概要:
UIのRSR1~RSR8信号を使って8通りのプログラム起動が可能です。
プログラム名は「RSR+数字4桁」(例:RSR0001)。

起動手順:
起動したいRSR信号のbitをON → PROD START信号をON。

メリット

  • 起動方法が簡単。

デメリット

  • 最大8パターンまでしか設定できない。
  • プログラム名のルールが固定で内容が分かりにくい。

🔷PNS方式

概要:
PNS1~PNS8の8bit信号を10進数変換して最大255通りのプログラムを起動できます。
プログラム名は「PNS+数字4桁」(例:PNS0001)。

起動手順:
PLC → PNS bit信号+PNSTROBE送信
→ ロボット → 応答信号返送
→ PLC → PROD START信号送信 → 起動

メリット

  • 最大255通りのプログラム設定が可能。

デメリット

  • 起動手順が複雑。
  • プログラム名ルールが固定。

🔷STYLE方式

概要:
STYLE1~8のbit信号を組み合わせて最大32個のプログラム登録が可能。
プログラム名は自由に設定できます。

メリット

  • 起動が簡単(STYLE信号+PROD STARTでOK)
  • 名称ルールが自由で内容が分かりやすい
  • 最大32個登録可能

デメリット

  • 特になし(条件が合えばかなり使いやすい)

🔷OTHER方式(おすすめ)

概要:
PLCからのPROD START信号1本で起動できる最もシンプルな方式。
ただし、起動できるプログラムは1つのみです。

メリット

  • 圧倒的に設定が簡単。
  • 安定して動作。

デメリット

  • 自動起動できるプログラムが1つに限られる。

🔶デメリットを解消する工夫:メイン+サブ構成

「OTHERは簡単だけど1つしか起動できない」
── ここが最大の課題です。

そこで、メインプログラムを“中継”として複数サブプログラムを切り替える構成にします。

構成イメージ:

  • 自動起動設定 → メインプログラム
  • 実際に動かす処理 → サブプログラム1・2・3…

PLCからPROD START信号を送ると、メインプログラムが起動。
その中で条件分岐し、起動したいサブプログラムを選択して呼び出します。


🔶メインプログラム例

ラベル[1]
モシ GI[1] = 1 ナラ ヨビダシ サブプログラム1
モシ GI[1] = 2 ナラ ヨビダシ サブプログラム2
モシ GI[1] = 3 ナラ ヨビダシ サブプログラム3
モシ GI[1] = 4 ナラ ヨビダシ サブプログラム4
モシ GI[1] = 0 ナラ ジャンプ ラベル[1]

ポイント:
GI[1]はPLCからの入力値。
GI[1]=0のときは上記ループ内で待機。
PLCで番号を書き込んでPROD START信号を送れば、その番号に対応したサブプログラムが起動します。

この方法なら、OTHER方式のシンプルさを維持したまま複数プログラムを切り替え可能になります。


🔶PLC側のラダー構成

次にPLC側の制御ロジックです。
全体の構成イメージはこちら。


🔸1. 起動条件の設定

  • W020.0~W020.2、W020.7:これらがすべてON中はロボットが正常動作可能。
  • どれか1つでもOFFになるとロボットは異常停止。
  • MR1000(設備異常)は**B接(OFF=正常)**で条件入力。
  • W00.7(TPENBL)は**A接(ON=ティーチングモード)**で追加。

これらの条件が全て揃ったとき、
MR2000:ロボット自動運転可能状態がONします。


🔸2. プログラム起動フロー

  • MR100:ロボットプログラム起動PB(タッチパネル上の自動起動ボタン想定)
  • MR2000がON中にPB押下 → DM100(プログラム番号)リセット
  • MR3000をON → 起動シーケンスへ移行
  • 原点確認後、DMに起動プログラム番号を書き込み
  • PROD START信号を出力
  • ロボット側から「実行中」入力を受信 → 起動完了判定

🔸3. ロボットへの出力信号の動き

  • MR5000:プログラム起動フローの出力信号
  • MR5001:実際にロボットへ送る信号入力
     → MR5001がONするとW021.1がON
  • DM101:SHOT時間設定(x10msec単位)

MR5000がON → MR5001がSHOTでON → DM101×10msec後にOFF。
この立下りをロボットが検出してプログラムを起動します。


🔶まとめ

ここまでの内容を整理すると──

✅ 「OTHER」方式は最もシンプルにPLCからロボットを起動できる
✅ メイン+サブ構成にすることで複数プログラムにも対応できる
✅ PLCラダーで異常監視とスタート条件を正しく組むことが重要

この方法を使えば、Fanucロボットの自動運転をPLC側から柔軟にコントロールできます。
実機の動作テストでも非常に安定して動くので、ぜひ一度試してみてください。


🟢次回予告

次回は 「ロボット側の異常をPLCで監視する方法」 を解説予定です。
異常発生時の自動停止フローまで構築できるようになりますのでお楽しみに!


💡補足メモ

STYLE方式も改めて見直すと意外と使いやすいので、用途によっては検討しても良いかもしれません。
また、OTHER以外の方式は今回触れていない部分もあるため、参考程度に捉えてください。

ABOUT ME
Yu
Yu
設備エンジニア(フリーランス)
生産技術の現場で10年以上の経験を持ち、制御設計を中心に生産設備の開発全般に携わってきました。 特に、産業用ロボットを活用した自動化設備の開発を得意としており、機械・電気・制御の知識を横断的に活かして業務に取り組んでいます。 近年では、PLCと連携したIoTシステムの構築にも注力しており、PythonやSQL Serverなどを活用したデータ収集・可視化・分析の仕組みづくりにも対応しています。 現場のリアルな課題を解決するための実践的なノウハウを発信していきます。
記事URLをコピーしました