今回の記事ではオムロンのNX CPU同士でEthernet/IP通信の構築方法を説明します。
さ、FAを楽しもう。

タグ・データ・リンク
タグデータリンクは、コントローラ間またはコントローラと他のデバイス間で、EtherNet/IPネットワーク上での周期的なタグデータ交換を可能にします。 変数はタグに割り当てられます。
コントローラ間の通信では、データを受信(consumes)するコントローラ(originator)の内蔵 EtherNet/IP ポートに接続情報が設定されます。
データを交換する各ノードの出力ワードと入力ワードを接続情報に設定する必要がある。 これらの単語をそれぞれ出力タグセット、入力タグセットと呼びます。 各タグセットには少なくとも1つのタグが含まれていなければならない。
また、データ交換のデータサイズは、タグセットに含まれるタグの合計サイズであり、 出力タグセットのサイズと入力タグセットのサイズは一致する必要があります。
タグセット
データリンクコネクションが確立されると、1 つまたは複数のタグ(コン トローラのステータスを含む最大 8 つのタグ)が、コネクションのタグセット として設定されます。 これをタグセットと呼びます。 各タグセットは、1 つのタグデータリンクコネクションのデータ単位を表します。
なので、タグデータリンクは、あるタグセットと別のタグセットとの間の接続によって作成されます。また、 各タグセットにタグセット名を設定する必要があります。
使用例
以下の例では、発信側の入力タグ “a “から “g “はSP1_INというタグセットであり、出力タグ “I “と “ii “はSP1_OUTというタグセットであります。 この2つのタグセットの間に接続が設定される。
入力(consume)タグセットと出力(produce)タグセットがある。 各タグセットには、入力タグと出力タグのいずれかを含めることができる。 ですが、同じ入力タグを複数の入力タグセットに含めることはできません。
タグセットのタグ数
1つのコネクションに対して、入力と出力の各タグセットに1つ以上のタグを設定できる。 例えば、入力タグセットには1つのタグを設定し、出力タグセットには複数のタグを設定することができます。
複数のタグを持つタグセット
注意するのはあなたが使用してるCPUにより、Groupできるタグの数も変わります。
- NX701 CPUユニットでは、1つのタグセットに最大8つのタグ(合計最大722ワード)を割り当てることができます。
- NX50202 CPUユニットでは、1つのタグセットに最大64個のタグ(合計最大722ワード)を割り当てることができます。
- NX10202 CPUユニット、NX102P2 CPUユニット、NJシリーズCPUユニットでは、1つのタグセットに最大8個(合計300ワード)のタグを割り当てることができます。
注意するのは、 接続を有効では各タグセットに、入力タグまたは出力タグのいずれか一方のみを含める必要があります。 (1つのタグセットに入力タグと出力タグの両方を含めることはできません)。
接続設定パラメータ
Ethernet/IP接続設定には、以下の設定パラメーターがあります。
要求パケット間隔(RPI)の設定
RPI(Requested Packet Interval:要求パケット間隔)は、タグ・データ・リンクが確立されているときのEthernetライン上のI/Oデータ・リフレッシュ・サイクルです。 EtherNet/IPでは、ノード数に関係なく、各コネクションに設定されたRPIで通信ライン上でデータが交換されます。 内蔵EtherNet/IPポートでは、コネクションごとにRPIを設定できます。
マルチキャストまたはユニキャスト通信の設定
タグ・データリンク接続設定で、接続タイプとしてマルチキャスト接続またはユニキャスト(ポイント・ツー・ポイント)接続を選択できます。1つの出力タグセットを複数のノードに送信すれば、マルチキャスト接続によって通信負荷を軽減できます。
multicast connection
マルチキャスト接続では、1つのパケットで出力タグセットを複数のノードに送信し、入力タグセットに割り当てを行うことができます。
unicast connection
ユニキャスト接続は、各ノードに1つの出力タグセットを個別に送信する。
入力タグセットの数と同じ数のパケットを送信します。
タグ・データ・リンク・データの並行性
タグ・データリンクのデータの並行性を維持するには、タグに割り当てられて いる各ネットワーク変数にリフレッシュ・タスクを設定する必要があります。
- タグセット内のタグデータの同時性を維持する。
- タグに割り当てられているネットワーク変数を更新するタイミングを、 ネットワーク変数にアクセスするプログラムの実行期間と同期させる。
タグ・セット内の複数のタグの値の同時性を維持するには、タグ(Network Publish属性を持つ変数)が以下の条件をすべて満たす必要があります。
- タグは同じタグ・セット(接続)に割り当てられている必要があります。
- タグに割り当てられたネットワーク変数にリフレッシュ・タスクを設定し、タグ・セット内のすべてのタグに対して同じリフレッシュ・タスクを設定する必要があります。
- NX50202, NX102, NX102P2, NJ シリーズ CPU ユニットでは、AT 指定のタグはタグセットに含めないでください。
- 各タスクに設定される可変アクセスタイムは、タグデータの転送に必要な値よりも大きい値に設定する必要があります。
- タグの更新タスクの設定(ネットワーク変数) タグセット内のタグの同時性が保たれます。
Implementation
今回の記事ではNX102-9000とNX502-1500両方にも設定が必要です。
NX502側
最初にNX502-1500側を構築します。
初回ログイン
Sysmac Studioから新品のNX502-1500を接続すると、User名とパスワードの設定が求められ、それらを設定し、CPUに転送していきましょう。
Done!
Ethenret/IP ポート
次はNX502-1500本体のEthernet/IP PortのIP設定をしてください。
グローバル変数の定義
Programming>Global Variableで変数を定義します。
長さ8と16のワード配列を定義し、それぞれをInput/Outputとして設定します。
Ethernet/IP設定
次はNX502-1500のEthenret/IP接続を行い、Tools>Ethenret/IP Connection Settingsをクリックしてください。
今回記事で使用したのはPort2なので、Port2を右クリック>Editします。
すべて変数登録
プログラム内にあるInput/Output変数を”Register All”ボタンで変数をEthernet/IPネットワークに登録します。
NX102-9000の追加
次はSysmac StudioにNX102-9000のEthernet/IP接続を追加します。
ノードアドレス
Node AddressはNX102-9000のIPをアドレスに設定します。
モデル名
Model NameはNX10202-9000に設定してください。
Revision
Revisionは2に設定します。
結果
最後はAdd ボタンをクリックしNX10202-9000を追加します。
Done!
Ethernet/IPネットワークへの挿入
先ほど追加したNX10202-9000をEthernet/IPネットワークに追加します。
Connection I/O
今回の記事ではTag通信を使用するので、Connection I/OをInput Only(Tag Type)に設定します。
Connection Type
Connection TypeをPoint to Point Connectionに設定します。
Originator Variable
こちらは先程登録した変数で定義します。
Target Variable
こちらの欄ではNX102-9000(つまり相手側)のTag名なので、ここで一致するように設定しましょう。
結果
これでNX102-9000→NX502-1500のEthernet/P接続設定が完了です。
コントローラーへ転送
Ethernet/IPの設定を完了したら、Transfer to ControllerでEthernet/IP設定をNX502-1500に転送します。
ダウンロード
次はTransfer>To Controllerでプロジェクト全体もNX502-1500に転送しましょう。
NX102 側
次はNX102-9000側を進みます。
Ethenret/IP ポート
NX102-9000本体のEthernet/IP PortのIP設定をしてください。
グローバル変数の定義
Programming>Global Variableで変数を定義します。
Ethernet/IP設定
次はNX102-9000のEthenret/IP接続を行い、Tools>Ethenret/IP Connection Settingsをクリックしてください。
今回記事でNX102-9000 のPort2を使用するので、Port2を選び>右クリック>Editします。
すべて変数登録
プログラム内にあるInput/Output変数を”Register All”ボタンで変数をEthernet/IPネットワークに登録します。
NX502-1500の追加
今度はプロジェクトにNX502-1500を追加したいので、右にあるToolboxにある+ボタンをクリックしてください。
ノードアドレス
Node AddressはNX502-1500のアドレスに設定してください。
モデル名
Model NameはNX50202-1500に設定します。
Revision
Revisionを2に設定します。
結果
最後にNX50202-1500を追加するにはAddボタンをクリックします。
Done!
Ethernet/IPネットワークへの挿入
NX50202-1500をNX102-9000のEthernet/IPネットワークに追加します。
Done!
オリジネーター
Originator Variableは先程登録した変数に設定します。
Point to Point Connection
接続タイプはPoint to PointでOKです。
Connection I/O
今回はTag通信するので、Connection I/OをInput Only(Tag Type)にします。
Size(Byte)
Sizeは3Originator変数と同じように設定します。
結果
Done!
これでNX502-1500→NX102-9000のEthernet/P接続設定が完了です。
コントローラーへ転送
Ethernet/IPの設定を完了したら、Transfer to ControllerでEthernet/IP設定をNX102-9000に転送します。
ダウンロード
次はTransfer>To Controllerでプロジェクト全体もNX102-9000に転送しましょう。
結果
Sysmac StudioにEthernet/IPの接続を確認するには、該当するPortを右クリック>Monitiorします。
Done!
また164が青色のランプが表示されているのは、IPが64番のデバイスと正常通信してるからです。
NX502-1500側に新しいデータを書き込みます。
Done!NX102-9000側からはデータをちゃんと受け取りました。
次はNX102-9000についても確認していきましょう。
NX102-9000側に出力データを変更します。
Done!NX50202-1500側からもデータを受信できました!