《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 利用RTSI總線實(shí)現(xiàn)運(yùn)動(dòng)控制和數(shù)據(jù)采集之間的同步
利用RTSI總線實(shí)現(xiàn)運(yùn)動(dòng)控制和數(shù)據(jù)采集之間的同步
中國(guó)自動(dòng)化網(wǎng)
摘要: 為了提高測(cè)量精度,,許多測(cè)試系統(tǒng)要求在連續(xù)運(yùn)動(dòng)中實(shí)時(shí)同步進(jìn)行數(shù)據(jù)采集,。根據(jù)同步工作原理,利用RTSI總線技術(shù)和LabWindows/CVl編程實(shí)現(xiàn)了運(yùn)動(dòng)控制和數(shù)據(jù)采集之間的同步,,實(shí)驗(yàn)結(jié)果表明該方法在提高測(cè)試精度方面是有效的,。
Abstract:
Key words :

摘 要:為了提高測(cè)量精度,許多測(cè)試系統(tǒng)要求在連續(xù)運(yùn)動(dòng)中實(shí)時(shí)同步進(jìn)行數(shù)據(jù)采集,。根據(jù)同步工作原理,,利用RTSI總線技術(shù)和LabWindows/CVl編程實(shí)現(xiàn)了運(yùn)動(dòng)控制和數(shù)據(jù)采集之間的同步,實(shí)驗(yàn)結(jié)果表明該方法在提高測(cè)試精度方面是有效的,。

關(guān)鍵詞:同步;RTSI總線;運(yùn)動(dòng)控制;數(shù)據(jù)采集

1 引言

  許多測(cè)試系統(tǒng)要求在連續(xù)運(yùn)動(dòng)的同時(shí)能實(shí)時(shí)進(jìn)行數(shù)據(jù)采集,。如果測(cè)試過(guò)程不連續(xù),或者測(cè)試位置在前而采集在后,,二者之間不能同步,,將不可避免地產(chǎn)生誤差。為了提高測(cè)量精度,,運(yùn)動(dòng)控制和數(shù)據(jù)采集必須實(shí)現(xiàn)同步,。目前,,美國(guó)NI公司提供的PCI總線E系列采集卡">數(shù)據(jù)采集卡和運(yùn)動(dòng)控制卡都嵌入了RTSI(Real- Time System Integration)總線,它可以滿足需要精確同步和實(shí)時(shí)數(shù)據(jù)采集處理的測(cè)試系統(tǒng)的要求,。本文主要介紹如何利用RTSI總線編程實(shí)現(xiàn)運(yùn)動(dòng)控制和數(shù)據(jù)采集之間的同步,。

2 RTSI總線

  RISI總線是實(shí)時(shí)系統(tǒng)集成總線,它是一種專用高速數(shù)字總線,,專門(mén)提供NI產(chǎn)品(包括圖像采集和數(shù)據(jù)采集產(chǎn)品)之間的高速互連,。RTSI總線包括7根觸發(fā)線,用于創(chuàng)建NI的測(cè)量,、圖像采集和運(yùn)動(dòng)控制設(shè)備以及接口板卡之間靈活的同步關(guān)系,。通過(guò)軟件設(shè)置可將其他觸發(fā)信號(hào)路由到RTSI總線上,也可以將 RTSI總線信號(hào)路由到其分觸發(fā)信號(hào)線上作為觸發(fā)時(shí)鐘,,實(shí)現(xiàn)l路信號(hào)驅(qū)動(dòng)多個(gè)設(shè)備,,達(dá)到同步的目的。通過(guò)RTSI總線,,可用1個(gè)公共的觸發(fā)或定時(shí)事件實(shí)現(xiàn)幾個(gè)功能事件同步,。RTSI總線的典型應(yīng)用包括觸發(fā)圖像采集、基于運(yùn)動(dòng)事件的數(shù)據(jù)采集測(cè)量,、捕獲基于外部事件到運(yùn)動(dòng)控制器的當(dāng)前運(yùn)動(dòng)位置等,。

  對(duì)于PCI總線E系列數(shù)據(jù)采集卡,有15種信號(hào)與RTSI總線相連,,包括時(shí)基信號(hào),、數(shù)據(jù)采集時(shí)鐘、D/A輸出時(shí)鐘,、板上通用計(jì)數(shù)器信號(hào),、外部PFI(可編程輸入)信號(hào)等,如圖1所示,。

 

