コンパクトRIO

コンパクトRIO
メーカーナショナルインスツルメンツ
利用可能生産中
Webサイトwww.ni.com/compactrio

CompactRIO(またはcRIO)は、ナショナルインスツルメンツ社が産業用制御システム向けに開発したリアルタイム組み込み産業用コントローラです。CompactRIOは、リアルタイムコントローラ、再構成可能なIOモジュール(RIO)、FPGAモジュール、およびイーサネット拡張シャーシを組み合わせたものです。[ 2 ]

ハードウェア

CompactRIOシステムは、リアルタイムコントローラシャーシ、再構成可能なIOモジュール(RIO)、FPGAモジュール、およびEthernet拡張シャーシを組み合わせたものです。[ 2 ]サードパーティ製のモジュールも利用可能で、一般的にNI製のシャーシコントローラと互換性があります。

CompactRIOリアルタイムコントローラは、制御アルゴリズムを実装するためのマイクロプロセッサを搭載し、幅広いクロック周波数をサポートします。コントローラは、National Instruments CシリーズI/Oモジュールとのみ互換性があります。I/Oモジュールはホットスワップ対応(ユニットの電源投入状態で接続/切断が可能)です。

FPGAモジュールは、再構成可能なファブリック上で高性能データ処理を実装するために使用できます。このようなデータ処理は、接続されたI/Oモジュールから入力されるデータストリームに対して実行できます。このモジュールは、初期モデルではXilinx Virtex高性能FPGA、最新モデルではKintex-7、Artix-7、またはZynq Xilinx FPGAを搭載しています。FPGAは個別にプログラミング可能で、内部PCIバスを介してリアルタイムコントローラに接続され、コントローラ上でローカルに動作するLabVIEWインターフェース経由でも、PC上のLabVIEWからLAN経由でもアクセスできます。

Ethernetシャーシには、CompactRIOコントローラをPCに接続できるEthernetポート(8P8C)が搭載されています。シャーシには4スロットと8スロットの2種類があります。

サードパーティ製のモジュールは、LCDやVGAディスプレイなどの追加機能を搭載しています。新しい高性能CompactRIOコントローラには、VGAグラフィックも内蔵されており、モニターに接続して動作を監視できます。

ソフトウェア

CompactRIOコントローラは、ナショナルインスツルメンツのグラフィカルプログラミング言語であるLabVIEW[ 2 ] C、C++、またはJavaでプログラムできます。 [ 3 ]組み込みFPGAのプログラミングにはLabVIEWを使用する必要がありますが、VHDLおよびVerilogコンポーネントを含めることもできます。

新しいコントローラには、 LinuxベースのRTOSであるNI Linux Real-Timeが搭載されています。 [ 4 ]これは、Linux FoundationのReal-Time Linux Collaborative Projectの一環として作成されました。 [ 5 ] LabVIEWで作成されたプログラムは、ターゲットへのコードの展開時に、NI Linux Real-Time用のマシンコード[ 6 ]とXilinx FPGAツールチェーン用のハードウェア記述言語(HDL)に自動的にコンパイルされます。

リアルタイムコントローラで動作するLinux Real-Time OSはファイルシステムをサポートしているため、コントローラレベルでのデータロギングも可能です。LabVIEWのフル開発システム版には、cRIOのプログラミングに必要なモジュールは付属していません。ハードウェアをプログラミングするには、Real-TimeモジュールとFPGAモジュールを別途購入し、LabVIEWと一緒にインストールする必要があります。プログラミングはWindowsオペレーティングシステムを実行するホストPCで行われ、Ethernet経由でcRIOに実装されます。

LabVIEW FPGAインターフェースはネットワーク対応で、最大7つの同時アクセスをサポートしているため、FPGA VIを実行するためにコントローラ上でリアルタイムVIを実行する必要はありません。これは、RIO://ip/RIO0のような接続URLを使用して行われます。

読み取り/書き込みインターフェースブロックは複数のアクセサを1つにまとめているように見えますが、実際にはアクセスが追加されるたびに往復遅延が発生し、ループが発生します。この遅延はすぐに蓄積されていく可能性があります。この問題は、書き込み/読み取りアクセスごと、およびアクセサごとに、すべてのコントロールを1つのクラスタに、すべてのディスプレイを別のクラスタにグループ化することで回避できます。コントローラ上でローカルリアルタイムVIを実行し、異なるクラスタセットに干渉なく同時にアクセスすることも可能です。また、あるクラスタから別のクラスタにデータをパイプすることで、このリアルタイムVIとPC VI間でデータを効率的に、かつ非常に低いレイテンシでやり取りできます。

データは、「FPGA to HOST」および「HOST to FPGA」DMA FIFOを介してパイプすることもできます。これらのFIFOもネットワークインターフェース経由で動作します。インターフェースを持つ各VI、各ホストFIFO接続、および各IRQ接続はすべて、コントローラがホストするFPGAへのアクセサーとしてカウントされます。これらのFIFOは通常、コントローラのイーサネット接続を飽和させる可能性があり、帯域幅の点でも、慎重に使用すればレイテンシの点でも優れたパフォーマンスを提供します。

LabVIEW FPGA インターフェースは C でも利用できます。

アプリケーション

CompactRIO システムは、小型フォームファクタが重要となる産業用制御ユニットとしてよく使用されます。

CompactRIOは、限られたスペースや過酷な環境下で動作するように設計されたヘッドレスシステム(ユーザーインターフェースなし)として一般的に使用されています。CompactRIOシステムは、監視目的や記録データの表示に使用できるホストPCに接続することもできます。

その他の応用分野としては、産業用IoT(IIoT)向けインテリジェントシステム、パワーエレクトロニクスおよびインバータ制御、[ 7 ]回転機器の状態監視、電力品質監視、輸送および重機、レーザーまたは油圧制御などが挙げられます。

CompactRIOは、2009年から2015年までFIRSTロボティクスコンペティションの主制御装置として使用されていました。現在はNational Instruments roboRIOに置き換えられています。

参照

参考文献

  1. ^新しい CompactRIO 製品でシステムパフォーマンスを向上Archived 2017-05-01 at the Wayback Machine , National Instruments
  2. ^ a b c「What is CompactRIO?」 . NI. 2011年6月4日時点のオリジナルよりアーカイブ。2011年6月1日閲覧。
  3. ^ 「C、C++ Embedded System Design Tools」 . NI. 2016年6月2日時点のオリジナルよりアーカイブ2016年6月7日閲覧。
  4. ^ 「NI Linux Real-Time入門」。NI。2016年6月18日時点のオリジナルよりアーカイブ2016年6月7日閲覧。
  5. ^ 「Linux Foundation、リアルタイムLinuxを推進するプロジェクトを発表」 Linux Foundation。2016年6月17日時点のオリジナルよりアーカイブ。 2016年6月7日閲覧
  6. ^ 「NI LabVIEWコンパイラ:その仕組み」 NI. 2012年4月6日時点のオリジナルよりアーカイブ2011年9月10日閲覧。
  7. ^ Buso, S.; Caldognetto, T. (2015). 「マイクログリッドインバータ用デジタルコントローラのラピッドプロトタイピング」. IEEE Journal of Emerging and Selected Topics in Power Electronics . 3 (2): 440– 450. doi : 10.1109/JESTPE.2014.2327064 . S2CID 47562678 .