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の利用をサポートしています。これらの計測器では、次のドライバを使用します。

モジュール式計測器

ドライバ

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 Driver

nidigital


nimi-pythonの詳細

DAQハードウェアPython API

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

 

VirtualBenchPython API

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

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

 

RIOハードウェア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コードを再利用したりすることが可能です。

FPGAインタフェースPython APIの詳細

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

nivisionライブラリは、 NIの画像/ビジョン処理ライブラリです。このライブラリを使用すると、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ファイルに格納することができます。

PythonLabVIEW統合する

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エディタは、通常のオートコンプリートや、構文情報とコマンドの短い説明を示すツールヒントを備えています。

  • NIサンプルファインダ→スクリプトを作成するでPythonやVBSスクリプトに付属のサンプルを検索する

Was this information helpful?

Yes

No