在 12-15-2008 01:59 AM
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而定。
NI工程師您好:我所說的step function就像是FPGA底下的sine generator一樣。我想在FPGA target vi給一個步階訊號,然後透過AO傳送到我的系統使其作動。還有一個問題就是,在FPGA底下的discrete PID Icon的Kp Ki Kd參數的調整,似乎只能給整數?那我如果想給一個0.6的值好像會幫我四捨五入變成1,這樣對我的控制不是會造成影響嗎?謝謝您的回答~
在 12-16-2008 03:03 AM
由於您的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做
在 12-17-2008 02:17 AM
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",
在 12-17-2008 02:59 AM
Hello wwc,
另外針對你其他的問題做回答:
(a)Discrete PID只能輸入整數值,並不會影響你的控制
(b)雖然FPGA下沒有Step Function,但是你可以參考下面的作法,概念是一樣的
在 12-20-2008 08:45 AM
Hello wwc,
FPGA的應用是利用硬體加速運算速度, 而不是作儲存的動作
若要將AI的資料儲存, 可以將資料傳遞至RT然後再做存檔的動作
你可以參考下面連結的範例程式,希望幫的上忙