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


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

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

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

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

圖 4 FB功能塊的創建