杜鵬飛,應(yīng)成,聶佳
(上海電器科學研究所(集團)有限公司,上海 200063)
可編程邏輯控制器(PLC)的運動控制功能包括高速脈沖輸出和高速計數(shù)器功能。高速脈沖輸出功能是通過發(fā)送一串高頻脈沖驅(qū)動伺服電機或者步進電機,最終達到機械位置定位的目的。高速計數(shù)器是對安裝在電機上的編碼器輸出的高頻脈沖進行計數(shù),從而得知電機的轉(zhuǎn)動位置[1]。
PLC定位指令完成一次動作,高速脈沖輸出有加速、勻速、減速三個過程,一般通過梯形加減速或者S型加減速來實現(xiàn)[2]。本文通過梯形加減速來闡述,S型加減速原理相同。電機驅(qū)動器收到PLC發(fā)出的脈沖信號后,開始對應(yīng)地進行加速、勻速、減速運轉(zhuǎn),PLC輸出的一個脈沖對應(yīng)電機一個微小的角度轉(zhuǎn)動[3]。PLC中的脈沖輸出指令是開環(huán)的如圖1所示。一般來說,伺服電機驅(qū)動器最高可接收1MHz左右的脈沖頻率。在伺服電機驅(qū)動器內(nèi)部有一定的濾波措施,可抵抗一定的現(xiàn)場電磁干擾。但是當工業(yè)現(xiàn)場干擾比較強,伺服驅(qū)動器無法濾除這些干擾時,就會出現(xiàn)接收到比PLC實際發(fā)送的更多或者更少的脈沖數(shù),導致系統(tǒng)定位不準確。
圖1 開環(huán)系統(tǒng)示意圖
本設(shè)計采用了一種補償?shù)姆椒?,通過高速計數(shù)器實時監(jiān)測電機的轉(zhuǎn)動,計算得出電機實際的轉(zhuǎn)動位置。當電機驅(qū)動器受到外部電磁干擾時,PLC得到某個時間片內(nèi)的高速計數(shù)器值與高速脈沖發(fā)送的脈沖數(shù)不相等,PLC在下個時間片增加或者減少發(fā)出的脈沖數(shù)來進行補償,從而達到精確控制位置的目的。
本設(shè)計闡述了一種梯形加減速的算法,按照時間片分割法對加、減速過程進行單位時間分割,脈沖頻率在每個時間片遞增或遞減。同時也通過時間片對電機實際運行的角度進行采樣,通過補償算法,從而達到精確定位的效果。
本設(shè)計通過高速計數(shù)器的反饋,實時補償由于電磁干擾引起的電機定位偏差。從而解決工業(yè)現(xiàn)場中運動控制在電磁干擾環(huán)境下定位不準的問題。這就使得小型PLC在惡劣干擾環(huán)境中的運動控制定位仍然精確,大大增強了市場競爭力。
本設(shè)計帶有干擾補償功能的高速脈沖輸出指令,具有編碼器輸入的接口,將脈沖反饋信號傳遞給PLC內(nèi)部的高速計數(shù)器。在系統(tǒng)中如果使用步進電機,需要在電機側(cè)接上一個編碼器如圖2所示。如果是伺服電機,由于伺服電機自身帶編碼器,只需將伺服電機編碼器的線接到PLC的高速計數(shù)器上如圖3所示。
圖2 閉環(huán)系統(tǒng)步進電機應(yīng)用示意圖
PLC的運動控制一般采用梯形加減速如圖4所示,運動軸為PLC的其中一路高速脈沖輸出。從基底速度開始,在設(shè)定的加速時間加速到設(shè)定的脈沖輸出最高頻率,發(fā)送固定頻率使電機作勻速運動,最后在設(shè)定的減速時間里減速到基底速度停止。
圖4 梯形加減速示意圖
整個過程的總脈沖數(shù)、最高頻率、基底速度、加減速時間這些參數(shù)由用戶設(shè)定,PLC在工作前需要對這段路程進行規(guī)劃。
梯形加減速設(shè)定參數(shù):
路程總脈沖數(shù):N。
加速時間:Tacc,單位 ms(毫秒)。
減速時間:Tdec,單位 ms(毫秒)。
基底速度頻率:Fbias,單位Hz。基底速度是指電機可以以一定的較小頻率直接開始起步運動?;姿俣纫部梢詾?,即從速度頻率0開始加速。
脈沖輸出最高頻率:Fmax,單位Hz。
加減速頻率階躍時間片:Tn,單位ms(毫秒)。在加減速時,每隔Tn時間,產(chǎn)生速度階躍變化。此參數(shù)為PLC內(nèi)部參數(shù),根據(jù)設(shè)計者的經(jīng)驗使得加減速過程平滑。
電機延時時間:△T,單位ms(毫秒)。步進電機或伺服電機在收到PLC脈沖后至電機開始轉(zhuǎn)動的微小延時。
加速段脈沖總數(shù)計算方法:
加速分段數(shù):nacc=Tacc/Tn
加速每段頻率遞增數(shù):Naccinc=(Fmax-Fbias)/(Tacc/Tn)
加速第一段頻率脈沖個數(shù):Nacc1= Fbias*(Tn/1000)
加速第二段頻率脈沖個數(shù):Nacc2=(Fbias+Naccinc*(2-1))*(Tn/1000)
加速第三段頻率脈沖個數(shù):Nacc3=(Fbias+Naccinc*(3-1))*(Tn/1000)
……
加速第 nacc段頻率脈沖個數(shù):Naccn=(Fbias+Naccinc*(nacc-1))*(Tn/1000)
加速段脈沖總數(shù):Nacc=Nacc1+Nacc2+Nacc3+…+Naccn
減速段脈沖總數(shù)計算方法:
減速分段數(shù):ndec=Tdec/Tn
減速每段頻率遞增數(shù):Ndecinc=(Fmax-Fbias)/(Tdec/Tn)
減速第一段頻率脈沖個數(shù):Ndec1=(Fbias+Ndecinc*(ndec-1))*(Tn/1000)
減速第二段頻率脈沖個數(shù):Ndec2=(Fbias+Ndecinc*(ndec-2))*(Tn/1000)
減速第三段頻率脈沖個數(shù):Ndec3=(Fbias+Ndecinc*(ndec-3))*(Tn/1000)
……
減速第 n 段頻率脈沖個數(shù):Ndecn=(Fbias+Ndecinc*(ndec-ndec))*(Tn/1000)
減速段脈沖總數(shù):Ndec=Ndec1+Ndec2+Ndec3+…+Ndecn
勻速段脈沖總數(shù)計算方法:
Nv=N-Nacc-Ndec
為了按時間片采樣反饋高速計數(shù)器脈沖計數(shù)個數(shù),需要將勻速段也進行Tn時間片分割,可計算勻速段每個時間片Tn發(fā)出的脈沖個數(shù)為:
Fmax*(Tn/1000)
通過上述的計算方法,得到梯形加減速全過程每個時間片Tn輸出的脈沖頻率和脈沖個數(shù)。同時通過PLC的高速計數(shù)器,對每個時間片Tn的電機轉(zhuǎn)動角度進行計數(shù),把反饋的脈沖數(shù)和PLC發(fā)出的脈沖數(shù)進行對比。當沒有干擾或者干擾較小能被伺服濾波去除時,在同一個時間片Tn里高速計數(shù)器反饋的脈沖數(shù)和PLC發(fā)出的脈沖數(shù)是相等的,這時補償算法不需要進行任何干預。當發(fā)生較大的干擾時,在一個時間片里高速計數(shù)器讀到的脈沖數(shù)相比發(fā)出的脈沖數(shù)增多或者減少。這時PLC的補償啟動,在下一個時間片周期里將減少或增加發(fā)出的脈沖數(shù),始終保持PLC發(fā)出的脈沖數(shù)和伺服相對應(yīng)的轉(zhuǎn)動角度一致。
具體計算如下:
上述按照Tn劃分的時間片,將加速、勻速、減速過程統(tǒng)一記為T1、T2、……Tm……時刻。每個時間片PLC發(fā)出的脈沖個數(shù)統(tǒng)一記為N1、N2、……Nm……。由于步進電機或伺服電機在收到PLC脈沖后至電機開始轉(zhuǎn)動有一個微小的延時△T。PLC在發(fā)出脈沖后的△T延時后開始采樣高速計數(shù)器值。每個時間片高速計數(shù)器反饋的脈沖數(shù)為N1hsc、N2hsc、……Nmhsc……。
得到某一個時間片的干擾脈沖個數(shù)為Nmif=Nmhsc-Nm
當 Nmif> 0,在 Tm+1時刻,將減少 PLC 發(fā)出的脈沖數(shù)Nmif。
當 Nmif< 0,在 Tm+1時刻,將增加 PLC 發(fā)出的脈沖數(shù)Nmif。
這樣,通過補償?shù)窒擞捎诟蓴_引起的脈沖數(shù)變化,使得運動定位控制更加精確。
本設(shè)計使得在一部分工業(yè)現(xiàn)場惡劣的環(huán)境中或者偶爾突發(fā)的干擾環(huán)境中,避免了由于電磁干擾導致運動控制定位不準確的情況發(fā)生。通過增加反饋算法,大大提高了運動控制型PLC的可靠性,擴大了PLC的使用范圍。
本設(shè)計PLC運動控制指令可以應(yīng)用于小型機械加工,包裝,激光水刀切割,自動焊接等需要定位運動的場合,具有良好的社會經(jīng)濟效益。