您好:
我的問題PCI-DAQ卡最高可以到80MHZ下去當作計數頻率,可是我寫的labview不能拿硬體時脈(PCI-6602的時脈)當作計數頻率,只能拿軟體時脈(labview的時脈)下去計數 一直無法解決這個問題
我的程式目前狀況: 使用軟體時脈的labview.vi 第一個檔案是我用軟體時脈每2ms計數一次 我所需要到數十個ns(PCI-6602的DAQ卡最高可以到80MHZ) 所以需要用到硬體時脈才可以達到此需求
第2個檔案使用硬體時脈的labview 這個使用DAQmx來使用硬體時脈可是一直寫得怪怪的
不知道該如何解決用硬體時脈計數的問題?想請各位高手替我解惑
謝謝
在 05-02-2012 10:47 PM
另外補充
除非您要的時間精準度很高,否則透過軟體時脈已經足夠
另外,在 Windows OS 執行您的程式VI,要時間很準也有他的困難處,除非在 Real-Time 或 FPGA 上面
建議您說明您的應用以及為何需要如此高的精準度
hschen 已寫:關於你寫的硬體時脈的vi
想請問你期望做到怎樣的功能
而這個VI又是哪裡不符合你的期望?
能否再描述得更清楚一點?
hschen您好
我期望的目標是以PCI-6602 count Frequency 80MHZ的頻率來當作計數頻率,也就是每12.5ns計數一次
而我寫的labview 程式是以每2ms計數一次,對於我的系統架構來說太慢了
我想達到更快的計數頻率
謝謝
Billingsley 已寫:
另外補充
除非您要的時間精準度很高,否則透過軟體時脈已經足夠
另外,在 Windows OS 執行您的程式VI,要時間很準也有他的困難處,除非在 Real-Time 或 FPGA 上面
建議您說明您的應用以及為何需要如此高的精準度
Billingsley 您好:
我需要的時間精準度必須要很精準,因為我想寫的程式是單光子計數器,每12.5ns計數有多少個光子
目前我知道只有labview程式中Time物件都只有ms等級
不知道要如何使用PCI-6602這張卡的頻率來已達到我所需要更快的計數頻率
謝謝
請問你這邊的 source 接甚麼?
在 05-03-2012 04:07 AM
hschen 已寫:
請問你這邊的 source 接甚麼?
這裡source是使用BNC-2121的PFI9連接到Pulse端
再選擇80MHZ作為計數頻率
可是很奇怪的一點是我還未送入
一個Pulse訊號
Labview已經有訊號產生了
而且訊號出現的第一個值是隨機的
第一個計數點跟第2個計數點相差了80個點往後一樣有規律性
如:6,86,166
31,111,191
謝謝
聽起來很正常
你貼的程式就是這樣的功能
首先你要求DAQ做Edge Counting,計數 Counter 自己的 80MHz clock
因此程式一開始執行以後,Counter 內部的計數就會開始不斷的往上 counting (每秒8M個count)
另外你又指定做有限點截取,用 DAQmx 的 Timing 設定開啟一塊 buffer
每當你 DAQ 在 source 偵測到 Rising Edge 的瞬間 ,DAQ就會把當下計數的數字抓起來,存到 buffer
若你的 buffer 開1000點,當source 偵測到1000個 pulse 後,buffer 會剛剛好被填滿
程式就結束了
由於您是用 Quadrature Encoder Knob 來產生 pulse,pulse產生時間並不固定
讀到的值也不可能會是固定的
至於Quadrature Encoder Knob 轉一格會出來幾個 pulse,
建議你勾示波器自己看一下。
hschen 已寫:
聽起來很正常
你貼的程式就是這樣的功能
首先你要求DAQ做Edge Counting,計數 Counter 自己的 80MHz clock
因此程式一開始執行以後,Counter 內部的計數就會開始不斷的往上 counting (每秒8M個count)
另外你又指定做有限點截取,用 DAQmx 的 Timing 設定開啟一塊 buffer
每當你 DAQ 在 source 偵測到 Rising Edge 的瞬間 ,DAQ就會把當下計數的數字抓起來,存到 buffer
若你的 buffer 開1000點,當source 偵測到1000個 pulse 後,buffer 會剛剛好被填滿
程式就結束了
由於您是用 Quadrature Encoder Knob 來產生 pulse,pulse產生時間並不固定
讀到的值也不可能會是固定的
至於Quadrature Encoder Knob 轉一格會出來幾個 pulse,
建議你勾示波器自己看一下。
不好意思剛接觸Labview還是有點不懂的地方:
Timing 設定開啟一塊 buffer
是設定一個暫存區,是需要使用一個for loop來讓計數的資料一直丟進去一個暫存器裡面嗎?
Quadrature Encoder Knob 來產生 pulse,pulse產生時間並不固定
這個是什麼意思不太清楚?
現在的程式我理解是DAQ卡自己產生一個80MHZ頻率的Pulse訊號輸入讓Labview count而計數的頻率是我們設定的DAQmx Timing(Sample Clock)的rate決定,是這樣嗎?
而我的目標是希望我外加輸入一個Pulse訊號(不是DAQ自己產生的),然後使用80MHZ的頻率計數,那我計數的頻率只要調整DAQmx Timing(Sample Clock)的rate設定為80.000.000就好了嗎?還是需要程式哪裡做調整
問題有點多,不好意思
謝謝
當DAQmx Timing的source 有接的時候(你的程式接了PFI9),Rate 是沒有 function的,你輸入0他也不會有任何改變,所有的timing 都由PFI9決定
請你先勾示波器看一下你給 PFI9 的訊號長甚麼樣子
貼圖出來
hschen 已寫:
當DAQmx Timing的source 有接的時候(你的程式接了PFI9),Rate 是沒有 function的,你輸入0他也不會有任何改變,所有的timing 都由PFI9決定
請你先勾示波器看一下你給 PFI9 的訊號長甚麼樣子
貼圖出來
我不會用Labview把PFI9訊號讀出來,所以我用示波器直接連接PFI9
訊號圖如附檔
謝謝