3 運(yùn)動(dòng)控制與數(shù)據(jù)采集的同步

  測(cè)試系統(tǒng)中采取的同步方式一般有二種:一種是運(yùn)動(dòng)控制卡控制電機(jī)運(yùn)動(dòng)到某個(gè)指定位置,,數(shù)據(jù)采集卡能實(shí)時(shí)采集該位置上的數(shù)據(jù),這種方式稱為中斷;另一種同步方式是如果電機(jī)運(yùn)動(dòng)到某個(gè)位置時(shí)數(shù)據(jù)采集卡采集到滿足某種條件的信號(hào),,則需要記錄電機(jī)當(dāng)前的運(yùn)動(dòng)位置,這種方式稱為捕獲,。本文主要討論中斷同步方式,。

  3.1 中斷方式

  中斷分為絕對(duì)位置中斷、相對(duì)位置中斷及周期性位置中斷,。絕對(duì)位置中斷是指當(dāng)電機(jī)運(yùn)動(dòng)到某絕對(duì)位置時(shí)運(yùn)動(dòng)控制卡將產(chǎn)生外部中斷信號(hào);相對(duì)位置中斷是指當(dāng)電機(jī)的運(yùn)動(dòng)位置相對(duì)于允許電機(jī)產(chǎn)生中斷時(shí)的位置之差滿足設(shè)定的條件時(shí)產(chǎn)生中斷信號(hào);求模位置中斷是指每相對(duì)于某個(gè)設(shè)定的位置都將產(chǎn)生1個(gè)中斷信號(hào),。因此可以根據(jù)測(cè)試系統(tǒng)的不同需要決定采取什么樣的中斷方式

  3.2 同步的原理

  當(dāng)運(yùn)動(dòng)控制卡控制電機(jī)運(yùn)動(dòng)到某個(gè)位置時(shí),,編碼器上返回的位置信號(hào)一旦符合設(shè)定的位置條件,,將發(fā)出1個(gè)中斷信號(hào),。該信號(hào)可作為數(shù)據(jù)采集卡采集信號(hào)的觸發(fā)條件,使采集卡能實(shí)時(shí)采集所需數(shù)據(jù),。運(yùn)動(dòng)控制卡和數(shù)據(jù)采集卡可以通過(guò)RTSI總線實(shí)現(xiàn)二者之間的同步,。運(yùn)動(dòng)控制卡產(chǎn)生的中斷信號(hào)通過(guò)內(nèi)部電路傳送到 RTSI輸出引腳,目前RTSI輸出引腳主要有7個(gè)(RTSIO-RTSl6),。RPSI輸出引腳可通過(guò)外部電纜與數(shù)據(jù)采集卡的RTSI引腳相連,。采集卡的RTSI引腳也可以通過(guò)內(nèi)部電路與其控制信號(hào)(見(jiàn)圖1)相連,從而實(shí)現(xiàn)二者之間的同步,。

  當(dāng)運(yùn)動(dòng)控制卡控制電機(jī)運(yùn)動(dòng)到某個(gè)指定位置時(shí)將產(chǎn)生中斷信號(hào),,該中斷輸出信號(hào)可連接到運(yùn)動(dòng)控制卡的RTSI引腳,運(yùn)動(dòng)控制卡的RTSI引腳與數(shù)據(jù)采集卡的RTSI引腳相連,。而在采集卡內(nèi),,RTSI引腳信號(hào)作為系統(tǒng)的掃描時(shí)鐘,與采樣時(shí)鐘信號(hào)相連,,因此運(yùn)動(dòng)控制卡每產(chǎn)生1個(gè)中斷信號(hào),,數(shù)據(jù)采集卡便進(jìn)行1次通道掃描,讀取各個(gè)傳感器上采集的數(shù)據(jù),。該數(shù)據(jù)將存放在設(shè)置的緩沖區(qū)中,。而一旦緩沖區(qū)中的數(shù)據(jù)已滿,則通過(guò)多線程的方式顯示到屏幕上,。這樣就實(shí)現(xiàn)了運(yùn)動(dòng)控制和數(shù)據(jù)采集之間的同步,。

