董 剛
(煙臺(tái)汽車工程職業(yè)學(xué)院機(jī)電工程系,山東煙臺(tái)265500)
中小型企業(yè)采購(gòu)高精密數(shù)控機(jī)床時(shí),往往采用分期付款形式。為保證買方能按期付款,機(jī)床廠家常在系統(tǒng)中加入分期付款功能,具體要求:①付款日前三天,系統(tǒng)應(yīng)每天發(fā)出付費(fèi)預(yù)報(bào)警,預(yù)報(bào)警可解除;②買方正常支付分期款項(xiàng),機(jī)床廠商給出當(dāng)期密碼和解鎖密碼地址,用戶按照地址輸入密碼后,系統(tǒng)自動(dòng)解除當(dāng)期預(yù)報(bào)警和逾期報(bào)警;③如到付款日買方未支付,系統(tǒng)發(fā)出逾期報(bào)警,機(jī)床不能工作,除非付款,否則報(bào)警無法解除。
筆者按照機(jī)床廠要求,給出一種FANUC 0i系統(tǒng)機(jī)床分期付款控制方法。
系統(tǒng)時(shí)間是分期付款的時(shí)間基準(zhǔn),如果被買方修改,系統(tǒng)將無法按照正確時(shí)間發(fā)出報(bào)警,分期付款功能也將失效。所以需保護(hù)系統(tǒng)時(shí)間不被修改,如圖1所示。系統(tǒng)時(shí)間保護(hù)需設(shè)定參數(shù)3290#7=0和信號(hào)G46.4=0,兩個(gè)條件缺一不可。
為防止買方修改3290#7參數(shù),有兩種方法,第一種開啟全局參數(shù)保護(hù)功能,設(shè)定3299#0=1和G46.0=0,開啟后,全部參數(shù)寫保護(hù),也使得用戶無法調(diào)整反向間隙等常用參數(shù),對(duì)用戶造成不便。第二種方法是利用WINDW指令實(shí)現(xiàn)部分參數(shù)寫保護(hù)。具體做法為:WINDW指令代碼設(shè)為二進(jìn)制數(shù)18;結(jié)束代碼不需設(shè)定,數(shù)據(jù)系統(tǒng)自動(dòng)產(chǎn)生;數(shù)據(jù)長(zhǎng)度設(shè)為1個(gè)字節(jié);數(shù)據(jù)號(hào)設(shè)為3290;數(shù)據(jù)屬性不需設(shè)定;參數(shù)數(shù)據(jù)設(shè)定為0。由于執(zhí)行寫參數(shù)功能的WINDW指令是低速響應(yīng)指令,其驅(qū)動(dòng)條件在指令執(zhí)行結(jié)束后需復(fù)位,否則指定參數(shù)將只被保護(hù)一次,部分參數(shù)保護(hù)功能將失效。本例中,使用該指令執(zhí)行完成信號(hào)E600.3的常閉觸點(diǎn)激活WINDW指令,當(dāng)WINDW指令執(zhí)行未完成時(shí)E600.3為0,E600.3常閉觸點(diǎn)驅(qū)動(dòng) WINDW 指令工作,當(dāng)WINDW指令執(zhí)行完成時(shí)E600.3為1,E600.3常閉觸點(diǎn)自動(dòng)復(fù)位,WINDW指令停止工作,E600.3常閉觸點(diǎn)重新為0,進(jìn)而重新驅(qū)動(dòng)WINDW指令工作,如此反復(fù),保證部分參數(shù)保護(hù)功能有效,如圖2所示。
信號(hào)G46.4 PMC程序,如圖3所示,也需保護(hù),相關(guān)方法在PMC程序保護(hù)中詳細(xì)說明。
本例中,第一期付款日為2018.09.20,共6期,每期間隔兩個(gè)月,如表1所示。
預(yù)報(bào)警、逾期報(bào)警都以系統(tǒng)時(shí)間作為基準(zhǔn),因此程序使用 WINDR指令讀取系統(tǒng)時(shí)間,注意事項(xiàng)為:WINDR指令代碼設(shè)為二進(jìn)制數(shù)151;結(jié)束代碼不需設(shè)定,數(shù)據(jù)系統(tǒng)自動(dòng)產(chǎn)生;數(shù)據(jù)長(zhǎng)度不需設(shè)定;數(shù)據(jù)號(hào)不需設(shè)定;數(shù)據(jù)屬性不需設(shè)定;結(jié)果數(shù)據(jù)區(qū)E210、E211字節(jié)為年數(shù)據(jù),E212、E213字節(jié)為月數(shù)據(jù),E214、E215字節(jié)為日數(shù)據(jù)。由于執(zhí)行讀參數(shù)功能的WINDR指令同樣為低速響應(yīng)指令,為保證其一直讀取系統(tǒng)時(shí)間,使用指令執(zhí)行完成信號(hào)E100.0的常閉觸點(diǎn)反復(fù)激活WINDR指令,如圖4所示。
為簡(jiǎn)化系統(tǒng)時(shí)間和當(dāng)期付款日之間的數(shù)據(jù)比較,需對(duì)系統(tǒng)時(shí)間數(shù)據(jù)中月、日部分進(jìn)行數(shù)據(jù)簡(jiǎn)化處理,使用DCNV指令將月、日分別轉(zhuǎn)化成單字節(jié)BCD碼,地址分別為D601、D600,使原來月、日各兩字節(jié)的二進(jìn)制數(shù)轉(zhuǎn)化成一個(gè)兩字節(jié)的月日組合數(shù)據(jù),如圖5所示。
(1)預(yù)報(bào)警
比較系統(tǒng)時(shí)間距離付款日是否3天以內(nèi),如果是,則發(fā)出預(yù)報(bào)警。
以第一期預(yù)報(bào)警為例說明。使用二進(jìn)制字等于指令EQW判斷年數(shù)據(jù)E210和2018是否相等,如相等則E501.0=1,如圖6所示。使用BCD碼比較指令COIN判斷月日數(shù)據(jù)D600是否等于0917、0918、0919,如其中之一相等,則對(duì)應(yīng)輸出E502.1、E503.1、E504.1為1,如圖 7所示。 如果 E501.0=1、E502.1=1,則觸發(fā)上升沿脈沖E505.0,E505.0觸發(fā)第一天預(yù)報(bào)警信號(hào)A6.1,剩余兩天預(yù)報(bào)警原理相同,如圖7所示。預(yù)報(bào)警發(fā)生后,用戶可手動(dòng)按下RESET鍵,使信號(hào)F1.1=1,復(fù)位報(bào)警,如圖8所示。
為保證預(yù)警報(bào)發(fā)生時(shí)不影響加工,報(bào)警號(hào)取外部報(bào)警2000~3000中間序號(hào)2400、2401、2402號(hào),如圖9所示。
(1)逾期報(bào)警
將系統(tǒng)時(shí)間和付款日的數(shù)據(jù)比較分為兩部分進(jìn)行,一部分是采用二進(jìn)制字指令GWT判斷前者年數(shù)據(jù)是否大于后者,如圖10所示,采用二進(jìn)制指令EQW判斷兩者年數(shù)據(jù)是否相等,如圖6所示;另一部分是采用BCD比較指令COMP,判斷前者月日數(shù)據(jù)是否大于等于后者,如圖11、12所示。
判斷系統(tǒng)時(shí)間大于等于付款日時(shí)間的依據(jù)有,兩者年數(shù)據(jù)相等且前者月日組合數(shù)據(jù)大于等于后者,或者前者年數(shù)據(jù)大于后者,如圖13所示。
如果系統(tǒng)時(shí)間大于等于某付款日,且未進(jìn)行該期密碼解鎖,則發(fā)出報(bào)警號(hào)處于1000~2000中間序號(hào)的嚴(yán)重報(bào)警,使機(jī)床停止工作,同時(shí)報(bào)警觸發(fā)系統(tǒng)急停信號(hào)G8.4,使機(jī)床伺服和主軸都不能動(dòng),整個(gè)機(jī)床處于鎖機(jī)狀態(tài),如圖14所示。
(3)密碼解鎖
為保證密碼數(shù)據(jù)斷電不丟失,解鎖密碼地址設(shè)置在系統(tǒng)D數(shù)據(jù)區(qū)。D數(shù)據(jù)區(qū)查看和輸入數(shù)據(jù)有十進(jìn)制、16進(jìn)制或BCD碼方式,數(shù)據(jù)長(zhǎng)度有字節(jié)、字或雙字類型,為了方便用戶使用輸入密碼和系統(tǒng)調(diào)試,本例中選擇BCD碼字方式,如圖15所示。
每期解鎖密碼地址非連續(xù),密碼數(shù)據(jù)無規(guī)律,目的是防止用戶破解密碼。本例中,每期解鎖密碼地址和密碼如表1所示,由機(jī)床廠商指定。
表1 付款日期、解鎖地址和密碼
使用BCD碼指令COIN判斷輸入密碼是否正確,如圖16~21所示。如解鎖密碼地址中密碼數(shù)據(jù)正確,COIN指令輸出線圈為1,解除當(dāng)期預(yù)報(bào)警和逾期報(bào)警,如圖8、圖13所示,否則輸出線圈為0,系統(tǒng)狀態(tài)不變。
當(dāng)期密碼、解鎖地址、當(dāng)期付款日等重要數(shù)據(jù)固化在PMC程序中,如果被用戶查看到,則分期付款功能將完全失效,所以設(shè)計(jì)程序時(shí)分別設(shè)置16位編輯和查看密碼,保證買方無法查看并修改PMC程序,如圖22所示。
為防止買方使用PMC輸入輸出畫面導(dǎo)出PMC程序,需使 K900.1=0、K901.6=0、K900.0=1,關(guān)閉程序?qū)С龉δ埽鐖D23所示。
為防止買方使用PMC程序停止功能,停止PMC,強(qiáng)制G46.0=1,破除系統(tǒng)時(shí)間保護(hù),需使K900.1=0、K901.6=0、K902.2=0,關(guān)閉停止功能,如圖24所示;需使 K900.1=0、K901.6=0、K900.4=0,圖 25 關(guān)閉強(qiáng)制功能。K900數(shù)據(jù)相關(guān)程序如圖26所示,PMC程序保護(hù)功能效果如圖27所示。
本文給出了一種FANUC 0i系統(tǒng)的機(jī)床分期付款控制方法,滿足了機(jī)床廠家分期付款功能要求。該方法的系統(tǒng)時(shí)間保護(hù)、預(yù)報(bào)警、逾期報(bào)警、密碼解鎖和PMC程序保護(hù)等內(nèi)容和詳細(xì)示例程序,具有一定示范意義。