干貨分享 S7-200 SMART 運(yùn)動控制(三)
前兩期我們分享了運(yùn)控制的組態(tài)向?qū)?,今天我們主要分享關(guān)于步進(jìn)電機(jī)及向?qū)傻母髦噶?子程序如何使用
一、步進(jìn)電機(jī)的概念:
步進(jìn)電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率和脈沖數(shù),而不受負(fù)載變化的影響,當(dāng)步進(jìn)驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動一個固定的角度,稱為"步距角",它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的??梢酝ㄟ^控制脈沖個數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動的速度和加速度,從而達(dá)到調(diào)速的目的。
二、基本工作原理
通常電機(jī)的轉(zhuǎn)子為永磁體,當(dāng)電流流過定子繞組時,定子繞組產(chǎn)生一矢量磁場。該磁場會帶動轉(zhuǎn)子旋轉(zhuǎn)一角度,使得轉(zhuǎn)子的一對磁場方向與定子的磁場方向一致。當(dāng)定子的矢量磁場旋轉(zhuǎn)一個角度。轉(zhuǎn)子也隨著該磁場轉(zhuǎn)一個角度。每輸入一個電脈沖,電動機(jī)轉(zhuǎn)動一個角度前進(jìn)一步。它輸出的角位移與輸入的脈沖數(shù)成正比、轉(zhuǎn)速與脈沖頻率成正比。改變繞組通電的順序,電機(jī)就會反轉(zhuǎn)。所以可用控制脈沖數(shù)量、頻率及電動機(jī)各相繞組的通電順序來控制步進(jìn)電機(jī)的轉(zhuǎn)動。
三、步進(jìn)電機(jī)的相關(guān)參數(shù)及驅(qū)動器介紹
步距角:每輸入一個脈沖信號時,電機(jī)轉(zhuǎn)子轉(zhuǎn)過的角度稱為步距角。步距角的大小可以影響電機(jī)的運(yùn)行精度
細(xì)分:指電機(jī)運(yùn)行時的實(shí)際步距角是基本步距角的幾分之一
脈沖當(dāng)量:當(dāng)控制器輸出一個定位控制脈沖時所產(chǎn)生的定位控制移動的位移值
電子齒輪比:對控制器輸出的脈沖數(shù)進(jìn)行放大或縮小,其作用可以調(diào)節(jié)脈沖當(dāng)量,提高加工精度及電機(jī)的轉(zhuǎn)速
四、步進(jìn)驅(qū)動器與PLC的接線
五、指令/子程序的應(yīng)用
1、初始化指令
啟用和初始化運(yùn)動軸,自動命令運(yùn)動軸每次 CPU 更改為 RUN 模式時加載組態(tài)/包絡(luò)表。
MOD_EN 參數(shù)必須開啟,才能啟用其它運(yùn)動控制子例程向運(yùn)動軸發(fā)送命令。如果 MOD_EN 參數(shù)關(guān)閉,運(yùn)動軸會中止所有正在進(jìn)行的命令;
Done 參數(shù)會在運(yùn)動軸完成任何一個子例程時開啟;
Error 參數(shù)存儲該子程序運(yùn)行時的錯誤代碼;
C_Pos 參數(shù)表示運(yùn)動軸的當(dāng)前位置。根據(jù)測量單位,該值是脈沖數(shù) (DINT) 或工程單位數(shù) (REAL);
C_Speed 參數(shù)提供運(yùn)動軸的當(dāng)前速度。
如果針對脈沖組態(tài)運(yùn)動軸的測量系統(tǒng),C_Speed 是一個 DINT 數(shù)值,其中包含脈沖數(shù)/每秒。如果您針對工程單位組態(tài)測量系統(tǒng),C_Speed 是一個 REAL 數(shù)值,其中包含選擇的工程單位數(shù)/每秒 (REAL)。
C_Dir 參數(shù)表示電機(jī)的當(dāng)前方向:信號狀態(tài) 0 = 正向;信號狀態(tài) 1 = 反向;
2、手動運(yùn)行指令
將運(yùn)動軸置為手動模式。這允許電機(jī)按不同的速度運(yùn)行,或沿正向或負(fù)向慢進(jìn)。
RUN 參數(shù)會命令運(yùn)動軸加速至的速度(Speed 參數(shù))和方向(Dir 參數(shù))。 我們可以在電機(jī)運(yùn)行時更改 Speed 參數(shù),但 Dir 參數(shù)必須保持為常數(shù)。禁用 RUN 參數(shù)會命令運(yùn)動軸減速,直至電機(jī)停止;
JOG_P(點(diǎn)動正向旋轉(zhuǎn))或 JOG_N(點(diǎn)動反向旋轉(zhuǎn))參數(shù)會命令運(yùn)動軸正向或反向點(diǎn)動。
如果 JOG_P 或 JOG_N 參數(shù)保持啟用的時間短于 0.5秒,則運(yùn)動軸將通過脈沖指示移動 JOG_INCREMENT 中的距離。
如果 JOG_P 或 JOG_N 參數(shù)保持啟用的時間為 0.5秒或更長,則運(yùn)動軸將開始加速至的 JOG_SPEED;
Speed 參數(shù)決定啟用 RUN 時的速度。如果您針對脈沖組態(tài)運(yùn)動軸的測量系統(tǒng),則速度為 DINT 值(脈沖數(shù)/每秒)。如果您針對工程單位組態(tài)運(yùn)動軸的測量系統(tǒng),則速度為 REAL 值(單位數(shù)/每秒)。
3、運(yùn)行指令
命令運(yùn)動軸轉(zhuǎn)到所需位置START 參數(shù)開啟會向運(yùn)動軸發(fā)出 GOTO 命令。對于在 START 參數(shù)開啟且運(yùn)動軸當(dāng)前不繁忙時執(zhí)行的每次掃描,本子例向運(yùn)動軸發(fā)送一個 GOTO 命令。為了確保僅發(fā)送了一個 GOTO 命令,務(wù)必使用邊沿檢測信號用脈沖方式開啟 START 參數(shù);
Pos 參數(shù)包含一個數(shù)值,指示要移動的位置(移動)或要移動的距離(相對移動)。根據(jù)所選的測量單位,該值是脈沖數(shù) (DINT) 或工程單位數(shù) (REAL);
Speed 參數(shù)確定該移動的速度。根據(jù)所選的測量單位,該值是脈沖數(shù)/每秒 (DINT) 或工程單位數(shù)/每秒 (REAL);
Mode 參數(shù)選擇移動的類型:
0:位置(此模式一定要有參考點(diǎn))
1:相對位置
2:單速連續(xù)正向旋轉(zhuǎn)(2/3模式只需要速度,和POS位置無關(guān))
3:單速連續(xù)反向旋轉(zhuǎn)
Abort 參數(shù)啟動會命令運(yùn)動軸停止當(dāng)前包絡(luò)并減速,直至電機(jī)停止。
4、運(yùn)行曲線指令
命令運(yùn)動軸按照存儲在組態(tài)/包絡(luò)表的特定包絡(luò)執(zhí)行運(yùn)動操作。
START 參數(shù)開啟將向運(yùn)動軸發(fā)出 RUN 命令。對于在 START 參數(shù)開啟且運(yùn)動軸當(dāng)前不繁忙時執(zhí)行的每次掃描,該子例程向運(yùn)動軸發(fā)送一個 RUN 命令。為了確保僅發(fā)送了一個命令,使用邊沿檢測信號用脈沖方式開啟 START 參數(shù);
Profile 參數(shù)包含運(yùn)動包絡(luò)的編號或符號名稱。“Profile”輸入必須介于 0 - 31。否則子例程將返回錯誤;
Abort 參數(shù)會命令運(yùn)動軸停止當(dāng)前包絡(luò)并減速,直至電機(jī)停止;
C_Profile 參數(shù)包含運(yùn)動軸當(dāng)前執(zhí)行的包絡(luò);
C_Step 參數(shù)包含目前正在執(zhí)行的包絡(luò)步。
5、回原點(diǎn)指令
EN 位開啟會啟用此子例程。確保 EN 位保持開啟,直至 Done 位指示子例程執(zhí)行已經(jīng)完成;
START 參數(shù)開啟將向運(yùn)動軸發(fā)出 RSEEK 命令。對于在 START 參數(shù)開啟且運(yùn)動軸當(dāng)前不繁忙時執(zhí)行的每次掃描,該子例程向運(yùn)動軸發(fā)送一個 RSEEK 命令。
為了確保僅發(fā)送了一個命令,使用邊沿檢測信號用脈沖方式開啟 START 參數(shù)。
6、加載參考點(diǎn)偏移量指令
建立一個與參考點(diǎn)處于不同位置的新的零位置。
開啟 START 參數(shù)將向運(yùn)動軸發(fā)出 LDOFF 命令。對于在 START 參數(shù)開啟且運(yùn)動軸當(dāng)前不繁忙時執(zhí)行的每次掃描,該子例程向運(yùn)動軸發(fā)送一個 LDOFF 命令。為了確保僅發(fā)送了一個命令,使用邊沿檢測信號用脈沖方式開啟 START 參數(shù)。
注意:
在執(zhí)行該子例程之前,我們必須首先確定參考點(diǎn)的位置;并且必須將機(jī)器移至起始位置。
當(dāng)子例程發(fā)送 LDOFF 命令時,運(yùn)動軸計算起始位置(當(dāng)前位置)與參考點(diǎn)位置之間的偏移量。運(yùn)動軸然后將算出的偏移量存儲到 RP_OFFSET 參數(shù)并將當(dāng)前位置設(shè)為 0。這將起始位置建立為零位置。
如果電機(jī)失去對位置的追蹤(例如斷電或手動更換電機(jī)的位置),可以使用 AXISx_RSEEK 子例程自動重新建立零位置。
7、加載位置指令
將運(yùn)動軸中的當(dāng)前位置值更改為新值。我們可以為任何移動命令建立一個新的零位置。
START 參數(shù)開啟將向運(yùn)動軸發(fā)出 LDPOS 命令。對于在 START 參數(shù)開啟且運(yùn)動軸當(dāng)前不繁忙時執(zhí)行的每次掃描,該子例程向運(yùn)動軸發(fā)送一個 LDPOS 命令。
為了確保僅發(fā)送了一個命令,使用邊沿檢測信號用脈沖方式開啟 START 參數(shù);
New_Pos 參數(shù)提供新值,用于取代運(yùn)動軸報告和用于移動的當(dāng)前位置值。根據(jù)測量單位,該值是脈沖數(shù) (DINT) 或工程單位數(shù) (REAL)
8、使能/禁止DIS輸出
EN 位打開以啟用子例程時,DIS_ON 參數(shù)控制運(yùn)動軸的 DIS 輸出。