本文來源於:施家邦 工控邦
本文通過LXM28多圈(quān)電機位置溢出補償功能(néng)塊在M262和LMC078兩個伺服控製係統中不同的編程應用,展示了施耐德ESME和(hé)SoMachine全(quán)集成自動化編程軟件平(píng)台的高性能,這兩款軟件在完美的支持了OEM PLC和Motion等設備的同時,還是一款能夠(gòu)提供最佳解決方案的軟件,可用於開發、配置和調試(shì)機器控製器。
01.LXM28多(duō)圈電機的優勢
LXM28伺(sì)服電機的編碼器按圈數(shù)類(lèi)型(xíng)分為單圈和多圈兩種,其中,28S多圈電機(jī)通(tōng)過電池可以在伺服斷電再上電後,保持住斷電前的位置,在一些不(bú)方便安(ān)裝原(yuán)點開(kāi)關的複雜的機械設(shè)備上,使用多圈伺服電機可以避免必須通過(guò)原點開關進行尋原點。另外,在一些因為特殊(shū)機(jī)械結構而導致尋一次原點需要很(hěn)長時間的應用場合,多圈電機因為不用上電每次都尋原在從而提高了(le)效率。
02.LXM28多圈位置溢出(chū)的分(fèn)析
多(duō)圈伺服電(diàn)機隻向一個方向旋轉時,因為伺服位(wèi)置的值是32位(wèi)的,範圍為-2,147,483,648到2,147,483,647,電機旋轉的圈數經過一定時間的累積,伺服電機的編碼器位置值就會發生溢出。
03.多圈伺服電機(jī)位置發生溢出後再次上電電機位置不能保持的原(yuán)因
LXM28S多圈伺服電機位置發生溢出後,PLC的(de)程序會自動(dòng)處理這種溢出,這樣,在不斷電源的(de)情況下,PLC內部(bù)的浮點數形(xíng)式的位(wèi)置值在伺服電機的編碼器位置值(zhí)發(fā)生溢出時也一直是正確的,但是如果將設備停機後斷(duàn)電再次上電,就有可能發生斷電前的伺服(fú)電機的位置值和上電後位置值(zhí)對應不起來的情況。
也就(jiù)是說再次上電電(diàn)機位置不(bú)能(néng)保持的原因是因為PLC斷(duàn)電再重新上電後沒有對LXM28S的軸位置的溢出進(jìn)行補償導致(zhì)的。
當電機往(wǎng)一個方向轉動的圈數足夠大時(shí),編碼器反饋的位置值將超過 DINT 的限製。溢出是發生在(zài)位置 2,147,483,647跳變到(dào)-2,147,483,648(正向),或(huò)者-2,147,483,648到2,147,483,647(反向)。
對於模數軸來說,伺服(fú)的位(wèi)置值有一個變化周期 ,變化範圍:0~模值(zhí)設定值。
例如:LXM28S的(de)模值設置(zhì)為120,軸配置的齒輪比後對應的每圈位置的是340用戶單位,齒輪箱的減速比分子(zǐ)GearIn為10,分母(mǔ)GearOut為1 ,如圖1所(suǒ)示。
圖 1 28S軸的配置
在伺服電(diàn)機的位置溢(yì)出一次後(hòu),斷電前的軸位(wèi)置(軸名稱.lrPosition)為43.6,如果不(bú)做(zuò)補償,上電後的位(wèi)置將在83.6左右,這樣,PLC上電後的位置值和斷電前的位置產生偏(piān)差,上電後PLC的浮點數(shù)的位置值和機械位置直接發生了移動,如果(guǒ)不做修正,機器(qì)的生產將(jiāng)因此而中斷。
04.LXM28S多圈位置溢出時補償值公式
我們需(xū)要根據多圈編碼(mǎ)器的溢出次數(shù)和軸機械相關的參數(shù)設置,包括減速機的減速比、電(diàn)機每圈旋轉時對應的(de)用戶單位(wèi),將補償(cháng)值計算出(chū)來,在伺服斷電再上(shàng)電後,從而實現在伺服電機沒有移動的情況下,斷(duàn)電前後PLC的位置相同(tóng)。
例:電機每圈旋轉時對應的用戶單位PositionResolution等於340,減速(sù)機的GearIn等於 1,減速機的GearOut等(děng)於10,則LXM28S伺服電機每圈走過的距離是340.0*10/1,而28伺服電機每圈(quān)的脈(mò)衝數在PLC中固定為131072,伺服位(wèi)置變動範圍是(shì):-2,147,483,648到2,147,483,647,即-16384圈*131072~16384圈*131072-1,也(yě)就是每次發生一(yī)次溢出需要補償32768圈對應(yīng)的用(yòng)戶單位,考慮溢出次數,我們得到補償值的計算公(gōng)式(shì)如下:
其(qí)中(zhōng):
GearIn 和GearOut:是齒輪(lún)箱(xiāng)的減速比的分(fèn)子和分母;
PositionResolution:為伺服電機旋轉一圈對應位置值 ;
ModuloValue:模值;
MOD:將(jiāng)補償值轉換為模數軸位(wèi)置值的示意符號。
05.多圈位置移動溢出位置補償的三種(zhǒng)方法
通過選擇固定的減速比和模數值解決溢出問題
由(yóu)補償值的(de)計算(suàn)公式可(kě)知,在一些特殊的條件下,可以不需要做補償,例如,恰當的選擇減速比(bǐ),即減速(sù)機(jī)選型時,將減速比固定為2的n 次方,即4,8,16..,這樣32768除減速比就可以除盡,同時選擇合適的模數值,使每圈對應位置(zhì)工程(chéng)量PositionResolution是模值ModuloValued 整數倍,例如將每圈對應位置(zhì)工程量和模數值都設為360,這(zhè)樣補償值就始終為零。
這種方法可靠性最好,不需要在PLC中對溢出編寫程序進(jìn)行修正(zhèng),但是在實(shí)際工程項目中選擇減速箱的減速比(bǐ)為2的n次方往往因為機械速度、解決方案替換等的(de)限製(zhì)而變的不可(kě)行,模數值的選擇如果加上限製,在設計凸輪曲線時也會有很多不便之處。
通過驅動器的內部功能進行補償
通過伺服驅(qū)動器的內部功能,功能類似(sì)LXM32係列的Modulo功能,是將(jiāng)伺服(fú)本身32位變動範圍的(de)位置值生成一個新的坐標係和新的位置值),使得新的回授(shòu)位(wèi)置不會產生溢出,而是保持一個範圍內的數據變化。Modulo軸的(de)工作示意圖如圖2所示。當設置Modulo的設置值後(hòu),驅動(dòng)器(qì)的位置變動範圍將變成0~3600.
圖2 Modulo參(cān)數功能示意圖
伺(sì)服位置值變動範圍修改為模數(shù)值乘以減(jiǎn)速(sù)比的整數(shù)倍,每圈(quān)對應的工程量單位(wèi),一(yī)般也采用(yòng)固定值360,這樣在程(chéng)序中也不需要做補償,但是目前LXM28不支持此功能。
通過功能塊在PLC內部進行補償
如果機械不允(yǔn)許(xǔ)發生變化,或者根(gēn)據工藝的變化需要使用不同的模數值,這時,可以通過創建功(gōng)能塊(kuài)並編寫程序來(lái)完(wán)成位置溢出的補償。
06.M262PLC係統中的LXM28S多圈位置溢出功能塊(kuài)
在(zài)M262伺服控製係統中,采用(yòng)的是第三種位置補(bǔ)償(cháng)的方法,即:通過創建新(xīn)的FB功能塊在PLC內部(bù)進行補(bǔ)償的方式。
(1)M262伺服控製係統中的工作過程
SERCOS通信工作正常後,根據配置的軸(zhóu)的機械參數(減速比、每圈對應的用戶單位等等(děng)機械(xiè)參數),PLC會把讀取的伺服電機編碼器的位置值翻譯成以浮點數形式的軸(zhóu)的位置值。
無溢出時,FB功能塊的補償值為0。
有溢出時,FB功能塊計算出補償值,使設備斷電再上電後的PLC內部位置值與外部機械的位置值保持正確的對應關係。
(2)創建FB多圈位置溢出補償(cháng)功能塊
打開EcoStruxure軟件,單擊【應用程序樹】→【Application】,選擇程序組織單元,如圖3所示。
圖 3 創建程序組織單元
創建名稱為【overflow_compensate】的FB多(duō)圈位置溢出補償功能塊,ST編程語言,如(rú)圖4所示(shì)。
圖 4 FB功能塊的創建
上一(yī)篇(piān):LXM28多圈(quān)位置溢出功能(néng)塊的編程與(yǔ)現場(chǎng)調試(二)