NI產品與技術 討論區

取消
顯示結果 
搜尋替代 
您的意思是: 

類比輸出

NI 工程師您好:我似乎已經找到影片中的discrete PID的Icon。但是我還是沒找到如何給一個步階訊號,可以請您告訴我從何去找?還有,discrete PID與我在RT target下所看到的PID,其往後如果做PID控制的結果是否會一樣。謝謝您的回答
0 積分
21 條訊息(共 48 條)
7,304 檢視

Hi wwc,

 

在我幫你搜尋過後,我也沒有看到有相關的step function在block diagram的function palette上面出現。

不知道你說的那個step function VI 確切的名稱是什麼呢?

在這邊要跟你說明的是,在不同的環境下面,function palette上面會顯示出來的VI也不一樣,

舉例來說,有些VI是 RT Controller專有的,亦即你要是把它換到FPGA上面,他不一定能夠執行,

甚至有些VI在FPGA上面有,但是在RT上找不到,反之亦然。

 

而就同樣的功能而言,做在RT上與FPGA上主要的差別在於他們的架構不一樣,

RT是軟體的作業系統,而FPGA是硬體,若你是真的要達到快速且平行擷取,我們會建議你使用FPGA。

一般說來RT最快的執行速度大概到1ms,而FPGA上面,可以依照他的clock rate去合成不同的更快的clock,

40MHz, 80MHz都有可能,不過這要看每個不同的FPGA而定。

 

22 條訊息(共 48 條)
7,294 檢視

NI工程師您好:我所說的step function就像是FPGA底下的sine generator一樣。我想在FPGA target vi給一個步階訊號,然後透過AO傳送到我的系統使其作動。還有一個問題就是,在FPGA底下的discrete PID Icon的Kp Ki Kd參數的調整,似乎只能給整數?那我如果想給一個0.6的值好像會幫我四捨五入變成1,這樣對我的控制不是會造成影響嗎?謝謝您的回答~

0 積分
23 條訊息(共 48 條)
7,286 檢視

由於您的labview是8.2,所以不支援定點運算,目前labview8.5/8.6支援定點運算,就是在FPGA下可以放固定點的小數點。

所以您在C:\Program Files\National Instruments\LabVIEW 8.2\examples\CompactRIO\Module Specific\Ni 9264\NI 9264 Methods

可以看到在RT的程式可以放小數點,以及nominal to binary.vi 其目的就是在FPGA上放整數,RT可以放小數

另外如果您要透過9263產生步階信號,請您在RT上面,再透過nominal to binary.vi ,轉到FPGA

PID也是如此,所有的動作請在RT做

 

24 條訊息(共 48 條)
7,266 檢視
痾....這問題又回到一開始我的疑惑了。我當初就是從外面輸入一個sine 訊號然後透過Bin to Nom.vi傳到RT做處理,然後再藉由Nom to Bin.vi傳到FPGA 然後再送出去給AO。我之前的動作都是RT底下做,但是我還是不清楚為什麼會造成我的輸出訊號不是一個完整的sine。而您現在說我勢必得要在RT做處理,但我是不是先得透過Bin to Nom.vi傳到RT,經過轉換之後我才能在RT底下做PID不是嗎?那當我做完之後不也是要藉由Nom to Bin.vi傳給FPGA然後再透過AO送出訊號?而我往後是要用sensor所量到的訊號當作是我的input然後在RT做PID迴授控制,將運算完的值再丟回給FPGA AO。那這不是同樣道理嗎?我之前只是將我的input給一個sine,然後傳到RT 做某些運算(也可不做運算),然後將值再透過Nom to Bin.vi丟回給FPGA AO,但是呈現出來就不是一個完整的sine 。非常感謝您耐心看完我的疑惑.....謝謝~
0 積分
25 條訊息(共 48 條)
7,262 檢視

Hello wwc,

   因為討論串很長,為了避免混淆,所以我針對你最後一篇文章來做回覆
(a)若你今天想要將AI所接收的訊號立即透過AO輸出至示波器來做觀看的動作
   那麼你應該在FPGA上完成這樣的動作,而不是在RT下處理,這是因為:
   AI 輸入 --> 傳送資料至RT --> RT傳送資料回FPGA --> AO 輸出
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                這一段時間不知道會花多久
   今天你若將AO的輸出頻率設定成200kHz,那麼你應該每隔5 usec送一點資料給AO來做輸出的動作
   若是你採用資料傳送至RT然後再送回FPGA的架構,那麼你就沒辦法每隔5 usec送一點資料給AO
   針對FPGA下的程式寫法,你可以參考"FPGA Test.jpg"這個檔案試試看
(b)PID要放在FPGA還是RT下
   關於這個問題,端視你的控制速度而言
   舉例來說,今天你要控制烤箱的溫度,由於溫度的變化沒那麼快,換言之
   你的AI所接收到的資料其變化也沒那麼快,在這樣的狀況下
   你可以將PID放在RT底下,RT的處理速度對溫度控制而言是綽綽有餘的
   今天你如果要控制馬達,由於馬達的轉速變化很快,換言之
   你的AI所接收的資料其變化速度會很快,因此在這樣的妝況下
   你需要將PID放在FPGA下,關於PID放在FPGA的程式寫法,你可以參考"FPGA Test1.jpg",

 

   

下載全部
26 條訊息(共 48 條)
7,241 檢視

Hello wwc,

  

 另外針對你其他的問題做回答:
(a)Discrete PID只能輸入整數值,並不會影響你的控制
(b)雖然FPGA下沒有Step Function,但是你可以參考下面的作法,概念是一樣的

  

27 條訊息(共 48 條)
7,235 檢視

昨天有試了一下,OK了。真的非常謝謝您幫我解決我的問題~

28 條訊息(共 48 條)
7,217 檢視
NI工程師您好:有個問題想再請教您。那在FPGA target底下我可以做資料的存檔嗎?例如我AI 進來一筆資料,我想在FPGA vi底下存成excel 或txt檔。謝謝您的回答~
0 積分
29 條訊息(共 48 條)
7,162 檢視

Hello wwc,

 

   FPGA的應用是利用硬體加速運算速度, 而不是作儲存的動作

   若要將AI的資料儲存, 可以將資料傳遞至RT然後再做存檔的動作

   你可以參考下面連結的範例程式,希望幫的上忙

   http://zone.ni.com/devzone/cda/epd/p/id/3432

0 積分
30 條訊息(共 48 條)
7,147 檢視