時(shí)間:2022-11-11 15:51:51來(lái)源:深圳市正運(yùn)動(dòng)技術(shù)有限公司
今天,正運(yùn)動(dòng)小助手給大家分享一下運(yùn)動(dòng)控制器位置鎖存功能的應(yīng)用,以ZMC408CE運(yùn)動(dòng)控制器為例,介紹多種鎖存模式的用法,用戶可根據(jù)自身需求靈活選擇。
01、鎖存功能
鎖存功能的作用就是當(dāng)外部io信號(hào)觸發(fā)時(shí),立即響應(yīng),鎖定當(dāng)前的電機(jī)/編碼器的位置,通常用來(lái)鎖定流水線上碰到光纖傳感器時(shí)的產(chǎn)品位置、鎖定包裝材料上色標(biāo)的位置等。
一、鎖存功能的特點(diǎn):
1.支持編碼器軸、總線軸、脈沖軸和虛擬軸鎖存(不同型號(hào)的控制器支持鎖存的軸類(lèi)型不同);
2.支持單次鎖存和高速連續(xù)鎖存模式;
3.支持4通道同時(shí)鎖存,分別為R0、R1、R2、R3四個(gè)鎖存通道,最多支持8個(gè)鎖存口同時(shí)鎖存,鎖存響應(yīng)速度快;
4.帶編碼器反饋時(shí)鎖存MPOS的值,沒(méi)有帶編碼器反饋時(shí)鎖存DPOS的值。
不同型號(hào)的控制器支持的鎖存通道數(shù)不同,是否支持鎖存功能與鎖存對(duì)應(yīng)的輸入口參見(jiàn)硬件手冊(cè)。
本文例子基于ZMC408CE控制器測(cè)試,此型號(hào)支持4個(gè)鎖存通道,硬件接口為IN0-IN3。
通訊接口包含RS232、RS485、EtherNET以太網(wǎng)、CAN總線、EtherCAT總線和U盤(pán)接口,板載8路差分脈沖輸出接口(包含編碼器輸入),1個(gè)專用手輪接口,還提供了AD/DA模擬量接口。
ZMC408CE支持EtherCAT總線連接,支持最快500μs的刷新周期,支持最多達(dá)32軸運(yùn)動(dòng)控制(8脈沖軸+EtherCAT軸/編碼器軸/虛擬軸),支持直線插補(bǔ)、任意圓弧插補(bǔ)、空間圓弧、螺旋插補(bǔ)、電子凸輪、電子齒輪、同步跟隨、虛擬軸設(shè)置等;采用優(yōu)化的網(wǎng)絡(luò)通訊協(xié)議可以實(shí)現(xiàn)實(shí)時(shí)的運(yùn)動(dòng)控制。
ZMC408CE還支持8通道PWM輸出,支持硬件比較輸出、硬件定時(shí)器、運(yùn)動(dòng)中精準(zhǔn)輸出等。
二、實(shí)現(xiàn)鎖存的步驟
1.鎖存功能使用方法
(1)確定當(dāng)前硬件條件是否滿足鎖存需求,需要確定鎖存位置的軸,IO信號(hào)接入支持鎖存的輸入口IN;
(2)設(shè)置鎖存輸入映射口REG_INPUT,作用是將鎖存的通道R0/R1/R2/R3對(duì)應(yīng)到物理輸入口IN,需要輸入口支持鎖存功能;
(3)設(shè)置鎖存模式REGIST,需根據(jù)鎖存的軸類(lèi)型選擇;
(4)等待鎖存觸發(fā)MARK / MARKB / MARKC / MARKD,鎖存觸發(fā)了變?yōu)檎?
(5)鎖存完成打印鎖存位置信息REG_POS / REG_POSB / REG_POSC / REG_POSD;
(6)可讀取鎖存位置起始坐標(biāo)和結(jié)束坐標(biāo),鎖存位置可被其他指令調(diào)用。
2.鎖存相關(guān)指令
鎖存相關(guān)指令一覽表:
REG_INPUTS映射鎖存輸入、REGIST設(shè)置鎖存的模式、MARK / MARKB / MARKC / MARKD判讀鎖存是否觸發(fā)、REG_POS / REG_POSB / REG_POSC / REG_POSD成功鎖存之后位置存儲(chǔ)。
當(dāng)鎖存產(chǎn)生時(shí),對(duì)應(yīng)鎖存通道的MARK / MARKB / MARKC / MARKD會(huì)被設(shè)置為ON,同時(shí)鎖存到的位置會(huì)被存儲(chǔ)在參數(shù)REG_POS / REG_POSB / REG_POSC / REG_POSD內(nèi)。三、REG_INPUTS映射說(shuō)明
REG_INPUTS映射規(guī)則如下,REGIST鎖存模式的設(shè)置需配合REG_INPUTS而設(shè)置。
例如:
REG_INPUTS = $3210,則表示R3,R2,R1,R0分別對(duì)應(yīng)輸入口3,2,1,0
REG_INPUTS = $1023,則表示R3,R2,R1,R0分別對(duì)應(yīng)輸入口1,0,2,3
REG_INPUTS = $1000,則表示R3,R2,R1,R0分別對(duì)應(yīng)輸入口1,0,0,0之所以這樣設(shè)置是因?yàn)镽EGIST模式匹配R0、R1、R2、R3信號(hào)雖然不是物理的IO通道,卻能帶來(lái)最大的靈活性。輸出信號(hào)R0實(shí)際可以對(duì)應(yīng)設(shè)備上的IN(0)...IN(7)中的任意一個(gè)(可選的輸入通道必須是硬件手冊(cè)指定的鎖存通道),或者R0和R3都對(duì)應(yīng)同一個(gè)輸入口。
四、REG_POS鎖存位置說(shuō)明
使用的本地IO,可以通過(guò)REG_INPUTS來(lái)鎖存通道的映射,不同的鎖存信號(hào)通道鎖存的數(shù)據(jù)存儲(chǔ)的位置不同,如下表,詳情參見(jiàn)REGIST指令說(shuō)明。
02、REGIST鎖存模式REGIST設(shè)置鎖存模式,根據(jù)要鎖存的軸類(lèi)型選擇合適的鎖存模式,鎖存模式參見(jiàn)下文,有單次鎖存和連續(xù)鎖存兩種。
不同的鎖存方式,鎖存信號(hào)的觸發(fā)標(biāo)志不同,鎖存位置數(shù)據(jù)存儲(chǔ)的位置也不同。
不同軸類(lèi)型支持的鎖存通道:
(1)編碼器軸、帶反饋的脈沖軸類(lèi)型一般采用R0,R1,Z脈沖這三種鎖存;
(2)無(wú)反饋的脈沖軸和虛擬軸采用R0,R1鎖存;
(3)EtherCAT或RTEX總線軸類(lèi)型采用R2,R3鎖存;
(4)另外EtherCAT總線可以使用驅(qū)動(dòng)器自身的鎖存模式,詳情參見(jiàn)驅(qū)動(dòng)器手冊(cè)說(shuō)明。
語(yǔ)法一:?jiǎn)未捂i存
REGIST(mode)
mode:鎖存方式如下表。
注意:上升沿和下降沿對(duì)應(yīng)的是控制器內(nèi)部的硬件狀態(tài)。對(duì)于ZMC系列控制器而言,由于OFF狀態(tài)有效,故從無(wú)信號(hào)到有信號(hào)是下降沿;對(duì)于ECI系列控制器而言,由于ON狀態(tài)有效,從無(wú)信號(hào)到有信號(hào)是上升沿。
若仍然容易混淆,建議使用前先使用下文例程簡(jiǎn)單測(cè)試一下鎖存邊沿,再應(yīng)用于項(xiàng)目中。
語(yǔ)法二:連續(xù)鎖存
通過(guò)把模式加100來(lái)支持連續(xù)鎖存,鎖存結(jié)果存儲(chǔ)到TABLE里面。
REGIST(100+mode, tableindex, numes)
mode:鎖存方式。
tableindex:連續(xù)鎖存的內(nèi)容存儲(chǔ)的table位置,第一個(gè)table元素存儲(chǔ)鎖存的個(gè)數(shù),后面存儲(chǔ)鎖存的坐標(biāo),最多保存?zhèn)€數(shù)= numes-1,溢出時(shí)循環(huán)寫(xiě)入。
numes:占用的table個(gè)數(shù)。
連續(xù)鎖存模式分別對(duì)兩個(gè)通道進(jìn)行連續(xù)鎖存,可以實(shí)現(xiàn)上下邊沿的連續(xù)鎖存。
(ECI20150829以上固件支持,4系列控制器20170523以上固件支持)
100+mode:只能使用單一通道的mode,加100表示使用連續(xù)鎖存。
03、鎖存例程
1.脈沖軸(不帶反饋)/虛擬軸鎖存
可使用R0或R1通道,脈沖軸ATYPE=1/7,虛擬軸ATYPE=0,鎖存MPOS的值(沒(méi)有反饋時(shí)MPOS為假,復(fù)制DPOS)。帶反饋的情況鎖存真實(shí)的編碼器反饋的MPOS值,若支持Z信號(hào),則可使用Z信號(hào)的模式。
配置參考如下圖:
例程如下:
BASE(0)ATYPE=1 '脈沖軸UNITS=100DPOS=0SPEED=10ACCEL=100DECEL=100REG_INPUTS=0 '將R0-R3都對(duì)應(yīng)輸入口0,信號(hào)接入IN(0)REGIST(4) '選擇R0鎖存模式TRIGGER '觸發(fā)示波器VMOVE(1) '軸運(yùn)動(dòng)WAIT UNTIL MARK '等待鎖存觸發(fā)PRINT REG_POS '打印鎖存位置END
從示波器采樣的波形可以看出,IN(0)有信號(hào)觸發(fā)鎖存,REGIST(4)生效鎖存此刻的DPOS位置,并存儲(chǔ)到REG_POS。
上例其他條件不變,鎖存模式改為REGIST(3),鎖存觸發(fā)的邊沿發(fā)生變化。
2.脈沖軸(帶反饋)/編碼器軸鎖存
可使用R0、R1或Z通道(必須帶Z信號(hào)的設(shè)備才支持),脈沖軸ATYPE=4/5,編碼器軸ATYPE=3/6,鎖存MPOS的值。
例程如下:
BASE(0) ATYPE=4 '脈沖帶編碼器反饋UNITS=100SPEED=10ACCEL=100DECEL=100DPOS=0MPOS=0REG_INPUTS=$0 '將R0-R3都對(duì)應(yīng)輸入口0 ,信號(hào)接入IN(0)REGIST(15) '選擇R1鎖存模式TRIGGERVMOVE(1) '軸運(yùn)動(dòng)WAIT UNTIL MARKB '等待鎖存觸發(fā)PRINT REG_POSB '打印鎖存位置END
從示波器采樣的波形可以看出,IN(0)有信號(hào)觸發(fā)鎖存,鎖存此刻的MPOS位置,并存儲(chǔ)到REG_POSB。
3.多軸位置鎖存
鎖存多軸的位置時(shí),需要分別對(duì)每個(gè)軸設(shè)置鎖存,下例插補(bǔ)運(yùn)動(dòng)中鎖存兩個(gè)軸的位置。
例程如下:
BASE(0,1)ATYPE=1,1 '脈沖軸UNITS=100,100DPOS=0,0SPEED=10,10ACCEL=100,100DECEL=100,100REG_INPUTS=$0 '將R0-R3都對(duì)應(yīng)輸入口0,信號(hào)接入IN(0)REGIST(4) AXIS(0) '軸0選擇R0鎖存模式REGIST(4) AXIS(1) '軸1選擇R0鎖存模式TRIGGER '觸發(fā)示波器MOVE(1000,800) '軸運(yùn)動(dòng)WAIT UNTIL MARK(0) AND MARK(1) '等待鎖存觸發(fā)PRINT REG_POS(0), REG_POS(1) '打印軸0,軸1的鎖存位置END
注意:多軸使用同一個(gè)鎖存硬件輸入口時(shí),需采用相同的鎖存R通道(如上例,模式3/4均可),需要使用不同R通道時(shí),則需要映射到不同的硬件輸入口上。
4.連續(xù)鎖存模式
持續(xù)鎖存信號(hào)觸發(fā)后的位置,以上的軸類(lèi)型均支持連續(xù)鎖存模式,建議開(kāi)單獨(dú)任務(wù)執(zhí)行連續(xù)鎖存程序,不干擾其他程序的運(yùn)行,可通過(guò)TABLE寄存器隨時(shí)讀取到鎖存的次數(shù)和位置數(shù)據(jù)。
例程如下:
BASE(0)ATYPE=1 '脈沖軸UNITS=100DPOS=0SPEED=10ACCEL=100DECEL=100REG_INPUTS=$0 '將R0-R3都對(duì)應(yīng)輸入口0,信號(hào)接入IN(0)TRIGGER '觸發(fā)示波器VMOVE(1) '軸運(yùn)動(dòng)REGIST(100+4,0,100) '連續(xù)鎖存,R0通道,table(0)保存鎖存次數(shù),table(1-100)存儲(chǔ)每次鎖存的數(shù)據(jù),超過(guò)99次后,table(0)清0,重新從table(1)記錄數(shù)據(jù)WAIT UNTIL MARK
示波器捕捉連續(xù)鎖存的位置數(shù)據(jù):不需要WHILE循環(huán)就能實(shí)現(xiàn)連續(xù)鎖存。
寄存器窗口讀取鎖存的次數(shù)和位置數(shù)據(jù)。
5.總線驅(qū)動(dòng)器鎖存
可使用R2、R3通道,脈沖軸ATYPE=4/5,EtherCAT和RTEX總線均支持,軸類(lèi)型ATYPE=65/50,鎖存MPOS的值。
采用EtherCAT總線驅(qū)動(dòng)器,可使用控制器提供的鎖存模式,配置方法與前文類(lèi)似;也可以使用EtherCAT總線驅(qū)動(dòng)器自帶的鎖存模式(需參考驅(qū)動(dòng)器手冊(cè)完成配置)。
采用EtherCAT總線驅(qū)動(dòng)器自帶的鎖存模式,選擇驅(qū)動(dòng)器支持鎖存的探針,接入鎖存信號(hào);例如下方驅(qū)動(dòng)器,有兩個(gè)探針信號(hào)輸入。
注意:驅(qū)動(dòng)器PDO需包含60b8h鎖存的數(shù)據(jù)字典,DRIVE_PROFILE直接選擇帶鎖存的模式測(cè)試。
例如:DRIVE_PROFILE=11,PDO配置情況如下,更多模式參見(jiàn)DRIVE_PROFILE指令說(shuō)明。
鎖存模式采用REGIST提供的模式(需測(cè)試哪些模式支持),觸發(fā)驅(qū)動(dòng)器鎖存之后,驅(qū)動(dòng)器自行將鎖存位置傳到對(duì)應(yīng)的REG_POS / REG_POSB / REG_POSC / REG_POSD,對(duì)應(yīng)MARK變?yōu)檎?,用戶無(wú)需通過(guò)驅(qū)動(dòng)器數(shù)據(jù)字典獲知。
例程如下:
'********************************************************************************************'總線初始化使能程序,初始化成功方可運(yùn)行下方鎖存程序'初始化配置驅(qū)動(dòng)器PDO需包含鎖存的數(shù)據(jù)字典,DRIVE_PROFILE選擇帶鎖存的模式測(cè)試'********************************************************************************************RAPIDSTOPWAITIDLEDIM num,AXIS_Max,TEMPFOR num=0 TO 7 STEP 1 BASE(num) ATYPE(num)=0 AXIS_ADDRESS(num)=(-1<<16)+num ATYPE(num)=0NEXTnum=0SLOT_SCAN(0)IF RETURN THEN ?"總線掃描成功","設(shè)備連接數(shù):"NODE_COUNT(0) 'i為槽位號(hào),位軸數(shù) FOR i=0 to NODE_COUNT(0)-1 AXIS_Max=NODE_AXIS_COUNT(0,i)'單個(gè)設(shè)備連接總數(shù) ?"AXIS_Max="AXIS_Max IF AXIS_Max<>0 THEN FOR j=0 TO AXIS_Max-1 AXIS_ADDRESS(num)=(i<<16)+num+1 ATYPE(num)=65 '軸映射最后一步 'units(num)=2^23/360 '單軸脈沖當(dāng)量設(shè)置 DRIVE_PROFILE(num)=11 '設(shè)置PDO功能 disable_group(num) '每軸單獨(dú)分組 num=num+1 '當(dāng)前設(shè)備總軸數(shù) NEXT ELSE ?"當(dāng)前設(shè)備無(wú)軸" END ENDIF NEXT ?"軸映射完成!總軸數(shù):"num ELSE ?"總線掃描失敗" ENDENDIFDELAY(100)SLOT_START(0)IF RETURN THEN ?"總線開(kāi)啟成功" DELAY(100) DATUM(0)'清除所有軸錯(cuò)誤狀態(tài) DELAY(100) ?"開(kāi)始進(jìn)行軸使能" FOR i=0 to num-1 base(i) AXIS_ENABLE=1'單軸使能 NEXT WDOG=1'軸使能總開(kāi)關(guān)開(kāi)啟 ?"軸使能完成"ELSE ?"總線開(kāi)啟失敗"ENDIF?"配置完成"adasda() '調(diào)用鎖存函數(shù)END'********************************************************************************************'鎖存函數(shù)'選擇驅(qū)動(dòng)器支持鎖存的探針,接入鎖存信號(hào)鎖存模式采用REGIST提供的模式,觸發(fā)鎖存之后,驅(qū)動(dòng)器將鎖存位置傳到REG_POS '********************************************************************************************WHILE 1 IF OP(0) = ON THEN OP(0, OFF) temp=-1 ENDIF temp=0WENDGLOBAL sub adasda() dim num, temp num=1 temp=0 BASE(0) REGIST(100+3,0,100)AXIS(0)' 自動(dòng)循環(huán),不需要再寫(xiě)入到while循環(huán)中,table(0)保存鎖存次數(shù),table(1-100)存儲(chǔ)每次鎖存的數(shù)據(jù)超過(guò)99次后,table(0)清0,重新從table(1)記錄數(shù)據(jù) 'REGIST(3) WHILE 1 ?"*********************************************************" WA 10 ?"reg_pos="REG_POS,"鎖存值TABLE="TABLE(num),"占用TABLE="TABLE(0) '打印 ?"驅(qū)動(dòng)器探針模式="NODE_PDOBUFF(0,0,$60B8,0,6) ?"驅(qū)動(dòng)器探針狀態(tài)="NODE_PDOBUFF(0,0,$60B9,0,6) ?"驅(qū)動(dòng)器鎖存值="NODE_PDOBUFF(0,0,$60BA,0,7) IF num=100 THEN num=1 ELSE num=num+1 ENDIF WA 100 '延時(shí)1ms,防抖 wendENDSUB
采用連續(xù)鎖存模式REGIST(100+3,0,100),使用TABLE(0)開(kāi)始的100個(gè)空間保存鎖存數(shù)據(jù),其中TABLE(0)保存的是連續(xù)鎖存的次數(shù),TABLE(1)- TABLE(99)保存每次鎖存的位置。
本次,正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制器位置鎖存功能的應(yīng)用,就分享到這里。
更多精彩內(nèi)容請(qǐng)關(guān)注“正運(yùn)動(dòng)小助手”公眾號(hào),需要相關(guān)開(kāi)發(fā)環(huán)境與例程代碼,請(qǐng)咨詢正運(yùn)動(dòng)技術(shù)銷(xiāo)售工程師:400-089-8936。
本文由正運(yùn)動(dòng)技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國(guó)智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來(lái)源。
中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>新品發(fā)布:CD300系列總線型伺服驅(qū)動(dòng)器
2024-10-31
2024-10-31
2024-10-31
新勢(shì)能 新期待|維智B1L直線伺服驅(qū)動(dòng)器
2024-10-31
纖薄之間,化繁為簡(jiǎn)|合信全新simple系...
2024-10-29
2024-10-18
推薦專題
更多>