DeviceNet ゲートウェイへの接続
この例の目的は、HMS Anybus X-gateway を使用して DeviceNet ファクトリ通信ネットワーク上のデータにアクセスする方法を示すことです。このトピックでは、ゲートウェイのインストールおよび設定の方法、デバイスに通信を許可するようにネットワーク (RSNetworks) を設定する方法、および In-Sight Explorer ジョブを作成してゲートウェイにデータを送信する方法を説明します。以下の例では、ユーザが次のハードウェアとソフトウェアを使用していることを前提としています。
- ファームウェアバージョン 3.41.00 以降が実行されている In-Sight ビジョンシステム
- Anybus X-gateway Modbus/TCP-to-DeviceNet Adapter
- DeviceNet Scanner Card を搭載した Rockwell PLC
- Rockwell RSNetWorx および RSLogix 5000 Software
Anybus X-gateway のインストールと設定
このセクションの手順では、Anybus X-gateway の Ethernet 部分のインストールおよび設定方法について説明します。
- HMS のソフトウェアユーティリティである Anybus IPconfig をダウンロードしてインストールします。このユーティリティでは、Anybus ベースの Ethernet インタフェースを簡単に設定することができる HMS IP Configuration Protocol (HICP) を使用します。
- Ethernet に接続した PC で、Anybus IPconfig を実行します。ネットワーク上で検出された Anybus ベースの Ethernet インタフェースとその IP アドレスが、すべてウィンドウに表示されます。
- Anybus X-gateway で MAC ID ディップスイッチを使用して、DeviceNet MAC ID アドレスを設定します。詳細については、『Anybus-X DeviceNet Slave Network Interface Addendum』を参照してください。Anybus X-gateway ハードウェアを実際に取り付けて接続します。詳細については、Anybus X-gateway のマニュアルを参照してください。
- Anybus X-gateway ハードウェアを適切に取り付けて、すべてのケーブルを接続した後、Anybus X-gateway ハードウェアの電源を投入し、電源がオンになるまで 30 ~ 60 秒待ちます。Anybus-X Gateway ハードウェアの電源がオンになると、Ethernet LED 状態インジケータが緑色に点灯または点滅します。
- Anybus IPconfig ユーティリティで、[Scan] ボタンをクリックし、Anybus ベースの Ethernet インタフェースがすべて表示されるウィンドウの表示を更新します。リストに、デフォルト IP アドレス 192.168.0.1 の Anybus X-gateway ハードウェアが新たに追加表示されます。
- Anybus X-gateway の設定を変更する必要がある場合は、リストで [Anybus X-gateway] をダブルクリックします。DHCP による IP アドレスまたは固定 IP アドレス、サブネットマスク、デフォルトゲートウェイ、および DNS サーバを割り当てるためのダイアログが表示されます。設定を完了したら、[Set] ボタンをクリックして続行します。
- 最後に、Anybus IPconfig ユーティリティで、[Scan] ボタンをクリックし、Anybus ベースの Ethernet インタフェースをすべて表示するウィンドウの表示を更新します。リストに、新しい IP アドレス (変更した場合) の Anybus X-gateway ハードウェアが表示されます。
DeviceNet ネットワーク上の Rockwell PLC への Anybus X-gateway の接続
このセクションでは、Rockwell PLC と Anybus X-gateway の間の DeviceNet 通信を接続および検証するための手順を示します。Anybus X-gateway により、Modbus/TCP ネットワークと DeviceNet ネットワークの間のデータ交換が許可され、これにより入出力データを Rockwell PLC に送信できるようになります。Rockwell PLC と Anybus X-gateway の間の DeviceNet 接続を設定するには、RSNetWorx を使用してコントローラのハードウェア構成にそのゲートウェイを追加する必要があります。
-
DeviceNet の RSNetWorx を開きます。
注 : Anybus-Gateway を初めて使用する場合は、エレクトロニックデータシート (EDS) をインストールする必要があります。HMS の Web サイトから EDS ファイルをダウンロードします。 - [ツール] メニューで、EDS ウィザードを選択して EDS ファイルをインストールします。[次へ] をクリックして [Register an EDS file (EDS ファイルの登録)] を選択し、[次へ] を選択します。ダウンロードした EDS のパスを追加し、[次へ] をクリックします。
- [ネットワーク] メニューで [オンライン] を選択します。これにより、スキャナで設定したボーレートでネットワーク全体がスキャンされ、接続されているノードのすべてがリストに表示されます。
- 1756-DNB (ほかの接続されたスキャナ) をダブルクリックします。これにより、スキャナの設定を示したウィンドウが開きます。
- [Scanlist] タブを選択します。オフライン設定をスキャナにダウンロードするか、またはスキャナの現在の設定をアップロードするかを尋ねるプロンプトが表示されます。[アップロード] を選択します。
-
Scanlist にデバイスを追加するには、[Available Devices (使用可能なデバイス)] で [Anybus-S] をハイライト表示し、右矢印をクリックしてスキャナに追加します。
- デバイスを追加したら、[Edit I/O Parameters (I/O パラメータの編集)] を選択します。I/O のタイプとサイズを設定するためのウィンドウが表示されます。ポーリングオプションをオンにし、入出力サイズを 20 バイトに設定します。ポーリングレートを「スキャンごと」に設定して、入手可能になったらデータを取得します。
-
入出力のデータ量が正しいことを確認します。[入力] タブと [出力] タブを選択して、以下のグラフィックスと比較します。
- [ファイル] → [名前を付けて保存] をクリックし、その設定を InSightExample.dnt として保存します。
TCP/IP Modbus 経由での In-Sight ビジョンシステムへの Anybus X-gateway の接続
このセクションでは、TCP/IP Modbus による通信を使用した In-Sight ビジョンシステムへの Anybus X-gateway の接続について説明します。
In-Sight Explorer での TCP/IP Modbus による通信の設定
In-Sight ビジョンシステムでは TCP/IP Modbus クライアント機能が有効になっていますが、Anybus X-gateway が TCP/IP Modbus サーバ (スレーブ) として機能するため、このサーバ機能はこのモデルでは必要ありません。
- In-Sight Explorer の [In-Sight のネットワーク] ペインで、設定する In-Sight ビジョンシステムまたはエミュレータを選択します。
- [ファイル] メニューの [ジョブの新規作成] を選択し、ビジョンシステムまたはエミュレータに新規ジョブをロードします。
- [パレット] で [スニペット] タブを選択し、[Communications] フォルダを展開します。まず A2 を選択して DeviceNetGateway.cxd をダブルクリックするか、またはファイルをセル A2 にドラッグ & ドロップすることにより、In-Sight Explorer スプレッドシートの A2 セルに DeviceNetGateway.cxd ファイルをロードします。
- ビジョンシステムまたはエミュレータに、新規ジョブを DeviceNetGateway.job として保存します。
- セル A5 をダブルクリックし、Anybus X-gateway の IP アドレスを入力します (必要に応じ、HMS Anybus IPconfig ソフトウェアユーティリティを実行して、Anybus X-gateway の IP アドレスを取得します)。
- TCP/IP Modbus の通信では、In-Sight クライアント (マスタ) のジョブに TCPDevice 関数と QueryDevice 関数が存在している必要があります。TCPDevice 関数は、リモートデバイス間 (この場合は、Anybus X-gateway と In-Sight ビジョンシステム) のネットワーク接続を作成するときに使用します。QueryDevice 関数は、TCP/IP Modbus パケットの Modbus 関数コードコマンドを作成するときに使用します。DeviceNetbusGateway.cxd ファイルでは、セル C5 に TCPDevice 関数が 1 つ格納されており、読み取り要求用のセル B15 と書き込み要求用のセル B27 には QueryDevice 関数が 1 つずつ、合わせて 2 つの関数が格納されています。
-
Anybus X-gateway は、QueryDevice 関数で以下の Modbus 関数コードをサポートしています。
関数コード 関数名 3 Read multiple registers 4 Read input registers 6 Write single register 7 Read exception status 8 Diagnostics 16 Force multiple registers 22 Mask write register 23 Read/Write registers -
セル B15 の QueryDevice 関数をダブルクリックし、パラメータが次のように設定されていることを確認します。
注 : Modbus パケット構造体の詳細については、Modbus 発行の『Modbus Implementation Guide』を参照してください。パラメータ入力番号 パラメータ入力名 パラメータ入力値 説明 1 Event $A$15 [イベント] ボタンへのセル参照。 2 Device $C$5 セル C5 の TCPDevice 関数へのセル参照。 3 Data 0 Modbus ヘッダ、トランザクション ID、上位バイト = 0。 4 Data 0 Modbus ヘッダ、トランザクション ID、下位バイト = 0。 5 Data 0 Modbus ヘッダ、プロトコル ID、上位バイト = 0。 6 Data 0 Modbus ヘッダ、プロトコル ID、下位バイト = 0。 7 Data 0 フィールド長、上位バイト = 0。 8 Data 6 フィールド長、下位バイト = 6 (後続のバイト数)。 9 Data 0 単位 ID、使用しないバイト = 0。 10 Data $C$12+3 Modbus 関数コードバイト。この例では、この入力は 3 または 4 になります。
注 : Modbus 関数コードバイトが 3 にセットされている場合、In-Sight は保持レジスタ (TCP/IP Modbus 経由で書き込まれたデータ) を読み取ります。Modbus 関数コードバイトが 4 にセットされている場合、In-Sight は入力レジスタ (DeviceNet 経由で書き込まれたデータ) を読み取ります。11 Data 0 Modbus 参照アドレス、上位バイト = 0。
注 : 入力レジスタは、アドレス 1000 から Read multiple registers (関数コード 3) を使用して、またはアドレス 0 から Read input registers (関数コード 4) を使用して読み取られる場合があります。12 Data 0 Modbus 参照アドレス、下位バイト = 0。
注 : 入力レジスタは、アドレス 1000 から Read multiple registers (関数コード 3) を使用して、またはアドレス 0 から Read input registers (関数コード 4) を使用して読み取られる場合があります。13 Data 0 ワード (レジスタ) 数、上位バイト = 0。 14 Data $B$8 ワード (レジスタ) 数、下位バイト。この例では、この入力は 1、2、3、5、8 のいずれかになります。 -
Anybus X-gateway からの TCP/IP Modbus 応答パケットは、QueryDevice 関数のバイナリ構造体に格納されます。これらの戻り値は、In-Sight Explorer で BGetInt 関数によって読み取られます。この関数は、バイナリ構造体の特定のバイトからの整数値を返し、応答は以下のような形式になります。
バイト番号 Modbus 応答 説明 7 Modbus 関数コード この例では、3 または 4。このコマンドが失敗すると、関数コードに 128 が追加されます (返される値は 131 または 132。セル E15 を参照してください)。 8 バイト数 この例では、2 レジスタ (ワード) = 4 バイト。セル E15 を参照してください。 9/10 レジスタ 0 の値 これらの値は 2 バイト形式です。DeviceNetGateway.cxd ファイルでは、セル D18 の BGetInt 関数により、バイト 9 (ワード読み取りの下位バイト) のバイナリ値が読み取られます。 11/12 レジスタ 1 の値 これらの値は 2 バイト形式です。DeviceNetGateway.cxd ファイルでは、セル D19 の BGetInt 関数により、バイト 11 (ワード読み取りの下位バイト) のバイナリ値が読み取られます。 13/14 レジスタ 2 の値 これらの値は 2 バイト形式です。DeviceNetGateway.cxd ファイルでは、セル D20 の BGetInt 関数により、バイト 13 (ワード読み取りの下位バイト) のバイナリ値が読み取られます。 15/16 レジスタ 3 の値 これらの値は 2 バイト形式です。DeviceNetGateway.cxd ファイルでは、セル D21 の BGetInt 関数により、バイト 15 (ワード読み取りの下位バイト) のバイナリ値が読み取られます。 17/18/19/20 浮動小数点数値を格納するレジスタ 4 および 5 の値 これらの値は浮動小数点形式です。DeviceNetGateway.cxd ファイルでは、セル D22 の BGetInt 関数により、バイト 17 (ワード読み取りの下位バイト) のバイナリ値が読み取られます。 21/22/23/24/25/26 文字列 (バイト配列) を格納するレジスタ 6、7、および 8 の値 これらの値は文字列形式です。DeviceNetGateway.cxd ファイルでは、セル D23 の BGetInt 関数により、バイト 21 (ワード読み取りの下位バイト) のバイナリ値が読み取られます。 - 書き込み要求用の QueryDevice 関数 (セル B27) は、要求パケットおよび応答パケットと同じ形式で書式設定されます。
PLC から In-Sight ビジョンシステムへの DeviceNet 経由でのデータの読み取り
このモデルによって提供される例に従い、Anybus X-gateway の入力バッファは読み取られるデータソースです。このバッファには、TCP/IP Modbus ネットワーク上の In-Sight ビジョンシステムによって要求される DeviceNet ネットワーク上の PLC からのデータが保持されます。
- 「In-Sight Explorer での TCP/IP Modbus による通信の設定」のセクションで作成した In-Sight Explorer ジョブを引き続き使用します。
- RSLogix を開き、PLC のプロジェクトをロードします。
-
I/O Configuration フォルダで、DeviceNet モジュール (この例では 1756-DNB) を右クリックし、[プロパティ] を選択します。
-
[RSNetWorx] タブをクリックし、前のセクションで作成した設定ファイルを追加します。[OK] をクリックします。
-
コイルをラダープログラムに追加して、実行モードで DeviceNet スキャナを設定します。
- RSLogix で、[Data Types] → [User-Defined] フォルダを右クリックし、メニューから [New Data Type] を選択します。
-
データ型に AnyBusData という名前を付けます。そのデータ型のメンバで、次の値を配置します。
- 4 つの整数
- 1 つの実数
- ASCII として表示される SINT[6] の配列
- ユーザ定義データ型 (この例では InSightData) を使用して、新しいタグをプロジェクトの Controller Tags に追加します。
-
最後に、COP 命令を Main Routine ラダーロジックプログラムに追加して、DeviceNet バッファ (Local:1:0.Data[0]) から InSightData タグにデータをコピーします。
- 更新したプロジェクトをコントローラにロードし、オンラインに切り替えて、実行モードで起動します。
- [InsightData] タグで、各項目の値を入力します。
- In-Sight ビジョンシステムをオンラインにします。
- DeviceNetGateway.cxd ファイルのセル A8 で、レジスタの値として [9] (18 バイト) を選択します。
-
セル NC で、[Read Registers] のドロップダウンリストから、[Input Registers] を選択します。
- セル A15 の [Read] ボタンをクリックして、結果を更新します。セル D18 ~ D23 の値は、Controller Tags で入力した値を反映するように変更されます。
In-Sight ビジョンシステムから PLC への DeviceNet 経由でのデータの書き込み
このモデルによって提供される例に従い、Anybus X-gateway の出力バッファは書き込まれるデータソースです。このバッファには、TCP/IP Modbus ネットワーク上の In-Sight ビジョンシステムによって DeviceNet ネットワーク上の PLC に書き込まれるデータが保持されます。
- ProfibusGateway.cxd ファイルのセル A8 で、レジスタの値として「8」 (16 バイト) を選択します。
- セル C12 で、[Read Registers] のドロップダウンリストから[Holding Registers] を選択します。これにより、In-Sight ジョブ内で書き込まれるのと同じレジスタからデータが読み取られます。
-
次に、アプリケーションに対する正しいデータタイプになるように、セル D30 ~ D34 の値を調整します。セル D31 ~ D34 に格納されている 3 つの整数について、EditInt セルに値を入力します (値は、範囲が -32768 ~ 32767 で、この範囲内の有効な整数である必要があります)。セル D35 には浮動小数点値 (値は、範囲が ±1.175495e-38 ~ ±3.402823e+38 で、この範囲内の有効な浮動小数点値である必要があります) を入力し、セル D36 には 6 バイトの文字列 (文字列の長さは 6 文字/バイト以下) を入力します。
- セル A27 の [Write] ボタンをクリックし、In-Sight Explorer スプレッドシートから PLC に結果を書き込みます。
-
RSLogix で、前のプロジェクトを開き、別のラングを追加して、ゲートウェイから InSightData タグにデータを書き込みます。
- 更新したプロジェクトをコントローラにロードし、オンラインに切り替えて、実行モードで起動します。
-
[Controller tags (コントローラタグ)] を開き、InSightData タグで作成したユーザに対する変更をモニタします。