摘 要:文章以西門子S7200 PLC為例,講述了在應(yīng)用高速計數(shù)器對旋轉(zhuǎn)編碼器脈沖進(jìn)行計數(shù)時,出現(xiàn)的故障及其排除方法。
關(guān)鍵詞:旋轉(zhuǎn)編碼器;高速計數(shù);故障
引言
旋轉(zhuǎn)編碼器安裝于電機(jī)減速機(jī)旋轉(zhuǎn)軸上,PLC對旋轉(zhuǎn)編碼器發(fā)出的脈沖進(jìn)行計數(shù),可以實現(xiàn)定位、定長距離運(yùn)行功能。
1 應(yīng)用情形
在一個應(yīng)用中,鏈條的兩端連著夾盤和配重,升降電機(jī)通過鏈條帶動夾盤上升和下降。升降電機(jī)正轉(zhuǎn),夾盤上升;升降電機(jī)反轉(zhuǎn),夾盤下降。升降電機(jī)帶抱閘。夾盤可停止在行程內(nèi)的任一高度,完成各層產(chǎn)品的碼垛。升降電機(jī)減速機(jī)的軸上安裝一個旋轉(zhuǎn)編碼器,PLC通過高速計數(shù)器對旋轉(zhuǎn)編碼器發(fā)出的脈沖進(jìn)行計數(shù),自動計算夾盤的當(dāng)前高度。操作臺上有急停、暫停按鈕。(1)急停按鈕(一個NC急停按鈕):按下急停按鈕后直接使變頻器斷電、接觸器線圈失電、PLC失電。(2)暫停按鈕(一個NC急停按鈕):按下暫停按鈕后,PLC不失電,程序使所有的輸出復(fù)位,所有設(shè)備停止動作,恢復(fù)按鈕后,設(shè)備接著暫停時的狀態(tài)繼續(xù)運(yùn)行。
2 硬件選型
PLC:西門子CPU 226 CN、觸摸屏:步科MT4414T、旋轉(zhuǎn)編碼器:歐姆龍E6B2-CWZ5B 1000P 2M、分辨率:1000、輸出相:A、B、Z相、輸出相位差:A相、B相的位相差90±45℃(1/4±1/8T)、輸出方式:PNP集電極開路輸出、最高響應(yīng)頻率:50kHz。
不選用單相編碼器的原因:從升降電機(jī)的抱閘動作到機(jī)械抱死有一定的時間延遲,夾盤的重量加上夾盤里產(chǎn)品的重量,會導(dǎo)致夾盤往下遛。停止升降電機(jī)反轉(zhuǎn)輸出后,夾盤還會沖下去一點,然后被抱閘抱死停住;停止升降電機(jī)正轉(zhuǎn)輸出后,夾盤由于慣性會再上沖一點然后由于重力作用再掉下來一點,然后被抱閘抱死停住。
因此,停止升降電機(jī)輸出瞬間的高度并不是夾盤最后真實高度,這就需要PLC做額外處理。使用單相的編碼器來計算夾盤的當(dāng)前高度不容易準(zhǔn)確:停止升降電機(jī)正轉(zhuǎn)輸出后,不管夾盤由于慣性上沖還是因重力下遛,單相旋轉(zhuǎn)編碼器的脈沖數(shù)都是增加的,那么停止升降電機(jī)正轉(zhuǎn)輸出后到底下遛多少距離,PLC無法判定,這就會造成誤差,升降動作有幾個來回后,誤差積累起來,就會使控制越來越不精準(zhǔn)。
選型中的編碼器有A、B、Z這3個輸出相,完全可以通過高速計數(shù)器計到的脈沖數(shù)來計算夾盤當(dāng)前的高度:升降電機(jī)正轉(zhuǎn),計數(shù)器值增加;升降電機(jī)反轉(zhuǎn),計數(shù)器值減小(可能會到負(fù)值),即使夾盤遛,高速計數(shù)器的值也會做出相應(yīng)的反應(yīng),夾盤當(dāng)前的高度都是準(zhǔn)確的。旋轉(zhuǎn)編碼器的Z相不需要接到PLC,因為不需要旋轉(zhuǎn)編碼器自動復(fù)位。需要我們做的就是每次夾盤停在高度零位的時候,程序清一次高速計數(shù)器值。
3 故障現(xiàn)象
在調(diào)試過程中,當(dāng)拍下了急停和暫停按鈕,然后恢復(fù)急停和暫停按鈕后,手動操作升降電機(jī),發(fā)現(xiàn)升降電機(jī)運(yùn)行時,夾盤的當(dāng)前高度并沒有變化。為什么高速計數(shù)器的脈沖值沒變?這是很嚴(yán)重的故障,當(dāng)PLC無法計算夾盤的當(dāng)前高度,就無法控制升降電機(jī)自動上升和下降。而且,這種故障并不是每次都會發(fā)生,這次有,似乎還有發(fā)生機(jī)率。
4 故障排除
4.1 硬件檢查
確保旋轉(zhuǎn)編碼器、PLC、線路正常工作。擰緊旋轉(zhuǎn)編碼器連軸器,使軸帶動連軸器同步運(yùn)轉(zhuǎn)。
4.2 軟件檢查
針對上述故障,一種方法是:當(dāng)升降電機(jī)運(yùn)行時,對一定時間間隔的脈沖數(shù)作判斷,如果在上個時間間隔的開始和下一個時間間隔的開始,PLC接收到的脈沖數(shù)相等或差值的絕對值小于一個設(shè)定的值,那么就表示旋轉(zhuǎn)編碼器出現(xiàn)故障,馬上停止升降電機(jī)運(yùn)行,并報警給出故障提示。但是,這個時間間隔不容易選取,時間間隔選大了,升降電機(jī)移動一大塊距離的時候才發(fā)現(xiàn)夾盤的高度值未變,這時可能夾盤就已經(jīng)過了工藝要求的高度或壓到下一層的產(chǎn)品;時間間隔選小了,那么夾盤還沒升降多少,就報夾盤當(dāng)前高度故障了,特別是當(dāng)升降電機(jī)慢速運(yùn)行的情況下。這是被動的方法,它只能檢測,檢測到故障后還是解決不了。所以,必須從根本上解決這個問題,除非,旋轉(zhuǎn)編碼器壞了、線路壞了或PLC壞了,否則,PLC計算的高度就應(yīng)該真實反映夾盤的當(dāng)前真實高度。檢查程序如圖1所示。
發(fā)現(xiàn)主程序的第一句有跳轉(zhuǎn)指令,這是為增加“暫停”功能而添加的,按下暫停按鈕后,跳過中間的程序處理部分,直接到后面將輸出復(fù)位。這個跳轉(zhuǎn)指令跳過了Init子程序和HSC4_INIT子程序,對高速計數(shù)器的初始和定義就是在HSC4_INIT子程序完成的。
拍下急停按鈕后,PLC斷電。拍下暫停按鈕后,恢復(fù)急停按鈕,PLC重新上電,開始執(zhí)行程序,但是Init和HSC4_INIT子程序被跳轉(zhuǎn)過去,所以高速計數(shù)器未被初始化。這樣當(dāng)暫停按鈕也被恢復(fù)后,操作員操作升降電機(jī)運(yùn)行,高速計數(shù)器未對旋轉(zhuǎn)編碼器的脈沖進(jìn)行計數(shù),那么夾盤的當(dāng)前高度就不會隨著升降電機(jī)的運(yùn)行而做相應(yīng)變化。
為什么這種故障這次有,下次又沒有呢?這是在急停、暫停按鈕都被拍下的時候,操作員先恢復(fù)哪一個的順序問題。如要操作員先恢復(fù)了暫停按鈕,再恢復(fù)急停按鈕,那么高速計數(shù)器被初始,所以高速計數(shù)器能正常工作,由此計算出的夾盤高度也隨升降電機(jī)運(yùn)行而相應(yīng)的變化。
解決方法:將用SM0.1調(diào)用的Init和HSC4_INIT子程序放在主程序的第一條,將跳轉(zhuǎn)指令放在它們之后,這樣,每次PLC上電,高速計數(shù)器都被初始和定義,就不會再發(fā)生高速計數(shù)器失效故障。(如圖2所示)
開始時在主程序第一句的跳轉(zhuǎn)指令,是為了實現(xiàn)暫停功能而添加。暫停是非常實用的一個功能,可以使PLC暫時停止輸出,給設(shè)備或操作員一定的時間,當(dāng)條件成立時,再從剛才暫停的地方繼續(xù)輸出,使系統(tǒng)非常靈活。
“差之毫厘,失之千里”,雖然只是簡單的調(diào)換主程序中網(wǎng)絡(luò)1和網(wǎng)絡(luò)2代碼的位置,但設(shè)備表現(xiàn)的結(jié)果卻有很大差別,導(dǎo)致無法自動。
5 結(jié)束語
這種故障現(xiàn)象并不容易捕捉,比較隱蔽,不是每次都會發(fā)生,而是視操作員的操作順序而定。這要求編寫程序時全面考慮、不想當(dāng)然、尊重科學(xué)和現(xiàn)實規(guī)律、不要將知識只停留在書本上,對指令的用法有比較深刻的理解,在添加新的功能時,一定要注意程序前后的邏輯關(guān)系,新添加的程序不要對原來的程序功能造成影響。有時,程序的執(zhí)行結(jié)果可能不是我們所預(yù)料的結(jié)果,需要多實踐,多發(fā)現(xiàn)問題,多積累。