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