杜鵬飛,應成,聶佳
(上海電器科學研究所(集團)有限公司,上海 200063)
可編程邏輯控制器(PLC)的運動控制功能包括高速脈沖輸出和高速計數器功能。高速脈沖輸出功能是通過發送一串高頻脈沖驅動伺服電機或者步進電機,最終達到機械位置定位的目的。高速計數器是對安裝在電機上的編碼器輸出的高頻脈沖進行計數,從而得知電機的轉動位置[1]。
PLC定位指令完成一次動作,高速脈沖輸出有加速、勻速、減速三個過程,一般通過梯形加減速或者S型加減速來實現[2]。本文通過梯形加減速來闡述,S型加減速原理相同。電機驅動器收到PLC發出的脈沖信號后,開始對應地進行加速、勻速、減速運轉,PLC輸出的一個脈沖對應電機一個微小的角度轉動[3]。PLC中的脈沖輸出指令是開環的如圖1所示。一般來說,伺服電機驅動器最高可接收1MHz左右的脈沖頻率。在伺服電機驅動器內部有一定的濾波措施,可抵抗一定的現場電磁干擾。但是當工業現場干擾比較強,伺服驅動器無法濾除這些干擾時,就會出現接收到比PLC實際發送的更多或者更少的脈沖數,導致系統定位不準確。

圖1 開環系統示意圖
本設計采用了一種補償的方法,通過高速計數器實時監測電機的轉動,計算得出電機實際的轉動位置。當電機驅動器受到外部電磁干擾時,PLC得到某個時間片內的高速計數器值與高速脈沖發送的脈沖數不相等,PLC在下個時間片增加或者減少發出的脈沖數來進行補償,從而達到精確控制位置的目的。
本設計闡述了一種梯形加減速的算法,按照時間片分割法對加、減速過程進行單位時間分割,脈沖頻率在每個時間片遞增或遞減。同時也通過時間片對電機實際運行的角度進行采樣,通過補償算法,從而達到精確定位的效果。
本設計通過高速計數器的反饋,實時補償由于電磁干擾引起的電機定位偏差。從而解決工業現場中運動控制在電磁干擾環境下定位不準的問題。這就使得小型PLC在惡劣干擾環境中的運動控制定位仍然精確,大大增強了市場競爭力。
本設計帶有干擾補償功能的高速脈沖輸出指令,具有編碼器輸入的接口,將脈沖反饋信號傳遞給PLC內部的高速計數器。在系統中如果使用步進電機,需要在電機側接上一個編碼器如圖2所示。如果是伺服電機,由于伺服電機自身帶編碼器,只需將伺服電機編碼器的線接到PLC的高速計數器上如圖3所示。

圖2 閉環系統步進電機應用示意圖
PLC的運動控制一般采用梯形加減速如圖4所示,運動軸為PLC的其中一路高速脈沖輸出。從基底速度開始,在設定的加速時間加速到設定的脈沖輸出最高頻率,發送固定頻率使電機作勻速運動,最后在設定的減速時間里減速到基底速度停止。

