PLC在多點定位及往返系統中的控制研究
在往返式傳動控制系統中,很多時候都會涉及到多點定位問題。即要求在不同的定位點啟動不同的機械動作。但由于機械慣性的作用,常常會給系統帶來定點誤差。本系統以龍門刨床的機械傳動為例,采用PLC作為控制器,通過變頻器調節速度,利用光電編碼器和PLC高速計數器進行定位控制,從而實現精確定位。
關鍵字:變頻器; PLC; 高速計數器; 光電編碼器
1 龍門刨床的機械傳動控制要求
圖1所示的龍門刨床的機械傳動示意圖。傳動系統從原點啟動,中速行駛到1000mm,開始高速行駛,高速行駛到3000mm,開始低速爬行,低速爬行到終點(3200mm)停車。停頓2s。反向高速行駛,高速行駛到距原點200mm處開始低速爬行。到達原點停車,停頓2s后重新開始往返。在原點和終點低速爬行的目的是為了避免系統慣性帶來的定點誤差,做到原點和終點的精確定位停車。
圖1 往返式機械傳動示意圖
2 龍門刨床機械傳動的PLC控制系統硬件設計
2.1 系統對變頻器的控制要求
變頻器的正反轉由繼電器K1、K2控制,速度的切換由繼電器K3、K4完成。變頻器故障報警輸出觸點(30A、30C觸點)用于立即停止高速計數器運行,并由指示燈HR指示。
變頻器具有多段速度設定功能,當K3、K4兩個繼電器觸點都斷開時,高速行駛(第一速度);K3閉合,K4斷開時,中速行駛(第二速度);K3斷開,K4閉合時,低速行駛(第三速度);K3、K4都閉合時,手動調節行駛(第四速度)。
旋鈕SF用于手動/自動切換,并用指示燈HG1表示自動狀態。手動時,能夠通過按鈕SA1(電機正轉)和SA2(電機反轉)手動調節傳動系統的位置。
按鈕SA用于傳動系統在自動狀態下的啟動/停止控制。采用“一鍵開關機”方式實現啟動/停止控制,用指示燈HG2表示啟動狀態。
行程開關SQ用于自動啟動時,確定傳動系統在原點位置,自動停止時,傳動系統必須返回原點。行程開關SQ1、SQ2用于傳動系統的兩端限位,確保傳動系統不能脫離設備。
2.2 PLC系統硬件系統的構成及連接
為了實現對龍門刨床機械傳動的精確定位,本系統采用PLC作為控制器,通過變頻器進行速度調節,采用光電編碼器和PLC高速計數器進行定位控制。根據龍門刨床的機械傳動控制要求,系統中有開關量輸入點8個,開關量輸出點7個,光電編碼器A相輸入一個,因此選用SIEMENS的CPU224作為控制器,其I/O點的分配及系統接線如圖2所示。
圖2 龍門刨床機械傳動PLC控制系統接線圖
3 PLC梯形圖程序的設計
PLC的梯形圖程序設計包含主程序(用于實時調用手動子程序SBR_0和自動子程序SBR_1)、子程序SBR_0(用于實現對系統的手動控制)和SBR_1(用于實現對系統的自動控制)和中斷處理程序INT_0程序(用于處理高速計數器計數當前值到達不同預置值的處理)。由于篇幅所限,以下將以中斷處理程序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判斷變頻器的運行方向。
4.2 在中斷處理程序INT_0中不能使用等于比較指令
由于在一個中斷處理程序INT_0中判斷處理多個預置值。需要比較指令和計數方向來判斷目前高速計數器計數當前值在哪個階段,根據判斷來決定執行那一段指令。但是,判斷不能使用等于比較指令,應該使用大于或小于指令判斷。
盡管中斷事件(計數器當前值=計數器預置值)發生時,PLC立即中斷當前主程序、子程序,執行中斷處理程序INT_0中的指令。但是,在中斷處理程序INT_0中,PLC仍然是按照逐條逐行的掃描機制執行。而高速變化的計數值不可能和中斷處理程序執行同步,如果采用等于比較指令,PLC在執行中斷處理程序時,可能會錯過等于值,使PLC在中斷處理程序中無法判斷設備運行到哪個階段。
4.3 在自動運行時,高速計數器的初始值寄存器寫入必須禁止
由于多點定位需要多次裝載預置值,寫入預置值必須執行HSC指令。
執行HSC寫入指令,不單單是寫入預置值,如果在控制字節中不加以限制,初始值寄存器SMD38中的值同樣寫入。而SMD38=0,這樣,就會使高速計數器計數當前值置0。因此,在自動運行時,必須設置控制字節SMB37的第七位SM37.6為0,在裝載預置值時,禁止寫入初始值。
但是,在高速計數器初始設置和返回原點重新開始運行時,又必須寫入初始值,使初始值置0,避免機械原因帶來的誤差。因此,控制字節必須多次修改。遵循的原則是:允許寫入初始值、執行HSC指令后,必須馬上修改控制字節,禁止初始值寫入,并再次執行HSC指令,中間不能有其它指令存在。
4.4 多點定位的輸出線圈盡量采用立即指令
采用高速計數器進行多點定位,主要為了精確定位。定位精度既決定于高速計數器的測量,同時也決定于執行機構的執行快速性。
如果采用普通輸出指令,在一個掃描周期的程序執行階段,改變的僅僅是輸出映像存儲器,PLC的輸出點不會立即刷新,只有在程序執行完畢后,PLC的輸出映像存儲器才能對輸出點刷新,執行輸出。
為了增加定位精度,盡量采用立即輸出指令。立即輸出指令不受PLC掃描周期階段的限制,在改變輸出映像存儲器的同時,立即刷新PLC輸出點。
4.5自動/手動程序采用For-Next循環指令和子程序指令實現
本系統中的自動/手動功能通過采用For-Next指令和子程序指令實現。自動程序和手動程序實際上就是兩個循環指令的循環體。而循環指令僅執行一次循環掃描刷新。
手動子程序SBR_0和自動子程序SBR_1用于整個程序的分段,便于程序的理解,增加程序的可讀性。For-Next循環指令的作用是使輸出線圈能夠重復使用,簡化程序。
中斷處理程序:INT_0
當變頻器正向運行(由SM36.5判斷,增計數為正向運行,SM36.5=1),高速計數器當前值等于19108(1000mm)時,繼電器K3(Q0.2)、K4(Q0.3)斷開,變頻器速度設定為高速正向行駛(第一速度)。同時將高速計數器預置值更改為57325(3000mm)。
當變頻器正向運行,高速計數器當前值等于59325(3000mm)時,繼電器K3(Q0.2)斷開、K4(Q0.3)接通,變頻器速度設定為低速正向爬行行駛(第三速度)。同時將高速計數器預置值更改為61146(3200mm)。
當變頻器正向運行,高速計數器當前值等于61146(3200mm)時,表明達到終點,繼電器K1(Q0.0)、K2(Q0.1)、K3(Q0.2)、K4(Q0.3)全部復位斷開,變頻器立即停止運行。同時,發出終點到達信號M0.1,讓子程序SBR_1處理停頓2s時間,并由SBR_1處理反向運行設置。
當變頻器反向運行(由SM36.5判斷,減計數為反向運行,SM36.5=0),高速計數器當前值等于3822(200mm)時,繼電器K3(Q0.2)斷開、K4(Q0.3)接通,變頻器速度設定為低速反向爬行行駛(第三速度)。同時將高速計數器預置值更改為0。
當變頻器反向運行(由SM36.5判斷,減計數為反向運行,SM36.5=0),高速計數器當前值等于0時,表明變頻器返回到達原點。繼電器K1(Q0.0)、K2(Q0.1)、K3(Q0.2)、K4(Q0.3)全部復位斷開,變頻器立即停止運行。同時,發出原點到達信號M0.0,讓子程序SBR_1處理停頓2s時間,并由SBR_1處理正向重新運行設置。
本文創新點:
往返式傳動控制系統的多點定位是一個較難解決的問題,本系統采用PLC作為控制器,通過變頻調速,利用光電編碼器和PLC高速計數器進行定位控制,克服了往返式傳動控制系統中由于機械慣性的作用給系統帶來的定點誤差,從而實現了精確定位。
評論
查看更多