【ロボット制御】FANUCロボット × Keyence PLCでの EtherNet/IP 通信設定

はじめに
工場自動化でロボットは不可欠です。本記事では FANUCロボット と Keyence PLC(KV-8000/KV-7500 など)を EtherNet/IP(※表記ゆれ対策で本文中に「Ethernet/IP」も併記)で接続するための手順を、実機画面を交えながら解説します。
前提
- Keyence:KV-8000/KV-7500 または KV-XLE02 等、EtherNet/IP対応ポート搭載機
- FANUC:EtherNet/IPオプション導入済み
手順の全体像
- ネットワーク設計(IPとサブネットの決定)
- PLC(KV STUDIO)側:IP設定
- PLC側:EDS登録と相手機器の追加
- ロボット側:TCP/IP(ホスト通信)設定と疎通確認
- I/O(入出力)サイズの設定(両機器で一致させる)
- ロボット側:システム設定(UOP/リモート等)
- I/O割付(UI/UO・DI/DO・GI/GO)
- 動作確認(DO→PLC、モニタで検証)
1. ネットワーク設計(IP/サブネット)
まずはIPアドレスを決めます。例として以下で進めます。
- PLC:
192.168.0.10 / 255.255.255.0
- ロボット:
192.168.0.11 / 255.255.255.0
IPは“ネットワーク上の住所”。相互通信には同一セグメント(例:255.255.255.0)での設計が基本です。
2. PLC側:IPアドレス設定(KV STUDIO)
①左ペインのプロジェクトで対象ユニット(例:KV-8000)を選択 → 右クリック > ユニットエディタを開く。

②右側のユニット設定(2) → ポート設定でIPを確認/設定。

③本例では 192.168.0.10
/ 255.255.255.0
を設定。
3. PLC側:EDS登録と相手機器の追加
EtherNet/IPでは各機器のEDSファイル(電子データシート)を使って設定します。
- メーカーサイトから取得(FANUCはお得意様会員登録後にDL可能)。
手順:
①ユニットエディタでロボットと通信するユニットを右クリック → EtherNet/IP設定を開く。

②ツールバー [EDSファイル] → [登録] を選択。

③取得した FANUCのEDS を選んで登録。
④機器一覧にFANUCが追加されるので、PLCツリーへドラッグ&ドロップ。

⑤表示されるIP設定ダイアログで、ロボット側のIPを 192.168.0.11
に設定。

4. ロボット側:TCP/IP(ホスト通信)設定と疎通確認
①ティーチペンダントで [設定] → [ホスト通信] を開く。
②[TCP/IP] → [詳細] → [ホスト通信設定] を開き、ロボット自身のIPを 192.168.0.11
、サブネット 255.255.255.0
に設定。
③併せてホスト(相手)IPに 192.168.0.10
(PLC) を設定。

④[PING] ボタンで疎通確認。成功ならOK。エラーなら配線やIP/サブネット、スイッチ設定を再確認。
5. I/Oサイズ(領域)を合わせる
I/O = IN/OUT。
- PLCのOUT → ロボットのIN、ロボットのOUT → PLCのIN。
- 手紙の例で言えば、郵便受け(領域)サイズを双方で揃えるイメージ。

ロボット側(EtherNet/IP Connection)
①[I/O] → [Ethernet/IP] → Connection1 を開く。

②入出力サイズを入力。本例は “入4ワード / 出4ワード”。
1ワード=2バイト。4ワード=8バイト。
PLC側(コネクション/パラメータ)
①PLCのEtherNet/IP設定で対象デバイスを右クリック → [コネクション設定]。

②[パラメータ設定] を開き、Input/Output Data Size を8(バイト)に設定。

※ここの設定値ははbyte表示になってますので注意してください。8byte = 4 word

