目標
演示如何使用MCC數據采集設備和各種軟件平臺寫入單個數字I/O位。
預定受眾
數據采集系統開發人員需要監視或控制數字狀態,并尋求了解其在各種軟件環境中的實現。
概述
數字信號,顧名思義,是指那些只代表兩種狀態的信號,如ON或OFF。例如,一個警示燈被點燃或黑暗,一個門被鎖住或沒有鎖住,一個繼電器被關閉或打開。數值上,這兩種狀態被表示為1和0,或者布爾(true和false)。與大多數硬件體系結構一樣,這些單獨的位被連在一起形成字節和字,以便更有效地進行數據傳輸。在現代DAQ設備中使用的硬件集成電路就是如此。通常,輸入和輸出能力是以8位分組提供的,所有8位都是以并行方式讀取或寫入的。
在某些應用程序中,您需要精確地同時控制或監視一組信號,所以一定要將這些信號分組到同一個端口上。但是對于某些信號,雖然您可以將它們物理連接到同一個端口,但您可以決定按順序讀取或寫入它們。除了按端口進行操作外,MCC還提供按位操作,這些操作會自動隱藏您想要關注的各個位的剩余位。
一個常見的問題是“我應該以多快的速度采樣我的數字輸入?”,答案總是:足夠頻繁,這樣你就不會錯過狀態的變化。請注意,數字輸入通常不是自鎖存,也不會自動檢測輸入變化。你必須定期閱讀(投票)它們,這取決于你的軟件來決定當前的閱讀是否代表了對先前閱讀的改變。對于輸出,由于它們是鎖存的,除非需要更改狀態,否則不需要再次寫入端口。
雖然現實世界的數字信號主要是單向的,DAQ設備通常提供雙向的能力,以適應更廣泛的應用。通常,DAQ設備的數字端口將作為輸入啟動。您將需要為所需的方向設置(即配置)DAQ設備上每個端口的方向。為了進一步的靈活性,有些設備是位可配置的.在程序開始時,對每個數字端口進行一次配置。
對于軟件節奏的數字輸出操作,獨立于軟件平臺,需要兩個步驟:將端口的方向設置為輸出,然后將值寫入端口/位。前者只執行一次,而后者可以根據需要在整個應用程序中重復。
必須說明下列信息:
端口號
港口方向
數據值到輸出
并返回以下信息:
錯誤碼
下面的示例展示了如何使用UniversalLibrary?、用于android?的UL、NI LabVIEW?、DASYLab和DAQami執行非連續掃描。
下面的示例演示如何使用通用庫(UL)和VisualBasic首先配置數字輸出,然后控制數字輸出:
PortType=MccDaq.DigitalPortType.AuxPort‘指定哪個數字端口
Direct=MccDaq.DigitalPortDirection.DigitalOut‘指定輸出方向
ULStat=DaqBoard.DConfigPort(PortType,Directions)‘配置端口
BitNum=0‘指定要控制的端口中的哪個位
BitValue=1‘指定要寫入的值
ULStat=DaqBoard.DBitOut(PortType,BitNum,BitValue)‘寫出值
UL用于Android
下面的示例演示如何使用用于Android和Java的UL配置和控制數字輸出:
DigitalPortType=AUXPORT;//指定哪個數字端口
數字方向=輸出;//指定輸出方向
dConfigPort(DigitalPortType,DigitalDirection);//配置端口
位Num=0;//指定要控制的端口中的哪個位
bitState=true;指定寫入mDioDevice.dBitOut(DigitalPortType,bitNum,bitState)的布爾值;//將值寫入
Ni LabVIEW
下面的示例演示如何使用LabVIEW控制數字輸出位。下面的接線圖顯示了相關的VIS和設置。這里,僅將硬件設備#0上的Auxport的第一個位(Do0)配置為輸出,然后它負責輸出操作符輸入的真/假值。

具有數字信號監控功能的非程序員可以考慮流行的DASYLab軟件包.數字輸出模塊如下所示,其數據輸入連接到開關控制模塊的輸出。在運行時,操作員可以選擇ON或OFF,從而使DAQ硬件的數字輸出位D0切換到1或0。

雙擊開關模塊允許您訪問一個菜單,您可以在其中指定開關位置將被監視的頻率。下面我們看到1赫茲被選擇,導致數字輸出位D0在DAQ硬件上每秒鐘更新一次,以匹配操作者的選擇。
