導入
キーエンスやオムロン、ロックウェルのマニュアルを読んでいると、必ず出てくる「CIP」という言葉。 EtherNet/IPのケーブルを繋ぎたいだけなのに、急に「CIP通信」や「CIPオブジェクト」なんて言葉が出てくると混乱しますよね。
- 「新しい通信ケーブルの名前?」→ 違います。
- 「メーカー独自の規格?」→ 違います。
一言で言うと、CIPは「工場の共通言語(文法)」です。 これを理解していないと、PLCでメッセージ通信(MSG命令)を組むとき、「クラス? インスタンス? なにそれ?」とパラメータ入力で挫折することになります。
今回は、この難解なCIPの仕組みを、「ある会社の組織図」に例えて解説します。 これを読めば、マニュアルの「オブジェクト一覧表」がスラスラ読めるようになりますよ!
まずイメージしよう。「電話機」と「日本語」の違い
まず、よくある勘違いを解消しましょう。 「EtherNet/IP」と「CIP」は、役割が全く違います。
- EtherNet/IP = 「電話機(伝達手段)」
- CIP = 「日本語(話す内容)」
電話(Ethernet)を使おうが、糸電話(DeviceNet)を使おうが、そこで語られている「言葉のルール(CIP)」は同じですよね? だから、EtherNet/IPもDeviceNetもCompoNetも、みんな「CIPファミリー(親戚)」と呼ばれます。 伝達手段(ケーブル)が違うだけで、中身の文法は共通だからです。
ケーブルの中で起きている「マトリョーシカ」現象
もっと物理的なイメージで言うと、「トラック(Ethernet)」の中に「手紙(CIP)」が乗っている状態です。
- Ethernet/TCP/IP(トラック・封筒):
- データを運ぶための運送業者です。「192.168.1.10へ運んでくれ」という宛名だけを見て運びます。中身には関知しません。
- CIP(手紙):
- 封筒の中に入っている「手紙」そのものです。「製造部の1号機さん、データを教えて」という命令の中身が書かれています。
「CIP通信をする」というのは、いつものLANケーブル(トラック)を使って、この特殊なフォーマットの手紙(CIP)を送り合うことなのです。

マニュアルの「オブジェクト」解読の鍵。「C・I・A」を攻略せよ
さて、ここからが本題です。 PLCでCIP通信(Explicitメッセージ)を行おうとすると、必ず以下の3つのパラメータ入力を求められます。
- クラス (Class ID)
- インスタンス (Instance ID)
- アトリビュート (Attribute ID)
頭文字をとって「C, I, A」と呼ばれるこの3つ。マニュアルの「オブジェクト仕様書」には無機質な数字が並んでいますが、これを「会社の組織」に置き換えると、一瞬で意味が分かります。
通信相手の機器(インバータやセンサ)を、「ひとつの会社(インバータ株式会社)」だと思ってください。
① Class(クラス) = 「部署」
会社の中には、機能ごとに部署が分かれていますよね。CIPも同じです。
- Identity クラス (ID: 1) → 「総務部(自己紹介課)」
- 会社の名前や、製品名などを管理している部署です。
- Assembly クラス (ID: 4) → 「製造部(入出力課)」
- 実際のデータ(ON/OFF信号など)を扱っている部署です。
- Parameter クラス (ID: 15) → 「技術部(設定課)」
- 加速時間などのパラメータを管理している部署です。
「Class ID」を指定するということは、「どの部署に電話をかけるか」を選んでいるだけです。
② Instance(インスタンス) = 「社員(担当者)」
部署の中には、実際に働いている「人」がいます。
- Instance 1 → 「1号機の担当者さん」
- Instance 2 → 「2号機の担当者さん」
「Instance ID」を指定するのは、「その部署の、誰(何番さん)を呼び出すか」を指定することです。 (※インバータ単体の場合は、基本的に「1番さん(Instance 1)」しかいないことが多いですが、多軸コントローラなどの場合は2番、3番と増えていきます)
③ Attribute(アトリビュート) = 「その人の個人情報」
電話に出てくれた担当者さんから、何を聞き出したいですか? その人が持っている「名簿」の何行目のデータが欲しいか、を指定します。
- Attribute 1 (Vendor ID) → 「あなたの会社コードは?」
- Attribute 7 (Product Name) → 「あなたの製品名は?」
「Attribute ID」は、「その人が持っている情報の、どの項目が欲しいか」を指定する番号です。

「住所(CIP)」は読めた。じゃあ、どうやって送る?
クラスやインスタンスで「宛先」は理解できましたね。 では、その宛先にデータを送るとき、「都度メールを送る(Explicit)」のが良いのか、「ベルトコンベアで垂れ流す(Implicit)」のが良いのか?
現場で迷いがちな「通信モードの使い分け」については、こちらの記事で解説しています。