6. ロボット側:システム設定(UOP/リモート)
- システム設定で 「専用外部入力(UOP)」を有効に。
- (任意)CSTOPIでプログラム強制終了/全終了を有効化。非常停止系で即停止させたい場合に有効。一時停止運用なら無効のまま推奨。
- リモート/ローカルを リモートへ。上位(PLC)からの起動が可能に。
- [設定] → [プログラム選択]
- 自動運転開始方法:UOP
- プログラム選択方式:OTHER
- マスタープログラムを選択(PLC起動時にこのプログラムが走る)
7. I/O割付(UI/UO・DI/DO・GI/GO)
本例のデバイス割付表
■ロボット OUT ⇒ PLC IN
word数 | bit数 | ロボット割付 | PLC割付 | デバイスコメント | ロボット割付開始点 |
---|---|---|---|---|---|
1 | 1 | UO1 | W00.0 | ロボット_UOP1 | 1 |
2 | UO2 | W00.1 | ロボット_UOP2 | 2 | |
3 | UO3 | W00.2 | ロボット_UOP3 | 3 | |
4 | UO4 | W00.3 | ロボット_UOP4 | 4 | |
5 | UO5 | W00.4 | ロボット_UOP5 | 5 | |
6 | UO6 | W00.5 | ロボット_UOP6 | 6 | |
7 | UO7 | W00.6 | ロボット_UOP7 | 7 | |
8 | UO8 | W00.7 | ロボット_UOP8 | 8 | |
9 | UO9 | W00.8 | ロボット_UOP9 | 9 | |
10 | UO10 | W00.9 | ロボット_UOP10 | 10 | |
11 | UO11 | W00.10 | ロボット_UOP11 | 11 | |
12 | UO12 | W00.11 | ロボット_UOP12 | 12 | |
13 | UO13 | W00.12 | ロボット_UOP13 | 13 | |
14 | UO14 | W00.13 | ロボット_UOP14 | 14 | |
15 | UO15 | W00.14 | ロボット_UOP15 | 15 | |
16 | UO16 | W00.15 | ロボット_UOP16 | 16 | |
2 | 1 | UO17 | W01.0 | ロボット_UOP17 | 17 |
2 | UO18 | W01.1 | ロボット_UOP18 | 18 | |
3 | UO19 | W01.2 | ロボット_UOP19 | 19 | |
4 | UO20 | W01.3 | ロボット_UOP20 | 20 | |
5 | – | W01.4 | 空き | 21 | |
6 | – | W01.5 | 空き | 22 | |
7 | – | W01.6 | 空き | 23 | |
8 | – | W01.7 | 空き | 24 | |
9 | – | W01.8 | 空き | 25 | |
10 | – | W01.9 | 空き | 26 | |
11 | – | W01.10 | 空き | 27 | |
12 | – | W01.11 | 空き | 28 | |
13 | – | W01.12 | 空き | 29 | |
14 | – | W01.13 | 空き | 30 | |
15 | – | W01.14 | 空き | 31 | |
16 | – | W01.15 | 空き | 32 | |
3 | 1 | DO1 | W02.0 | ロボットbit出力1 | 33 |
2 | DO2 | W02.1 | ロボットbit出力2 | 34 | |
3 | DO3 | W02.2 | ロボットbit出力3 | 35 | |
4 | DO4 | W02.3 | ロボットbit出力4 | 36 | |
5 | DO5 | W02.4 | ロボットbit出力5 | 37 | |
6 | DO6 | W02.5 | ロボットbit出力6 | 38 | |
7 | DO7 | W02.6 | ロボットbit出力7 | 39 | |
8 | DO8 | W02.7 | ロボットbit出力8 | 40 | |
9 | DO9 | W02.8 | ロボットbit出力9 | 41 | |
10 | DO10 | W02.9 | ロボットbit出力10 | 42 | |
11 | DO11 | W02.10 | ロボットbit出力11 | 43 | |
12 | DO12 | W02.11 | ロボットbit出力12 | 44 | |
13 | DO13 | W02.12 | ロボットbit出力13 | 45 | |
14 | DO14 | W02.13 | ロボットbit出力14 | 46 | |
15 | DO15 | W02.14 | ロボットbit出力15 | 47 | |
16 | DO16 | W02.15 | ロボットbit出力16 | 48 | |
4 | 1 | GO1 | W03 | ロボットword出力 | 49 |
2 | |||||
3 | |||||
4 | |||||
5 | |||||
6 | |||||
7 | |||||
8 | |||||
9 | |||||
10 | |||||
11 | |||||
12 | |||||
13 | |||||
14 | |||||
15 | |||||
16 |
■PLC OUT ⇒ ロボット IN
word数 | bit数 | ロボット割付 | PLC割付 | デバイスコメント | ロボット割付開始点 |
---|---|---|---|---|---|
1 | 1 | UI1 | W04.0 | ロボット_UIP1 | 1 |
2 | UI2 | W04.1 | ロボット_UIP2 | 2 | |
3 | UI3 | W04.2 | ロボット_UIP3 | 3 | |
4 | UI4 | W04.3 | ロボット_UIP4 | 4 | |
5 | UI5 | W04.4 | ロボット_UIP5 | 5 | |
6 | UI6 | W04.5 | ロボット_UIP6 | 6 | |
7 | UI7 | W04.6 | ロボット_UIP7 | 7 | |
8 | UI8 | W04.7 | ロボット_UIP8 | 8 | |
9 | UI9 | W04.8 | ロボット_UIP9 | 9 | |
10 | UI10 | W04.9 | ロボット_UIP10 | 10 | |
11 | UI11 | W04.10 | ロボット_UIP11 | 11 | |
12 | UI12 | W04.11 | ロボット_UIP12 | 12 | |
13 | UI13 | W04.12 | ロボット_UIP13 | 13 | |
14 | UI14 | W04.13 | ロボット_UIP14 | 14 | |
15 | UI15 | W04.14 | ロボット_UIP15 | 15 | |
16 | UI16 | W04.15 | ロボット_UIP16 | 16 | |
2 | 1 | UI17 | W05.0 | ロボット_UIP17 | 17 |
2 | UI18 | W05.1 | ロボット_UIP18 | 18 | |
3 | – | W05.2 | 空き | 19 | |
4 | – | W05.3 | 空き | 20 | |
5 | – | W05.4 | 空き | 21 | |
6 | – | W05.5 | 空き | 22 | |
7 | – | W05.6 | 空き | 23 | |
8 | – | W05.7 | 空き | 24 | |
9 | – | W05.8 | 空き | 25 | |
10 | – | W05.9 | 空き | 26 | |
11 | – | W05.10 | 空き | 27 | |
12 | – | W05.11 | 空き | 28 | |
13 | – | W05.12 | 空き | 29 | |
14 | – | W05.13 | 空き | 30 | |
15 | – | W05.14 | 空き | 31 | |
16 | – | W05.15 | 空き | 32 | |
3 | 1 | DI1 | W06.0 | ロボットbit入力1 | 33 |
2 | DI2 | W06.1 | ロボットbit入力2 | 34 | |
3 | DI3 | W06.2 | ロボットbit入力3 | 35 | |
4 | DI4 | W06.3 | ロボットbit入力4 | 36 | |
5 | DI5 | W06.4 | ロボットbit入力5 | 37 | |
6 | DI6 | W06.5 | ロボットbit入力6 | 38 | |
7 | DI7 | W06.6 | ロボットbit入力7 | 39 | |
8 | DI8 | W06.7 | ロボットbit入力8 | 40 | |
9 | DI9 | W06.8 | ロボットbit入力9 | 41 | |
10 | DI10 | W06.9 | ロボットbit入力10 | 42 | |
11 | DI11 | W06.10 | ロボットbit入力11 | 43 | |
12 | DI12 | W06.11 | ロボットbit入力12 | 44 | |
13 | DI13 | W06.12 | ロボットbit入力13 | 45 | |
14 | DI14 | W06.13 | ロボットbit入力14 | 46 | |
15 | DI15 | W06.14 | ロボットbit入力15 | 47 | |
16 | DI16 | W06.15 | ロボットbit入力16 | 48 | |
4 | 1 | GI1 | W07 | ロボットword入力 | 49 |
2 | |||||
3 | |||||
4 | |||||
5 | |||||
6 | |||||
7 | |||||
8 | |||||
9 | |||||
10 | |||||
11 | |||||
12 | |||||
13 | |||||
14 | |||||
15 | |||||
16 |
UI/UO(ユニバーサルI/O:必須信号)
①[I/O] → [UOP]
②UI/UOとも:ラック89 / スロット1 / 開始点1 UI/UOの信号内容(生存信号、サイクルスタート等)はFANUC取説参照。
DI/DO(ビット信号:ON/OFF)
①[I/O] → [DIO(デジタル)]
②DO:範囲 1–16、ラック89 / スロット1 / 開始点33