圖4 梯形加減速示意圖
整個過程的總脈沖數、最高頻率、基底速度、加減速時間這些參數由用戶設定,PLC在工作前需要對這段路程進行規劃。
梯形加減速設定參數:
路程總脈沖數:N。
加速時間:Tacc,單位 ms(毫秒)。
減速時間:Tdec,單位 ms(毫秒)。
基底速度頻率:Fbias,單位Hz。基底速度是指電機可以以一定的較小頻率直接開始起步運動。基底速度也可以為0,即從速度頻率0開始加速。
脈沖輸出最高頻率:Fmax,單位Hz。
加減速頻率階躍時間片:Tn,單位ms(毫秒)。在加減速時,每隔Tn時間,產生速度階躍變化。此參數為PLC內部參數,根據設計者的經驗使得加減速過程平滑。
電機延時時間:△T,單位ms(毫秒)。步進電機或伺服電機在收到PLC脈沖后至電機開始轉動的微小延時。
加速段脈沖總數計算方法:
加速分段數:nacc=Tacc/Tn
加速每段頻率遞增數:Naccinc=(Fmax-Fbias)/(Tacc/Tn)
加速第一段頻率脈沖個數:Nacc1= Fbias*(Tn/1000)
加速第二段頻率脈沖個數:Nacc2=(Fbias+Naccinc*(2-1))*(Tn/1000)
加速第三段頻率脈沖個數:Nacc3=(Fbias+Naccinc*(3-1))*(Tn/1000)
……
加速第 nacc段頻率脈沖個數:Naccn=(Fbias+Naccinc*(nacc-1))*(Tn/1000)
加速段脈沖總數:Nacc=Nacc1+Nacc2+Nacc3+…+Naccn
減速段脈沖總數計算方法:
減速分段數:ndec=Tdec/Tn
減速每段頻率遞增數:Ndecinc=(Fmax-Fbias)/(Tdec/Tn)
減速第一段頻率脈沖個數:Ndec1=(Fbias+Ndecinc*(ndec-1))*(Tn/1000)
減速第二段頻率脈沖個數:Ndec2=(Fbias+Ndecinc*(ndec-2))*(Tn/1000)
減速第三段頻率脈沖個數:Ndec3=(Fbias+Ndecinc*(ndec-3))*(Tn/1000)
……
減速第 n 段頻率脈沖個數:Ndecn=(Fbias+Ndecinc*(ndec-ndec))*(Tn/1000)
減速段脈沖總數:Ndec=Ndec1+Ndec2+Ndec3+…+Ndecn
勻速段脈沖總數計算方法:
Nv=N-Nacc-Ndec
為了按時間片采樣反饋高速計數器脈沖計數個數,需要將勻速段也進行Tn時間片分割,可計算勻速段每個時間片Tn發出的脈沖個數為:
Fmax*(Tn/1000)
通過上述的計算方法,得到梯形加減速全過程每個時間片Tn輸出的脈沖頻率和脈沖個數。同時通過PLC的高速計數器,對每個時間片Tn的電機轉動角度進行計數,把反饋的脈沖數和PLC發出的脈沖數進行對比。當沒有干擾或者干擾較小能被伺服濾波去除時,在同一個時間片Tn里高速計數器反饋的脈沖數和PLC發出的脈沖數是相等的,這時補償算法不需要進行任何干預。當發生較大的干擾時,在一個時間片里高速計數器讀到的脈沖數相比發出的脈沖數增多或者減少。這時PLC的補償啟動,在下一個時間片周期里將減少或增加發出的脈沖數,始終保持PLC發出的脈沖數和伺服相對應的轉動角度一致。
具體計算如下:
上述按照Tn劃分的時間片,將加速、勻速、減速過程統一記為T1、T2、……Tm……時刻。每個時間片PLC發出的脈沖個數統一記為N1、N2、……Nm……。由于步進電機或伺服電機在收到PLC脈沖后至電機開始轉動有一個微小的延時△T。PLC在發出脈沖后的△T延時后開始采樣高速計數器值。每個時間片高速計數器反饋的脈沖數為N1hsc、N2hsc、……Nmhsc……。
得到某一個時間片的干擾脈沖個數為Nmif=Nmhsc-Nm
當 Nmif> 0,在 Tm+1時刻,將減少 PLC 發出的脈沖數Nmif。
當 Nmif< 0,在 Tm+1時刻,將增加 PLC 發出的脈沖數Nmif。
這樣,通過補償抵消了由于干擾引起的脈沖數變化,使得運動定位控制更加精確。
本設計使得在一部分工業現場惡劣的環境中或者偶爾突發的干擾環境中,避免了由于電磁干擾導致運動控制定位不準確的情況發生。通過增加反饋算法,大大提高了運動控制型PLC的可靠性,擴大了PLC的使用范圍。
本設計PLC運動控制指令可以應用于小型機械加工,包裝,激光水刀切割,自動焊接等需要定位運動的場合,具有良好的社會經濟效益。