本文來(lái)源於:施家(jiā)邦(bāng) 工控邦
本文通過(guò)LXM28多(duō)圈(quān)電(diàn)機位置溢(yì)出補償功能塊(kuài)在M262和LMC078兩個伺服控製係統中不同的編(biān)程應用,展示了施耐德(dé)ESME和SoMachine全集成自動(dòng)化編(biān)程(chéng)軟件平台的高性能,這兩款軟件在完美的支持了OEM PLC和Motion等設備的同(tóng)時,還是一款能夠提供最(zuì)佳(jiā)解決方(fāng)案的軟件,可用於開(kāi)發、配置和調(diào)試機器控製器。
01.LXM28多圈電機的優勢
LXM28伺服電機的編(biān)碼器按(àn)圈數類型分為單圈和(hé)多圈(quān)兩(liǎng)種(zhǒng),其中,28S多圈電機通過電池可以在伺服斷電再上電後(hòu),保持住斷電(diàn)前的位置,在一些不方便安裝原點(diǎn)開關的複雜的機械設備上,使用多圈伺服電機(jī)可以避免必須通過原點開關進行尋原點。另外,在一些因為特殊機(jī)械結構(gòu)而導致尋一次原點需要很(hěn)長時間的應用場合,多圈電機因為不用上電每次都尋原在從而提高了效率。
02.LXM28多(duō)圈位置溢出的分析
多圈伺服電機隻向(xiàng)一個(gè)方向旋轉時,因為伺服(fú)位置(zhì)的值是32位的,範圍為-2,147,483,648到2,147,483,647,電機旋轉的圈數經(jīng)過一定時間的(de)累(lèi)積,伺服(fú)電機的編碼器位置值就會發生溢出。
03.多圈伺服電機位置發生溢出後再次(cì)上電電機位(wèi)置不能保持的原因
LXM28S多圈伺(sì)服電機位置(zhì)發生溢出後,PLC的程序會自動處理(lǐ)這種溢出,這(zhè)樣,在不斷電源的情況下,PLC內部的浮點(diǎn)數形式的位置值在(zài)伺服電機的編碼器位置值(zhí)發生溢出時也一直是正確的,但是如果將設備停機後斷電再次上電(diàn),就有可能發生斷電前的(de)伺服電機的位置值和(hé)上電後位置值對應不起來的情況。
也就是說再次上電電機位置不能保持的(de)原因是因為PLC斷(duàn)電再重新上電後沒有對LXM28S的軸位置的溢出進行補償導致的。
當電機往一個方向轉動的圈數足夠大時,編碼器反饋的位置值將超過 DINT 的(de)限製。溢出是發生在位(wèi)置(zhì) 2,147,483,647跳變到-2,147,483,648(正向),或者-2,147,483,648到2,147,483,647(反向)。
對於模數軸來說,伺服的(de)位(wèi)置值有一個變化周期 ,變化範圍:0~模值設定值。
例如:LXM28S的模值設置為120,軸配置的齒輪比後對(duì)應的每(měi)圈位置的是340用戶單位,齒輪箱的減速比(bǐ)分子GearIn為10,分母GearOut為1 ,如圖(tú)1所(suǒ)示。


圖 1 28S軸的配置
在伺服電機的位(wèi)置溢出一次後,斷電前(qián)的(de)軸位置(軸名稱.lrPosition)為43.6,如果(guǒ)不做(zuò)補償,上電後的位置將在83.6左右,這(zhè)樣,PLC上電後(hòu)的位置值和斷電前的位置產生偏差,上電後PLC的浮點數的位置值和機械位置直接發生(shēng)了移動,如果不做修(xiū)正,機器的生(shēng)產將因此而中斷。
04.LXM28S多圈位置溢出時補償(cháng)值(zhí)公(gōng)式
我(wǒ)們需要根據多圈編碼器(qì)的溢出次(cì)數和軸機械相關的參數設置,包(bāo)括減速機的減速比、電機每圈旋轉時對應的用戶單位,將補償值計算出來,在伺服斷電再上電後,從而實現(xiàn)在伺服電機沒有(yǒu)移動的情況下,斷電前後PLC的位置相同。
例:電機每圈旋轉(zhuǎn)時對應的(de)用戶單位PositionResolution等於(yú)340,減速機的(de)GearIn等於 1,減速機的GearOut等於10,則LXM28S伺服電機每圈走過的距離是340.0*10/1,而28伺服電機每(měi)圈的脈(mò)衝數在(zài)PLC中固定(dìng)為131072,伺(sì)服位置變動範圍是:-2,147,483,648到(dào)2,147,483,647,即-16384圈*131072~16384圈*131072-1,也(yě)就是每次發生一次溢出需要補償32768圈對應的用戶單位(wèi),考慮溢出(chū)次數,我們得到補償值的計算公式如下:

