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