NI DAQmx のインストール時に、 Agilent がインストールした visa32.dll を上書きします。でも、もとのファイルは、名前を替えて自動的にバックアップがコピーされます。PyVISA(win32) は Agivisa32.dll を使うので影響受けていません。
NI DAQ インストール後、つまり visa32.dll が NI版に上書きされても、Agilent の Connection Expert 15 は機能しました。私の環境では、GPIB バスにつながった測定器の認識等、みてる限り問題なく動いています。動いているようです。
NIの製品については詳しく無いのですが、 NI DAQmx のCDには、3つの大物がいるようです。
- NI DAQmx 8.7.1
- NI Labview Signal Express 2.5.1
- NI Measurement & Automation Explorer 4.4.1
インストール時の注意は、特になく、ほとんどデフォルトの選択で進めて問題ありませんが、「自分でプログラムを作る」のは、デフォルトの選択肢ではありません。サンプルのソースを展開するには、インストールオプションで、「サンプル」を選んでおく必要があります。よく分かってないので「サンプル」と書かれたプログラム(項目?)に一通りチェックを追加しました。
- VC++ 2003 Measurement Studio サンプル
- VC++ 2005 Measurement Studio サンプル
- labwindows CVI サポート サンプル <このへんが Python + ctypes には合うのかも
- .NET Freamwork 1.1 サンプル
- .NET Freamwork 2.0 サンプル
- MS Visual C サンプル
- MS Visual Basic サンプル
インストールすると、デスクトップに Measurement & Automation というプログラムのショートカットがありました。そこで NI USB-6009 を接続すると、認識され、テストパネルとか言うので個々の信号を制御できました。この段階で、「ハード的に」問題ないレベルにセットアップが出来た、ですね。
では、Python と ctypes を使って NI USB-6009 の制御を試します。
すでに賢い人が作ったコードがありますので、それをもらって自分用に改造します。
SciPy の Cookbook にいいのがありますので Google検索 もらいます。
Numpy 、Python のバージョンに合う、自分のOS用のをインストールします。
Idle で実行して、コンソールで data と入力すると電圧値がアレイに入っています。びっくりです。プログラムでは、Numpy をインポートしてます。これは、アレイデータの初期化に使っているだけです。この人、多分 Matlab 使いですね。
NI DAQmx のAPI は、Help ファイルというかたちで、PC にインストールされます。
無い場合は、インストーラでなにか適当な場所にチェックしてみる。とか。
Cookbook のソースは、アナログディファレンシャル入力、デフォルト int32(-1)なので、それをシングルエンド(10****とか)に、と改造しようとしましたが、その int32(10****) の数字をさがしたり、USB-6009固有の、この設定はできないとか、ひっかかりました。
- Measurement & Automation のテストパネルを使いましょう。
- API の Help ファイルを見つけましょう。Docs? Documents? の下。
- NI のディベロッパースフォーラムにも情報がたくさんあります。
- 人に聞く時や、セミナー等では、「Pythonで」と言わない方がいいと思います。
慣れた人なら、NI DAQmx インストール時に言語は、日本語ではなく英語のほうがいいかもしれません。最近の Matlab もそうですが、全てのドキュメントが日本語に訳されていれば、問題ないのでしょうが、「英語のドキュメントと日本語化されたメニューの項目」の対応がとりにくい等、いろいろ問題があります。ディベロッパーゾーンで見つかる情報も、やはり英語ですし。
先のシングルエンドの設定にも 2種類あって、USB-6009 に出来る方と、出来ない方、基準シングルエンドとか基準無しシングルエンド、とか、そういう日本語の表示と、API 説明文の中の略語の対応を、考えないといけない、とか。ちょっと、つまづくネタが増えます。
USB-6009 のドキュメントを探すときには、USB-6008 のドキュメントのほうが充実してますので、こちらも同時に検索するといいと思います。
コードは、その、いまのところ本当に「ちょっと」改造しただけなので、公開するのが恥ずかしいのでやめときます。