本(běn)文來(lái)源於:施家邦 工控邦
3.功能(néng)塊的接口變量如圖所示
創建的【overflow_compensate】功能塊的接口變量,如圖5所示。
圖5 功能塊的接口變量
4.LXM28S多圈位置溢出功能塊的ST程(chéng)序編寫
雙擊打開【overflow_compensate】的FB功能塊(kuài)編寫程序,功能塊的(de)編程思路就是程序不僅記錄正常運行的每次溢出,再利用一(yī)個掉電保存的persistent變量記錄位置溢出的次數,在上電時判斷斷電後電機是否發生移動並導致(zhì)了新(xīn)的溢出,將兩者的變化量加到一起得到總的溢出次(cì)數,並按總的溢出次數(shù)做對應補(bǔ)償,然後給伺服軸加(jiā)上使能後,判斷軸處於停止位置後(hòu)再(zài)使用MC_Setpostion功能塊完(wán)成位置補(bǔ)償。LXM28S多(duō)圈位置溢出功能塊的ST程序和注釋(shì)如圖6所示。
圖6 LXM28S多圈位置溢出功能塊的ST程序和注釋
溢出圈數的補償值有一定的周期性,讀者(zhě)也(yě)可以把每圈的補償計算出來,在軸配置(zhì)參數和模數(shù)值(zhí)不(bú)變的前提下,使用Case語(yǔ)句來補償也是可以的。
功(gōng)能塊編寫完成後要進行編譯和糾錯,然後在程序中調用即可。
5.功(gōng)能塊(kuài)的管腳定義
▼ 功能塊的輸入管腳如表1所示。
表1 功能塊(kuài)的輸(shū)入管(guǎn)腳
管腳名稱 |
管腳(jiǎo)變量 類型 |
說(shuō)明 |
i_ifAxis |
DAL.IF_DeviceAccess |
28S的伺服軸 |
i_diDrivePosition |
DINT |
28S反饋給M262的位置 |
i_iP5_82 |
INT |
多圈編碼器的圈數P5-82參數值(zhí) |
i_xP5_82_OK |
BOOL |
讀取圈數有效 |
i_diGearIn |
UDINT |
設(shè)置成軸配置的GearIn參數 |
i_diGearOut |
UDINT |
設置成軸配(pèi)置的GearOut參數 |
i_lrPositionResolution |
LREAL |
設置成軸配置的PositionResolution參數 |
i_LrModulo |
LREAL |
設置成(chéng)模數值 |
i_xDirection |
BOOL |
此處必須設成true,讀者必須確認工作方(fāng)向是位置遞增方向 |
i_xPowerEnable |
BOOL |
伺服使(shǐ)能輸(shū)入信號(hào),使能(néng)後自動完成位置補償 |
i_xHomeDoneFlag |
BOOL |
使用P8-44鍵盤回原點,完成後將此標誌位為真 |
▼ 功能塊的輸入輸出管腳,如表2所(suǒ)示。
表2 功能塊的輸入輸出管腳
管腳名(míng)稱 |
管腳變量 類型 |
說明 |
IO_diLastPostion_Persist |
DINT |
用於(yú)記(jì)憶斷電前的28S反饋位置,斷電保持變量 |
IO_iLastP5_82_Persist |
INT |
用於記憶斷電前的圈數,斷電(diàn)保持(chí)變量 |
IO_diOverflowTurn_Persist |
INT |
用於記憶溢出次數,斷電保持變量 |
▼ 功能塊的(de)輸出管腳,如表3所(suǒ)示。
表(biǎo)3 功能塊的輸出管腳
管腳名(míng)稱 |
管腳變量(liàng) 類型 |
說明 |
q_xSercosCommunicationState_OK: |
BOOL |
Sercos狀態為4時為(wéi)真(zhēn),否則為假 |
q_diPowerOff_EnocoderCounter: |
UDINT |
斷電時的編碼器圈數(shù) |
q_diPowerUp_EnocoderCounter: |
UDINT |
上電時的編碼器圈數 |
q_xPowerEnabled: |
BOOL |
28伺服(fú)的使能參數 |
q_xRestored: |
BOOL |
位置補償完成標誌(zhì)位 |
6.測試平台(tái)軟件版本
1. LMCM262和28S的固件版本
在實驗室中ESME軟件采用的版本是2.01,28S的固件測試為版本2.78.3。
2. SoMove調試軟件和DTM版(bǎn)本
使用SoMove軟件2.8.4+V1.6.12版本的DTM文件進行了【overflow_compensate】的FB功能(néng)塊的(de)調試(shì)。
3. Lexiumstudio 調試軟件版本
使(shǐ)用lexium studio V1.15.0,主要(yào)用於檢查伺服驅(qū)動器和電機。
7.調試和參數設置
(1) TM262在線做初始值複位或(huò)做Reset Persistent Variables時,需要對所有采用(yòng)功能(néng)塊的軸重新(xīn)尋原點,或者使用其它方式複位溢出圈數值等變量(liàng)。
(2) 28S的位置(zhì)、速度、同步運(yùn)動時,注意速度給定值不要超過(guò)P1-55的最大速度值,筆者對此進(jìn)行了極限實(shí)驗,設置速(sù)度給定值超過了P1-55的最大速度值(zhí),實驗結果是28S停機時會失控,斷開伺服使能才能(néng)停止電機,同時,功能塊存儲的(de)位置也會失效。
(3) 在張江研發實驗室,我對(duì)不同固件版本也進(jìn)行了相對實驗,其中,固件版本2.78.3的28S,多圈編碼器設(shè)置原點操作流程與之前的版本不同,需要將參數P8-44設3然後再(zài)設2,而之前(qián)的版本僅需把P8-44設2即可。
(4) 建(jiàn)議讀者在程序中采用非周期讀取參數功能塊來讀取P5-82的參(cān)數值,此參數雖然並不(bú)參與控製,但可以(yǐ)直觀(guān)的看出是否錯誤(wù)的設置(zhì)了P5-79=1,因為這個參數可以讓多圈電機按單圈電機進行工作(zuò),讀者在(zài)使用我創建的(de)這(zhè)個(gè)【overflow_compensate】的FB功能塊時是不能(néng)設置(zhì)P5-79=1的,否則會導致驅動器的位置不能保(bǎo)存,應予以重視。
往期回顧