イーサネット/IP
EtherNET/IP プロトコルと Typhoon HIL ツールチェーンでのその実装について説明します。
CIPプロトコルの概要
Common Industrial Protocol(CIP)は、産業用デバイス(センサー、アクチュエーター)と上位デバイス(コントローラー)間の接続を提供するピアツーピアのオブジェクト指向プロトコルです。DeviceNet、ControlNet、EtherNet/IP、CompoNetの4つのネットワークは、ネットワークプロトコルの上位層にCommon Industrial Protocolを使用しています。EtherNet/IPは、ControlNetとDeviceNetが共有する共通のネットワーク層、トランスポート層、アプリケーション層にCIPを使用しています。EtherNet/IPは、標準的なEthernetとTCP/IP技術を利用してCIP通信パケットを転送します[ 1 ]。

CIP組織
CIPはデータ表現と接続管理によって定義されます[ 3 ]。
- CIPデータ表現 - CIPデバイスがデータを表現する方法を定義します。CIPネットワーク上で公開されるデータは、オブジェクトと呼ばれる共通カテゴリにグループ化された属性値の集合として表現されます。クラスとは、すべて同じ種類のシステムコンポーネントを表すオブジェクトの集合です。オブジェクトインスタンスとは、クラス内の特定のオブジェクトの実際の表現です。クラスの各インスタンスは同じ属性セットを持ちますが、属性値はそれぞれ独自のセットを持ちます。

- CIP 接続とメッセージング - 接続の管理に使用されるオブジェクトを定義し、接続上でのデータの移行方法を決定する接続タイプを指定します。
CIPメッセージ
共通産業プロトコル(CIP)の文脈では、「I/Oメッセージング」と「明示的メッセージング」という2種類の接続を確立できます。これらのモードはそれぞれ異なる目的を果たし、特定の特性を持っています[ 1 ]。
- I/Oメッセージング - 主に産業用ネットワーク内のデバイス間でリアルタイムかつ周期的なデータ交換を行うために使用されます。I/Oメッセージングは、入出力(I/O)に関連する重要なデータの送受信を目的として設計されています。データは一定の時間間隔で定期的に交換され、I/Oデータの同期が維持されます。このモードは、通常、センサーからの入力データとアクチュエータへの出力データに使用されます。暗黙的なメッセージはUDP(ユーザーデータグラムプロトコル)を介して転送されます。
- 明示的メッセージング - デバイス間のオンデマンドかつ非リアルタイムのデータ交換に使用されます。これにより、デバイスは必要に応じてデータを要求・交換したり、特定のサービスを実行したりできます。デバイスは別のデバイスに要求メッセージを送信し、デバイスは要求されたデータで応答するか、要求されたアクションを実行します。明示的メッセージはTCP(Transmission Control Protocol)によって送信されます。すべてのメッセージには宛先、送信元、接続情報が含まれるため、明示的メッセージングは暗黙的メッセージングよりも効率性が低くなりますが、高い柔軟性を提供します。

CIPクラス
CIPクラスは、産業オートメーションネットワーク内の様々なデバイスやベンダー間の通信と互換性のための共通のフレームワークを提供します。各クラスは、デバイスとのやり取りに使用できる特定の属性とサービスのセットを定義します[ 1 ]。以下に、一般的なCIPクラスをいくつか示します。
- Identity (0x01) - デバイスの識別と一般情報を提供します。
- メッセージ ルーター オブジェクト クラス (0x03) - 明示的なメッセージをネットワーク内の適切な宛先にルーティングするためのメカニズムを提供します。
- アセンブリオブジェクトクラス (0x04) - CIPデバイスが暗黙的な接続を介して他のデバイスと通信するためのインターフェースを提供します。アセンブリオブジェクトは、外部デバイスと交換されるデータを構造化します。アセンブリインスタンスには、入力と出力の2種類があります。入力アセンブリインスタンスは外部デバイスに送信するデータを整理し、出力アセンブリインスタンスは外部デバイスから受信したデータを整理します。複数のアセンブリインスタンスを定義でき、外部デバイスはデータ転送時にインスタンスIDに基づいて特定のアセンブリインスタンスを選択できます。
- 接続マネージャオブジェクトクラス (0x06) - I/O接続と明示的メッセージ接続の両方に関連する内部リソースを割り当て、管理します。接続オブジェクトのインスタンスは、接続ごとに生成されます。このインスタンスは、接続が明示的か暗黙的かを識別し、暗黙的接続のパケットレートを設定し、接続に関するその他の説明情報を保持します。接続オブジェクトは、接続が閉じられると削除されます。
- パラメータオブジェクトクラス (0x0F) - 産業用デバイス内のパラメータを管理および設定するための標準化されたフレームワーク。パラメータオブジェクトは、様々なアプリケーションにおける産業用デバイスの設定、監視、制御に不可欠であり、それらの効率的な動作を確保します。

