MCS運動控制函式庫范例手冊_第1頁
MCS運動控制函式庫范例手冊_第2頁
MCS運動控制函式庫范例手冊_第3頁
MCS運動控制函式庫范例手冊_第4頁
MCS運動控制函式庫范例手冊_第5頁
已閱讀5頁,還剩174頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

------------------------------------------------------------------------MCS運動控制函式庫范例手冊MCS運動控制函式庫范例手冊MCS運動控制函式庫范例手冊(適用于運動控制函式庫50版或以上版本)版本:.5.0日期:21.5CS運控制式庫例手冊目 錄1.運動控函式庫范例內(nèi)容說明........................................................................................12.Group參數(shù)與機構(gòu)、編碼器參數(shù)設(shè)定..........................................................................23.插值時間調(diào)整...............................................................................................................34.啟動與結(jié)束運功控制函式............................................................................................45.系統(tǒng)狀態(tài)設(shè)定...............................................................................................................76.讀取運動速度、坐標與運動命令資訊.......................................................................107.運動狀態(tài)檢視.............................................................................................................128.加、減速段使用時間設(shè)定..........................................................................................149.進給速度設(shè)定.............................................................................................................1510.直線、圓弧、圓、螺線運動(一般運動).............................................................16.點對點運動...............................................................................................................1912.OG運動....................................................................................................................2113.定位控制...................................................................................................................2214.原點復(fù)歸運動...........................................................................................................2415.運動暫停、持續(xù)、棄值............................................................................................2616.強迫延遲執(zhí)行運功命令............................................................................................2717.速度強制控制...........................................................................................................2818.軟件過行程檢查與硬件極限開關(guān)檢查.....................................................................2919.連續(xù)運動功能設(shè)定...................................................................................................3220讀取與清除錯誤狀態(tài)..................................................................................................3321.齒輪齒隙與間隙補償................................................................................................3422.如何完成6軸連續(xù)運動............................................................................................3523.編碼器(Eodr計數(shù)值觸發(fā)中斷服務(wù)函式功能.....................................................39iCS運控制式庫例手冊24.門鎖(t)編碼器計數(shù)值與INDEX訊號觸發(fā)中斷服務(wù)函式功能........................4125.近端節(jié)點(olI/O)訊號控制與觸發(fā)中斷服務(wù)函式功能........................................4326.計時器計時終了觸發(fā)中斷服務(wù)函式功能.................................................................4827.thDog功能.........................................................................................................5028.設(shè)定與讀取oteI/O輸出、入接點訊號............................................................5229.讀取oteI/O訊號傳輸狀態(tài)................................................................................5330.oteI/O輸入接點訊號觸發(fā)中斷服務(wù)函式..........................................................5531.oteI/O資料傳輸錯誤觸發(fā)中斷服務(wù)函式..........................................................5732.規(guī)劃DAC類比電壓輸出.........................................................................................5933.ADC電壓輸入單次轉(zhuǎn)換............................................................................................6034.ADC電壓輸入連續(xù)轉(zhuǎn)換............................................................................................6235.ADC比較器中斷功能控制........................................................................................6436.ADC標簽annl觸發(fā)中斷服務(wù)函式功能.............................................................67iiCS運控制式庫例手冊1.運動控制函式庫范例內(nèi)容說明安裝光盤中所提供的范例皆為osoeode類型使用者可將這些范例整合到自己的應(yīng)用程序中。L最多能支持12張TC運動控制卡與72個group,但為了增加這些范例的可讀性,大部分的范例只使用1張運動控制卡(運動控制卡編號使用D_INDEX來表示與1個group(goup編號使用g_nGoupndx來表示)。1CS運控制式庫例手冊2.rop參數(shù)與機構(gòu)、編碼器參數(shù)設(shè)定相關(guān)函式_StSsxSpd()_GtsaxSpd()_StPr()_GtPr()_StEodroig()_CoAlGroup()_CrtGroup)_UpdtPr()范例程序ItSs.pp內(nèi)容說明本范例說明group機構(gòu)與編碼器參數(shù)的設(shè)定過程先使用C_StsxSped()設(shè)定進給速度的上限接著使用_StPr()與C_Stodroig()設(shè)定各軸的機構(gòu)與編碼器參數(shù),最后再使用C_rtGroup(建立一新的group。有關(guān)group使用方式與機構(gòu)參數(shù)更詳細的說明請參考”CS運動控制函式庫使用手冊。2CS運控制式庫例手冊3.插值時間調(diào)整相關(guān)函式_IntSst()_GturusStokout()范例程序hkHStok.pp內(nèi)容說明較小的插值時間擁有較佳的運動控制性能,插值時間可設(shè)定的最小值為1s但并非所有PC皆適用1s的插值時間,這與PC的性能有關(guān)。為了獲得最適當?shù)牟逯禃r間,可以使用_GturusStokout(讀取TC運動控制卡上的puse庫存筆數(shù)在持續(xù)運動過程中puse庫存筆數(shù)必須大于或等于60,才能保證穩(wěn)定的運動性能若庫存筆數(shù)出現(xiàn)等于0的現(xiàn)象則必須延長插值時間插值時間為_IntSst()所需的參數(shù)之一)另外若人機操作畫面的顯示出現(xiàn)遲滯的現(xiàn)象也必須延長插值時間。3CS運控制式庫例手冊4.啟動與結(jié)束運動控制函式庫相關(guān)函式_IntSst()_CoSst()_GtotoSttu()范例程序ItSs.pp內(nèi)容說明本范例說明在完成group參數(shù)與機構(gòu)參數(shù)的設(shè)定后,使用_IntSst()啟動運動控制函式庫,所需的參數(shù)請參考”MCS運動控制函式庫使用手冊。下面說明范例的內(nèi)容。Stp1:給定控制卡硬件參數(shù)SYS_AD_ONIG trdoig[AX_CAD_NUM];..trdoig[AD_INDEX].wrdddrss=ASE_DDRESStrdoig[AD_INDEX].wrdpe =wrdpe;trdoig[AD_INDEX].wIQ_No =IQ_NO;Stp2:啟動運動控制函式庫Rt=C_ItSst(INTPOON_TE,// 插值補間時間設(shè)為10strdoig, // 硬件參數(shù)1); // 只使用1張TC卡4CS運控制式庫例手冊if(t=NO_E)// 啟動運動控制函式庫成功{/*使用者可于此執(zhí)行其它初始化的動作例如設(shè)定位移單位進給速度。*/}Stp3:_CoSst()被使用來關(guān)閉CL與驅(qū)動程序函式庫兩種方式可用來關(guān)閉系統(tǒng):i. 全部運動命令執(zhí)行完成才關(guān)閉系統(tǒng)需檢查系統(tǒng)是否處于停止狀態(tài),C_GtotoSttu()的函式傳回值若為GS_SO,則系統(tǒng)處于停止狀態(tài)。wle((rt=C_GtotoSttu(g_Groupdx))=GS_SOP){_eDea(1); // Sp1s// 因使用wle命令,為避免系統(tǒng)死鎖,影響系統(tǒng)的操作// 需呼叫C_eDay(釋放PU的使用權(quán)。}_CoSst(); // 結(jié)束CL與驅(qū)動程序函式庫5CS運控制式庫例手冊ii. 直接結(jié)束運動控制庫只需呼叫_CoSst()即可,系統(tǒng)將立刻停止運作。6CS運控制式庫例手冊5.系統(tǒng)狀態(tài)設(shè)定相關(guān)函式_StUt()_GtUt()_Stbsout()_StIrs()_Gt_oordp()_Stcp()_Gtp()_StDp()_GtDp()_StPtp()_Gttp()_StPtPDpe()_GttPDp()_StSroO()_StSroO()_EnbePod()_DsbePod()范例程序StSttu.pp內(nèi)容說明此范例說明如何改變系統(tǒng)狀態(tài)未特別設(shè)定系統(tǒng)狀態(tài)系統(tǒng)將使用預(yù)設(shè)狀態(tài)運作,7CS運控制式庫例手冊系統(tǒng)的預(yù)設(shè)狀態(tài)可參閱”MCS運動控制函式庫參考手冊。下面說明函式的內(nèi)容。_StUt(UNIT_,g_Groupdex); // 使用m為位移量單位_Stbsout(g_GroupIdx); // 使用絕對坐標型態(tài)表示各軸位置// 使用T型曲線為直線、圓弧、圓運動的加速型式_Stcp(‘’,g_GroupIdx);// 使用S’型曲線為直線、圓弧、圓運動的減速型式_StDp(‘S’,g_GroupIdx);// 使用T型曲線為點對點運動的加速型式_StPtp('T',T','T,T','T,T',g_Groupdex);// 使用S’型曲線為點對點運動的減速型式_StPtPDpe(S','S,'S,'S,'S,S',g_GroupIdx);_StSroO(0,AD_INDEX);// 啟動第0軸伺服系統(tǒng)// 開啟Potondy輸出接點功能_EnbePod(ARD_INDEX);啟動伺服系統(tǒng)需呼叫_StSroO(),系統(tǒng)才能正常運作;是否需呼叫8CS運控制式庫例手冊_EnbePod()視實際情況而定。9CS運控制式庫例手冊6.讀取運動速度、坐標與運動命令信息相關(guān)函式_GturdSpd()_GtdSpd()_Gturo()_GtusPo()_Gturoand()_Gtoandout()范例程序Gtttu.pp內(nèi)容說明C_GturdSpd()用來讀取目前的進給速度C_GtSpd(則可以用來讀取目前各軸的進給速度。_Geturo()用來讀取各軸目前位置之直角坐標值,_GtusPo(則用來讀取各軸目前位置之馬達坐標值或稱為puse坐標值)。直角坐標值與馬達坐標值可以利用機構(gòu)參數(shù)換算而得,也就是馬達坐標值=直角坐標值×(dGrto/dPth)×dwPPR。使用C_GturPo()與C_GtPuPo()所讀取之各軸坐標值,只有在該軸有實際對應(yīng)至硬件輸出hnnl時才有意義。下面為使用范例:Stp1:宣告變量doue durPoX,durPo,durPo,durPoU,durPo,durPo,durSpd;doue durSpdX, durSpd, durSpdZ, durSpdU, durSpd,durSpd;10CS運控制式庫例手冊og urPusX,CurPue,CurPue,urPusU,CurPus,CurPue;Stp2:讀取目前的進給速度durSpd=_GeturdSpd(g_nGroupIdx);Stp3:讀取目前各軸的進給速度_Gtpd( dCurSpdX,dCurSpd,dCurSpdZ,dCurSpdU,dCurSpd,dCurSpd,g_GroupIdx);Stp4:讀取各軸目前位置之直角坐標值_Gturo(dCurPoX,dCurPo,dCurPo,dCurPoU,dCurPo,dCurPo,g_GroupIdx);Stp5:讀取各軸目前位置之馬達坐標值_GtusPo(CurPusX,CurPus,CurPue,CurPusU,CurPue,CurPus,g_GroupIdx);使用_Gturoand()可以獲得目前正在執(zhí)行的運動命令相關(guān)的信息,包括運動命令類型、運動命令編碼、進給速度、目的點位置坐標等。使用_Gtoandout()可以獲得運動命令緩沖區(qū)中庫存且尚未執(zhí)行的運動命令之數(shù)目。1CS運控制式庫例手冊7.運動狀態(tài)檢視相關(guān)函式_GtotoSttu()范例程序otonished.pp內(nèi)容說明利用C_GtotoSttu()的函式傳回值可檢視機器目前的運動狀態(tài)。若函式傳回值為GS_UNNING,表示機器處于運動狀態(tài);若函式傳回值為GS_SOP,表示機器處于停止狀態(tài),運動命令緩沖區(qū)中已無命令;若呼叫C_Hodoto()成功此時_GtotoSttu(的函式傳回值為GS_HOLD表示機器處于暫停狀態(tài),仍有運動命令尚未執(zhí)行完成;若C_GtotoSttu()的函式傳回值為GS_DEYNG,表示因呼叫C_DaMoto(),系統(tǒng)目前處于運動延遲狀態(tài)。下面為使用范例:Stp1:宣告讀取運動狀態(tài)參數(shù)ntSttu;Stp2:啟動伺服_StSroO(0,AD_INDEX);_StSroO(1,AD_INDEX);Stp3:直線運動,后執(zhí)行運動狀態(tài)讀取_Lne(20,20,0,0,0,0,g_GroupIdx);12CS運控制式庫例手冊Stp4:等待_Lne()執(zhí)行完,產(chǎn)生后GS_SOP后方跳出循環(huán),再繼續(xù)執(zhí)行下面的命令wle(_GetotoSttu(g_GroupIdx)=GS_SOP;{…….}Stp5:延遲運動命令,此時運動狀態(tài)為GS_DEING_DaMoto(10000);//dy10000sStp6:再次運動改變運動狀態(tài)_Lne(50,50,0,0,0,0,g_GroupIdx);Stp7:當按下H鍵,運動暫停,狀態(tài)呈現(xiàn)GS_HODRt=C_Hodoto(g_nGroupIdx);Stp8:當按下C鍵,將繼續(xù)未完成之運動,狀態(tài)呈現(xiàn)GS_UNNINGRt=C_ototo(g_nGroupIdx);prnt(Motonttus:%d\r,ttu);13CS運控制式庫例手冊8.加、減速段使用時間設(shè)定相關(guān)函式_Stce()_StDe()_Gte()_GtDe()_StPte()_StPtPDe()_Gtte()_GttPDe()范例程序cStppp內(nèi)容說明一般運動(包括直線、圓弧、圓運動)與點對點運動的加、減速時間默認值為300毫秒,但可使用C_Ste()、_StDe()、C_Stte()、_StPtPDe()調(diào)整加減速的時間使這些運動有較為平順的加減速過程。不同速度應(yīng)采用不同的加減速時間使用CL時使用者需自行設(shè)計各種速度下的加減速時間適當?shù)募訙p速時間會因為使用不同的馬達與機構(gòu)而有所差異。加、減速時間可以利用下面的公式獲得:運動時的加速時間= 要求的速度/要求的加速度運動時的減速時間= 要求的速度/要求的減速度14CS運控制式庫例手冊9.進給速度設(shè)定相關(guān)函式_StedSpd()_GtdSpd()_StPtPSpd()_GttPSpd()范例程序StSpd.pp內(nèi)容說明在進行直線、圓弧、圓運動前需先設(shè)定進給速度,所設(shè)定的進給速度不應(yīng)超過_StSsxSpd()的設(shè)定值。使用_StdSped()設(shè)定直線圓弧圓螺線運動的進給速度例如呼叫_StedSpd(20,g_GroupIdx)時,表示進給速度為20/ec或20nch/c,依所使用的單位而定。使用C_SttPSpd()來設(shè)定點對點運動的速度第一個參數(shù)為”各軸最大速度的百分比再乘以100”范圍從0~100例如執(zhí)行C_SttPSpd(50,g_GroupIdx)時表示要求各軸的點對點運動速度為(PM×Pth/Grto)×50%PMPth、Grto定義在機構(gòu)參數(shù)中。15CS運控制式庫例手冊10.直線、圓弧、圓、螺線運動一般運動)相關(guān)函式_Stbsout()_StedSpd()_Lne()_ArXY()_CrceXY()范例程序GnrMoto.pp內(nèi)容說明在完成group、機構(gòu)與編碼器參數(shù)設(shè)定、啟動系統(tǒng)、設(shè)定進給速度的上限、開啟伺服回路(使用步進馬達時不需此動作與設(shè)定進給速度后即可進行直線圓弧圓、螺線運動。在使用圓弧函式時需注意給定的參數(shù)是否合理(起始點、參考點與目的點等三點的位置不能在同一直在線。下面為函式使用范例。Stp1:使用絕對坐標型態(tài)表示各軸位置并設(shè)定進給速度_Stbsout(g_GroupIdx);_StedSpd(10,g_GroupIdx);Stp2:執(zhí)行直線運動命令_Lne(10,10,0,0,0,0,g_GroupIdx);Stp3:執(zhí)行圓弧命令,請注意需避免起始點、參考點與目的點在同一直在線Rt=C_ArXY(10,20,20,20,g_GroupIdx);16CS運控制式庫例手冊if(t=NO_E){/*利用傳回值了解錯誤發(fā)生的原因如果參數(shù)錯誤則傳回值為AETE_E。*/}可以利用函式的傳回值了解錯誤發(fā)生的原因傳回值的意義請參考”MCS運動控制函式庫參考手冊”。行進的軌跡如下圖所示。y(10,20)

(20,20)(10,10)(0,0) xStp3:執(zhí)行圓命令_CrceXY(25,20,0,g_GroupIdx);運動命令的執(zhí)行過程是運動函式先將運動命令(OPod)置于各group專屬的運動命令緩沖區(qū)中L再同時從不同group的運動命令緩沖區(qū)中擷取運動命令依序執(zhí)行。這兩個動作并不是同步動作,也就是并不需等到前一筆運動命令執(zhí)行完成即可將新的運動命令送到運動命令緩沖區(qū)中。17CS運控制式庫例手冊_Lin(10,10,0,0,0,0,0)_ArXY(10,20,20,20,0)_irlXY(25,20,0,0)

available.

OPCode1OPCode2OPCode3

ExecutePut GetAsynchronization若運動命令緩沖區(qū)已滿,則函式的傳回值為OAND_UFFE_FUL_ER,此筆運動命令將不被接受預(yù)設(shè)每個運動命令緩沖區(qū)擁有10000個運動命令儲存空間。上圖顯示對group0運動命令緩沖區(qū)的操作過程,可看出屬于同一個group的運動命令將被依序執(zhí)行。因為各個group擁有專屬的運動命令緩沖區(qū),因此可同時執(zhí)行屬于不同group的運動命令,更詳細的說明請參考”MCS運動控制函式庫使用手冊。18CS運控制式庫例手冊11.點對點運動相關(guān)函式_Stbsout()_StPtPSpd()_PtP()范例程序PtPoto.pp內(nèi)容說明在完成group、機構(gòu)與編碼器參數(shù)設(shè)定、啟動系統(tǒng)、設(shè)定進給速度的上限、開啟伺服回路(使用步進馬達時不需此動作)與設(shè)定進給速度后,即可執(zhí)行點對點運動。下面為函式使用范例。Stp1:使用絕對坐標與設(shè)定進給速度_Stbsout(g_GroupIdx);_StedSpd(20,g_GroupIdx);Stp2:設(shè)定各軸使用最大速度的20運動,也就是(PM×Pth/Grto)×20%_StPtPSpd(20,g_GroupIdx);Stp3:各軸使用不同動的方式運動至(10,20)_PtP(10,20,0,0,0,0,g_GroupIdx);點對點運動采用不同動的運動方式也就是各軸使用各自的速度運動各軸在同19CS運控制式庫例手冊時啟動后并不一定會同時到達目的點這點與一般運動不同一般運動使用同動的運動方式各軸同時啟動后會同時到達目的點下圖為點對點運動的運動軌跡此時各軸的速度相同。y(10,20)(0,0) x20CS運控制式庫例手冊12.JG運動相關(guān)函式_StUt()_JogPu()_JogSp()_Jogot()范例程序ogoto.pp內(nèi)容說明_JogPu()使用puse為單位對特定軸進行微動動作但移動的puse數(shù)不能超過2048。C_ogSp()使用單位與一般運動相同,對特定軸進行吋動動作。_Jogot()則可運動至機構(gòu)參數(shù)所設(shè)定的工作區(qū)間邊界。C_ogSp()與_Jogot()所需的參數(shù)包括速度比例設(shè)定方式與點對點運動類似下面為使用范例。Stp1:使用m為位移量單位_StUt(UNIT_,g_Groupdex);Stp2:使X軸移動100puss_JogPu(0,100,g_GroupIdx);Stp3:使用速度為(PM×Pth/Grto)×10,使X軸移動-1m距離_JogSp(-1,40,0,g_GroupIdx);Stp4:使用速度為(PM×Pth/Grto)×10%,使X軸移動至工作區(qū)間的右邊界_Jogot(1,10,0,g_GroupIdx);21CS運控制式庫例手冊13.定位控制相關(guān)函式_StIPoxhcke()_EnbeInPos_StIPoorneEx_GtPoSttus范例程序IPohk.pp內(nèi)容說明本范例程序利用編碼器的計數(shù)值(實際機臺位置與目標位置之誤差檢查每一個運動軸是否滿足定位確認條件。當運動命令執(zhí)行完成將開始檢視是否滿足定位條件,若檢視時間超過設(shè)定值如還存在某些運動軸的位置誤差無法滿足定位條件則紀錄此現(xiàn)象并停止執(zhí)行其它運動命令。使用者可以強制馬達產(chǎn)生誤差并觀察運作情況。此項功能的使用步驟如下:Stp1:設(shè)定定位確認最長的檢查時間,單位s_StIPoxhcke(1000,g_Groupdex);Stp2:設(shè)定定位控制模式_StIPood(IP_ONETE_OCK,g_GroupIdx);Stp3:設(shè)定各軸誤差值,單位為m或nh_StIPoorneE(0.5,0.5,1000,1000,1000,1000,g_GroupIdx);22CS運控制式庫例手冊Stp4:啟動定位控制功能_EnbeInPo(g_Groupdx);Stp5:讀取各軸定位控制狀態(tài),正確到位狀態(tài)為0(255)_GtPoSttu(bInPo0, bInPo1, bInPo2, bInPo3, bInPo4,bInPo5,g_Groupdex);Stp6:抓取錯誤代碼Errode=C_Gtrrood(g_GroupIdx);23CS運控制式庫例手冊14.原點復(fù)歸運動相關(guān)函式_StHoeog()_Hoe()_GtGoHoSttu()_AbortGoHo()范例程序GoHoe.pp內(nèi)容說明原點復(fù)歸的程序?qū)⒁勒赵c復(fù)歸參數(shù)中SYS_HOE_ONFIG的設(shè)定內(nèi)容可以使用C_StHooig()設(shè)定原點復(fù)歸參數(shù)(請參考”CS運動控制函式庫使用手冊”。利用C_GtGoHoSttu(可獲得原點復(fù)歸程序是否已經(jīng)完成另外在原點復(fù)歸運動過程中可呼叫C_AbotGoHoe()強迫停止原點復(fù)歸運動。目前CL所提供的原點復(fù)歸功能一次只能針對一張運動控制卡如需操作多張運動控制卡則需使用C_GtGoHoSttu(來確定目前進行的原點復(fù)歸運動已經(jīng)完成才能對下一張運動控制卡呼叫_Ho()進行原點復(fù)歸的動作下面為使用范例:Stp1:設(shè)定原點復(fù)歸參數(shù)SYS_HOE_ONFIG tHooig;tHooig.wode =3; // 設(shè)定原點復(fù)歸模式24CS運控制式庫例手冊往負方向做原點復(fù)歸運動tHootHooig.wDrton=1;//設(shè)定NortHooig.wSsoode=0;//tHooig.Indxout=0;tHooig.dAe=300;//stHooig.dDe=300;//stHooig.dHghSpd=10;///stHooig.dowSpd=2;///stHooig.dOstStp2:設(shè)定原點復(fù)歸參數(shù)=0;or(ORDwannl=0wChnnl<6wChnn++)_StHoeog(&tHoeog,whnn,AD_INDEX);Stp3:原點復(fù)歸,0f表示該軸不需進行原點復(fù)歸動作_Hoe(0,0,0,0,0,0,AD_INDEX);Stp4:如果有需要可使用此函式,停止原點復(fù)歸運動_AbortGoHo();Stp5利用函式傳回值判斷原點復(fù)歸運動是否已經(jīng)完成,Sttus的值若為1,表示原點復(fù)歸運動已經(jīng)完成Sttus=C_GtGoHoSttu();25CS運控制式庫例手冊15.運動暫停、持續(xù)、棄置相關(guān)函式_HodMoto()_Cototo()_AbortotoEx()范例程序tMoto.pp內(nèi)容說明_HodMoto(用來暫停目前正在執(zhí)行的運動命令C_ototo()則用來繼續(xù)執(zhí)行被暫停執(zhí)行的運動命令因此C_ototo()需與C_Hodoto()搭配使用,且需使用在相同的group中。C_AbototoE()則用來設(shè)定減速停止的時間并棄置被暫?;驁?zhí)行中的運動命令。目前若無執(zhí)行中的運動命令,呼叫_HodMoto()時的函式傳回值將為HOD_ILGEGA_ER;先前若呼叫_HodMoto()不成功,呼叫_Cototo()時的函式傳回值將為ONTI_IGEGA_ER。無論目前運動狀態(tài)為何,呼叫C_AbototoE()皆會使運動(減速)停止并清除運動命令緩沖區(qū)中的庫存命令。26CS運控制式庫例手冊16.強迫延遲執(zhí)行運動命令相關(guān)函式_IntSst()_DaMoto()范例程序DaMoto.pp內(nèi)容說明可以使用C_DaMoto()強迫延遲執(zhí)行下一個運動命令,延遲的時間以ms為計時單位;下面的范例中,在執(zhí)行完第一筆運動命令(ne)后,將延遲3000s才會再執(zhí)行下一筆運動命令。Stp1:插值時間設(shè)為INEPOON_TIERt=C_ItSst(INTEPOON_TIE,trdoig,1);Stp2:開始運動命令_Lne(10,10,0,0,0,0,g_GroupIdx);Stp3:延遲3000s才執(zhí)行下一筆命令,請觀察運動狀態(tài)_DaMoto(3000);27CS運控制式庫例手冊17.速度強制控制相關(guān)函式_StOerrdSpd()_GtOrrdRt()_OvrrdPtPpd()_GttPOrrdt()范例程序OerrdSpd.pp內(nèi)容說明_OvrrdSpd()可用來設(shè)定直線、圓弧、圓、螺線運動速度強制比例,所需的參數(shù)為更新速度為原來速度之百分比×100C_GtOrrdRt(則用來獲得目前的速度強制比例。下面為使用范例。Stp1:設(shè)定直線、圓弧、圓、螺線運動的進給速度為20/c_StedSpd(20,g_GroupIdx);_Lne(10,10,0,0,0,0,0,g_GroupIdx)Stp2:設(shè)定運動速度強制比例,也就是目前的速度將變?yōu)?0150%=30m/c_OvrSpd(150,g_GroupIdx);Stp3:讀取強制比例,date應(yīng)等于150date=C_GtOrrdet(g_Groupdx);28CS運控制式庫例手冊18.軟件過行程檢查與硬件極限開關(guān)檢查相關(guān)函式_StOerChek()_GtOrChek()_EnbeLmitSwtChk()_DsbeLmtSwthChk()_GtitSwthSttu()范例程序hkOpp內(nèi)容說明L提供軟件過行程檢查功能(或稱為軟件極限保護功能,當啟動軟件過行程檢查功能后若任一軸的行進范圍將超出工作區(qū)間系統(tǒng)將停止運動(并產(chǎn)生一錯誤記錄此時若要使系統(tǒng)恢復(fù)正常狀態(tài)必須先清除系統(tǒng)中的錯誤紀錄然后才能往反方向移動機構(gòu)參數(shù)中的dHghLitdLowit分別用來設(shè)定軟件左右極限的位置;_StOerChek()用來啟動與關(guān)閉此項功能,_GtOerChek()則用來檢查目前的設(shè)定狀態(tài)。下面為使用范例。Stp1:啟動X軸軟件過行程檢視功能_StOerChek(1,0,0,0,0,0,g_GroupIdx);Stp2:OT0~OT5的值若為1表示已設(shè)定過行程檢查功能,否則為0_GtOrChek(OT0, OT1, OT2, OT3, OT4, OT5,g_GroupIdx);29CS運控制式庫例手冊Stp3:讀取可能產(chǎn)生的錯誤訊息Errode=C_Gtrrood(g_GroupIdx);利用_GetErorod()的傳回值可判斷目前是否因系統(tǒng)位置將超出軟件極限而無法運動(因內(nèi)部已產(chǎn)生錯誤記錄傳回值若為0F301~0F306則依序代表X軸~W軸出現(xiàn)此種情形,此狀況下可依下面范例使系統(tǒng)回復(fù)正常狀態(tài)。Stp4:清除系統(tǒng)中的錯誤紀錄,使系統(tǒng)回復(fù)正常狀態(tài)_CerErro(g_Groupdex);CL也提供硬件極限開關(guān)(itSwt)檢查功能,要使極限開關(guān)能正常運作,除了必須正確設(shè)定極限開關(guān)的配線方式外,尚必須呼叫_EnbeLmitSwtChk() , 如 此 OralUpSnorMode 與OralDonSnsoMode的設(shè)定才能生效。但OralUpSnorMode與OralDonSnsoMode如設(shè)定為2,則呼叫_EnbeLitSwthhek()并無任何意義。若使用C_EbeLmitSwtChk(1),則只有在碰觸到該軸運動方向的極限開關(guān)時例如往正方向移動且觸到正向極限開關(guān)或往負方向移動且碰觸到負向極限開關(guān)),才會停止該Group之運動;若呼叫_EnbeLmtSwthChk(0),則只要碰觸到極限開關(guān)不管行進方向),皆會停止該Group之運動。利用_GetErorod()的傳回值可判斷目前是否因碰觸到極限開關(guān)而無法運動(因內(nèi)部已產(chǎn)生錯誤記錄。傳回值若為0F701~0F706,則依序代表X軸~W軸出現(xiàn)此種情形,此狀況下可依下面范例使系統(tǒng)回復(fù)正常狀態(tài)。30CS運控制式庫例手冊. 若之前呼叫:_EnbeLmitSwtChk(0)則:C_erErro()?_DsabemitSwthhck()?反方向退出mitSwth. 若之前呼叫:_EnbeLmitSwtChk(1)則:_CerErro()?反方向退出mitSwth31CS運控制式庫例手冊19.連續(xù)運動功能設(shè)定相關(guān)函式_EnbeBend()_DsbeBend()_ChkBend()范例程序Stend.pp內(nèi)容說明Velocity VelocityCommand1

Command2

Command1

Command2Time Time由圖中可以看出開啟平滑運動功能后的運動情形第一筆運動命令在達到等速段后不經(jīng)減速段,而直接加速至第二筆運動命令的等速段(如右圖之實線所示),如此命令的執(zhí)行時間較快,但各筆命令的連接處會有軌跡失真的狀況存在。呼叫_Enbeend()與_Dsabeend()可分別開啟與關(guān)閉速度連續(xù)功能呼叫C_hkBend()則可獲得目前的狀態(tài)設(shè)定若函式傳回值為0表示已開啟速度連續(xù)功能;若函式傳回值為1,則表示此時關(guān)閉速度連續(xù)功能。32CS運控制式庫例手冊20.讀取與清除錯誤狀態(tài)相關(guān)函式_Gtrrood)_CerErro()范例程序ErorSttu.pp內(nèi)容說明系統(tǒng)錯誤發(fā)生后若已排除錯誤狀況仍必須呼叫_CerEror(來清除系統(tǒng)中的錯誤記錄否則無法正常繼續(xù)執(zhí)行往后的運動通常在系統(tǒng)運作中使用者應(yīng)隨時讀取目前的錯誤代碼以檢查在系統(tǒng)運作時是否發(fā)生錯誤下面為使用范例另外也可參閱軟件過行程檢查與硬件極限開關(guān)檢查此節(jié)關(guān)于這兩個函式的使用方式。此部分與范例程序不同,使用者可以參考以下寫法去處理錯誤產(chǎn)生。if(_GtErorod(g_Groupdex)){/*在此排除錯誤狀況*/_CerErro(g_Groupdex)// 清除系統(tǒng)中的錯誤記錄}33CS運控制式庫例手冊21.齒輪齒隙與間隙補償相關(guān)函式_StopPr()_UpdtopPr()范例程序opnt.pp內(nèi)容說明L所提供的齒輪齒隙與間隙補償功能能彌補機臺在傳動時因齒輪螺桿制造上的缺陷所造成的誤差,如齒隙誤差、背隙誤差,詳細的說明請參考S運動控制函式庫使用手冊”。34CS運控制式庫例手冊22.如何完成6軸連續(xù)運動相關(guān)函式_CrtGroup)_StedSpd()_EnbeBend()_Lne()范例程序SnLne.pp內(nèi)容說明當1個grop已使用C_EbeBend()開啟連續(xù)運動功能后(滿足路徑與速度連續(xù)條件如多次呼叫C_ne()時雖能達到6軸同動要求(也就是6軸同時啟動且同時靜止)但只有前3軸也就是XYZ軸能滿足路徑與速度連續(xù)的條件而后三軸也就是U、V、W軸僅能滿足同動要求。如需6軸同運且滿足路徑與速度連續(xù)的條件則可使用2個grou第1個group負責前3軸的軌跡規(guī)劃,而第2個group負責后三軸的軌跡規(guī)劃。但為了滿足6軸同動要求,第2個group的速度可使用第2個group要求移動的距離與第1個group要求移動的距離之比值,再乘上第1個group的進給速度而換算得到。此過程的程序代碼如下,此時使用者需呼叫nAsnLne()代替使用C_ne()。Stp1:宣告nSncne函式odnSncLne(doue,doue,doue,doueu,douev,douew,douedXYZSpd);35CS運控制式庫例手冊Stp2:設(shè)定并使用兩個Groupstg_GroupIdx0=-1;ntg_GroupIdx1=-1;// tgroupprtrs_CoAlGroup();g_GroupIdx0=_CrtGroup0,1,2,-1,-1,-1,AD_INDEX);(g_GroupIdx0<0){prnt(Groupsrterror\n\n);rtur;}g_GroupIdx1=_CrtGroup3,4,5,-1,-1,-1,AD_INDEX);(g_GroupIdx1<0){prnt(Groupsrterror\n\n);rtur;}Stp3:啟用平滑運動_EnbeBend(g_GroupIdx0);_EnbeBend(g_GroupIdx1);Stp4:呼叫nSncne函式nAsnLne(10,20,30,40,50,60,10);nAsnLne(40,50,60,10,20,30,10);36CS運控制式庫例手冊Stp5:nSncLne函式定義odnSncLne(doue,doue,doue,doueu,douev,douew,douedXYZSpd){douedDstn0,dDstn1,dUVSpd;dDstn0=x*x+y*y+z*;if(dDst0&dXYZSpd){dDstn1=u*u+v*v+w*w;// 換算后三軸應(yīng)有的速度dUVSped=dXYZSpd*qrt(dDst1/dDstn0);_StedSpd(dXYZSpd,g_GroupIdx0);// 由group的定義得知,第1個group(也就是g_Groupdex0)會將此// 命令由前三軸輸出_Lne(x,,,0,0,0,g_GroupIdx0);_StedSpd(dUVSped,g_GroupIdx1);// 由group的定義得知,第2個group(也就是g_Groupdex1)會將此// 命令由后三軸輸出_Lne(u,v,w,0,0,0,g_GroupIdx1);}37CS運控制式庫例手冊}38CS運控制式庫例手冊23.編碼器Ecoer計數(shù)值觸發(fā)中斷服務(wù)函式功能相關(guān)函式_StENoutnE()_StENopu()_EnbeENCopggr()_DsbeENCoprggr()_StENIputt()_GtNue()范例程序ENopr.pp內(nèi)容說明L所提供的編碼器計數(shù)值觸發(fā)中斷服務(wù)函式功能可設(shè)定編碼器計數(shù)值的比較值,在開啟此項功能后,當編碼器的計數(shù)值等于設(shè)定的比較值時(可以使用_GtNue()讀取編碼器的計數(shù)值),CL將自動呼叫使用者串接的中斷服務(wù)函式。下面為使用范例。Stp1:宣告中斷服務(wù)函式od_tdlEN_IS_unto(ENINT_EX*ptNTSou);Stp2:串接中斷服務(wù)函式_StENoutnE(EN_IS_Funto,AD_INDEX);Stp3:設(shè)定比較值為10000puss_StENopu(20000,HANNE_INDEX,AD_INDEX);39CS運控制式庫例手冊Stp4:開啟計數(shù)值觸發(fā)中斷服務(wù)函式功能_EnbeENCopggr(HANNE_INDEX,AD_INDEX);_Lne(100,0,0,0,0,0,g_GroupIdx);Stp5:定義中斷服務(wù)例程od_tdlEN_IS_unto(ENINT_EX*ptNTSou){if(ptINSour-OP0)// 判斷是否因第0個hnnl的比較條件成立而觸發(fā)// 放棄目前正在執(zhí)行與運動緩沖區(qū)中所有的運動命令_AbortotoEx(0,g_GroupIdx);EN_IS;_DsbeENCopTrggr(HANNE_INDEX)// 關(guān)閉計數(shù)值觸發(fā)中斷功能}上面的范例顯示在開啟編碼器計數(shù)值觸發(fā)中斷服務(wù)函式功能后,將進行直線運動,待編碼器的計數(shù)術(shù)值等于20000pues時,將停止未完成的直線運動。_AbortotoEx第一參數(shù)設(shè)為0使減速時間為零可以讓停止后編碼器位置接近20000。40CS運控制式庫例手冊24.閂鎖Lac)編碼器計數(shù)值與INDEX訊號觸發(fā)中斷服務(wù)函式功能相關(guān)函式_StENoutnE()_GtNue()_StENtp(()_StENtSour()_EnbeENIndxrgger()范例程序GtNt.pp內(nèi)容說明L 所提供的閂鎖(t)編碼器計數(shù)值功能,可使用_StENtSour(指定觸發(fā)條件來源),在滿足觸發(fā)條件與閂鎖模式后使用_StENtp()設(shè)定觸發(fā)模式,可將編碼器的計數(shù)值紀錄在閂鎖緩存器內(nèi),使用C_GtNathVu()可以讀取閂鎖緩存器內(nèi)的紀錄值。下面為使用范例。Stp1:設(shè)定編碼器計數(shù)值閂鎖模式EN_TIG_IST 第一次滿足觸發(fā)條件即ath計數(shù)值不再變動EN_TIG_AST 觸發(fā)條件滿足時即ath計數(shù)值且隨條件一再滿足即一再ath新的計數(shù)值_StENtTp(EN_TIG_AST,HANNE_INDEX,AD_INDEX);Stp2:設(shè)定編碼器觸發(fā)源。共有15種觸發(fā)來源(條件)可做為閂鎖計數(shù)值的條件。設(shè)定時可同時取多個條件的聯(lián)集,此時選取編碼器ndex訊號為觸發(fā)來源(條件)_StENtSour(N_TIG_INDEX0,HANNE_INDEX,AD_INDEX);41CS運控制式庫例手冊由上面的范例可以看出使用編碼器INDEX訊號做為觸發(fā)來源(條件為了在編碼器INDEX訊號發(fā)生后,立即使用_GtENtVaue()讀取閂鎖緩存器內(nèi)的紀錄值,可以使用編碼器INDEX訊號觸發(fā)中斷函式功能。要使用此項功能首先需串接自訂的中斷服務(wù)函式并開啟。Stp3:宣告中斷服務(wù)函式od_tdlEN_IS_unto(ENINT_EX*ptNTSou);Stp3:串接中斷服務(wù)函式_StENoutnE(EN_IS_Funto,AD_INDEX);Stp4:開啟編碼器ndx訊號觸發(fā)中斷服務(wù)函式功能_EnbeENIndxrgger(HANNE_INDEX,AD_INDEX);Stp4:定義中斷服務(wù)例程od_tdlEN_IS_unto(ENINT_EX*ptNTSou){if(ptINTour-INDEX0// 判斷是否由INDEX訊號所觸發(fā){// 讀取閂鎖緩存器內(nèi)的紀錄值_GtNthu(&Lathu,HANNE_INDEX,AD_INDEX);}}更詳細的說明請參考”MCS運動控制函式庫使用手冊。42CS運控制式庫例手冊25.近端接點LocalI訊號控制與觸發(fā)中斷服務(wù)函式功能相關(guān)函式_StSroO();_StSroO()_EnbePod()_DsbePod()_EnbePod()_GtitSwthSttu()_GtHoSnorSttu()_StIOoutnEx()_StIOggrp()_EnbeLIOggr()范例程序IOggpp內(nèi)容說明L提供對近端接點(olI/O包括rvoo/ofpotonrdy輸出訊號的控制函式,另外也提供對oenor與rdwremitwth輸入訊號的檢視函式。某些極限開關(guān)輸入接點的訊號能觸發(fā)使用者自訂的中斷服務(wù)函式可以觸發(fā)中斷服務(wù)函式的極限開關(guān)包括:.T-601/605/6000/600:共7點hnnl0mitSwth+hnnl1mitSwth+hnnl2mitSwth+43CS運控制式庫例手冊hnnl3mitSwth+hnnl4mitSwth+hnnl5mitSwth+hnnl1mitSwth-.T-400/405/4000/400:共7點hnnl0mitSwth+hnnl1mitSwth+hnnl2mitSwth+hnnl3mitSwth+hnnl0mitSwth-hnnl1mitSwth-hnnl2mitSwth-使用輸入接點訊號觸發(fā)中斷服務(wù)函式的步驟如下:Stp1:使用_StIOoutnE()串接自訂的中斷服務(wù)函式需先設(shè)計自訂的中斷服務(wù)函式,函式的宣告必須遵循下列的函式原型:tpdefod(_tdl*IOIS_EX)IOINT_X*)例如自訂的函式可設(shè)計如下:_tdlLIOFunto(IOINT_EX*ptNTSou){44CS運控制式庫例手冊// 判斷是否因碰觸到hnnl0mitwth而觸發(fā)此函式if(ptINTSou-DI0){// 碰觸到hnnl0mitwth+時的處理程序}// 判斷是否因碰觸到hnnl1mitwth而觸發(fā)此函式if(ptINTSou-DI1){// 碰觸到hnnl1mitwth+時的處理程序}}不可以使用seif(ptINTSou-DI1)”類似的語法,因ptINTSou-DI0與ptNTSour-DI1有可能同時不為0。接著使用C_StIOoutnEx(LIOFunto)串接自訂的中斷服務(wù)函式。當自訂函式被觸發(fā)執(zhí)行時,可以利用傳入自訂函式、被宣告為IOINT_X的ptNTSoue參數(shù),判斷此刻自訂函式被呼叫是因碰觸到哪一個輸入接點所引起。IOINT_X的定義如下:tpdeftut_IO_INT_X{YTEDI0;YTEDI1;YTEDI2;45CS運控制式庫例手冊YTEDI3;YTEDI4;YTEDI5;YTEDI6;YTETIE;}IOINT_EX;IOINT_X中各字段的對應(yīng)接點定義如下:T-601/605/6000/6005T-400/405/4000/4005DI0hnnl0mitSwt+hnnl0mitSwt+DI1hnnl1mitSwt+hnnl1mitSwt+DI2hnnl2mitSwt+hnnl2mitSwt+DI3hnnl3mitSwt+hnnl3mitSwt+DI4hnnl4mitSwt+hnnl0mitSwt-DI5hnnl5mitSwt+hnnl1mitSwt-DI6hnnl0mitSwt-hnnl2mitSwt-這些字段的值如果不為0,表示該字段的對應(yīng)接點目前有訊號輸入;例如在LIOFunto()中所輸入的參數(shù)ptNTSour->DI2如果不為0表示碰觸到annl2mitwth。Stp2:使用_StIOggrp()設(shè)定觸發(fā)型態(tài)觸發(fā)型態(tài)可設(shè)定為上緣(sngEdg)觸發(fā)下緣(lngEdg觸發(fā)或是轉(zhuǎn)態(tài)(vl46CS運控制式庫例手冊hng)觸發(fā)。C_StIOggrp()的輸入?yún)?shù)可為:IO_INT_ISE 上緣觸發(fā)(Dut)IO_INT_L 下緣觸發(fā)IO_INT_EVEL 轉(zhuǎn)態(tài)觸發(fā)Stp3最后使用_EnbeLIOggr()開啟”輸入接點訊號觸發(fā)中斷服務(wù)函式功能。也可以使用C_DsbeLIOggr()關(guān)閉此項功能47CS運控制式庫例手冊26.定時器計時終了觸發(fā)中斷服務(wù)函式功能相關(guān)函式_StIOoutnEx();_Ster()_Enbeer()_Enbeerggr()范例程序erggpp內(nèi)容說明利用CL可以設(shè)定TC運動控制卡上24ts定時器的計時時間在啟動計時功能并在計時終了時(也就是定時器的計時值等于設(shè)定值),將觸發(fā)使用者自訂的中斷服務(wù)函式并重新開始計時此過程將持續(xù)至關(guān)閉此項功能為止要使用”定時器計時終了觸發(fā)中斷服務(wù)函式功能的步驟如下:Stp1:使用_StIOoutnE()串接自訂的中斷服務(wù)函式如未曾呼叫過C_StIOoutnEx()請參考前面對此步驟的說明請參考”25.近端接點(oal/O)訊號控制與觸發(fā)中斷服務(wù)函式功能”此章節(jié));如已呼叫過_StIOoutnEx(則只需在自訂的函式中加入對傳入?yún)?shù)(ptINTSou)”定時器計時終了字段(TIE的判斷即可,請參考下例:tdlLIOFunto(IOINT_EX*ptNTSou){// 判斷是否因定時器計時終了而觸發(fā)此函式if(ptINTSou-TIE)48CS運控制式庫例手冊{// 定時器計時終了時的處理程序}Stp2使用設(shè)定_Ster()定時器之計時時間計時單位為Sstmok(25n)Stp3:使用_Enbeerggr()開啟計時終了觸發(fā)中斷服務(wù)函式功能Stp4:使用_Enbeer(開啟定時器計時功能49CS運控制式庫例手冊27.WachDog功能相關(guān)函式_StIOoutnEx()_Ster()_SttDoger()_SttDogtProd)_Enbeer()_EnbetDoger()范例程序tDogpp內(nèi)容說明當使用者開啟wthdog功能后必須在wthdog計時終了前也就是wthdog的計時值等于設(shè)定的比較值前),使用C_rehtDogr()清除wthdog的計時內(nèi)容否則一但wthdog的計時值等于設(shè)定的比較值時將發(fā)生rt硬件的動作。使用wthdog的步驟如下:Stp1使用設(shè)定C_Ster()定時器之計時時間計時單位為Sstmok(25n)。Stp2:C_SttDoger()設(shè)定wthdog定時器比較值thdog定時器比較值為16-t數(shù)值,使用定時器之計時時間作為teae。也就是說如果使用下列的程序代碼:_Ster(1000000,AD_INDEX);_SttDoger(2000,AD_INDEX);50CS運控制式庫例手冊此時表示第0張卡的wthdog定時器的比較值設(shè)定為(25s×1000000)×2000=50。Stp3:使用_SttDogtPod(設(shè)定rt訊號持續(xù)時間可透過本函式可規(guī)劃因wthdog功能所產(chǎn)生rt硬件動作的持續(xù)時間設(shè)定單位為stmok(25)。Stp4:使用_Enbeer(開啟定時器計時功能Stp5:必須在wthdog計時終了前,使用C_rehtDogr()清除wthdog的計時內(nèi)容。使用者可搭配定時器計時終了觸發(fā)中斷服務(wù)函式”功能,在wthdogrt硬件動作前先以警示,并在計時中斷服務(wù)函式內(nèi)進行必要的處理。51CS運控制式庫例手冊28.設(shè)定與讀取ReoteIO輸出、入接點訊號相關(guān)函式_EnbeRIOStoto()_EnbeRIOSveoto()_GtIOputu()_StIOOutputu()范例程序IOt.pp內(nèi)容說明每張TC運動控制卡擁有兩個oteI/O卡的接頭(稱為oteI/OSt0與oteI/OSt1統(tǒng)稱為oteI/Otr端)可同時控制兩張oteI/O卡(或稱為oteI/OSve端)。每張oteI/O卡各提供64個輸出接點與64個輸入接點。使用EbeRIOStoto()與EbeRIOSveoto()啟動數(shù)據(jù)傳輸功能,下面為使用范例,此時開啟第一張卡(編號為0)oteI/OSt0與他的Sve端的數(shù)據(jù)傳輸功能。EbeRIOStoto(IO_SET0,AD_INDEX);EbeRIOSveoto(IO_SET0,AD_INDEX);在完成初始設(shè)定后用低電位(EO-)接觸接點,_GtIOputu()即可讀取輸入接點的訊號狀態(tài);也可以使用_StIOOutputu()設(shè)定輸出接點的訊號狀態(tài)。52CS運控制式庫例手冊29.讀取ReoeIO訊號傳輸狀態(tài)相關(guān)函式_EnbeRIOStoto()_EnbeRIOSveoto()_GtIOsSttu()_GtIOtrttu()_GtIOSavSttu()范例程序IOSttu.pp內(nèi)容說明使用_GtIOsSttu()可以隨時監(jiān)控各oteI/OSt的數(shù)據(jù)傳輸狀態(tài)。當出現(xiàn)數(shù)據(jù)傳輸錯誤的情況時,可以使用C_GtIOtrSttu()與_GtIOSavSttu(所獲得的信息獲知傳輸錯誤訊息是來自運動控制卡或來自oteIO卡。用 _GetIOsSttu() 、 C_GtIOtrSttu() 與_GtIOSavSttu(所讀取的狀態(tài)如果為1表示處于正常數(shù)據(jù)傳輸狀態(tài)如果為0表示處于數(shù)據(jù)傳輸錯誤。下面為使用范例。ODwsSttu;// 讀取傳輸狀態(tài)_GtIOsSttu(wrSttu, IO_SE0,AD_INDEX);53CS運控制式庫例手冊wsSttus如果為1表示處于正常數(shù)據(jù)傳輸狀態(tài)如果為0表示處于數(shù)據(jù)傳輸錯誤。54CS運控制式庫例手冊30.ReoteIO輸入接點訊號觸發(fā)中斷服務(wù)函式相關(guān)函式_EnbeRIOStoto()_EnbeRIOSveoto()_StIOoutnE()_StIOggrp()_EnbeRIOIputggr()范例程序IOIputpp內(nèi)容說明每一張oteIO卡前四個輸入接點(IO_DI0、IO_DI1、IO_DI2、IO_DI3)的訊號可觸發(fā)使用者自訂的中斷服務(wù)函式使用輸入接點訊號觸發(fā)中斷服務(wù)函式”的步驟如下:Stp1:使用_StIOoutneE()串接自訂的中斷服務(wù)函式需先設(shè)計自訂的中斷服務(wù)函式,函式的宣告必須遵循下列的定義:tpdefod(_tdl*IOIS_EX(IOIN_EX*)例如自訂的函式可設(shè)計如下:_tdlRIOFunto(IOINT_X*ptNTSour){55CS運控制式庫例手冊// 判斷是否由St0的DgtlIput0所觸發(fā)if(ptINTSou-SE0_DI0){// DgtlIput0訊號改變時的處理程序}}接著使用C_StIOoutnE()串接自訂的中斷服務(wù)函式,此函式的原型如下,其中pnIORoutne為使用者自訂中斷服務(wù)函式的函式指標,例如RIOFunto:nt_StIOoutneE(IOIS_EXpnIOoutn,ODwrdIdex)Stp2:設(shè)定oteI/ODgtlIput訊號觸發(fā)中斷服務(wù)函式的方式使用C_StIOggrp()設(shè)定oteI/ODgtlIput訊號觸發(fā)中斷服務(wù)函式的方式為「前緣觸發(fā)「后緣觸發(fā)」或「轉(zhuǎn)態(tài)觸發(fā)。Stp3:使用C_EbeRIOIputgger()開啟輸入接點訊號觸發(fā)中斷服務(wù)函式的功能下面為使用_EnbeIOInputggr()的范例此時開啟oteI/OSt0輸入接點訊號觸發(fā)中斷服務(wù)函式的功能。C_EbeRIOIputgger(IO_SE0,AD_INDEX);56CS運控制式庫例手冊31.ReoteIO數(shù)據(jù)傳輸錯誤觸發(fā)中斷服務(wù)函式相關(guān)函式_EnbeRIOStoto()_EnbeRIOSveoto()_StIOoutnE()_EnbeRIOsggr()范例程序IOEropp內(nèi)容說明除了可以使用_GetIOsSttu()、_GtIOstrSttu()與_GtIOSavSttu(隨時監(jiān)控oteIO的數(shù)據(jù)傳輸狀態(tài)外也可在數(shù)據(jù)傳輸錯誤時觸發(fā)使用者自訂的中斷服務(wù)函式此項功能提供使用者實時處理數(shù)據(jù)傳輸錯誤的現(xiàn)象。此項功能的使用步驟如下:Stp1:使用_StIOoutneE()串接自訂的中斷服務(wù)函式需先設(shè)計自訂的中斷服務(wù)函式,函式的宣告必須遵循下列的定義:tpdefod(_tdl*IOIS_EX(IOIN_EX*)例如自訂的函式可設(shè)計如下:_tdlRIOFunto(IOINT_X*ptNTSour){57CS運控制式庫例手冊// 判斷是否St0發(fā)生數(shù)據(jù)傳輸錯誤if(ptINTSou-SE0_I){// 數(shù)據(jù)傳輸錯誤發(fā)生時的處理程序}}接著使用C_StIOoutnE()串接自訂的中斷服務(wù)函式,此函式的原型如下其中pnIORoutne為使用者自訂中斷服務(wù)函式的函式指標例如RIOFunto。nt_StIOoutneE(IOIS_EXpnIOoutn,ODwrdIdex)其中pnIORoutne為使用者自訂中斷服務(wù)函式的函式指標,例如RIOFunton。Stp2使用_EnbeIOrrggr(開啟數(shù)據(jù)傳輸錯誤觸發(fā)中斷服務(wù)函式功能下面為使用_EnbeRIOIputggr()的范例此時開啟oteI/OSt0數(shù)據(jù)傳輸錯誤觸發(fā)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論