確定的リモートI/Oシステム入門
概要
このチュートリアルでは、Cシリーズモジュール用のNI 9144 8スロット拡張シャーシを使用した確定性リモートI/Oシステムのセットアップ方法を順を追って説明します。ハードウェアを箱から取り出してからNI LabVIEWでI/Oにアクセスするまでの手順を紹介します。
詳細については、NI 9144クイックスタートガイド(英語)を参照してください。
要件
ハードウェア
• Ethernetポートを2個搭載したLabVIEW Real-Timeコントローラ、例えばCompactRIOなど
• NI 9144拡張シャーシ
• CシリーズI/Oモジュール
• Ethernetケーブル
ソフトウェア
| ソフトウェア | LabVIEW Real-Timeのみでプログラミング可能なバージョン | LabVIEW Real-TimeとLabVIEW FPGAでプログラミング可能なバージョン |
| LabVIEW | 8.6以降 | 2009以降 |
| LabVIEW Real‐Timeモジュール | 8.6以降 | 2009以降 |
| LabVIEW FPGAモジュール | – | 2009以降 |
| NI‐RIOドライバソフトウェア | 3.0.1以降 | 3.2以降 |
| NI-Industrial Communications for EtherCATドライバソフトウェア | 1.0以降 | 1.1以降 |
ハードウェアのセットアップ
このチュートリアルでは、NI cRIO-9074をLabVIEW Real-Timeコントローラとして使用します。このハードウェアシステムは、以下の手順でセットアップします。
- CシリーズI/Oモジュールを適切なシャーシ(CompactRIOローカルシャーシまたはNI 9144シャーシ)に挿入します。
- 標準のカテゴリ5以上のEthernetケーブルで、cRIO-9074のEthernetポート2からNI 9144のEthernetポート1に接続します。この方法で、コントローラから複数のNI 9144シャーシにデイジーチェーン接続することも可能です。
注:cRIO-9074のポート1は下にあり、NI 9144のポート1は上にあります。
図1. マスタコントローラとNI 9144のEthernetポートを接続
- 各シャーシに外部電源を配線します。それがハードウェアの電源になります。
関連リンク
CompactRIOとLabVIEWクイックスタートガイド(英語)
マスタコントローラの構成
- ハードウェアを接続したら、ソフトウェアをホストコンピュータにインストールします。
- Ethernetケーブルを使用して、cRIO-9074のEthernetポート1をホストコンピュータと同じネットワークに接続します。
- スタート→すべてのプログラム→National Instruments→Measurement & Automationを選択して、NI Measurement & Automation Explorer(MAX)構成ユーティリティを起動します。左側の「構成」ツリーでリモートシステムをダブルクリックすると、ネットワーク上のcRIO-9074が自動検出されますので、CompactRIOコントローラをクリックします。
- コントローラの名前を変更し、IP設定でIPアドレスを自動的に取得を選択します。終了したら再起動をクリックします。(スタティックIPアドレスを使用する場合は、下記の関連リンクをご覧ください。)
図2. リアルタイムコントローラのIPアドレスを設定
- リアルタイムコントローラにソフトウェアをインストールするには、リモートシステムの下のcRIO-9074を展開します。ソフトウェアを右クリックして、ソフトウェアの追加と削除を選択します。
図3. リアルタイムコントローラにソフトウェアをインストール
- NI-RIOドライバソフトウェアとNIスキャンエンジン、NI Industrial Communications for EtherCATドライバソフトウェアなど、推奨ソフトウェアをCompactRIOコントローラにインストールします。
- コントローラを再起動したら、リモートシステムで再度CompactRIOコントローラを見つけます。左下隅にある上級イーサネット設定をクリックします。
- cRIO-9074のEthernetポート2を選択します(プライマリでない方のMACアドレス)。モードの下のドロップダウンボックスでEhterCATを選択し、OKをクリックします。
図4. リアルタイムコントローラのEthernetポートでEtherCATモードを選択
注:コントローラのEthernetポート2がEtherCATモードになっている時は、Ethernetネットワークでそのポートを使用することはできません。
関連リンク
Measurement & Automation Explorerを使用したCompactRIOコントローラのトラブルシューティング(英語)
ネットワークをLabVIEWで構成
- スタート→すべてのプログラム→National Instruments→LabVIEW X.X→LabVIEWを選択して、LabVIEWを起動します。空のプロジェクトをクリックします。
- プロジェクトを右クリックして新規→ターゲットとデバイスを選択します。
- ターゲットとデバイスを追加ダイアログボックスで、既存ターゲットまたはデバイスを選択し、Real-Time CompactRIOカテゴリを展開してホストPCのサブネット上にあるコントローラを自動検出します。cRIO-9074を選択してOKをクリックします。
- LabVIEWプロジェクトウィンドウで、cRIO-9074を右クリックして新規→ターゲットとデバイスを選択します。
図5. ネットワーク接続されたコントローラをLabVIEWで検出
- ターゲットとデバイスを追加ダイアログボックスで、既存ターゲットまたはデバイスを選択してEtherCAT Master Deviceカテゴリを展開し、コントローラ上のEtherCATポートを自動検出します。
図6. リアルタイムコントローラのEtherCATマスタポートを選択
- 使用可能なEtherCATマスタポートを選択し、OKをクリックします。Scan Slavesダイアログボックスが表示されます。最初のオプションのスキャンインタフェースを選択すると、コントローラに接続された全てのスレーブが自動検出されます。OKをクリックします。LabVIEWプロジェクトには、各スレーブデバイス、I/Oモジュール、各モジュールの物理I/O(I/O変数と呼ばれる)の一覧が表示されます。
- 全てのスレーブが自動検出されたら、CompactRIOコントローラ上にVIを作成することができます。NI 9144をLabVIEW Real-Timeでプログラムするには、I/O変数をLabVIEWプロジェクトからブロックダイアグラムにドラッグします。これらのI/O変数を使用して、NI 9144シャーシで物理チャンネルの読み取りと書き込みができます。
図7. I/O変数をLabVIEWプロジェクトからブロックダイアグラムにドラッグ
I/O変数をタイミングループ内で使用する場合は、ループのタイミングソースをNIスキャンエンジンと同期させることができます。VIを実行すると、プログラムはCompactRIOターゲット上に自動的に実装されます。LabVIEW I/O変数とCompactRIOスキャンモードの詳細については、下記リンクを参照してください。
関連リンク
CompactRIOスキャンモードの概要
LabVIEWで他社製EtherCATスレーブを追加(英語)
NI 9144 FPGAをLabVIEW FPGAでプログラミングする
LabVIEW Real-Timeで作成したプログラムは、EtherCATネットワークを介してダウンロードされ、I/O、処理、制御を行うマスタコントローラ上で実装されます。さらに各NI 9144シャーシには、カスタムタイミングや信号処理を行う組込みFPGA(field-programmable gate array)が搭載されているため、100 ns以内で同期できるインテリジェントな分散デバイスを作成することが可能です。プログラム可能なFPGA機能を活用するには、LabVIEW、LabVIEW Real-Time、LabVIEW FPGA 2009以降を使用する必要があります。
- EtherCAT Master DeviceをLabVIEWプロジェクトに追加すると(前セクションのステップ5)、NIスキャンインタフェースまたはLabVIEW FPGAインタフェースのいずれかでプログラムするようにNI 9144をセットアップできます。スキャンインタフェースの方を使用した場合も、LabVIEWプロジェクトウィンドウでDevice (Address 0, NI 9144)を右クリックして新規→FPGAターゲットを選択すれば、LabVIEW FPGAでもプログラムすることができます。
[+] 画像を拡大
図8. NI 9144でFPGAターゲットを検出
- LabVIEWプロジェクトで、NI 9144シャーシは複数のFPGA信号に対応できます。例えば、Input Virtual PointとOutput Virtual Pointは、複数のNI 9144シャーシの間でFPGAコードを同期させるのに使用するデジタルタイミング信号です。LabVIEW FPGAをプログラムするには、モジュールをDevice (Address 0, NI 9144)からFPGA Target (NI 9144)にドラッグします。
図9. FPGAターゲットに含まれるシャーシI/OとモジュールI/O
- FPGA VIを作成するには、LabVIEWプロジェクトでFPGAターゲットを右クリックして新規VIを選択します。
- FPGA VIをプログラムするには、LabVIEWプロジェクトでFPGA I/Oノードを選択して、FPGAブロックダイアグラムにドラッグします。この例では、NI 9144でアナログI/Oを制御するのに、PID関数を使用しています。
図10. NI 9144のFPGAコード例
- Reset FPGA PIDブール変数に注目してください。これはユーザ定義のI/O変数で、マスタコントローラ上のリアルタイムVIとNI 9144上のFPGA VIとの通信を可能にするものです。そのような変数を作成するには、LabVIEWプロジェクトでDevice (Address 0, NI 9144)を右クリックし、新規→ユーザ定義変数を選択します。変数の名前、データタイプ、方向を指定します。ここでは、コントローラはNI 9144に情報を送信していますので、方向はHost to FPGAになります。
[+] 画像を拡大
図11. ユーザ定義のI/O変数作成用ダイアログボックス
リアルタイムVIでユーザ定義のI/O変数をプログラムできるようになりました。このサンプルでは、FPGA VIで実行しているPID関数のリセットに使用されています。
注:NI 9144上のFPGAターゲットは対話式実行やプログラムによるFPGA通信をサポートしていないため、ユーザ定義のI/O変数は、FPGA VIとリアルタイムVIの間での通信に使用されます。ユーザ定義I/O変数の数は、1つの変数あたり最大64ビットのデータで、デフォルトで最大64個の入力変数と64個の出力変数に制限されています。ユーザ定義のI/O変数の詳細については、NI-Industrial Communications for EtherCATドライバのヘルプを参照してください。
- FPGA VIを実行するには、LabVIEWプロジェクトでcRIO-9074を右クリックし、すべてデプロイを選択してNI 9144シャーシを実行します。EtherCATネットワークが構成モードでない場合は、cRIO-9074を右クリックしてユーティリティ→スキャンエンジンモード→構成に切り替えを選択します。最後に、FPGA VIで実行をクリックします。するとコードがコンパイルされ、コンパイル終了後、作成されたビットファイルがFPGAターゲットに自動でダウンロードされます。ビットファイルがNI 9144に正しくダウンロードされたら、FPGA VIは直ちに実行を開始します。
NI 9144のセットアップとプログラミングに関する詳細については、NI 9144クイックスタートガイド(英語)を参照してください。
関連リンク
CompactRIOアドバイザ
NI 9144クイックスタートガイド(英語)
法律関連事項
本チュートリアル(以下「チュートリアル」という)は、National Instruments(以下「NI」という)によって作成されたものです。本チュートリアルは、NIにてサポートされていますが、本チュートリアルの内容に関するテストや検査が完全に行われていない可能性があり、チュートリアルの品質について、もしくは、関連製品およびドライバの各改訂版に対するサポート継続については、何らの保証も適用されません。本チュートリアルは、いかなる保証もなく「作成された状態のまま」で提供されており、ni.com/jpの使用条件に特別に規定されている特定の制約事項に従うものとします。 (http://ni.com/legal/termsofuse/japan/ja/)
