解決策
API の使用方法の詳細については、 DAQmx Pythonドキュメントを参照してください。
トリガー信号ソースについては、こちらの記事 に記載されている手順に従うことができます。記事の例にあるように、 PXI(e) コントローラーで SMB コネクタを使用してトリガー信号をルーティングし、「 cfg_dig_edge_start_trig 」を呼び出して、ソースを [コントローラーの名前/TRIG_SMB] として設定します。
これを実現するには、以下の簡単な Python サンプル コードを参照してください。
import pprint
import nidaqmx
pp = pprint.PrettyPrinter(indent=4)
with nidaqmx.Task() as task:
clk_rate = 2.0e6 # サンプリング周波数。外部クロックのレートで決定されます。想定しているDAQボードPXIe-6378の最大サンプリングレートは3.5 MS/s/chです
tr = [-0.1,1.0] # Timerange to plot.
num_pts = int(clk_rate * (tr[1]-tr[0])) # データ取得の総時間です
task.ai_channels.add_ai_voltage_chan("PXIe6378/ai0")
task.timing.cfg_samp_clk_timing(rate=float(clk_rate), samps_per_chan=num_pts) # クロックの構成を行っています
task.triggers.start_trigger.cfg_anlg_edge_start_trig(trigger_source = 'APFI1', trigger_level=1.5) # トリガー条件を設定しています
print("1 Channel N Sample Read: ")
data = task.read(number_of_samples_per_channel=num_pts, timeout=100)
pp.pprint(data)
注: Python スクリプトを実行するために NI MAX で PXIe-6378 デバイスをシミュレートしています。場合に応じて add_ai_voltage_chan の引数を変更してください。