NIのハードウェアおよびソフトウェアに関するPythonのリソース

概要

このドキュメントでは、PXI、CompactDAQ、CompactRIO、LabVIEW、TestStand、VeriStandをはじめとするNIのハードウェア/ソフトウェアプラットフォームでPythonを使用するためのナショナルインスツルメンツのツールの概要をご紹介します。Pythonの各ツールのインストール手順、サポートされている環境、APIリファレンスおよびコードサンプルについては、リンク先のドキュメントを参照してください。

Contents

Python APIを使ってNIハードウェアを運用する

オープンソース開発者とナショナルインスツルメンツは、下位レベルのctypes関数呼び出しをシンプルなAPIに抽象化するモジュールを作成することで、NIハードウェアとPythonとの統合を容易にしました。以下のリンク先に、NIハードウェアのドライバ用に作成されたPythonラッパーのドキュメントリソースがあります。

PXIモジュール式計測器用のPython API

nimi-pythonリポジトリは、下層のNIモジュール式計測器ドライバにインタフェースを提供するPythonモジュール群です。現在NIは、このパッケージを通じてPXIオシロスコープ、波形発生器、DMM、SMU、電源、スイッチ、およびデジタルパターン計測器におけるPythonの利用をサポートしています。これらの計測器では、次のドライバを使用します。

モジュール式計測器

ドライバ

Pythonモジュール

PXIオシロスコープ

NI-SCOPE

niscope

PXI波形発生器

NI-FGEN

nifgen

PXIデジタルマルチメータ

NI-DMM

nidmm

PXIプログラマブル電源

PXIソースメジャーユニット

NI-DCPower

nidcpower

PXIスイッチ

NI-SWITCH

niswitch

PXIデジタルパターン計測器

NI-Digital Patternドライバ

nidigital


nimi-pythonの詳細

DAQハードウェア用のPython API

nidaqmxパッケージには、NI データ収集(DAQ)デバイスとの通信に必要なNI-DAQmxドライバを操作するためのAPIが含まれています。このパッケージは、NIが作成しサポートしています。パッケージは、Pythonのctypesライブラリを利用して、NI-DAQmx C APIの複雑かつ高度なオブジェクト指向ラッパーとして実装されています。

 

VirtualBench用のPython API

pyVirtualBenchライブラリは、C APIをラップすることにより、下層のVirtualBenchドライバへのインタフェースを提供します。

メモ
: pyVirtualBenchはサードパーティ製のラッパーであり、NIによる直接のサポートはありません。

 

RIOハードウェア用のPython API

ナショナルインスツルメンツのFPGA Interface Python APIは、NIの再構成可能I/O(RIO)ハードウェア内部におけるプロセッサとFPGA間の通信に使用します。このRIOハードウェアには、NI CompactRIONI Single-Board RIONI FlexRIONI RシリーズマルチファンクションRIOなどがあります。

FPGA Interface Python APIを使用すると、開発者はLabVIEW FPGAでNIハードウェア内部のFPGAをプログラミングし、ホストコンピューター上で実行するPythonコードからそのFPGAと通信できます。そのため、Pythonに習熟したエンジニアや科学者は、コンパイル済みのLabVIEW FPGAビットファイルを利用したり、既存のPythonコードを再利用したりすることが可能です。

FPGA Interface Python APIの詳細

ビジョンアプリケーション用のPython API

nivisionライブラリは、 ナショナルインスツルメンツの画像/ビジョン処理ライブラリです。このライブラリを使用すると、NI Vision(マシンビジョン)の機能をプログラミング言語Pythonで利用できます。このライブラリは、WindowsやCompactRIOを含む複数のプラットフォームで利用できます。

メモ
: nivisionはサードパーティ製のラッパーであり、NIによる直接のサポートはありません。

nivisionの詳細

CAN、LIN、およびFlexRayハードウェア用のPython API

nixnetパッケージには、NI-XNETドライバを操作するためのAPIが含まれています。NI-XNETは、NI-XNET CAN/LINをはじめ、FlexRayのPCI/PXI/Cシリーズの各インタフェースを支えるドライバソフトウェアテクノロジです。nixnetパッケージとNI-XNETは、NIがサポートしています。

nixnetの詳細

従来のベンチトップ計測器用Python API

PyVISAは、NI-VISAドライバを操作するためのAPIを含むPythonパッケージです。NI-VISAを使用すると、インタフェース(GPIB、RS232、USB、Ethernetなど)に関係なく計測器を制御できます。NI-VISAは、NIシリアル、GPIB、Ethernet PCI、PXI、USB、およびNI Cシリーズの各インタフェースを支えるドライバソフトウェアテクノロジです。

メモ
: PyVISAはサードパーティ製のラッパーであり、NIによる直接のサポートはありません。

PyVISAの詳細

ctypesを使ってNIハードウェアDLLを呼び出す

直感的なAPIを持つPythonモジュールによって多くのデバイスとのハードウェア通信が実現しますが、多くの場合、開発者はハードウェアドライバに付属するC APIを使って、自前のPythonコードとハードウェアを統合しています。これと同じ方法で、ctypesモジュールを介してPythonでNIのハードウェアを運用できます。このソリューションでは、Pythonスクリプトをほとんどのハードウェアコンポーネントに直感的な方法で統合できます。

LabVIEW DLL

ctypesモジュールを使ってハードウェアドライバのC APIにアクセスする方法のほかに、LabVIEWでは、ハードウェアAPI関数で構成されるDLLを生成し、Pythonから呼び出すことができます。これと同じ手順にしたがって、開発者は一連のハードウェアとのやり取りを単一の関数呼び出しに抽象化し、DLLファイルに格納することができます。

DLLを生成してPythonから呼び出す方法

PythonをLabVIEWに統合する

LabVIEW 2018では、Pythonノードが導入されました。Pythonノードは、LabVIEWブロックダイアグラムからPythonスクリプトを直感的に呼び出す機能を備えています。 これにはLabVIEWの基本命令が使われ、言語間の相互運用を低遅延で実現しています。 

TestStandからPythonを呼び出す

TestStand 2019以降に含まれているPython Adapterでは、プログラミング不要の構成ベースで統合された環境で、ユーザのテストシーケンスから複数のPythonコードモジュールを呼び出すことができます。Python Adapterは、他のTestStandアダプターと同じ設計方針に基づいて構築されています。そのため、TestStandの開発者が従来から慣れ親しんできた方法で開発することが可能です。

VeriStand用Pythonを使用する

VeriStand 2018以降のniveristandパッケージには、各VeriStandシステムとのインターフェースを提供するAPIが含まれています。このパッケージは、NIが作成しサポートしています。

niveristandの詳細

DIAdemでのPythonスクリプト処理

DIAdem 2020以降では、PythonをVBSの代替スクリプト言語としてSCRIPTモジュールで利用できます。この言語を使用する場合は、DIAdem SCRIPT設定でスクリプト言語としてPythonを有効にします。VBSと同様に、スクリプトをPython構文で記録することもできます。SCRIPTパネルに統合されたPythonエディタは、通常のオートコンプリート、構文情報、コマンドの短い説明を含むツールチップを備えています。