特殊encode的訊號擷取問題

各位工程師好:

最近學校做研究需要用到絕對型encode來量測角度,

目的是擷取每1度與每360度兩種訊號,

原先以為是很平常的電壓或方波訊號,

但是買來的卻是用格雷碼(gray)方式輸出訊號,

剛接觸到labview的領域對設計沒有很強,

不知道有沒有人使用過這樣類型的編碼器,

可以提供解答讓我設計一個人機介面,感激不盡,謝謝

軟體:labview 7.1

硬體:PCI 6221 (68 PIN)

你的編碼器的手冊資料或型號有嗎

如果是絕對型那它每一個解析角度就會輸出特定的碼

用dio讀取來再做解碼就會知道你的角度

格雷碼轉二進位數

二進位碼第n位 = 二進位碼第(n+1)位+格雷碼第n位。因為二進位碼和格雷碼皆有相同位數,所以二進位碼可從最高位的左邊位元取0,以進行計算。(註:遇到1+1時結果視為0)
例如: 格雷碼0111,為4位數,所以其所轉為之二進位碼也必為4位數,因此可取轉成之二進位碼第五位為0,即0 b3 b2 b1 b0。
0+0=0,所以b3=0
0+1=1,所以b2=1
1+1取0,所以b1=0
0+1=1,所以b0=1
因此所轉換為之二進位碼為0101

 

http://zh.wikipedia.org/wiki/%E6%A0%BC%E9%9B%B7%E7%A0%81

KevinLai39652.0765393519

我曾經用過NI搜尋到的gray to binary.vi程式,

後來發現兩個問題,

第一、轉出來的10進位數字會是沒有順序與規則。

第二、轉出來的值會有約8~9位數的暴增值,ex:255、256、12345678、265...

現在附上我的程式與encode的型號,感謝你們的解答,謝謝幫忙   絕對值360格雷碼.doc     角度轉換.vi

[QUOTE=lanlanlu]

第一、轉出來的10進位數字會是沒有順序與規則。

第二、轉出來的值會有約8~9位數的暴增值,ex:255、256、12345678、265...

[/QUOTE]

將gray code 的二元制換回十進制表示時,確實是沒有規則,可見此檔

bin vs gray table.zip

轉出來的值會爆增,也許是轉換的方式有問題,或者你沒有注意的到位元長度的問題,下面的code給你參考

deomaxwell39653.022662037

你可以參考這篇文章  格雷碼轉二進位數之方法!

http://202.114.89.51:8081/whutqk/document?RecordNo=145&ColumnName=%D4%AD%CE%C4&MultiNo=0&issource=yes&type=bin&channelid=59341

以下是我的試做範例

ponytop39653.0904282407

今天先試用deomaxwell所提供的方法,

有兩個地方出現錯誤不能連線,想問一下是甚麼原因,

還有所謂的位元長度設定值在我使用的編碼器資訊中要設定多少?

很抱歉,我對這類的問題實在沒有深入研究,所以希望幫忙解答一下。

角度轉換test.vi

從你給的資料來看,你的編碼器可以支援到1024分割,換算回二元值就是 10bit ...

請將圈選的通道 disable index 選項勾起來

deomaxwell39653.8975462963