其中:
GearIn 和(hé)GearOut:是齒輪(lún)箱的減速比的(de)分子和(hé)分母;
PositionResolution:為伺服電機旋轉一圈對應位置值 ;
ModuloValue:模(mó)值;
MOD:將補償值轉換為模數軸位置值的示意符號。
05.多圈位置移動溢出位置補償的三種方法
通過選擇固定的減速比和模數值解決(jué)溢出(chū)問題(tí)
由補償值的計算公(gōng)式(shì)可知(zhī),在一些特殊的條件下,可以不需要(yào)做補償,例如,恰當的選擇減速比,即(jí)減速機選型時,將減速(sù)比固定為2的n 次方(fāng),即4,8,16..,這樣32768除減速比就(jiù)可以除盡,同時選擇合適的模數值(zhí),使每圈對應位置工程量PositionResolution是模值ModuloValued 整數倍,例如將每圈對(duì)應位置工程量和模數值都設(shè)為360,這樣補償值就始終為零。
這種方法可靠性(xìng)最好,不需要在PLC中對溢出編寫程序進行修正,但是在實(shí)際工程項目中(zhōng)選擇減速箱的減(jiǎn)速比為2的n次方往往(wǎng)因為(wéi)機械速度、解決方案替換(huàn)等的限製而變的不可行,模(mó)數值的選擇如果加上限製,在設計凸輪曲線時也會有很多不便之(zhī)處(chù)。
通過驅動器的內部功能進行補償
通過伺服驅動器的內部功能,功能類似LXM32係列的Modulo功能,是將伺(sì)服本身32位變動範圍的位置值生(shēng)成一個新的(de)坐標係和新的位置值),使(shǐ)得新的回授位置不會產生溢出,而(ér)是保持一個(gè)範圍內的數據變化。Modulo軸的工作示意圖如圖2所示。當設置Modulo的設置值後,驅動器(qì)的位置變動範圍將變成0~3600.

圖2 Modulo參數功能示意圖
伺服位置值變動範圍修改為模數值乘以減速比的整數倍,每圈對應(yīng)的工程量單(dān)位,一般也采用固定(dìng)值360,這樣在程序中也不需要(yào)做補償,但是目前LXM28不支持(chí)此功能。
通(tōng)過功能塊在PLC內部進行補償
如果機(jī)械不允許發生變化,或者根據工藝的變化需要使用不同的模數值,這時,可以通過創建功能(néng)塊並編寫(xiě)程(chéng)序來完成位置(zhì)溢出的補償。
06.M262PLC係統中的LXM28S多圈位置溢出功(gōng)能塊
在M262伺服控製係統(tǒng)中,采(cǎi)用的是(shì)第三種位置補償的方法,即:通過創建新的FB功能塊在PLC內部進行補償的方式(shì)。
(1)M262伺服(fú)控製係統中的工作過程
SERCOS通信工作正常後,根據配置的軸的機械參數(減速比、每圈對應的(de)用戶單位(wèi)等等機械參(cān)數),PLC會把(bǎ)讀取的伺服電機編碼器的位(wèi)置值翻譯成(chéng)以浮點數形式的軸的位置值(zhí)。
無溢(yì)出(chū)時,FB功能塊的補償值為0。
有溢出時,FB功能塊(kuài)計算出補償(cháng)值,使(shǐ)設(shè)備斷電再上電後的PLC內部位置值與外部機械的位置值保持正確的(de)對應(yīng)關係。
(2)創建FB多圈位置溢出補償功能(néng)塊
打開EcoStruxure軟件,單擊【應用程序樹(shù)】→【Application】,選擇程序組織單元,如圖3所示。

圖 3 創建程序組織單元
創建名稱為【overflow_compensate】的FB多圈位置溢出補償功能塊,ST編(biān)程語言,如圖4所示。

圖 4 FB功能塊的創建