【摘要】 從NUM數控系統PLC梯形圖程序變址操作和C語言函數操作兩種特殊的變量操作方式,通過三個變量的分析查找,詳細介紹NUM數控系統PLC程序變量寫輸出的查找方法。
在NUM數控機床故障維修中,有許多變量往往沒有直接的輸出線圈,維修人員經常碰到這種情況無從深入查找,給維修人員故障查找帶來很大的困難,為了廣大維修人員快速排出故障,掌握NUM特殊變量寫輸出的查找方法,下面以XF0235數控磨床和ETFA機械手PLC程序為例,詳細介紹查找方法。
1、變址操作
NUM數控系統通過變址增量很容易地掃描大量連續變量的值。除了變量.&(地址)之外所有的變量都可以變址,變址必須是一個 %Mxxx.W 變量,同時變址增量只能是字節。
變量變址操作原理如下,如果%M100.W = 8,則%M5.B [%M100.W] 尋址變量為%MD.B,其中%M5.B是基地址,%M100.W是變址(偏移),5 + %M100.W = 5 + 8 = 13,十六進制為D,即對應變量地址為%MD.B。
1.1 以故障位%M8d.0為例進行分析查找
首先查找交互參照表,要查找變量的局部交互參照表如下:
從上表可知,該變量在交叉表中沒有線圈,所以應考慮變址賦值。根據規律往回查找變量交互參照表,查找同類型功能(故障位)的第一個變量的寫地址,即基地址。
從上交叉表可以看出,第一個故障位對應%M0.0,在%SP29第0步中有寫輸出,查看%SP29第0步,程序如下:
從程序中可知要查找的變量%M8d.0應包含在%M0.0[%M11d0.W]變址中,
%M0.0[%M11d0.W] ? %M8d.0
根據變址規則:0 + %M11d0.W = 8d 即:%M11d0.W = 8d
由上述程序可知%M11d0.W = %Y2.W,則即:%Y2.W = 8d
由于NUM數控PLC程序的地址是按16進制編址的,所以在程序中查找0x8d,在%SP141中找到3處,如下:
%SP141
通過分析上面程序三處0x8d的程序,后面的網絡中剛好有要查找的%M8d.0觸點,可判斷是該程序塊執行了spy(0x1d,0x8d,0x44,0x15,0x1)函數,而執行spy函數時剛好其四個參數進入局部變量%Y,即%Y0.L=0x8d, 屏幕上顯示的第一行故障報警號
%Y4.L=0x44, 屏幕上顯示的第二行故障報警號
%Y8.L=0x15, 故障類型
%YC.L=0x1,動作類型
從%Y0.L=0x8d得出%Y2.W=0x8d,也就說明執行spy(0x1d,0x8d,0x44,0x15,0x1)函數時把%M8d.0置位,而spy(0x1d,0x8d,0x44,0x15,0x1)函數即為故障信息顯示程序,0x8d=141為故障號。繼續向前翻頁查找%Wf.0和%Wf.1,故障的原因為%I606.2和%I606.3,見如下程序塊。
%SP141
從上面可推知,M變量的地址轉換為10進制剛好等于故障號,也就是說故障報警時對應報警號的v變量置位。
1.2 以M功能變量%v1e6.0為例進行分析查找
要查找變量的交互參照表如下:
從上表可知,該變量在交叉表中沒有線圈,應考慮變址賦值。看符號象是M功能碼,根據規律往回查找變量交互參照表,查找同類型功能的第一個變量的寫地址,即基地址。
從交叉表可以看出,第一個M功能碼對應% V100.0,在%SP0第0步中有寫輸出,查看%SP0第0步,程序如下:
從中可知要查找的變量%v1e6.0應包含在上述%v100.0[var]變址中,
%v100.0[var] ? %v1e6.0
根據變址規則:100 + var = 1e6 即:var = 1e6-100=e6,因0xe6=230,也即var=230,從程序已知這個值來自于M功能碼,并且M230是一個不帶應答的M功能碼,由上可知var=%Mff0.W 或 %Mff2.W ,已知%v1e6.0為側頭前進命令,與軸組1有關,同時在零件加工程序中查找M230,M230在%508中,而%508又由%1.1調用,顯然該M功能碼來自軸組1,所以只能是%R104.W = 230,從而可知當1號軸組執行不帶應答的M230功能碼時置位%v1e6.0。
總結:變量%v100.0~%v1ff.0對應M0~M255功能碼的執行,當這些M功能碼執行時置位相對應的v變量,要查找的變量的地址減去100的十進制數為M功能碼號。
2、函數操作
函數操作一般是對字節、字和長字進行操作,對位是一種間接的賦值方式,所以函數操作對位來說只能通過間接查找方法,下面以ETFA機械手PLC程序M.F13變量為例進行分析查找。
通過交互參照表查找M.F13沒有直接寫輸出的地址,分析為間接寫輸出,找相近的M.F10,在%SP22的第6步有寫輸出,局部交互參照表如下。
打開%SP22梯形圖第6步,M.F13包含在M.F10中,通過oct(字節轉化為位)函數把B.400-B.407八個位傳給B.408-B.40F,再通過bit(位轉化為字節)函數把B.408-B.40F八個位傳給M.F10-M.F17,由此可知M.F13的值來自于B.403。查B.403有多個輸出,它是一個中間變量,要找離M.F10之前臨近的B.403,見下面%SP22第4-5步程序。
%SP22第6步程序:
在線查看B.403的狀態,發現機械手與機床聯機時B.49a被置1,導致B.403閃斷,從而導致M.F13為0。
查找B.49a輸出,見下面%SP1第4步程序。
%SP1第4步程序:
分析B.49a置位的原因,發現E.35一直為0,查看E.35原理圖為Z軸原位開關(AXE Z DEGAGE),調整該開關,使E.35=1,故障解決。
間接位操作函數
間接位操作函數是以字節、字、長字進行操作,它間接地改變了位的值,除了bit、oct外還有以下函數。
setb(&dest, b, n)函數從目標地址(dest)開始,連續給n個字節賦值,值為b。
setw(&dest, b, n) 函數從目標地址(dest)開始,連續給n個字賦值,值為b。
setl(&dest, b, n) 函數從目標地址(dest)開始,連續給n個長字賦值,值為b。
spy(moduleno {, argn}6 ...) 函數第一個變量為調用子程序的號,后為6個可選參數,函數執行時可選參數的值進入局部變量%Y,%Y為 32位的長字,局部變量的分配如下:
%Y0.L包含第一個參數的值
%Y4.L包含第二個參數的值
%Y8.L包含第三個參數的值
%Yc.L包含第四個參數的值
%Y10.L包含第五個參數的值
%Y14.L包含第六個參數的值
3、結束語
通過上述三個變量的詳細分析和查找,對于NUM數控PLC梯形圖變量的查找和故障維修,必將為廣大NUM數控維修人員起到極其重要的指導作用。
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯系本網編輯部, 郵箱:skjcsc@vip.sina.com