実際に「翻訳」してみよう
では、実際にマニュアルによくある設定を、この「会社」の例えで翻訳してみましょう。
【ミッション】
インバータの製品名(形名)をPLCで読み出したい。 マニュアルのオブジェクト一覧表には「Identity Object, Class 1, Instance 1, Attribute 7」と書いてある。
これを翻訳すると、こうなります。
- Class 1 (Identity) → 「もしもし、総務部(自己紹介課)をお願いします」
- Instance 1 → 「総務部の1番さん(代表者)を出してください」
- Attribute 7 (Product Name) → 「あなたの製品名(7番の項目)を教えて!」
- Service Code (Get Attribute Single) → 「質問します(Get)」
返答: 「はい、私は『FR-E800』です」
どうですか? やっていることは、ただの「電話での問い合わせ」なんです。 PLCのMSG命令で設定している数字の羅列は、この「内線番号」を順番に指定していただけなんですね。
サービスコードは「動詞」である
最後に一つだけ。「Service Code(サービスコード)」という設定項目があります。 これは、相手に対する「動詞」です。
- Get (0E) = 「教えて(読む)」
- データを読み出したいときに使います。
- Set (10) = 「書き換えて(書く)」
- パラメータを変更したいときに使います。
「部署・人・項目」を指定して、最後に「Get(読む)なのか Set(書く)なのか」を決める。これがCIP通信の全ての基本です。
コラム:実は「いつもの通信」でもCIPは使われている?
ここまで読むと、「CIPって、面倒なメッセージ通信(Explicit)をするときだけ使うんだな」と思うかもしれません。 でも実は、皆さんが普段何気なく設定している「サイクリック通信(I/O通信)」でも、裏側ではCIPが使われているのです。
設定ソフト(Network Configuratorなど)で、こんな入力をしたことはありませんか?
- Input Instance: 100
- Output Instance: 101
「ああ、いつもの設定ね」とスルーしていたこの数字。 実はこれ、「製造部(Class 4)の、100番さん(Instance 100)と契約します!」 という、バリバリのCIPアドレス指定なんです。
- メッセージ通信:
- 毎回電話して「〇〇部の××さん!」と呼び出す。(都度注文)
- サイクリック通信:
- 最初に一回だけ「〇〇部の××さんと契約!」と申し込んで、あとは自動で届けてもらう。(定期購読)
「あの数字は、CIPの『社員番号(インスタンス)』だったのか!」 これを知っていると、設定画面の入力項目がただの記号ではなく、意味のある「住所」に見えてきませんか?
【実践】マニュアルからPLCへの「転記」の黄金ルール
最後に、現場で一番困るポイントを解消しておきましょう。 「理屈は分かったけど、実際のソフトにはどう入力すればいいの?」 メーカーのマニュアル(メニュー表)からPLCの設定画面(注文書)へ転記するときには、2つのコツがあります。
1. 「隠れたインスタンス」は「1」を入れる
マニュアルのオブジェクト仕様書(一覧表)には、「Instance ID」の列がないことが多いです。 これは「1番しかいないから省略!」というメーカー側の甘えです。
- ルール: 表に Instance ID が書いてなければ、PLCの設定画面には迷わず 「1」 と入力してください。
- 例外: 「製造部(Assembly)」のように、別のページに「インスタンス一覧」がある場合だけ、その番号(100, 101など)を入れます。
2. 「16進数」の罠に注意!
ここが最大の落とし穴です。 マニュアルの表に書かれている数字は、「16進数(Hex)」で書かれていることがほとんどです(例:Class 0F, Attribute 10 など)。
しかし、PLCの設定ソフトはメーカーによって「10進数」で入力を求めてくることがあります。
- Class 0F (Hex) → 15 (Dec)
- Attribute 10 (Hex) → 16 (Dec)
「設定したのにエラーが出る!」という時は、だいたいこの変換ミスです。 マニュアルに 0x や h が付いていたら16進数なので、Windowsの電卓(プログラマ電卓モード)で変換して入力しましょう。
まとめ
- EtherNet/IP はトラック、CIP はその中の手紙。
- Class = 部署(総務部、製造部…)
- Instance = 担当者(1番さん…)
- Attribute = 欲しい情報(社名、設定値…)
このイメージを持ってマニュアルの「オブジェクト仕様書」を見返してみてください。今まで暗号に見えていた数字の表が、「会社の電話帳」に見えてくるはずです。
【応用】もし、その手紙が「非常停止」だったら?
通常のCIP通信は「白い封筒」に入った普通の手紙です。しかし、命に関わる「非常停止信号」を送る場合は、もっと厳重なセキュリティが必要です。 普通のCIPと何が違うのか?「黄色いアタッシュケース」と呼ばれるCIP Safetyの仕組みはこちらで解説しています。

