ni.com is currently undergoing scheduled maintenance.

Some services may be unavailable at this time. Please contact us for help or try again later.

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

概要

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

内容

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

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

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

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

 

 

DAQハードウェアPython API

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

 

RIOハードウェアNI FPGAインタフェースPython API

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

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

nifpgaの詳細

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

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

 

VirtualBenchPython API

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

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

 

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の詳細

NIアプリケーションソフトウェアPython API使用する

NIソフトウェアPython API

現在、NIではVeriStandおよびRFmx用のPythonサポートを提供しています。

 

LabVIEW DLL

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

LabVIEWPython統合

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

 

TestStandからPython呼び出す

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

VeriStandPython統合する

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

niveristandの詳細

DIAdemPythonスクリプト処理

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

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

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

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

nivisionの詳細

Bluetooth®の文字商標およびロゴは、Bluetooth SIG, Inc.の登録商標です。 

アプリケーション​ソフトウェアアプリケーションソフトウェア Pythonモジュール (ドキュメントがリンクされています)
FPGAインタフェースPython APIFPGAインタフェースPython APInifpga
スペクトルおよび信号アナライザ 
PXIベクトル信号トランシーバ
RFmx SpecAnnirfmxspecan
RFmx Bluetooth®テストRFmx Bluetooth®テストnirfmxbluetooth
RFmx Bluetooth® Test GenRFmx Bluetooth® Test Gennirfmxbluetoothgen
RFmx Demod Digital AnalogRFmx Demodnirfmxdemod
RFmx LTERFmx LTEnirfmxlte
RFmx NRRFmx NR nirfmxnr
RFmsパルスRFmsパルスnirfmxpulse
RFmx VNARFmx VNAnirfmxvna
RFmx WLANRFmx WLANnirfmxwlan
RFmx WLAN GenRFmx WLAN Gennirfmxwlangen
NI VeriStandNI VeriStandniveristand

Was this information helpful?

Yes

No