鄭 明
通用技術集團大連機床有限責任公司 遼寧 大連116620
近年來,隨著制造業市場需求的變化,根據自身產品的性價比,大、中型金屬切削機床更多趨向于個性化訂單。對于數控機床的操縱面板,有的由數控系統廠家提供,有的由制造廠自己設計定做,因此數控機床的倍率開關輸入信號就會有格雷碼和二進制碼兩種區分形式。對于FANUC 數控系統,系統廠家提供的操縱面板,進給倍率開關信號采用的是格雷碼,而FANUC系統的進給倍率信號對應的數據是二進制碼。對于格雷碼的進給倍率開關,PMC在實現進給倍率的編程時,需要把格雷碼轉換成二進制碼,再經過數據表的正確賦值,通過二進制代碼轉換功能CODB才能實現進給速度的修調。
格雷碼是一種數字排序系統,由0和1組成,其中的所有相鄰整數在它們的數字表示中只有一個數字不同[1],這大大地減少了由一個狀態到下一個狀態時邏輯的混淆。格雷碼還具有高可靠性,是一種錯誤最小化的編碼方式之一,因此,作為輸入信號以及編碼形式被廣泛應用到機械、電子等行業中。
一般情況下,自然二進制碼與格雷碼可以按以下方法相互轉換。
(1)二進制碼轉換為格雷碼,是編碼形式。從最右邊一位(最低位)起,依次將每一位與相鄰左邊一位異或,作為對應格雷碼該位的值,最左邊一位不變。[2]。
(2)格雷碼轉換成二進制碼,是解碼形式。最左邊一位(最高位)保持不變,從左邊第二位起,依次將每位與左邊一位解碼后的值異或,作為該位解碼后的值。

FANUC數控系統廠家提供的操縱面板上的進給倍率開關輸入信號是格雷碼,而FANUC系統的進給倍率信號控制的功能指令CODB處理的數據都是二進制碼,要想實現進給速度倍率PMC編程控制,必須先通過PMC編程將碼制轉換。假設進給倍率開關的格雷碼輸入信號24、23、22、21、20(從高位到低位)對應的PMC輸入信號的地址分別為X0.4 、X0.3 、X0.2 、X0.1 、X0.0,根據格雷碼轉換為二進制碼解碼的規律,將格雷碼轉換為二進制碼的PMC控制梯形圖如圖所示。
FANUC系統的進給速度倍率的實現,用的是PMC里的CODB功能指令,它是把2個字節的二進制代碼數據轉換成1個字節、2個字節或4個字節的二進制數據指令。具體功能是把轉換數據輸入地址對應數據表里的數值以二進制的形式,輸出到轉換數據的輸出地址中。

CODB功能指令中的0021表示數據表中的容量,由進給倍率開關的位數來決定。將R10地址作為轉換數據輸入地址,由進給倍率開關的格雷碼經過PMC碼制轉換而來的二進制碼,編程進給速度倍率信號G12作為轉換數據輸出地址。由于編程進給速度倍率信號*FV0~*FV7(G0012.0 ~G0012.7 )為負邏輯信號,“0”時有效,倍率單位為1%,所以倍率數據表的倍率數據均為實際倍率的反碼,可表示成相應負整數的補碼,具體對應關系為:
-(實際倍率+1)的補碼=(實際倍率)的反碼,則CODB功能指令中的倍率數據表中的值就用“實際倍率+1”的負數來賦值。例如:當進給倍率開關選擇在10%時,R10中的二進制是00110,對應的十進制數是6,那就是數據表中表內號6,表內號6對應的十進制倍率數據賦值為-11,即-(10+1)。通過執行代碼轉換指令CODB把數據表表內號6所對應的十進制倍率數據-11,以8位二進制倍率數據11110101形式輸出到G12.0 ~G12.7 中,并向CNC傳送編程進給速度倍率信號*FV0~*FV7,CNC就執行10%的編程進給速度。
在機床產品電氣設計調試中,根據數控系統CNC和PMC接口信號的不同,再結合不同類型的控制面板以及不同碼制的進給倍率開關,就可以根據碼制轉換規律很靈活地實現進給速度倍率,這樣就提升了產品配套件的多樣化,使產品的經濟效益提升。FANUC系統進給倍率數據表的值也可以用正數來賦值。