<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 利用RTSI總線(xiàn)實(shí)現運動(dòng)控制和數據采集的同步

利用RTSI總線(xiàn)實(shí)現運動(dòng)控制和數據采集的同步

作者: 時(shí)間:2009-06-19 來(lái)源:網(wǎng)絡(luò ) 收藏

  1 引言

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

  2

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

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

利用RTSI總線(xiàn)實(shí)現運動(dòng)控制和數據采集的同步

  3 運動(dòng)控制與數據采集的同步

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

  3.1 中斷方式

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

  3.2 同步的原理

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

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

  4 編程實(shí)現

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

運動(dòng)控制與數據采集的同步控制流程

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

  (1)連接中斷信號和RTSI總線(xiàn)信號函數

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

  (2)設置運動(dòng)參數和中斷信號模式函數

  設置運動(dòng)速度函數flex_load_velocity(boardlD,axisOrVectorSpace,velocity,inputVector),其中ax-isOrVectorSpace為選擇軸編號或空間坐標;in-putVector參數對脫離主機運行的程序有用,一般設成OXFF。

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

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

  設置運動(dòng)模式函數flex_set_op_mode(boardID,axisOrVectorSpace,operationMode)。

  設置運動(dòng)的目標位置flex_load_target_pos(boardID,axis,targetPosition,inputVector)。

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

  (3)設置中斷信號產(chǎn)生位置和打開(kāi)中斷函數

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

  (4)啟動(dòng)電機運動(dòng)函數

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

  (5)檢查各種狀態(tài)函數

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

  5 結束語(yǔ)

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



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>