Anybus X-gateway 経由での CC-Link ネットワーク上の三菱電機 Automation Controller との通信
概要
In-Sight ビジョンシステムは、Anybus X-gateway と TCP/IP Modbus プロトコルを使用して、CC-Link ネットワーク上のデバイスと通信することができます。
このトピックでは、ゲートウェイのインストールおよび設定方法、オートメーションコントローラプログラミングソフトウェア (三菱電機 GX Developer) の設定方法、In-Sight ExplorerCC-Link ネットワーク上の三菱電機オートメーションコントローラと通信するための In-Sight Explorer のセットアップ方法について説明します。
下記の例は、次のコンポーネントを使用していることを前提に記述されています。
- Anybus X-gateway および HMS Anybus IPconfig ソフトウェア
- ファームウェアバージョン 3.41.00 以降を実行している In-Sight ビジョンシステム
- CC-Link をサポートする三菱電機オートメーションコントローラ
- 三菱電機 GX Developer プログラミングソフトウェア
Anybus X-gateway のインストールと設定
このセクションの手順では、Anybus X-gateway の Ethernet 部分のインストールおよび設定方法について説明します。手順では、次のコンポーネントを使用していることを前提にしています。
Anybus X-gateway のインストールおよび設定を行うには、以下の手順に従います。
- HMS のソフトウェアユーティリティである Anybus IPconfig をダウンロードしてインストールします。このユーティリティでは、HMS IP Configuration Protocol (HICP) を使用して、Anybus ベースの Ethernet インタフェースを簡単な方法で設定できます。
- Ethernet に接続した PC で、Anybus IPconfig を実行します。ネットワーク上で検出された Anybus ベースの Ethernet インタフェースとその IP アドレスが、すべてウィンドウに表示されます。
- Anybus X-gateway の CC-Link ステーションアドレススイッチを使用して、CC-Link ステーションアドレスを設定します。詳細については、『X-gateway Interface Addendum - CC-Link Slave Interface』を参照してください。
- 通信するオートメーションコントローラのボーレートに合わせて、Anybus X-gateway のボーレートスイッチを設定します。
- 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 ハードウェアが表示されます。
CC-Link ネットワーク上の三菱電機オートメーションコントローラへの Anybus X-gateway の接続
Anybus X-gateway では、TCP/IP Modbus ネットワークと CC-Link データをやり取りし、In-Sight ビジョンシステムの入力と出力を三菱電機オートメーションコントローラのプロセッサメモリに送信することができます。これらの値は、確立後、CC-Link ネットワークの更新レートによって定義される間隔で同期されます。
TCP/IP Modbus 経由での In-Sight ビジョンシステムへの Anybus X-gateway の接続では、実際のデータがどのように転送されるかを説明しています。また、スニペットと詳細なサンプル設定を示しています。
詳細については、『Anybus-X Generic Gateway User Manual』と『Anybus-X CC-Link Slave Network Interface Addendum』を必要に応じて参照してください。これらのマニュアルは、HMS の Web サイト (www.hms-networks.com) でダウンロードすることができます。
Anybus X-gateway のほかに、Anybus Communicator も CC-Link のマスタまたはスレーブとして使用することができます。ここでは Anybus X-gateway を使用します。
CC-Link 通信の設定
Anybus X-gateway と三菱電機コントローラの間の CC-Link 接続を設定するには、最初に Anybus X-gateway をオートメーションコントローラと同じボーレートに設定し、コントローラと異なるステーション番号を指定する必要があります。スイッチは電源コネクタの横にあります。詳細については、Anybus のユーザマニュアルを参照してください。次の手順では、三菱電機 GX Developer ソフトウェアを使用して、オートメーションコントローラの設定を行います。
-
GX Developer を開き、オートメーションコントローラのプロジェクトをロードします。
-
オートメーションコントローラモジュールの設定を確認します。[パラメータ]、[PLC パラメータ] の順にダブルクリックし、[I/O 割り当て] タブを選択します。
この例では、Q02(H) デバイスが 1 つ、Intelli デバイスが 1 つ、入力デバイスが 1 つ、出力デバイスが 1 つあります。ポイントの種類と数の詳細については、三菱電機のマニュアルを参照してください。
-
CC-Link ネットワークを設定します。[パラメータ] の下の [ネットワークパラメータ] をダブルクリックして、[CC-Link] を選択します。
PLC が [種類] の下の [マスタステーション] として選択されます。[リモートネット (Ver.1 モード)] は、Anybus X-gateway で使用される CC-Link バージョン 1.0 を指しています。Anybus Communicator を使用する場合は、バージョン 2.0 が選択されます。Anybus X-gateway が接続されている唯一のステーションであるため、[すべての接続数] は [1] に設定されます。
-
占有されるステーションを設定します。[ステーション情報] をダブルクリックします。次の画面が表示されます。
オートメーションコントローラハンドシェークを設定できるようになります。これは、X-Gateway または Communicator でオートメーションコントローラからの応答が必要な場合のオプションの手順です。詳細については、HMS の Web サイトの『How to set up an Anybus Product with CC-Link and a Mitsubishi Automation Controller』を参照してください。
- オートメーションコントローラと相互通信できるように X-Gateway を設定します。PC と Gateway の config ポートの間をシリアルケーブルで接続し、Windows のハイパーターミナルを開きます ([スタート] → [アクセサリ] → [通信] → [ハイパーターミナル])。
- [ファイル] メニューで、[プロパティ] をクリックします。
-
[接続先] タブの [接続方法] フィールドで該当する COM ポートを選択し、[設定] をクリックします。次の画像にある設定を使用します。
接続して ESC キーを押し、メニューオプションを表示します。
6 を押して、次の設定情報を入力します。この設定は、オートメーションコントローラの設定画面で入力した情報と一致している必要があります。
デバイスを再起動します。システムの設定が完了しました。
TCP/IP Modbus 経由での In-Sight ビジョンシステムへの Anybus X-gateway の接続
このセクションでは、TCP/IP Modbus による通信を使用した In-Sight ビジョンシステムへの Anybus X-gateway の接続について説明します。
In-Sight Explorer での TCP/IP Modbus による通信の設定In-Sight Explorer
In-Sight ビジョンシステムでは TCP/IP Modbus クライアント機能が有効になっていますが、Anybus X-gateway が TCP/IP Modbus サーバ (スレーブ) として機能するため、このサーバ機能はこのモデルでは必要ありません。
- In-Sight Explorer で、In-Sight Explorer[In-Sight ネットワーク] ペインから設定される、In-Sight ビジョンシステムまたはエミュレータを選択します。
- [ファイル] メニューの [ジョブの新規作成] を選択し、ビジョンシステムまたはエミュレータに新規ジョブをロードします。
- [パレット]の [スニペット] タブを選択して、[Communication] フォルダを展開します。スプレッドシートで、In-Sight Explorerまず A2 を選択して [CCLinkGateway.cxd] をダブルクリックするか、ファイルをセル A2 にドラッグ & ドロップすることにより、CCLinkGateway.cxd ファイルをセル A2 にロードします。
- 新規ジョブを CCLinkGateway.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 関数コードコマンドを作成するときに使用します。CCLinkGateway.cxd ファイルでは、TCPDevice 関数が C5 に含まれ、2 つの QueryDevice 関数がセル B15 (読み取り要求用) とセル B28 (書き込み要求用) に含まれています。
-
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 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 は入力レジスタ (CC-Link 経由で書き込まれたデータ) を読み取ります。11
Data
0
Modbus 参照アドレス、上位バイト = 0。
注 : : 入力レジスタは、アドレス 1000 から Read multiple registers (関数コード 3) を使用して、またはアドレス 0 から Read input registers (関数コード 4) を使用して読み取られる場合があります。12
Data
$E$19
Modbus 参照アドレス、下位バイト = 4。最初の 4 バイトは「ビット領域」サイズの指定に使用される。この場合、最初の 4 バイトはデータ交換に使用することができず、占有されるステーションの番号のために予約済みです。
注 : 入力レジスタは、アドレス 1000 から Read multiple registers (関数コード 3) を使用して、またはアドレス 0 から Read input registers (関数コード 4) を使用して読み取られる場合があります。注 : 詳細については、HMS Web サイト (www.hms-networks.com) のサポートページで提供されている『X-gateway Interface Addendum - CC-Link Slave Interface』のデータ交換の基本事項についての説明 (第 2-1 章) を参照してください。13
Data
0
ワード (レジスタ) 数、上位バイト = 0。
14
Data
$B$8
ワード (レジスタ) 数、下位バイト = 0。
この例では、この入力は 1、2、3、4、6、8 のいずれかになります。
-
Anybus X-gateway からの TCP/IP Modbus 応答パケットは、QueryDevice 関数のバイナリ構造体に格納されます。これらの戻り値は、In-Sight Explorer でIn-Sight ExplorerBGetInt 関数によって読み取られます。この関数は、バイナリ構造体の特定のバイトからの整数値を返し、応答は以下のような形式になります。
バイト番号
Modbus 応答
説明
バイト 7
Modbus 関数コード
この例では、3 または 4。このコマンドが失敗すると、関数コードに 128 が追加されます (返される値は 131 または 132。セル E15 を参照してください)。
バイト 8
バイト数
この例では、2 レジスタ (ワード) = 4 バイト。セル E15 を参照してください。
バイト 9/10
レジスタ 0 の値
これらの値は 2 バイト形式です。CCLinkGateway.cxd ファイルで、セル D18 の BGetInt 関数がバイト 9 のバイナリ値を読み取ります (ワード読み取りの下位バイト)。
バイト 11/12
レジスタ 1 の値
これらの値は 2 バイト形式です。CCLinkGateway.cxd ファイルで、セル D19 の BGetInt 関数がバイト 11 のバイナリ値を読み取ります (ワード読み取りの下位バイト)。
バイト 13/14
レジスタ 2 の値
これらの値は 2 バイト形式です。CCLinkGateway.cxd ファイルで、セル D20 の BGetInt 関数がバイト 13 のバイナリ値を読み取ります (ワード読み取りの下位バイト)。
バイト 15/16
レジスタ 3 の値
これらの値は 2 バイト形式です。CCLinkGateway.cxd ファイルで、セル D21 の BGetInt 関数がバイト 15 のバイナリ値を読み取ります (ワード読み取りの下位バイト)。
バイト 17/18/19/20
浮動小数点数値を格納するレジスタ 3 および 4 の値
これらの値は浮動小数点形式です。CCLinkGateway.cxd ファイルで、セル D22 の BGetInt 関数がバイト 17 のバイナリ値を読み取ります (ワード読み取りの下位バイト)。
バイト 21/22/23/24
文字列 (バイト配列) を格納するレジスタ 5、6、および 7 の値
これらの値は文字列形式です。CCLinkGateway.cxd ファイルで、セル D23 の BGetInt 関数がバイト 21 のバイナリ値を読み取ります (ワード読み取りの下位バイト)。
- 書き込み要求用の QueryDevice 関数 (セル B28) は、要求パケットおよび応答パケットと同じ形式で書式設定されます。
オートメーションコントローラから In-Sight ビジョンシステムへの CC-Link 経由でのデータの読み取り
このモデルによって提供される例に従い、Anybus X-gateway の入力バッファは読み取られるデータソースです。このバッファには、TCP/IP Modbus 上の In-Sight ビジョンシステムが CC-Link ネットワーク上のオートメーションコントローラから要求したデータが保持されます。
- 「In-Sight ExplorerIn-Sight Explorer での TCP/IP Modbus による通信の設定In-Sight Explorer 」で作成したジョブを継続して使用します。
- CC-Link Configurator (GX Configurator-CC) を開きます。必要に応じ、GX Developer を使用して、三菱電機オートメーションコントローラにプロジェクトをダウンロードします。また、GX Developer を使用して、さらに複雑なデータ操作を行う場合があります。
-
オートメーションコントローラシリーズとして、[QCPU-Q] を選択します。
-
[オンライン] メニューから、[Remote station monitor/test] を選択します。
-
[Remote station monitor/test] ダイアログを次のように設定します。
- [Batch monitor]、[Start monitor] の順にクリックします。
-
[Present value change (RWw)] をクリックして、読み取り値の 16 進値と 10 進値を入力します。値は、In-Sight Explorer でリトルエンディアン表記で転送されている場合であっても、ビッグエンディアン表記でIn-Sight Explorer表示されます。
- CCLinkGateway.cxd ファイルのセル A8 で、レジスタの値として [8] (16 バイト) を選択します。
-
セル C12 で、[Read Registers] のドロップダウンリストから、[Input Registers] を選択します。
- セル A15 の [Read] ボタンをクリックして、結果を更新します。セル D18 ~ D23 の値が変化して、CC-Link Configurator で入力した値が反映されるはずです。
In-Sight ビジョンシステムからオートメーションコントローラへの CC-Link 経由でのデータの書き込み
このモデルによって提供される例に従い、Anybus X-gateway の出力バッファは書き込まれるデータソースです。このバッファには、TCP/IP Modbus 上の In-Sight ビジョンシステムが CC-Link ネットワーク上のオートメーションコントローラに書き込むデータが保持されます。
- CCLinkGateway.cxd ファイルのセル A8 で、レジスタの値として [8] (16 バイト) を選択します。
- セル C12 で、[Read Registers] のドロップダウンリストから[Holding Registers] を選択します。これにより、In-Sight ジョブ内で書き込まれるのと同じレジスタからデータが読み取られます。
-
次に、アプリケーションに対する正しいデータタイプになるように、セル D31 ~ D36 の値を調整します。EditInt セルに値を入力します。セル D31 ~ D34 には 4 つの整数 (最小値は -32768、最大値は 32767 で、値はこの範囲内の有効な整数である必要があります) を、セル D35 には浮動小数点数値 (最小値は ±1.175495e-38、最大値は ±3.402823e+38 で、値はこの範囲内の有効な浮動小数点数値である必要があります) を、セル D36 には 4 バイトの文字列 (文字列は 4 文字を超えることができなくなりました) を入力します。
-
セル A28 の [Write] ボタンをクリックし、In-Sight Explorer スプレッドシートからIn-Sight Explorerオートメーションコントローラに結果を書き込みます。
- セル A15 の [Read] ボタンをクリックします。セル D18 ~ D23 の値が変化し、セル D31 ~ 36 に入力した値が反映されるはずです。
- CC-Link Configurator (GX Configurator-CC) を開きます。必要に応じ、GX Developer を使用して、三菱電機オートメーションコントローラにプロジェクトをダウンロードします。また、GX Developer を使用して、さらに複雑なデータ操作を行う場合があります。
-
オートメーションコントローラシリーズとして、[QCPU-Q] を選択します。
-
[オンライン] メニューから、[Remote station monitor/test] を選択します。
-
[Remote station monitor/test] ダイアログを次のように設定します。
-
[Batch monitor]、[Start monitor] の順にクリックします。RWr モニタの下の値が、In-Sigth Explorer スプレッドシートで入力した値の 16 進値と 10 進値を反映するようにIn-Sight Explorer変更されます。値は、In-Sight Explorer でリトルエンディアン表記で転送されている場合であっても、ビッグエンディアン表記でIn-Sight Explorer表示されます。