マニュアルに出てくる「CIP」って結局なんなの? EtherNet/IPを支える「共通言語」と「3つの暗号」の正体

  • URLをコピーしました!
目次

導入

キーエンスやオムロン、ロックウェルのマニュアルを読んでいると、必ず出てくる「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)」が乗っている状態です。

  1. Ethernet/TCP/IP(トラック・封筒):
    • データを運ぶための運送業者です。「192.168.1.10へ運んでくれ」という宛名だけを見て運びます。中身には関知しません。
  2. CIP(手紙):
    • 封筒の中に入っている「手紙」そのものです。「製造部の1号機さん、データを教えて」という命令の中身が書かれています。

「CIP通信をする」というのは、いつものLANケーブル(トラック)を使って、この特殊なフォーマットの手紙(CIP)を送り合うことなのです。


マニュアルの「オブジェクト」解読の鍵。「C・I・A」を攻略せよ

さて、ここからが本題です。 PLCでCIP通信(Explicitメッセージ)を行おうとすると、必ず以下の3つのパラメータ入力を求められます。

  1. クラス (Class ID)
  2. インスタンス (Instance ID)
  3. アトリビュート (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)」のが良いのか?

現場で迷いがちな「通信モードの使い分け」については、こちらの記事で解説しています。

あわせて読みたい
【EtherNet/IP】「Explicit(メッセージ通信)」と「Implicit(サイクリック通信)」の違いを現場目線で... 「EtherNet/IPの通信設定、どっちを使えばいいの?」 新人の頃、分厚いマニュアルを前にして途方に暮れた経験があります。 産業用ネットワークのスタンダードであるEthe...

実際に「翻訳」してみよう

では、実際にマニュアルによくある設定を、この「会社」の例えで翻訳してみましょう。

【ミッション】

インバータの製品名(形名)をPLCで読み出したい。 マニュアルのオブジェクト一覧表には「Identity Object, Class 1, Instance 1, Attribute 7」と書いてある。

これを翻訳すると、こうなります。

  1. Class 1 (Identity) → 「もしもし、総務部(自己紹介課)をお願いします」
  2. Instance 1 → 「総務部の1番さん(代表者)を出してください」
  3. Attribute 7 (Product Name) → 「あなたの製品名(7番の項目)を教えて!」
  4. 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)

「設定したのにエラーが出る!」という時は、だいたいこの変換ミスです。 マニュアルに 0xh が付いていたら16進数なので、Windowsの電卓(プログラマ電卓モード)で変換して入力しましょう。


まとめ

  • EtherNet/IP はトラック、CIP はその中の手紙。
  • Class = 部署(総務部、製造部…)
  • Instance = 担当者(1番さん…)
  • Attribute = 欲しい情報(社名、設定値…)

このイメージを持ってマニュアルの「オブジェクト仕様書」を見返してみてください。今まで暗号に見えていた数字の表が、「会社の電話帳」に見えてくるはずです。

【応用】もし、その手紙が「非常停止」だったら?

通常のCIP通信は「白い封筒」に入った普通の手紙です。しかし、命に関わる「非常停止信号」を送る場合は、もっと厳重なセキュリティが必要です。 普通のCIPと何が違うのか?「黄色いアタッシュケース」と呼ばれるCIP Safetyの仕組みはこちらで解説しています。

あわせて読みたい
【CIP Safety】なぜ「普通のLANケーブル」に非常停止を混ぜても安全なのか?「ブラックチャンネル」の仕... 導入:現場の「恐怖」を代弁します 「制御盤とロボットの間の配線、LANケーブル1本にしておいたよ」 もし業者さんにそう言われたら、あなたはゾッとしませんか? 「おい...
よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次