このドキュメントでは、PXI、CompactDAQ、CompactRIO、LabVIEW、TestStand、VeriStandをはじめとするNIのハードウェア/ソフトウェアプラットフォームでPythonを使用するためのNIツールに関する概要をご紹介します。Pythonの各ツールのインストール手順、サポートされている環境、APIリファレンスおよびコードサンプルについては、リンク先のドキュメントを参照してください。
オープンソース開発者とNIは、下位レベルのctypes関数呼び出しをシンプルなAPIに抽象化するモジュールを作成することで、NIハードウェアとPythonとの統合を容易にしました。以下のリンク先に、NIハードウェアのドライバ用に作成されたPythonラッパーのドキュメントリソースがあります。
nimi-pythonリポジトリは、下層のNIモジュール式計測器ドライバにインタフェースを提供するPythonモジュール群です。現在NIは、このパッケージを通じてPXIオシロスコープ、波形発生器、DMM、SMU、電源、スイッチ、およびデジタルパターン計測器におけるPythonの利用をサポートしています。これらの計測器では、次のドライバを使用します。
モジュール式計測器 | ドライバ | Pythonモジュール |
---|---|---|
NI-SCOPE | niscope | |
NI-FGEN | nifgen | |
NI-DMM | nidmm | |
NI-DCPower | nidcpower | |
NI-SWITCH | niswitch | |
NI-Digital Pattern Driver | nidigital |
nidaqmxパッケージには、NI データ収集(DAQ)デバイスとの通信に必要なNI-DAQmxドライバを操作するためのAPIが含まれています。このパッケージは、NIが作成しサポートしています。パッケージは、Pythonのctypesライブラリを利用して、NI-DAQmx C APIの複雑かつ高度なオブジェクト指向ラッパーとして実装されています。
pyVirtualBenchライブラリは、C APIをラップすることにより、下層のVirtualBenchドライバへのインタフェースを提供します。
メモ: pyVirtualBenchはサードパーティ製のラッパーであり、NIによる直接のサポートはありません。
NI FPGAインタフェースPython APIは、NI再構成可能I/O (RIO) ハードウェア内部におけるプロセッサとFPGA間の通信に使用します。このRIOハードウェアには、NI CompactRIO、NI Single-Board RIO、NI FlexRIO、NI RシリーズマルチファンクションRIOなどがあります。
FPGAインタフェースPython APIを使用すると、開発者はLabVIEW FPGAでNIハードウェア内部のFPGAをプログラミングし、ホストコンピュータ上で実行するPythonコードからそのFPGAと通信できます。そのため、Pythonに習熟したエンジニアや科学者は、コンパイル済みのLabVIEW FPGAビットファイルを利用したり、既存のPythonコードを再利用したりすることが可能です。
FPGAインタフェースPython APIの詳細
nivisionライブラリは、 NIの画像/ビジョン処理ライブラリです。このライブラリを使用すると、NI Visionの機能をプログラミング言語Pythonで利用できます。このライブラリは、WindowsやCompactRIOを含む複数のプラットフォームで利用できます。
メモ: nivisionはサードパーティ製のラッパーであり、NIによる直接のサポートはありません。
nivisionの詳細
nixnetパッケージには、NI-XNETドライバを操作するためのAPIが含まれています。NI-XNETは、NI-XNET CAN/LINをはじめ、FlexRayのPCI/PXI/Cシリーズの各インタフェースを支えるドライバソフトウェアテクノロジです。nixnetパッケージとNI-XNETは、NIがサポートしています。
nixnetの詳細
PyVISAは、NI-VISAドライバを操作するためのAPIを含むPythonパッケージです。NI-VISAを使用すると、インタフェース(GPIB、RS232、USB、Ethernetなど)に関係なく計測器を制御できます。NI-VISAは、NIシリアル、GPIB、Ethernet PCI、PXI、USB、およびNI Cシリーズの各インタフェースを支えるドライバソフトウェアテクノロジです。
メモ: PyVISAはサードパーティ製のラッパーであり、NIによる直接のサポートはありません。
直感的なAPIを持つPythonモジュールによって多くのデバイスとのハードウェア通信が実現しますが、多くの場合、開発者はほとんどのハードウェアドライバに付属するC APIを使って、Pythonコードとハードウェアを統合しています。これと同じ方法で、ctypesモジュールを介してPythonでNIのハードウェアを運用できます。このソリューションでは、Pythonスクリプトをほとんどのハードウェアコンポーネントに直感的な方法で統合できます。
ctypesモジュールを使ってハードウェアドライバのC APIにアクセスする方法のほかに、LabVIEWでは、ハードウェアAPI関数で構成されるDLLを生成し、Pythonから呼び出すことができます。これと同じ手順にしたがって、開発者は一連のハードウェアとのやり取りを単一の関数呼び出しに抽象化し、DLLファイルに格納することができます。
LabVIEW 2018では、Pythonノードが導入されました。Pythonノードは、LabVIEWブロックダイアグラムからPythonスクリプトを直感的に呼び出す機能を備えています。 これにはLabVIEWの基本命令が使われ、言語間の相互運用を低遅延で実現しています。
TestStand 2019以降に含まれているPython Adapterでは、プログラミング不要の構成ベースで統合された環境で、ユーザのテストシーケンスから複数のPythonコードモジュールを呼び出すことができます。Python Adapterは、他のTestStandアダプターと同じ設計方針に基づいて構築されています。そのため、TestStandの開発者が従来から慣れ親しんできた方法で開発することが可能です。
VeriStand 2018以降のniveristandパッケージには、各VeriStandシステムとのインターフェースを提供するAPIが含まれています。このパッケージは、NIが作成しサポートしています。
niveristandの詳細
DIAdem 2020以降では、PythonをVBSの代替スクリプト言語としてSCRIPTモジュールで利用できます。この言語を使用する場合は、DIAdem SCRIPT設定でスクリプト言語としてPythonを有効にします。VBSと同様に、スクリプトをPython構文で記録することもできます。SCRIPTパネルに統合されたPythonエディタは、通常のオートコンプリートや、構文情報とコマンドの短い説明を示すツールヒントを備えています。