DI:IN/OUT切替でDIへ。範囲 1–16、ラック89 / スロット1 / 開始点33
GI/GO(ワード信号:数値)
①[I/O] → [GIO(グループ)]
②GO1:ラック89 / スロット1 / 開始点49 / サイズ16
③GI1も同様に設定し、必要なビット幅を確保。

設定後、コントローラを再起動すると反映されます。
8. 動作確認
ロボット → PLC(DO → PLC IN)
①DI/DOモニタを開き、該当のDOをON(例:DO1 と DO16)。

②KV STUDIOで [モニタ/シミュレータ] → [登録モニタウィンドウ] を開く。

次に確認するデバイスをウィンドウに登録していきます。
③DI/DO の先頭と末尾を登録して状態を確認。

④同様の手順でUI/UO / GI/GO の先頭と末尾を登録して状態を確認。
⑤該当のデバイスがそれぞれONしていればOK
よくあるつまずきと対処
- PINGが通らない:IP/サブネット、ケーブル/スイッチ、重複IP、セキュリティ設定を再確認。
- I/Oが反映されない:I/Oサイズ不一致(ワード↔バイト変換ミス)や、再起動未実施。
- UOPで起動できない:UOP有効化、リモート設定、マスタープログラム選択を確認。
- 非常停止で止まらない/止まりすぎる:CSTOPI関連の有効/無効を要件に合わせる。
- アドレスずれ:ラック/スロット/開始点の打鍵ミスに注意。割付表とモニタを突き合わせて検証。
補足(用語メモ)
- IPアドレス:ネットワーク上の住所。
- サブネットマスク:同一ネットワークの範囲を決める値。
- UOP(専用外部入出力):自動運転の必須信号群(Cycle Start、Fault Reset など)。
- DI/DO:ビット入出力。
- GI/GO:グループ(ワード)入出力。
- EtherNet/IP:産業用イーサネット規格。表記ゆれ対策で「Ethernet/IP」も本文に含めています。