2011年4月12日 星期二

利用LabVIEW擷取編碼器的資料(encoder)

最近剛好幫一個客戶做驗證,順便po上來跟大家分享。一般馬達通常都會有個編碼器(encoder)來量馬達的位置還有轉速(若不懂編碼器是什麼,請看這邊: 編碼器原理概論。) 要是馬達沒有編碼器的話,那我們也可以再額外加裝上去。台灣目前最常看到的兩家encoder廠商有企誠(www.honestsensor.com.tw)還有鴻璿(www.encoder.com.tw, 很好記吧),在他們網頁上會有很多各式各樣的encoder.

最近跟企誠買了一款encoder,決定用NI DAQ先給它測一下。因為NI DAQ的DIO還有counter都是5V TTL準位,所以挑選encoder的時候也記得要確認這個spec。另外也要看encoder本身需要的電源是幾伏特,這一款剛好是5V,所以可以直接拿DAQ上的5V輸出來供電給encoder。我用了一款NI USB-6212,蠻方便的。

Encoder連到DAQ示意圖:IMG_1182

接線很簡單: 紅(5V),黑(GND),綠和白為AB相位,分別接PFI0,PFI9 (這兩條是DAQ CTR0的input,我們就是要用counter來幫我們計數encoder的方波)IMG_1183

若是用LabVIEW的話,可以直接開一個現成DAQ的範例﹕Measure Angular Position.vi

IMG_1184

之後用手把encoder動一動,LabVIEW就會量到現在目前的角度啦! 

要用CompactRIO來做的話也是一樣,記得要用Digital Input或是DIO的模組(例如9411,9401),Scan Mode裡面可以直接選擇encoder輸入,把線接好相對應的接腳就可以了。

-John

3 則留言:

  1. 你好 感謝吳大哥的講解
    我編碼器的電源是由dirver提供的
    我現在用的是usb的6251 這個daq盒
    我只有接三條線37接a相 45接b相 還有一個接35的地與dirver相接
    我現在想不懂的事為什麼他正反轉都一直累加
    而不是正轉往上反轉往下
    更神奇的是 我用手動轉的時候都正常的 正轉往上 反轉往下
    對了 吳大哥 方便用信箱跟你聯絡嗎
    我的信箱是hotwork312@yahoo.com.tw
    我姓陳

    回覆刪除
  2. 你可能有一相接到Z項去囉

    回覆刪除
  3. 請問一下如果我要用Compactrio控TETRIX的馬達編碼器,那我要用哪張卡控制。
    我目前有數位輸入9425與數位輸出9477這兩張卡,可以用嗎 ?
    我的信箱是:bleach11220@hotmail.com

    回覆刪除