1 引言
在很多往返式傳動控制系統(tǒng)中,涉及到多點定位。在不同的定位點啟動不同的機械動作。如圖1所示的龍門刨床的機械傳動示意圖。
如圖1所示,傳動系統(tǒng)從原點啟動,中速行駛到1000mm,開始高速行駛,高速行駛到3000mm,開始低速爬行,低速爬行到終點(3200mm)停車。停頓2s。反向高速行駛,高速行駛到距原點200mm處開始低速爬行。到達原點停車,停頓2s后重新開始往返。在原點和終點的低速爬行的目的是為了避免系統(tǒng)慣性帶來的定點誤差,做到原點和終點的精確定位停車。
圖1 龍門刨床的傳動示意圖
2 系統(tǒng)組成
速度的調(diào)節(jié)采用變頻器,定位控制采用光電編碼器和PLC高速計數(shù)器精確定位。如圖(2)所示變頻器和PLC接線圖。
圖2(a)PLC接線圖
圖2(b) 變頻器接線圖
變頻器的正反轉(zhuǎn)由繼電器KA1、KA2兩個觸點控制(對應(yīng)PLC輸出點Q0.0、Q0.1),速度的切換由繼電器KA3、KA4觸點完成(對應(yīng) PLC輸出點Q0 .2、Q0.3)。變頻器故障報警輸出觸點(30A、30C觸點)用于立即停止高速計數(shù)器運行,并由指示燈HR指示(對應(yīng)PLC輸出點 Q0.6)。
變頻器具有多段速度設(shè)定功能,當(dāng)KA3、KA4兩個觸點都斷開時,高速行駛(第一速度);KA3閉合,KA4斷開時,中速行駛(第二速度);KA3斷開,KA4閉合時,低速行駛(第三速度);KA3、KA4都閉合時,手動調(diào)節(jié)行駛(第四速度)。
旋鈕SF1(I0.1)用于手動/自動切換,并用指示燈HG1(Q0.4)表示自動狀態(tài)。手動時,能夠通過按鈕SA1(電機正轉(zhuǎn))和SA2(電機反轉(zhuǎn))手動調(diào)節(jié)傳動系統(tǒng)的位置。
按鈕SA(I0.2)用于傳動系統(tǒng)在自動狀態(tài)下的啟動/停止控制。采用"一鍵開關(guān)機"方式實現(xiàn)啟動/停止控制,用指示燈HG2(Q0.5)表示啟動狀態(tài)。
行程開關(guān)SQ(I0.5)用于自動啟動時,確定傳動系統(tǒng)在原點位置,自動停止時,傳動系統(tǒng)必須返回原點。行程開關(guān)SQ1(I0.6)、SQ2(I0.7)用于傳動系統(tǒng)的兩端限位,確保傳動系統(tǒng)不能脫離設(shè)備。
3 PLC程序流程圖
自動運行程序:SBR_1,如圖3所示。
圖3 自動運行程序
中斷處理程序:INT_0,如圖4所示。
4 關(guān)鍵技術(shù)
?。?) 高速計數(shù)器中斷和預(yù)置值的多次更改實現(xiàn)多點定位實現(xiàn)多點定位控制的關(guān)鍵包括兩點,第一點是設(shè)置高速計數(shù)器中斷事件12(計數(shù)器當(dāng)前值=計數(shù)器預(yù)置值),另一點就是在中斷處理程序中更改高速計數(shù)器預(yù)置值。
定位控制需要確定定位點與原點的距離,以此確定定位點。
測量設(shè)備運行距離,需要將單位距離(mm)轉(zhuǎn)換成脈沖量,通過光電編碼器和PLC高速計數(shù)器記錄脈沖量的變化。
光電編碼器的機械軸和電動機同軸。傳動比=10,用于驅(qū)動設(shè)備的傳動棍直徑=100mm,光電編碼器每轉(zhuǎn)脈沖數(shù)=600個??梢杂嬎愠雒亢撩拙嚯x的脈沖數(shù)為:
每毫米距離的脈沖數(shù)
=600÷(10×100×3.14)≈0.19108脈沖/mm
定點位和預(yù)置值比較,必須采用高速計數(shù)器中斷方式,而不能采用一般的比較指令。因為一般的比較指令無法捕捉高速變化的事件。
所以,必須通過ATCH和ENI指令將高速計數(shù)器中斷事件號12(計數(shù)器當(dāng)前值=計數(shù)器預(yù)置值)與中斷處理程序INT_0連接。在中斷處理程序INT_0中,到達預(yù)置值時,重新裝載下一次的預(yù)置值,并執(zhí)行工藝要求的繼電器輸出,處理變頻器的運行速度。
在自動子程序SBR_1中,將高速計數(shù)器HC0設(shè)置為單相計數(shù)輸入,取消外部控制功能。在原點和終點通過更改計數(shù)方向,便于中斷處理程序INT_0判斷變頻器的運行方向。
?。?) 在中斷處理程序INT_0中不能使用等于比較指令
由于在一個中斷處理程序INT_0中判斷處理多個預(yù)置值。需要比較指令和計數(shù)方向來判斷目前高速計數(shù)器計數(shù)當(dāng)前值在哪個階段,根據(jù)判斷來決定執(zhí)行那一段指令。但是,判斷不能使用等于比較指令,應(yīng)該使用大于或小于指令判斷。
盡管中斷事件(計數(shù)器當(dāng)前值=計數(shù)器預(yù)置值)發(fā)生時,PLC立即中斷當(dāng)前主程序、子程序,執(zhí)行中斷處理程序INT_0中的指令。但是,在中斷處理程序 INT_0中,PLC仍然是按照逐條逐行的掃描機制執(zhí)行。而高速變化的計數(shù)值不可能和中斷處理程序執(zhí)行同步,如果采用等于比較指令,PLC在執(zhí)行中斷處理程序時,可能會錯過等于值,使PLC在中斷處理程序中無法判斷設(shè)備運行到哪個階段。
?。?) 在自動運行時,高速計數(shù)器的初始值寄存器寫入必須禁止由于多點定位需要多次裝載預(yù)置值,寫入預(yù)置值必須執(zhí)行HSC指令。
執(zhí)行HSC寫入指令,不單單是寫入預(yù)置值,如果在控制字節(jié)中不加以限制,初始值寄存器SMD38中的值同樣寫入。而SMD38=0,這樣,就會使高速計數(shù)器計數(shù)當(dāng)前值置0。因此,在自動運行時,必須設(shè)置控制字節(jié)SMB37的第七位SM37.6為0,在裝載預(yù)置值時,禁止寫入初始值。
但是,在高速計數(shù)器初始設(shè)置和返回原點重新開始運行時,又必須寫入初始值,使初始值置0,避免機械原因帶來的誤差。因此,控制字節(jié)必須多次修改。遵循的原則是:允許寫入初始值、執(zhí)行HSC指令后,必須馬上修改控制字節(jié),禁止初始值寫入,并再次執(zhí)行HSC指令,中間不能有其它指令存在。因為,PLC是逐條逐行執(zhí)行指令,中間沒有其它指令,就不會產(chǎn)生不必要的影響。
?。?) 多點定位的輸出線圈盡量采用立即指令
采用高速計數(shù)器進行多點定位,主要為了精確定位。定位精度既決定于高速計數(shù)器的測量,同時也決定于執(zhí)行機構(gòu)的執(zhí)行快速性 。
如果采用普通輸出指令,在一個掃描周期的程序執(zhí)行階段,改變的僅僅是輸出映像存儲器,PLC的輸出點不會立即刷新,只有在程序執(zhí)行完畢后,PLC的輸出映像存儲器才能對輸出點刷新,執(zhí)行輸出。
為了增加定位精度,盡量采用立即輸出指令。立即輸出指令不受PLC掃描周期階段的限制,在改變輸出映像存儲器的同時,立即刷新PLC輸出點。
?。?) 自動/手動程序采用For-Next循環(huán)指令和子程序指令實現(xiàn)
因為具有自動/手動功能。自動/手動程序采用For-Next指令和子程序指令。自動程序和手動程序?qū)嶋H上就是兩個循環(huán)指令的循環(huán)體。而循環(huán)指令僅執(zhí)行一次循環(huán)掃描刷新。
手動子程序SBR_0和自動子程序SBR_1用于整個程序的分段,便于程序的理解,增加程序的可讀性。
For-Next循環(huán)指令的作用是使輸出線圈能夠重復(fù)使用,簡化程序。因為,兩個循環(huán)指令的執(zhí)行由旋鈕SF(I0.1)控制,不可能同時執(zhí)行,循環(huán)體內(nèi)的程序不能同時掃描刷新。這樣,就可以使輸出線圈重復(fù)使用,沒必要采用中間變量的轉(zhuǎn)換,大大簡化了程序的編制。
單單采用子程序或跳轉(zhuǎn)指令也可以實現(xiàn)輸出線圈的重復(fù)使用,但是,在子程序的切換和跳轉(zhuǎn)指令的布置上非常繁瑣。
采用For-Next指令和子程序結(jié)合方法,就可以避免切換繁瑣,在各自的子程序中編制程序,完全不必要考慮對方的程序,作為一個獨立實體編制。這種方法唯一的缺點就是各自的初始化編程有重復(fù),但不會影響設(shè)備運行。
5 結(jié)束語
機械裝置的高精度多點定位問題廣泛存在于加工業(yè)及制造業(yè)的控制系統(tǒng)中,本文所介紹的系統(tǒng)結(jié)構(gòu)緊湊,安全可靠,十分實用。