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