各I/Oアセンブリインスタンスは、インスタンス番号、タイプ、および名前によって定義されます。これらのアセンブリ内のデータ属性は、バイト配列として表現されます。アセンブリオブジェクトがデータ構造を定義するのに対し、Forward Openサービスは通信セッションの確立とデータ交換パラメータの設定において重要な役割を果たします。通信セッションが確立されると、UDPメッセージがデータ転送のためのトランスポートメカニズムとして機能します。
CIPサービス
共通産業プロトコル(CIP)において、サービスとは、デバイスとコントローラがネットワークを介して相互に通信する際に実行できる、事前定義された一連のアクションまたは操作を指します。CIPは、デバイスがデータの交換、パラメータの設定、接続の管理、その他のタスクを実行できるようにする幅広いサービスを定義します。これらのサービスは、CIPオブジェクトのクラスレベルまたはインスタンスレベルのいずれかを対象にすることができます[ 1 ]。以下に、一般的なCIPサービスをいくつか示します。
- Get Attribute Single (0x0E) - デバイス内のオブジェクトの単一属性の値を取得するために使用されます。これにより、他のデバイスはデバイスの名前、ステータス、構成パラメータなど、デバイスに関する特定の情報を要求できるようになります。
- 単一属性設定 (0x10) - デバイスのオブジェクト内の単一属性の値を設定するために使用されます。これにより、デバイスのパラメータの設定と制御が可能になります。
- Get Attribute All (0x01) - 単一の通信リクエストで、デバイスのオブジェクト内の複数の属性の値を要求するために使用されます。属性ごとに個別のリクエストを送信する代わりに、単一のリクエストで複数の属性を一度に取得できます。
- Set Attribute All (0x02) - 単一の通信リクエストで、デバイスのオブジェクト内の複数の属性の値を設定するために使用されます。これにより、複数の属性を一度に設定または更新できるため、複数のリクエストを個別に発行する必要性が軽減されます。
- 属性リストの取得 (0x03) - 指定されたオブジェクト クラスまたはインスタンスの選択された取得可能な属性の内容を返すために使用されます。
- 属性リストの設定 (0x04) - 指定されたオブジェクト クラスまたはインスタンスの選択した属性の内容を設定するために使用されます。
- フォワードオープン (0x54) - 2つのデバイス間の通信接続を確立するために使用されます。これにより、デバイスはデータ交換のためのパスを設定し、相互にデータの送受信が可能になります。フォワードオープンは、デバイスが別のデバイスとの通信を開始するときに使用されます。このサービスには、接続タイプ、ネットワークアドレス、その他の接続を確立するために必要な設定情報などのパラメータが含まれます。接続が確立されると、デバイス間でデータを交換できるようになります。
- フォワードクローズ (0x4E) - デバイス間の既存の通信接続を終了するために使用されます。これにより、デバイスは接続が不要になった際に、接続に関連付けられたリソースを解放できます。

イーサネット/IP サーバー コンポーネント
Ethernet/IPサーバコンポーネントのアイコンは表1に示されています。現在、以下のTyphoon HILデバイスでサポートされています: HIL402、HIL101、HIL404、HIL602+、HIL604、HIL506、およびHIL606 。
成分 | コンポーネントダイアログウィンドウ | コンポーネントのプロパティ |
---|---|---|
![]() |
![]() |
|
EDS ファイル
Ethernet/IPネットワークのセットアップフェーズでは、専用の設定ツールを使用してEthernet/IPサーバーを設定する必要があります。設定プロセスは、各Ethernet/IPデバイスに必要な電子デバイスデータシート(EDSファイル)に基づいて行われます。EDSファイルはデバイスメーカーから提供され、Ethernet/IPデバイスのすべての関連通信パラメータとオブジェクトの電子的な記述が含まれています[ 1 ]。
デバイス構成
- クラス - このタブはデバイス構成の中心的なコンポーネントであり、パラメーター クラスとアセンブリ クラスのリスト、そのインスタンス、および EDS ファイルで定義されている属性の完全な配列を提供します。
- ファイル情報 - このタブにはファイルに関する基本的な詳細が表示されます。
- デバイス情報 - このタブには、デバイスの重要な詳細が表示されます

