本文來源於:施家邦 工(gōng)控邦
3.功能塊的接口變量如圖所示
創建的【overflow_compensate】功能(néng)塊的接口變量,如(rú)圖5所示。

圖5 功能塊的接口變量
4.LXM28S多(duō)圈位置溢出功能塊的ST程序編(biān)寫
雙(shuāng)擊打開【overflow_compensate】的FB功能塊編(biān)寫(xiě)程序,功能塊的編程思路就是程序不僅記錄正(zhèng)常運(yùn)行的每次溢出,再利用一個(gè)掉(diào)電保存的(de)persistent變量記錄位置溢(yì)出的次數,在上電時判斷斷電後電機是否發生移動並導致了新的溢出,將兩者的變化量加到一起得(dé)到總的溢出次數,並按總的溢出次(cì)數做對應補償(cháng),然(rán)後給伺服軸加上使能後,判(pàn)斷軸處於停止位置後再使用MC_Setpostion功能塊完成位置補償(cháng)。LXM28S多圈位置溢出功能(néng)塊(kuài)的ST程序和注釋如圖(tú)6所示。



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