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