EDSファイルを読み込むと、パラメータクラスとアセンブリクラスの両方が抽出されます。各インスタンスについて、それらを説明する属性がテーブルに表示されます。各アセンブリパラメータは、方向を選択できる潜在的な端子を表します。モデル制御列は、特定のオブジェクトの値をモデルからの信号を使用して制御するかどうかを定義します。このフィールドを有効にすると、コンポーネント上に端子が作成され、任意の信号処理信号をそのオブジェクトに接続できます。端子タイプ列の選択に応じて、ポートはコンポーネント上の入力端子または出力端子として表示されます。ファイル情報タブとデバイス情報タブ(図7 )には、EDSファイルから解析された基本情報が表示されます。

Ethernet/IPサーバーコンポーネントの内部
パラメータの説明には、オフセット値、基数、除数、乗数、小数点精度などがあります。パラメータ値は、以下の式でスケーリングできます。
EDSファイルでは、パラメータの上限値と下限値を定義できます。リミットコンポーネントの役割は、パラメータ値が常に要求された範囲内にあることを確認することです。そのため、サーバー側で入力された値は、スケーリング式を適用した後にクライアントに送信されます。図8は、Ethernet/IPサーバーコンポーネントの入力端子とスケーリングコンポーネントを示しています。

クライアントからサーバーにメッセージを送信する場合、次のようにスケーリング式を再度適用して、エンジニアリング値から実際の値を抽出する必要があります。

接続例
端末コンポーネントを作成した後、図10に示すように、モデルに適した信号処理信号を接続できます。このサーバーは、クライアントとのI/Oメッセージの交換をサポートしています。一部のクラス、インスタンス、および属性については、Get Attribute Single、Set Attribute Single、Get Attribute All、およびGet Attribute Listサービスを使用するための明示的なメッセージをサポートしています。

- 特定の CIP サービスの実行要求の送信。
- そのサービスを表すリクエストへの応答を受信します。
制限事項
現在の実装では、ユーザーが独自のサーバーIPアドレスを定義することはできません。代わりに、HILデバイスに事前に割り当てられたIPアドレスを使用する必要があります。このIPアドレスを確認するには、デバイスマネージャー内で対応するHILデバイスにマウスを合わせるだけです。
仮想HILサポート
Virtual HILは現在このプロトコルをサポートしていません。非リアルタイム環境(例:ローカルコンピュータでモデルを実行する場合)を使用する場合、このコンポーネントへの入力は破棄され、このコンポーネントからの出力はゼロになります。
参考文献
- ODVA & ControlNet International Ltd. (2007). CIPネットワークライブラリ 第1巻:Common Industrial Protocol (CIP™) 第3.3版. Open DeviceNet Vendor Association, Inc.
- Handel, M.、Woods, J. (2022). EtherNet/IP™テクノロジーへのTime-Sensitive Networkingの統合. https://www.odva.org/wp-content/uploads/2022/03/2022_ODVA_Conference_Integration-of-Time-Sensitive-Networking-into-EIP-Technologies_Hantel-Woods_FINAL.pdf.
- Rinaldi, J. (2018). CIPとは?. リアルタイムオートメーション. https://www.rtautomation.com/rtas-blog/what-is-cip/
- ヒルシャー ゲゼルシャフト ファー システムオートメーション mbH。 (2017年)。 EtherNet/IP スキャナ |プロトコル API V2.10.0 リビジョン 14 (DOC050702API14EN)。ヒルシャー。 https://www.hilscher.com/fileadmin/cms_upload/de/Resources/pdf/EtherNetIP_Scanner_Protocol_API_14_EN.pdf
- Collins, D. (2020). EtherNet/IPにおける明示的メッセージングと暗黙的メッセージングとは?. Motion Control Tips. https://www.motioncontroltips.com/what-are-explicit-and-implicit-messaging-in-ethernet-ip/