4 編程實(shí)現(xiàn)

  運(yùn)動(dòng)控制與數(shù)據(jù)采集的同步控制流程如圖2所示。

 

  筆者采用LabWindows/CVI軟件對(duì)RTSl總線,、數(shù)據(jù)采集和運(yùn)動(dòng)控制進(jìn)行編程,,其函數(shù)庫(kù)由NI-DAQ和NI-Motion提供。其中 NI-Motion函數(shù)庫(kù)可以將運(yùn)動(dòng)控制與所有應(yīng)用軟件相結(jié)合,,并可通過(guò)數(shù)字觸發(fā)輸入或NI運(yùn)動(dòng)控制卡上的斷點(diǎn)輸出,,使運(yùn)動(dòng)與測(cè)量硬件同步運(yùn)行。RTSI 總線則將這些觸發(fā)與中斷信號(hào)連接到其他卡上,,此總線功能由軟件設(shè)定,。通過(guò)“Measurement&Automation Explorer” (MAX)設(shè)備管理工具,可以配置各設(shè)備的硬件屬性,,為每個(gè)設(shè)備分配1個(gè)設(shè)備編號(hào),,在編程時(shí)作為查找設(shè)備的標(biāo)識(shí)。下面是編程所需要的主要函數(shù),。

 ?。?)連接中斷信號(hào)和RTSI總線信號(hào)函數(shù)

  flex_select_signal(boardID,destination,source),其中boardlD為MAX分配的數(shù)據(jù)采集卡的 ID號(hào);destination目的信號(hào),為RTSI某引腳,如NIMC_RT-SI[0..7];source源信號(hào),為某一中斷信號(hào)的名稱,,如 NIMC_BREAKPOINT[1..4],。

  (2)設(shè)置運(yùn)動(dòng)參數(shù)和中斷信號(hào)模式函數(shù)

  設(shè)置運(yùn)動(dòng)速度函數(shù) flex_load_velocity(boardlD,,axisOrVectorSpace,,velocity,inputVector),,其中ax- isOrVectorSpace為選擇軸編號(hào)或空間坐標(biāo);in-putVector參數(shù)對(duì)脫離主機(jī)運(yùn)行的程序有用,,一般設(shè)成OXFF。

  設(shè)置加速度/減速度函數(shù) flex_load_acceleration(boardID,,axisOrVectorSpace,,accelerationType,accel- eration,,inputVector),,其中accelerationType為選擇加載的方式,即加速度,、減速度還是同時(shí)加載,。

  設(shè)置S-Curve時(shí)間函數(shù)flex_load_velocity(boar- dID,axisOrVectorSpace,,sCurveTime,,inputVector),其中sCurveTime為從0加速到恒定速度或從恒定速度減速到0時(shí)的時(shí)間,單位為采樣時(shí)間的整數(shù)倍,。范圍為l~32 767,。

  設(shè)置運(yùn)動(dòng)模式函數(shù)flex_set_op_mode(boardID,axisOrVectorSpace,operationMode),。

  設(shè)置運(yùn)動(dòng)的目標(biāo)位置flex_load_target_pos(boardID,,axis,targetPosition,,inputVector),。

  設(shè)置產(chǎn)生中斷的方式函數(shù)flex_config- ure_breakpoint(boardID,axisOrEncoder,,enableMode,,actionOnBreakpoint,operation),,其中actionOnBreak-point為中斷時(shí)電平的高低,,operation為選擇單點(diǎn)中斷方式或緩沖中斷方式,由運(yùn)動(dòng)控制卡的信號(hào)決定,。

  (3)設(shè)置中斷信號(hào)產(chǎn)生位置和打開(kāi)中斷函數(shù)

  設(shè)置中斷信號(hào)產(chǎn)生位置函數(shù) flix_load_pos_bp(boardID,axisOrEncoder,,breakpointPosition.inputVector),,其中breakpointPosition為中斷位置(即采樣點(diǎn))的起始位置,下一次產(chǎn)生中斷的位置為上一次產(chǎn)生中斷的位置加上采樣間距,。打開(kāi)中斷函數(shù) flex_enable_breakpoint(),。

  (4)啟動(dòng)電機(jī)運(yùn)動(dòng)函數(shù)

  啟動(dòng)電機(jī)運(yùn)動(dòng)函數(shù)flex_start(boardID,,ax-isOrVectorSpace,,axisOrVSMap),其中axisOrVSMap為可選擇單軸運(yùn)動(dòng)或多軸同時(shí)運(yùn)動(dòng)。

 ?。?)檢查各種狀態(tài)函數(shù)

  檢查運(yùn)動(dòng)狀態(tài),,讀取運(yùn)動(dòng)是否結(jié)束函數(shù)flex_check_move_complete_status()。檢測(cè)中斷狀態(tài)函數(shù)flex_read_axis_status_rtn0(),。從通信狀態(tài)寄存器中讀取通信狀態(tài)函數(shù)flex_read_csr_rtn(),。

5 結(jié)束語(yǔ)

  利用RTSI可為各種測(cè)控系統(tǒng)應(yīng)用提供基于硬件的高速同步能力,本文討論的這種基于RTSI的運(yùn)動(dòng)控制和數(shù)據(jù)采集之間的同步方法采用Lab-Windows/CVI編程實(shí)現(xiàn),,可應(yīng)用到在運(yùn)動(dòng)過(guò)程中實(shí)時(shí)采集數(shù)據(jù)的測(cè)控系統(tǒng)中,,能獲得很好的測(cè)量精度。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。