從NI-DAQmx Python庫存取NI MAX任務

更新 Jan 25, 2023

環境

軟體

  • Measurement & Automation Explorer (MAX)

驅動程式

  • NI-DAQmx

程式語言

  • Python

NI-DAQmx驅動有提供Python庫讓使用者可以通過使用Python程式呼叫需要的DAQ函式進行操作。此文章將說明如何通過使用NI-DAQmx的Python庫從NI MAX中存取一個已經創建的任務。
 

請按照以下所示步驟進行操作:
  1. 打開Python控制台
  2. 通過輸入以下指令匯入NI-DAQmx庫:
import nidaqmx
  1. 為了存取NI MAX的數據庫,您將必須樣例化(instantiate)一個System object,其中包含所連接裝置,任務等的訊息。您可通過以下指令實現的:
<object name>  = nidaqmx.system.system.System()
  1. 您可以通過輸入以下指令來查看存儲在系統中的任務名稱集合:
<system object name>.tasks.task_names
  1. 為了存取指定任務,您需要樣例化PersistedTask Object。 PersistedTask是將任務訊息存儲在數據庫中的class。您可以通過兩種方式執行此操作:
    1. 靜態方式:
<persisted task object name> = nidaqmx.system.storage.persisted_task.PersistedTask('<task name from the collection obtained at previous step>')
  1. 以撰寫程式方式:(備註:索引從0開始。)
<persisted task object name> = nidaqmx.system.storage.persisted_task.PersistedTask(<system object name>.tasks.task_names[<index of the task you want to access>])
  1. 您已經存取了數據庫中的任務。您需要創建一個Task Object來load它使系統知道您當前正在使用並保留它。相關指令如下:
<task object name> = <persisted task object name>.load()
  1. 現在您已經創建了一個Task Object,您可以執行在Python庫中NI-DAQmx相關的Task methods。下圖為讀取訊號值的範例: