




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、int Check_OriginSignal(int cardno,int axis,int mode) if (mode=0) if(!STOP0_Highaxis-1) int bit= 2,8,14,20; /stop0return read_bit(cardno,bitaxis-1)=0?1:0; else int bit= 2,8,14,20; /stop0return read_bit(cardno,bitaxis-1)=1?1:0; else if(!STOP1_Highaxis-1) int bit= 3,9,15,21; /stop1return read_bit(cardn
2、o,bitaxis-1)=0?1:0; else int bit= 3,9,15,21; /stop1return read_bit(cardno,bitaxis-1)=1?1:0; int Check_LimitSignal(int cardno,int axis,int mode) if(!LMTLevel_Highaxis- 1) /低電平有效if (mode) int bit= 0,6,12,18; /LMT-return read_bit(cardno,bitaxis-1)=0?1:0; else int bit= 1,7,13,19; /LMT+return read_bit(ca
3、rdno,bitaxis-1)=0?1:0; else/高電平有效if (mode) int bit= 0,6,12,18; /LMT-return read_bit(cardno,bitaxis-1)=1?1:0; else int bit= 1,7,13,19; /LMT+return read_bit(cardno,bitaxis-1)=1?1:0; /*單軸回原點(diǎn) * 功能:執(zhí)行單軸回原點(diǎn)運(yùn)動(dòng)參數(shù):cardno 卡號(hào)axis 軸號(hào) (1-4) backDir 回原點(diǎn)方向0:正向1:負(fù)向logical0 回原點(diǎn)stop0設(shè)置0:低電平有效1:高電平有效logical1 回原點(diǎn)stop1設(shè)
4、置0:低電平有效1:高電平有效-1:無效(不搜索 Z相)homeStartV 回原點(diǎn)啟始速度,取值范圍:0-2M homeSpeed 回原點(diǎn)驅(qū)動(dòng)速度,取值范圍:0-2M homeAcc 回原點(diǎn)加速度,取值范圍:0-64000 searchRange 原點(diǎn)范圍(不宜過大 ) searchSpeed stop0搜索速度 (不宜過高 ) phaseSpeed Z相搜索速度(不宜過高 ) pulseUnit 每轉(zhuǎn)脈沖返回值0:回原點(diǎn)成功 ; -1:參數(shù)錯(cuò)誤 ; -2:回原點(diǎn)失敗 ,(碰到限位或原點(diǎn)范圍過小);1:回原點(diǎn)被中止說明: (1) 回原點(diǎn)分為四大步 : 第一步 :快速接近 stop0(logi
5、cal0原點(diǎn)設(shè)置 ),找到 stop0; 第二步 :慢速反向離開 stop0,反向移動(dòng)指定原點(diǎn)范圍脈沖數(shù); 第三步 :再次慢速接近 stop0; 第四步 :慢速接近 stop1(logical1編碼器 Z相). (2) 第四步可以選擇是否執(zhí)行,通過 logical1來選擇 . (3) 若需多軸回原點(diǎn) ,必須等待上一軸回原點(diǎn)結(jié)束后,才能執(zhí)行下一軸的回原點(diǎn)動(dòng)作. */int _stdcall home1(int cardno,int axis,int backDir,int logical0 ,int logical1 ,longhomeStartV,long homeSpeed, long ho
6、meAcc,long searchRange, long searchSpeed, longphaseSpeed , long pulseUnit) staticMSG msg; static int nCount =0; int workstep=0,status=-1,value=-1; /步驟;驅(qū)動(dòng)狀態(tài)intStopSignal=0; /停止信號(hào)long longPulse =2147483647; /長脈沖, 4字節(jié)上限Stop_Flagaxis-1=0; /標(biāo)記該軸開始運(yùn)動(dòng)if (cardno=max_card_number ) return -1;/卡號(hào)判斷if(axis4) re
7、turn -1; /軸號(hào)判斷if(backDir1) return -1; /方向判斷if(logical0 != 0 & logical0 != 1 ) return -1; /STOP0方式判斷if(logical1 != 0 & logical1 != 1 & logical1 !=- 1) return -1; /STOP1方式判斷/搜索范圍 ,搜索速度 ,每轉(zhuǎn)脈沖判斷if(searchRange 0|searchSpeed 0|pulseUnit=homeSpeed) homeStartV=homeSpeed; set_startv (cardno,axis,
8、homeStartV); set_speed (cardno,axis,homeSpeed); else set_startv (cardno,axis,homeStartV); set_speed (cardno,axis,homeSpeed); set_acc (cardno,axis,homeAcc); set_stop0_mode (cardno,axis,1,logical0);/設(shè)定stop0有效電平Start_Run (axis); while (TRUE) switch(workstep) case0:/發(fā)送長脈沖/if(Check_OriginSignal(cardno,ax
9、is,0) /已經(jīng)在原點(diǎn) ,不發(fā)送長脈沖直接反向退出StopSignal=1;/由原點(diǎn)引起workstep=2; break; /pmove(cardno,axis,backDir?-longPulse:longPulse); workstep+; break ; case1:/分析是否碰到原點(diǎn)或限位if (backDir=1 & StopSignal= 0)/負(fù)向回原點(diǎn) if(Check_OriginSignal(cardno,axis, 0) StopSignal=1;/由stop0原點(diǎn)引起if (Check_LimitSignal(cardno,axis, 1) StopSign
10、al=2;/由負(fù)限位引起 if ( backDir=0 & StopSignal= 0)/正向回原點(diǎn) if(Check_OriginSignal(cardno,axis, 0) StopSignal=1;/由原點(diǎn)引起if (Check_LimitSignal (cardno,axis, 0) StopSignal=2;/由正限位引起 get_status (cardno,axis,&status);/驅(qū)動(dòng)狀態(tài)檢測(cè)if (status) break;/驅(qū)動(dòng)進(jìn)行中,繼續(xù)檢測(cè)if (StopSignal=0) /未檢測(cè)到正常停止信號(hào) set_stop0_mode (cardno,ax
11、is,0,0); if (StopSignal=2) /原點(diǎn)模式時(shí),由限位引起的停止 return -2; set_stop0_mode (cardno,axis,0,0); StopSignal=0; workstep+; break ; case2:/低速經(jīng)過原點(diǎn)set_startv (cardno,axis,searchSpeed); set_speed (cardno,axis,searchSpeed); pmove(cardno,axis,backDir?searchRange:-searchRange);/搜索范圍workstep+; break ; case3:/判斷驅(qū)動(dòng)結(jié)束,設(shè)
12、置原點(diǎn)有效get_status (cardno,axis,&status);/判斷運(yùn)動(dòng)是否停止if (status) break; /驅(qū)動(dòng)進(jìn)行中,繼續(xù)讀信號(hào)和狀態(tài)set_stop0_mode (cardno,axis,1,logical0); /設(shè)定stop0有效電平workstep+; break ; case4:/低速接近原點(diǎn)pmove(cardno,axis,backDir?-searchRange:searchRange); workstep+; break ; case5:/讀信號(hào)和狀態(tài)if (backDir=1 & StopSignal= 0)/負(fù)向回原點(diǎn) if(C
13、heck_OriginSignal(cardno,axis, 0) StopSignal=1;/由stop0 原點(diǎn)引起if (Check_LimitSignal (cardno,axis, 1) StopSignal=2;/由負(fù)限位引起 if ( backDir=0 & StopSignal= 0)/正向回原點(diǎn) if(Check_OriginSignal(cardno,axis, 0) StopSignal=1;/由stop0 原點(diǎn)引起if (Check_LimitSignal (cardno,axis, 0) StopSignal=2;/由正限位引起 get_status (card
14、no,axis,&status); if (status) break;/驅(qū)動(dòng)進(jìn)行中,繼續(xù)讀信號(hào)和狀態(tài)if (StopSignal=0 | StopSignal=2) /未檢測(cè)到正常停止信號(hào) set_stop0_mode (cardno,axis,0,0); return -2; if(logical1=-1) /不搜索 Z,回原點(diǎn)完成set_stop0_mode (cardno,axis,0,0); set_command_pos (cardno,axis,0); set_actual_pos (cardno,axis,0); returnSUCCESSFUL; else if (l
15、ogical1=0|logical1=1)/搜索Z相 set_stop0_mode (cardno,axis, 0,0); workstep+; break; case6: /編碼器 Z相,移動(dòng)與每轉(zhuǎn)脈沖數(shù)等長的位移 StopSignal=0; set_startv (cardno,axis,phaseSpeed); /低速接近 Z相set_speed (cardno,axis,phaseSpeed); /低速接近 Z相set_stop1_mode (cardno,axis,1,logical1);/設(shè)置Stop1有效電平pmove(cardno,axis,backDir?pulseUnit:
16、-pulseUnit); workstep+; break; case7:/判斷搜索 Z相信號(hào)結(jié)果 if(Check_OriginSignal(cardno,axis, 1) StopSignal=1;/由STOP1引起get_status (cardno,axis,&status); if (status) break;/驅(qū)動(dòng)進(jìn)行中,繼續(xù)讀信號(hào)和狀態(tài)if (StopSignal=0) /轉(zhuǎn)了一圈仍然沒有找到 Z信號(hào)set_stop1_mode (cardno,axis, 0,0); return -2; set_stop1_mode (cardno,axis,0,0); set_command_pos (cardno,axis,0); set_actual_pos (cardno,axis,0); returnSUCCESSFUL; if (Stop_Flagaxis-1=1)/響應(yīng)外部的停止信號(hào) ,退出break; /轉(zhuǎn)讓控制權(quán)PeekMessage (&msg,NULL ,0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《貴州飛尚能源有限公司六枝特區(qū)興旺煤礦(變更)礦產(chǎn)資源綠色開發(fā)利用方案(三合一)》評(píng)審意見
- 珠寶相關(guān)知識(shí)培訓(xùn)課件
- 2025年汕尾下載b2貨運(yùn)從業(yè)資格證模擬考試考試
- 印度課件+-2024-2025學(xué)年人教版七年級(jí)地理下冊(cè)
- 養(yǎng)殖寵物基本知識(shí)培訓(xùn)課件
- 第二單元空氣和氧氣課題3制取氧氣 第1課時(shí)實(shí)驗(yàn)室制取氧氣的原理 分解反應(yīng)教學(xué)設(shè)計(jì)-2024-2025學(xué)年九年級(jí)化學(xué)人教版(2024)上冊(cè)
- 2025年西藏貨運(yùn)從業(yè)證考試內(nèi)容
- 四川省南川區(qū)川東北名校2024-2025學(xué)年高二(上)期末物理試卷【含解析】
- 上海市靜安區(qū)華東模范中學(xué)2024-2025學(xué)年高一(上)期末物理試卷【含解析】
- 2025屆新高考?xì)v史沖刺熱點(diǎn)復(fù)習(xí)中華文明的形成和發(fā)展時(shí)期-秦漢
- NB-T 33015-2014 電化學(xué)儲(chǔ)能系統(tǒng)接入配電網(wǎng)技術(shù)規(guī)定
- 統(tǒng)編版語文四年級(jí)上冊(cè)第七單元 講述人物事跡 弘揚(yáng)家國情懷單元任務(wù)群整體公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 2024年山東教育廳事業(yè)單位筆試真題
- CJT264-2007 水處理用橡膠膜微孔曝氣器
- 母嬰保健技術(shù)服務(wù)工作總結(jié)報(bào)告
- (高清版)WST 227-2024 臨床檢驗(yàn)項(xiàng)目標(biāo)準(zhǔn)操作程序編寫要求
- 配位化學(xué) 本科生版 知到智慧樹網(wǎng)課答案
- 《配電線路旁路作業(yè)工具裝備 第1部分 柔性電纜及連接器》
- 第3章-水文統(tǒng)計(jì)原理
- 斑馬導(dǎo)絲熱縮工藝
- 《工傷預(yù)防知識(shí)教育》課件
評(píng)論
0/150
提交評(píng)論