雷楠南
(三門峽職業(yè)技術(shù)學(xué)院 汽車學(xué)院,河南 三門峽 472000 )
在數(shù)控機(jī)床運行過程中,除了CNC系統(tǒng)控制之外,電氣PLC控制也是保證機(jī)床正常運行的關(guān)鍵。數(shù)控機(jī)床的電氣控制主要是利用機(jī)床操作面板對機(jī)床工作臺的運動、機(jī)床運行的倍率、機(jī)床運行的工作方式等進(jìn)行控制[1]。在FANUC數(shù)控系統(tǒng)中,PLC控制功能集成在CNC上,又稱為PMC控制[2]。在PMC程序編制過程中,對于一些特殊功能簡單的梯形圖邏輯實現(xiàn)起來較為復(fù)雜,例如機(jī)床操作面板上的倍率旋鈕實現(xiàn)倍率變換、工作方式旋鈕實現(xiàn)數(shù)控機(jī)床工作方式的選擇等。因此,可利用數(shù)控系統(tǒng)提供的二進(jìn)制譯碼指令和二進(jìn)制代碼轉(zhuǎn)換指令來實現(xiàn)這些特殊的機(jī)床控制功能。
FANUC數(shù)控系統(tǒng)中功能指令很多,二進(jìn)制譯碼(SUB25)指令是最常用的指令之一。該指令的功能是可對1字節(jié)、2字節(jié)或4字節(jié)的二進(jìn)制代碼數(shù)據(jù)進(jìn)行譯碼,當(dāng)指定的8個連續(xù)數(shù)據(jù)之一與代碼數(shù)據(jù)相同時,對應(yīng)的輸出數(shù)據(jù)位為1;如果沒有相同的數(shù)據(jù)時,輸出數(shù)據(jù)為0。該指令在PMC編程時,經(jīng)常用于數(shù)控機(jī)床的輔助功能M或T功能的數(shù)據(jù)譯碼[3]。
二進(jìn)制譯碼指令格式如圖1所示。其中,“ACT”為其執(zhí)行條件,即“ACT”為高電平信號時,觸點接通,執(zhí)行數(shù)據(jù)譯碼,“ACT”為低電平信號時,復(fù)位所有的輸出數(shù)據(jù);“格式指定”可設(shè)定譯碼數(shù)據(jù)的字節(jié)數(shù),具體可設(shè)定為0001、0002、0004,分別對應(yīng)譯碼數(shù)據(jù)為1字節(jié)、2字節(jié)、4字節(jié)的二進(jìn)制代碼數(shù)據(jù); “代碼數(shù)據(jù)地址”是表示指定被譯碼數(shù)據(jù)的地址;“譯碼指定值”表示指定被譯碼的8個連續(xù)數(shù)據(jù)的第一個數(shù)據(jù)值;“譯碼結(jié)果輸出地址”指定譯碼結(jié)果輸出地址,當(dāng)代碼數(shù)據(jù)經(jīng)過譯碼后,將譯碼值與指定的8個連續(xù)數(shù)據(jù)進(jìn)行對比,數(shù)值相同時,對應(yīng)輸出數(shù)據(jù)位為1,輸出地址需要占用1字節(jié)存儲空間[4]。
圖1 二進(jìn)制譯碼指令格式
配置FANUC數(shù)控系統(tǒng)的機(jī)床工作方式選擇常用8擋波段開關(guān)來實現(xiàn)轉(zhuǎn)換[5],波段開關(guān)實現(xiàn)機(jī)床工作方式轉(zhuǎn)換時需編制PMC程序。通常,8擋波段開關(guān)的電氣接線有3根,編程地址對應(yīng)于PMC的輸入信號地址,所以在編程前必須查找到波段開關(guān)的電氣接線地址。此處,以XK714數(shù)控銑床的機(jī)床工作方式波段開關(guān)編程為例來說明譯碼功能指令的應(yīng)用方法。
(1) 通過查找電氣接線,找到8擋波段開關(guān)的電氣接線地址為X0001.7、X0002.1和X0002.3。因為8擋波段開關(guān)對應(yīng)8個譯碼值,所以可指定譯碼數(shù)據(jù)格式為1字節(jié);“代碼數(shù)據(jù)地址”用中間信號R0030指定;“譯碼結(jié)果輸出地址”用中間信號R0031指定存放;由于譯碼值是從0至7共8個數(shù)值,因此“譯碼指定值”可設(shè)定為0。
(2) 編制機(jī)床工作方式轉(zhuǎn)換譯碼程序如圖2所示。旋轉(zhuǎn)8擋波段開關(guān),觀察圖2所示程序中R0030所對應(yīng)的輸出信號狀態(tài),并記錄數(shù)控機(jī)床各工作方式對應(yīng)的代碼數(shù)據(jù)值。因為X0001.7、X0002.1、X0002.3是直接接通R0030.0、R0030.1、R0030.2,所以X0001.7、X0002.1、X0002.3對應(yīng)的數(shù)據(jù)值即為R0030.0、R0030.1、R0030.2的數(shù)據(jù)值。旋轉(zhuǎn)波段開關(guān)時,各機(jī)床工作方式對應(yīng)的二進(jìn)制數(shù)據(jù)、經(jīng)過二進(jìn)制譯碼功能指令譯碼后的譯碼值以及譯碼結(jié)果輸出如表1所示。
圖2 利用二進(jìn)制譯碼功能指令編程實現(xiàn)機(jī)床工作方式轉(zhuǎn)換
表1 機(jī)床工作方式對應(yīng)的譯碼值
數(shù)控機(jī)床工作方式的選擇是數(shù)控系統(tǒng)根據(jù)G0043信號的組合值來確定的,F(xiàn)ANUC數(shù)控系統(tǒng)通過G0043.0、G0043.1、G0043.2、G0043.5、G0043.7信號的組合來確定數(shù)控機(jī)床的相應(yīng)工作方式。PMC與CNC之間工作方式信號傳遞[6]如表2所示。
表2 PMC與CNC之間工作方式信號傳遞
由表2中機(jī)床各工作方式對應(yīng)的G0043信號可知,G0043.0為“1”信號對應(yīng)的工作方式有程序編輯、DNC方式運行、自動方式運行、手動連續(xù)進(jìn)給和手動回參考點;G0043.1為“1”信號對應(yīng)的工作方式有程序編輯;G0043.2為“1”信號對應(yīng)的工作方式有手輪進(jìn)給、增量進(jìn)給、手動連續(xù)進(jìn)給和手動回參考點;G0043.5為“1”信號對應(yīng)的工作方式有DNC方式運行;G0043.7為“1”信號對應(yīng)的工作方式有手動回參考點。再根據(jù)表1機(jī)床各工作方式對應(yīng)的二進(jìn)制譯碼值及譯碼輸出狀態(tài)信號,利用譯碼輸出信號依次接通G0043.0、G0043.1、G0043.2、G0043.5和G0043.7信號編制PMC程序,如圖3、圖4所示,從而確定數(shù)控機(jī)床的相應(yīng)工作方式。
圖3 工作方式G0043.0信號PMC程序處理
圖4 G0043.1、G0043.2、G0043.5、G0043.7信號PMC程序處理
二進(jìn)制代碼轉(zhuǎn)換功能指令也是FANUC數(shù)控系統(tǒng)PMC程序編制過程中使用較多的指令之一。該指令的功能是將二進(jìn)制格式的數(shù)據(jù)轉(zhuǎn)換為1字節(jié)、2字節(jié)或4字節(jié)格式的二進(jìn)制數(shù)據(jù),指令格式如圖5所示。
圖5 二進(jìn)制代碼轉(zhuǎn)換功能指令格式
二進(jìn)制代碼轉(zhuǎn)換功能指令的執(zhí)行條件是“ACT”信號為高電平1信號,否則指令不執(zhí)行;若“RST”信號為高電平1信號時,可將錯誤輸出W1復(fù)位?!案袷街付ā笨稍O(shè)定轉(zhuǎn)換表中的二進(jìn)制數(shù)據(jù)長度,0001、0002、0004分別對應(yīng)轉(zhuǎn)換表中二進(jìn)制數(shù)據(jù)為1字節(jié)、2字節(jié)、4字節(jié)的二進(jìn)制數(shù)據(jù);“數(shù)據(jù)表容量”用來指定轉(zhuǎn)換數(shù)據(jù)表容量,最大可指定256(0到255)個字節(jié);“轉(zhuǎn)換數(shù)據(jù)輸入地址”表示轉(zhuǎn)換數(shù)據(jù)表中的數(shù)據(jù)可通過指定表號取出,指定表號的地址稱為轉(zhuǎn)換數(shù)據(jù)輸入地址,該地址需要1字節(jié)的存儲空間;存儲表中輸出數(shù)據(jù)的地址稱為“轉(zhuǎn)換數(shù)據(jù)輸出地址”。應(yīng)用二進(jìn)制代碼轉(zhuǎn)換功能指令時,如果轉(zhuǎn)換輸入數(shù)值超出了指令轉(zhuǎn)換數(shù)據(jù)表范圍,輸出W1=1。
為了與二進(jìn)制譯碼指令做對比,下面仍以數(shù)控機(jī)床工作方式轉(zhuǎn)換為例,利用二進(jìn)制代碼轉(zhuǎn)換功能指令來編制PMC程序[7]。
因為8擋波段開關(guān)對應(yīng)8個數(shù)據(jù)值,所以可指定“數(shù)據(jù)表容量”為“8”,“格式指定”可設(shè)定轉(zhuǎn)換表中的二進(jìn)制數(shù)據(jù)長度為1字節(jié),“轉(zhuǎn)換數(shù)據(jù)輸入地址”仍用中間信號R0030指定,“轉(zhuǎn)換數(shù)據(jù)輸出地址”用機(jī)床工作方式確定信號G0043來指定存放。編制的機(jī)床工作方式轉(zhuǎn)換程序如圖6所示。此處,轉(zhuǎn)換數(shù)據(jù)輸入地址R0030.0、R0030.1、R0030.2仍可用X0001.7、X0002.1、X0002.3直接接通。在二進(jìn)制代碼轉(zhuǎn)換指令的輸入端,因為“RST”端接入的是R9091.0信號(?!?”信號),故該指令不執(zhí)行復(fù)位功能;“ACT”端接入的是R9091.1信號(常“1”信號),所以程序運行時該功能指令可直接執(zhí)行二進(jìn)制代碼轉(zhuǎn)換。該功能指令執(zhí)行時,先將“轉(zhuǎn)換數(shù)據(jù)輸入地址”R0030對應(yīng)的“轉(zhuǎn)換數(shù)據(jù)表”表內(nèi)號相應(yīng)數(shù)據(jù)轉(zhuǎn)換為二進(jìn)制代碼,然后再將轉(zhuǎn)換后的二進(jìn)制代碼輸出到“轉(zhuǎn)換數(shù)據(jù)輸出地址”G0043,從而完成機(jī)床工作方式G0043信號的組合。
圖6 利用二進(jìn)制代碼轉(zhuǎn)換功能指令編制的機(jī)床工作方式轉(zhuǎn)換程序
利用該功能指令進(jìn)行二進(jìn)制代碼轉(zhuǎn)換時,“轉(zhuǎn)換數(shù)據(jù)輸入地址”所對應(yīng)的“轉(zhuǎn)換數(shù)據(jù)表”表內(nèi)號及相應(yīng)的“轉(zhuǎn)換數(shù)據(jù)表”的數(shù)值對應(yīng)關(guān)系如表3所示。以機(jī)床工作方式開關(guān)處于“編輯”方式為例,執(zhí)行該功能指令時,由于轉(zhuǎn)換數(shù)據(jù)表輸入地址為0,因此要將數(shù)據(jù)表表內(nèi)號為0的數(shù)據(jù)進(jìn)行二進(jìn)制代碼轉(zhuǎn)換。此處,表內(nèi)號0所對應(yīng)的數(shù)據(jù)為“00003”,將其進(jìn)行二進(jìn)制轉(zhuǎn)換后為“00000011”,再將其輸出到G0043地址,可知G0043.0、G0043.1信號為1;再查閱表2可知,在程序編輯方式下,G0043.0、G0043.1信號為1。其余機(jī)床工作方式的確定,只需根據(jù)相應(yīng)的工作方式所對應(yīng)的“轉(zhuǎn)換數(shù)據(jù)表”表內(nèi)號依次確定出“轉(zhuǎn)換數(shù)據(jù)表”中的數(shù)值,然后在編程時將其填入“轉(zhuǎn)換數(shù)據(jù)表”即可。
表3 二進(jìn)制代碼轉(zhuǎn)換信號對應(yīng)關(guān)系
本文利用二進(jìn)制譯碼指令與二進(jìn)制代碼轉(zhuǎn)換指令分別對數(shù)控機(jī)床工作方式轉(zhuǎn)換PMC程序進(jìn)行了編制和調(diào)試,調(diào)試結(jié)果也驗證了程序的可行性。對比這兩種功能指令編制的PMC程序,可發(fā)現(xiàn)二進(jìn)制譯碼指令編制的程序相對繁雜一些,但是程序簡單、較容易理解;二進(jìn)制代碼轉(zhuǎn)換指令編制的程序較簡單,但程序可能不易理解,且轉(zhuǎn)換數(shù)據(jù)表中數(shù)值的計算和確定相對難度較大。因此,在數(shù)控系統(tǒng)PMC程序編制過程中,編程人員可根據(jù)對功能指令的理解和掌握情況選擇合適的功能指令進(jìn)行編程。