欧美韩国日本桃色,一区二区三区国产私人毛片,精品极品精品,亚洲一区人妻,久久久久久久久亚洲免费,青娱乐91,亚洲情涩,久久久成人毛片,日本欧美不卡二区在线

首頁 新聞 工控搜 論壇 廠商論壇 產(chǎn)品 方案 廠商 人才 文摘 下載 展覽
中華工控網(wǎng)首頁
  P L C | 變頻器與傳動(dòng) | 傳感器 | 現(xiàn)場檢測儀表 | 工控軟件 | 人機(jī)界面 | 運(yùn)動(dòng)控制
  D C S | 工業(yè)以太網(wǎng) | 現(xiàn)場總線 | 顯示調(diào)節(jié)儀表 | 數(shù)據(jù)采集 | 數(shù)傳測控 | 工業(yè)安全
  電 源 | 嵌入式系統(tǒng) | PC based | 機(jī)柜箱體殼體 | 低壓電器 | 機(jī)器視覺
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(六):us級(jí)高速交互之C++,為智能裝備提速
深圳市正運(yùn)動(dòng)技術(shù)有限公司
收藏本文     查看收藏

強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750

MotionRT750是正運(yùn)動(dòng)技術(shù)首家自主自研的x86架構(gòu)Windows系統(tǒng)或Linux系統(tǒng)下獨(dú)占確定CPU的強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核。

MotionRT750.png

該方案采用獨(dú)占確定CPU內(nèi)核技術(shù)實(shí)現(xiàn)超強(qiáng)性能的強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制。它將核心的運(yùn)動(dòng)控制、機(jī)器人算法、數(shù)控(CNC)及機(jī)器視覺等強(qiáng)實(shí)時(shí)的任務(wù),集中運(yùn)行在1-2個(gè)專用CPU核上。與此同時(shí),其余CPU核則專注于處理Windows/Linux相關(guān)的非實(shí)時(shí)任務(wù)。

此外集成MotionRT750 Runtime實(shí)時(shí)層與操作系統(tǒng)非實(shí)時(shí)層,并利用高速共享內(nèi)存進(jìn)行數(shù)據(jù)交互,顯著提升了運(yùn)動(dòng)控制與上層應(yīng)用間的通信效率及函數(shù)執(zhí)行速度,最終實(shí)現(xiàn)更穩(wěn)定、更高效的智能裝備控制,確保了運(yùn)動(dòng)控制任務(wù)的絕對(duì)實(shí)時(shí)性與系統(tǒng)穩(wěn)定性,特別適用于半導(dǎo)體、電子裝備等高速高精的應(yīng)用場合。

MotionRT750支持產(chǎn)品.png

MotionRT750應(yīng)用優(yōu)勢:

1.跨平臺(tái)兼容性:支持Windows/Linux系統(tǒng),適配不同等級(jí)CPU。

2.開發(fā)靈活性:提供多語言編程接口,便于二次開發(fā)與功能定制。

3.實(shí)時(shí)性提升:通過CPU內(nèi)核獨(dú)占機(jī)制與高效LOCAL接口,實(shí)現(xiàn)2-3us指令交互周期,較傳統(tǒng)PCI/PCIe方案提速近20倍。

4.擴(kuò)展能力強(qiáng)化:多卡多EtherCAT通道架構(gòu)支持254軸運(yùn)動(dòng)控制及500usEtherCAT周期。

5.系統(tǒng)穩(wěn)定性:32軸125usEtherCAT冗余架構(gòu)消除單點(diǎn)故障風(fēng)險(xiǎn),保障連續(xù)生產(chǎn)。

6.安全可靠性:不懼Windows系統(tǒng)崩潰影響,藍(lán)屏?xí)r仍可維持急停與安全停機(jī)功能有效,確保產(chǎn)線安全運(yùn)行。

7.功能擴(kuò)展性:實(shí)時(shí)內(nèi)核支持C語言程序開發(fā),方便功能拓展與實(shí)時(shí)代碼提升效率。

更多關(guān)于MotionRT750的詳情介紹與使用點(diǎn)擊→強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(一):驅(qū)動(dòng)安裝、內(nèi)核配置與使用。

超實(shí)時(shí)EtherCAT運(yùn)動(dòng)控制卡XPCIE6032H

XPCIE6032H運(yùn)動(dòng)控制卡集成6路獨(dú)立EtherCAT主站接口。整卡最高可支持254軸運(yùn)動(dòng)控制;125usEtherCAT通訊周期時(shí),兩個(gè)端口配置冗余最高可支持32軸運(yùn)動(dòng)控制。6個(gè)EtherCAT主站各通道獨(dú)立工作,多EtherCAT主站互不影響。

超實(shí)時(shí)EtherCAT運(yùn)動(dòng)控制卡XPCIE6032H.png

超實(shí)時(shí)EtherCAT運(yùn)動(dòng)控制卡XPCIE6032H接線.png

XPCIE6032H運(yùn)動(dòng)控制卡面向半導(dǎo)體設(shè)備、精密3C電子、生物醫(yī)療儀器、新能源裝備、人形機(jī)器人及激光加工等高速高精場景,為固晶機(jī)、貼片機(jī)、分選機(jī)、鋰電切疊一體機(jī)、高速異形插件設(shè)備等自動(dòng)化裝備提供核心運(yùn)動(dòng)控制支持。

XPCIE6032H硬件特性:

1.EtherCAT通訊周期可到125us(需要主機(jī)性能與實(shí)時(shí)性足夠)。

2.板卡集成6路獨(dú)立的EtherCAT主站接口,最多可支持254軸運(yùn)動(dòng)控制。

3.搭載運(yùn)動(dòng)控制實(shí)時(shí)內(nèi)核MotionRT750。

4.相較于傳統(tǒng)的PCI/PCIe、網(wǎng)口等通訊方式,速度可提升了10-100倍以上。

5.板載16路高速輸入,16路高速輸出。

6.板載4路高速鎖存、4路硬件位置比較輸出、4路通用PWM輸出。

更多關(guān)于XPCIE6032H的詳情介紹與使用點(diǎn)擊→全球首創(chuàng)!PCIe超實(shí)時(shí)6通道EtherCAT運(yùn)動(dòng)控制卡上市!

超實(shí)時(shí)EtherCAT運(yùn)動(dòng)控制卡XPCIE2032H

XPCIE2032H集成2路獨(dú)立EtherCAT接口。整卡最高可支持至254軸運(yùn)動(dòng)控制;125usEtherCAT通訊周期時(shí),單接口最高可支持32軸運(yùn)動(dòng)控制。2個(gè)EtherCAT主站各通道獨(dú)立工作,多EtherCAT主站互不影響。

超實(shí)時(shí)EtherCAT運(yùn)動(dòng)控制卡XPCIE2032H.png

雙EtherCAT主站端口可任意設(shè)置為以下通道,且兩個(gè)端口也設(shè)置為不同類型通道:

● 高速通道 - EtherCAT通訊周期125us

● 常規(guī)通道 - EtherCAT通訊周期250us-8ms

雙EtherCAT通道-超實(shí)時(shí)EtherCAT運(yùn)動(dòng)控制卡XPCIE2032H.png

超實(shí)時(shí)EtherCAT運(yùn)動(dòng)控制卡XPCIE2032H接線.png

XPCIE2032H硬件特性:

1.EtherCAT通訊周期可到125us(需要主機(jī)性能與實(shí)時(shí)性足夠)。

2.板卡集成2路獨(dú)立的EtherCAT主站接口,最多可支持254軸運(yùn)動(dòng)控制。

3.搭載運(yùn)動(dòng)控制實(shí)時(shí)內(nèi)核MotionRT750。

4.相較于傳統(tǒng)的PCI/PCIe、網(wǎng)口等通訊方式,速度可提升了10-100倍以上。

5.板載8路高速輸入,16路高速輸出。

6.板載4路高速鎖存,4路通用PWM輸出。

更多關(guān)于XPCIE2032H的詳情介紹與使用點(diǎn)擊→高速高精運(yùn)動(dòng)控制!PCIe超實(shí)時(shí)2通道EtherCAT運(yùn)動(dòng)控制卡上市!。

超實(shí)時(shí)EtherCAT運(yùn)動(dòng)控制卡XPCIE1032H

XPCIE1032H是一款基于PCI Express的EtherCAT總線運(yùn)動(dòng)控制卡,可選6-64軸運(yùn)動(dòng)控制,支持多路高速數(shù)字輸入輸出,可輕松實(shí)現(xiàn)多軸同步控制和高速數(shù)據(jù)傳輸。

超實(shí)時(shí)EtherCAT運(yùn)動(dòng)控制卡XPCIE1032H.png

超實(shí)時(shí)EtherCAT運(yùn)動(dòng)控制卡XPCIE1032H接線.png

XPCIE1032H運(yùn)動(dòng)控制卡集成了強(qiáng)大的運(yùn)動(dòng)控制功能,結(jié)合MotionRT7運(yùn)動(dòng)控制實(shí)時(shí)軟核,解決了高速高精應(yīng)用中,PC Windows開發(fā)的非實(shí)時(shí)痛點(diǎn),指令交互速度比傳統(tǒng)的PCI/PCIe快10倍。

MotionRT7.png

XPCIE1032H硬件特性:

1.6-64軸EtherCAT總線+脈沖可選,其中4路單端500KHz脈沖輸出。

2.16軸EtherCAT同步周期500us,支持多卡聯(lián)動(dòng)。

3.板載16點(diǎn)通用輸入,16點(diǎn)通用輸出,其中8路高速輸入和16路高速輸出。

4.通過EtherCAT總線,可擴(kuò)展到512個(gè)隔離輸入或輸出口。

5.支持PWM輸出、精準(zhǔn)輸出、PSO硬件位置比較輸出、視覺飛拍等。

6.支持直線插補(bǔ)、圓弧插補(bǔ)、連續(xù)軌跡加工(速度前瞻)。

7.支持電子凸輪、電子齒輪、位置鎖存、同步跟隨、虛擬軸、螺距補(bǔ)償?shù)裙δ堋?/p>

8.支持30+機(jī)械手模型正逆解模型算法,比如SCARA、Delta、UVW、4軸/5軸 RTCP...

更多關(guān)于XPCIE1032H詳情點(diǎn)擊“不止10倍提速!PCIe EtherCAT實(shí)時(shí)運(yùn)動(dòng)控制卡XPCIE1032H 等您評(píng)測!”查看。

01 C++進(jìn)行MotionRT750項(xiàng)目的創(chuàng)建與開發(fā)

1.打開Visual Studio 2022軟件選擇創(chuàng)建新項(xiàng)目。

1.png

2.選擇開發(fā)語言為“C++”和“MFC應(yīng)用”。

2.png

3.選擇項(xiàng)目名稱、文件目錄位置及框架。

3.png

4.選擇類型為“基于對(duì)話框”,下一步或者完成。

4.png

5.將廠商提供的C++的庫文件和相關(guān)頭文件復(fù)制到新建的項(xiàng)目里面。

5.png

6.在項(xiàng)目中添加靜態(tài)庫和相關(guān)頭文件。

靜態(tài)庫:zauxdll.lib, zmotion.lib

相關(guān)頭文件:zauxdll2.h, zmotion.h

1)先右擊頭文件,接著依次選擇:“添加”→“現(xiàn)有項(xiàng)”。

6.png

2)在彈出的窗口中依次添加靜態(tài)庫和相關(guān)頭文件。

7.png

3)聲明用到的頭文件和定義控制器連接句柄。

8.png

02 相關(guān)PC函數(shù)介紹

1.PC函數(shù)手冊(cè)可在光盤資料查看,具體路徑如下。

9.png

2.PC函數(shù)介紹。

指令11.png

指令197.png

指令204.png

指令5.png

指令281.png

指令282.png

指令284.png

指令286.png


 

03 相關(guān)測試代碼介紹

1.MotionRT750通過LOCAL連接按鈕的事件處理函數(shù),調(diào)用函數(shù)ZAux_FastOpen(),選擇連接類型5去連接控制卡(LOCAL連接方式)。

LOCAL連接方式.png

void CcRunSpdDlg::OnBnClickedButton3() 
{
// 連接類型,
     CString s;
     cb1.GetWindowText(s);
     if (!ZAux_FastOpen((ZMC_CONNECTION_TYPE)5, &s.GetBuffer()[0], 1000, &handle))
     {
         MessageBox("MotionRT750鏈接成功!");
     }
     else
     {
         MessageBox("MotionRT750鏈接失。");
     }
}

2.MotionRT750和ZMC432-V2型號(hào)控制器通過網(wǎng)口連接按鈕的事件處理函數(shù),調(diào)用函數(shù)ZAux_OpenEth()去連接控制器(網(wǎng)口連接方式)。

網(wǎng)口連接方式.png

網(wǎng)口連接方式-ZMC432CL-V2.png

void CcRunSpdDlg::OnBnClickedButton1()
{
     CString s;
     ed1.GetWindowText(s);
     std::string ip = s.GetBuffer();
     if (!ZAux_OpenEth(&ip[0],&handle))
     {
         MessageBox("鏈接成功!");
     }
     else
     {
         MessageBox("鏈接失!");
     }
}

3.PCIE464型號(hào)控制卡通過PCI連接按鈕的事件處理函數(shù),調(diào)用函數(shù)ZAux_FastOpen(),選擇連接類型4去連接控制卡(PCI連接方式)。

PCI連接方式.png

void CcRunSpdDlg::OnBnClickedpciconct()
{
     // TODO: 在此添加控件通知處理程序代碼
     CString t;
     cb3.GetWindowText(t);
     if (!ZAux_FastOpen((ZMC_CONNECTION_TYPE)4, &t.GetBuffer()[0], 1000, &handle))
     {
         MessageBox("鏈接成功!");
     }
     else
     {
         MessageBox("鏈接失!");
     }
}

4.通過單條指令交互周期的測試按鈕的事件處理函數(shù)來計(jì)算單條指令的交互平均耗時(shí)和總耗時(shí)。

void CcRunSpdDlg::OnBnClickedButton5()
{
     CString s;
     std::string S;
     float dpos =0;
     cb2.GetWindowText(s);
     S = s.GetBuffer();
     int i;
     LARGE_INTEGER fre, StartCount, StopCount;
     QueryPerformanceFrequency(&fre);
     //開始計(jì)數(shù)
     QueryPerformanceCounter(&StartCount);
     for (i= 1; i <= std::stoi(S); i++)
     {
         ZAux_Direct_GetDpos(handle, 0, &dpos);
     }
     //停止計(jì)數(shù)
     QueryPerformanceCounter(&StopCount);
     double  elapsed = (double)(StopCount.QuadPart - StartCount.QuadPart);
     double  exeTime, exeTime1;
     exeTime = elapsed * 1000 / fre.QuadPart;                           //ms 總耗時(shí)
     exeTime1 = elapsed * 1000 / fre.QuadPart/ (std::stoi(S)) * 1000;   //us 單條指令耗時(shí)
     //時(shí)間顯示
     ed2.SetWindowText(std::to_string(exeTime1).data());			  //us
     ed3.SetWindowText(std::to_string((double)exeTime).data());        //ms
     ed6.SetWindowText(std::to_string(dpos).data());
}


 5.通過多條指令交互周期的測試按鈕的事件處理函數(shù)來計(jì)算多條指令的交互平均耗時(shí)和總耗時(shí)。

void CcRunSpdDlg::OnBnClickedButton6()
{
     CString s;
     std::string S;
     float data[12] = { 0 };
     char get[255];
     cb2.GetWindowText(s);
     S = s.GetBuffer();
     std::string cmd = "?dpos(0),dpos(1),dpos(2),dpos(3),axisstatus(0),axisstatus(1),axisstatus(2),axisstatus(3),in(0),in(1),in(2),in(3)";
     LARGE_INTEGER fre, StartCount, StopCount;
     QueryPerformanceFrequency(&fre);
     //開始計(jì)數(shù)
     QueryPerformanceCounter(&StartCount);
     for (int i = 1; i <= std::stoi(S); i++)
     {
         ZAux_DirectCommand(handle, &cmd[0], get, 255);
     }
     //停止計(jì)數(shù)
     QueryPerformanceCounter(&StopCount);
     double  elapsed = (double)(StopCount.QuadPart - StartCount.QuadPart);
     double  exeTime, exeTime1;
     exeTime = elapsed * 1000 / fre.QuadPart;                           //ms 總耗時(shí)
     exeTime1 = elapsed * 1000 / fre.QuadPart / (std::stoi(S)) * 1000;  //us 單條指令耗時(shí)      //時(shí)間顯示
     ed4.SetWindowText(std::to_string(exeTime1).data());               //單條指令耗時(shí)
     ed5.SetWindowText(std::to_string((double)exeTime).data());		  //總耗時(shí)
     ZAux_TransStringtoFloat(&get[0], 12, data);
     ed7.SetWindowText(std::to_string(data[0]).data());
     ed8.SetWindowText(std::to_string(data[1]).data());
     ed9.SetWindowText(std::to_string(data[2]).data());
     ed10.SetWindowText(std::to_string(data[3]).data());
     ed11.SetWindowText(std::to_string((int)data[4]).data());
     ed12.SetWindowText(std::to_string((int)data[5]).data());
     ed13.SetWindowText(std::to_string((int)data[6]).data());
     ed14.SetWindowText(std::to_string((int)data[7]).data());
     ed15.SetWindowText(std::to_string((int)data[8]).data());
     ed16.SetWindowText(std::to_string((int)data[9]).data());
     ed17.SetWindowText(std::to_string((int)data[10]).data());
     ed18.SetWindowText(std::to_string((int)data[11]).data());
}

6.網(wǎng)口連接周期上報(bào)的方式獲取輸入口狀態(tài)的總耗時(shí)測試函數(shù)如下。

void CcRunSpdDlg::OnBnClickedButton9()
{
     // TODO: 在此添加控件通知處理程序代碼 0
     int32 singleValue = 0;
     int32 InState[1000];
     //打開使能周期上報(bào)
     ZAux_CycleUpEnable(handle, 0, 1000, "IN(0,1000)");
     //強(qiáng)制上報(bào)一次,0 為通道號(hào)
     ZAux_CycleUpForceOnce(handle, 0);
     LARGE_INTEGER fre, start, stopCount;
     QueryPerformanceFrequency(&fre);
     //開始計(jì)數(shù)
     QueryPerformanceCounter(&start);
     for (int i = 0; i < 1000; i++)
     {
         int ret = ZAux_CycleUpReadBuffInt(handle, 0, "IN", i, InState);
         if (ret != 0)		 //判斷是否報(bào)錯(cuò),有報(bào)錯(cuò)彈出錯(cuò)誤碼
  	 {
             CString str;
             str.Format(_T("錯(cuò)誤碼:%d"), ret);
	     MessageBox(str);
             break;
             }
     }
     QueryPerformanceCounter(&stopCount);
     double  elapsed = (double) (stopCount.QuadPart - start.QuadPart);
     double  exeTime;
     exeTime = elapsed * 1000 / fre.QuadPart;				       //ms
     //顯示
     ed19.SetWindowText(std::to_string(exeTime).data());          //ms
     //關(guān)閉周期上報(bào)的功能
     ZAux_CycleUpDisable(handle, 0);
}

7.單條指令讀取1個(gè)輸入口狀態(tài)的總耗時(shí)測試函數(shù)如下。

void CcRunSpdDlg::OnBnClickedButton10()
{
     // TODO: 在此添加控件通知處理程序代碼
     uint32 singleValue = 0;
     uint32 InState[1000];
     LARGE_INTEGER fre, StartCount, StopCount;
     QueryPerformanceFrequency(&fre);
     //開始計(jì)數(shù)
     QueryPerformanceCounter(&StartCount);
     for (int i = 0; i < 1000; i++)
     {
         ZAux_Direct_GetIn(handle, i, &singleValue);                    //單條指令讀取單個(gè)輸入口狀態(tài)
         InState[i] = singleValue;
     }
     //停止計(jì)數(shù)
     QueryPerformanceCounter(&StopCount);
     double  elapsed = (double)(StopCount.QuadPart - StartCount.QuadPart);
     double  exeTime;
     exeTime = elapsed * 1000 / fre.QuadPart;                           //ms 總耗時(shí)
      //顯示
      ed20.SetWindowText(std::to_string(exeTime).data());     //ms
}

8.單條指令讀取多個(gè)輸入口狀態(tài)的總耗時(shí)測試函數(shù)如下。

void CcRunSpdDlg::OnBnClickedButton11()
{
     // TODO: 在此添加控件通知處理程序代碼
     int32 singleValue[1000];
     LARGE_INTEGER fre, StartCount, StopCount;
     QueryPerformanceFrequency(&fre);
     //開始計(jì)數(shù)
     QueryPerformanceCounter(&StartCount);
     ZAux_Direct_GetInMulti(handle, 0, 999, singleValue);
     //停止計(jì)數(shù)
     QueryPerformanceCounter(&StopCount);
     double  elapsed = (double)(StopCount.QuadPart - StartCount.QuadPart);
     double  exeTime;
     exeTime = elapsed * 1000 / fre.QuadPart;                          //ms 總耗時(shí)
     //顯示
     ed21.SetWindowText(std::to_string(exeTime).data());	  //ms
}


 

04 運(yùn)行效果

1.MotionRT750通過LOCAL連接方式的單條指令和多條指令交互時(shí)間測試結(jié)果如下圖所示。

LOCAL連接方式.png

MotionRT750 LOCAL連接方式示意圖

MotionRT750 LOCAL連接方式測試(1k次).png

MotionRT750 LOCAL連接方式測試(1k次)

MotionRT750 LOCAL連接方式測試(1w次).png

MotionRT750 LOCAL連接方式測試(1w次)

MotionRT750 LOCAL連接方式測試(10w次).png

MotionRT750 LOCAL連接方式測試(10w次)

2.MotionRT750通過網(wǎng)口連接方式的單條指令和多條指令交互時(shí)間測試結(jié)果如下圖所示。

網(wǎng)口連接方式.png

MotionRT750 網(wǎng)口連接方式示意圖

MotionRT750 網(wǎng)口連接方式測試(1k次).png

MotionRT750 網(wǎng)口連接方式測試(1k次)

MotionRT750 網(wǎng)口連接方式測試(1w次).png

MotionRT750 網(wǎng)口連接方式測試(1w次)

MotionRT750 網(wǎng)口連接方式測試(10w次).png

MotionRT750 網(wǎng)口連接方式測試(10w次)

3.ZMC432-V2控制器通過網(wǎng)口連接方式的單條指令和多條指令交互時(shí)間測試結(jié)果如下圖所示。

網(wǎng)口連接方式-ZMC432CL-V2.png

ZMC432-V2 網(wǎng)口連接方式示意圖

ZMC432-V2 網(wǎng)口連接方式測試(1k次).png

ZMC432-V2 網(wǎng)口連接方式測試(1k次)

ZMC432-V2 網(wǎng)口連接方式測試(1w次).png

ZMC432-V2 網(wǎng)口連接方式測試(1w次)

ZMC432-V2 網(wǎng)口連接方式測試(10w次).png

ZMC432-V2 網(wǎng)口連接方式測試(10w次)

4.PCIE464控制卡通過PCI連接方式的單條指令和多條指令交互時(shí)間測試結(jié)果如下圖所示。

PCI連接方式.png

PCIE464 PCI連接方式示意圖

PCIE464 PCI連接方式測試(1k次).png

PCIE464 PCI連接方式測試(1k次)

PCIE464 PCI連接方式測試(1w次).png

PCIE464 PCI連接方式測試(1w次)

PCIE464 PCI連接方式測試(10w次).png

PCIE464 PCI連接方式測試(10w次)

接下來是對(duì)IO狀態(tài)獲取的耗時(shí)測試,通過不同的IO狀態(tài)獲取模式(周期上報(bào),單指令獲取1個(gè)或多個(gè)輸入口狀態(tài)),對(duì)比各連接方式下的總耗時(shí),旨在為實(shí)際應(yīng)用場景提供性能參考,提升數(shù)據(jù)獲取效率,確保系統(tǒng)能更高效穩(wěn)定運(yùn)行。

(1)MotionRT750通過LOCAL連接方式時(shí)使用單條指令獲取1個(gè)輸入口狀態(tài)和單條指令獲取多個(gè)輸入口狀態(tài),兩種方式獲取1000個(gè)輸入口狀態(tài)的總耗時(shí)如下。

LOCAL連接方式.png

10.png

(2)MotionRT750通過網(wǎng)口連接方式使用周期上報(bào)功能獲取輸入口狀態(tài)、使用單條指令獲取1個(gè)輸入口狀態(tài)和使用單條指令獲取多個(gè)輸入口狀態(tài),三種方式獲取1000個(gè)輸入口狀態(tài)的總耗時(shí)如下。

網(wǎng)口連接方式.png

11.png

(3)ZMC432-V2控制器通過網(wǎng)口連接方式使用周期上報(bào)功能獲取輸入口狀態(tài)、使用單條指令獲取1個(gè)輸入口狀態(tài)和使用單條指令獲取多個(gè)輸入口狀態(tài),三種方式獲取1000個(gè)輸入口狀態(tài)的總耗時(shí)如下。

網(wǎng)口連接方式-ZMC432CL-V2.png

12.png

(4)PCIE464控制卡通過PCI連接方式使用單條指令獲取1個(gè)輸入口狀態(tài)和單條指令獲取多個(gè)輸入口狀態(tài),兩種方式獲取1000個(gè)輸入口狀態(tài)的總耗時(shí)如下。

PCI連接方式.png

13.png

05 分析與結(jié)論

1.對(duì)于MotionRT750的LOCAL方式連接、網(wǎng)口方式連接以及PCI方式和控制器網(wǎng)口方式連接時(shí)的單條或多條指令交互時(shí)間測試,從上面的運(yùn)行效果圖的數(shù)據(jù)顯示來看,可以看出:

當(dāng)進(jìn)行1k、1w次和10w次的單指令交互或多條指令交互的時(shí)候,MotionRT750的LOCAL連接方式進(jìn)行單條指令交互所需要的時(shí)間(平均2.1us左右)和一次性讀取12個(gè)狀態(tài)的多條指令交互所需要的時(shí)間(平均3.8us左右),都是要比PCI連接和控制器網(wǎng)口連接的方式更快(PCI單條平均42us左右、多條平均105us左右;網(wǎng)口單條平均127us、多條平均177us左右)。

分析與結(jié)論-測試對(duì)比數(shù)據(jù)表格.png

2.對(duì)于讀取輸入口狀態(tài)指令測試,從運(yùn)行效果圖的顯示結(jié)果來看:

無論是MotionRT750還是控制器,在網(wǎng)口連接下周期上報(bào)功能效率最高,避免輪詢引發(fā)的多包數(shù)據(jù)傳輸耗時(shí)問題,提升帶寬利用率,總耗時(shí)大約僅需0.44ms;

而單指令批量讀取多個(gè)輸入口狀態(tài)因減少通信次數(shù),耗時(shí)時(shí)間對(duì)比讀取單個(gè)輸入口降低約96%;

LOCAL和PCI連接時(shí),雖不支持周期上報(bào)功能,但單指令對(duì)比下,批量讀取多個(gè)輸入口狀態(tài)的效率顯著高于讀取單個(gè)輸入口。

綜合來看,在實(shí)際應(yīng)用中,選擇哪種數(shù)據(jù)獲取策略取決于具體的應(yīng)用場景、數(shù)據(jù)特性和性能要求。

例如,如果程序需要快速響應(yīng)單個(gè)事件,單條獲取可能更為合適。如果目標(biāo)是最大化數(shù)據(jù)處理速度,多條獲取可能更有益。而對(duì)于需要定期維護(hù)數(shù)據(jù)新鮮度的應(yīng)用,周期性獲取是必要的。

3.C++例程講解視頻可點(diǎn)擊→“強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(六):us級(jí)高速交互之C++,為智能裝備提速”查看。

完整代碼獲取地址

完整代碼.png

本次,正運(yùn)動(dòng)技術(shù)強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(六):us級(jí)高速交互之C++,為智能裝備提速,就分享到這里。

更多精彩內(nèi)容請(qǐng)關(guān)注“正運(yùn)動(dòng)小助手”公眾號(hào),需要相關(guān)開發(fā)環(huán)境與例程代碼,請(qǐng)咨詢正運(yùn)動(dòng)技術(shù)銷售工程師:400-089-8936。

本文由正運(yùn)動(dòng)技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來源。

二維碼.png

正運(yùn)動(dòng)技術(shù)專注于運(yùn)動(dòng)控制技術(shù)研究和通用運(yùn)動(dòng)控制軟硬件產(chǎn)品的研發(fā),是國家級(jí)高新技術(shù)企業(yè)。正運(yùn)動(dòng)技術(shù)匯集了來自華為、中興等公司的優(yōu)秀人才,在堅(jiān)持自主創(chuàng)新的同時(shí),積極聯(lián)合各大高校協(xié)同運(yùn)動(dòng)控制基礎(chǔ)技術(shù)的研究,是國內(nèi)工控領(lǐng)域發(fā)展最快的企業(yè)之一,也是國內(nèi)少有、完整掌握運(yùn)動(dòng)控制核心技術(shù)和實(shí)時(shí)工控軟件平臺(tái)技術(shù)的企業(yè)。主要業(yè)務(wù)有:運(yùn)動(dòng)控制卡_運(yùn)動(dòng)控制器_EtherCAT運(yùn)動(dòng)控制卡_EtherCAT控制器_運(yùn)動(dòng)控制系統(tǒng)_視覺控制器__運(yùn)動(dòng)控制PLC_運(yùn)動(dòng)控制_機(jī)器人控制器_視覺定位_XPCIe/XPCI系列運(yùn)動(dòng)控制卡等等。


 

狀 態(tài): 離線

公司簡介
產(chǎn)品目錄

公司名稱: 深圳市正運(yùn)動(dòng)技術(shù)有限公司
聯(lián) 系 人: 戴德弟
電  話: 0755-32976042
傳  真: 0755-2606 6955
地  址: 深圳市寶安區(qū)西鄉(xiāng)洲石路陽光工業(yè)園A1棟5樓
郵  編: 518100
主  頁:
 
該廠商相關(guān)技術(shù)文摘:
正運(yùn)動(dòng)磁驅(qū)多動(dòng)子柔性產(chǎn)線解決方案API接口(三):總線配置和動(dòng)子掃描及控制
激光振鏡運(yùn)控聯(lián)動(dòng)在水冷板大幅面激光除漆中的應(yīng)用
ARM工控機(jī)Linux下從CAD圖紙到運(yùn)動(dòng)加工(一):Qt Demo的CAD導(dǎo)入
EtherCAT運(yùn)動(dòng)控制器Stewart六自由度并聯(lián)平臺(tái)應(yīng)用
正運(yùn)動(dòng)控制器義齒機(jī)應(yīng)用遠(yuǎn)程運(yùn)維解決方案
EtherCAT運(yùn)動(dòng)控制器與第三方IO模塊的通訊與映射
正運(yùn)動(dòng)在AOI光學(xué)檢測設(shè)備上的運(yùn)動(dòng)控制解決方案
C#運(yùn)動(dòng)控制開源(三): CAD導(dǎo)圖和小線段速度前瞻優(yōu)化的軟件框架
正運(yùn)動(dòng)通用機(jī)械手柔性供料解決方案
正運(yùn)動(dòng)磁驅(qū)多動(dòng)子柔性產(chǎn)線解決方案API接口(二):組態(tài)配置
開放式激光振鏡運(yùn)動(dòng)控制器在圓柱電池飛行焊接的應(yīng)用
全閉環(huán)EtherCAT運(yùn)動(dòng)控制器運(yùn)動(dòng)到位判斷方式詳解
更多文摘...
立即發(fā)送詢問信息在線聯(lián)系該技術(shù)文摘廠商:
用戶名: 密碼: 免費(fèi)注冊(cè)為中華工控網(wǎng)會(huì)員
請(qǐng)留下您的有效聯(lián)系方式,以方便我們及時(shí)與您聯(lián)絡(luò)

關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 本站動(dòng)態(tài) | 友情鏈接 | 法律聲明 | 不良信息舉報(bào)
工控網(wǎng)客服熱線:0755-86369299
版權(quán)所有 中華工控網(wǎng) Copyright©2022 Gkong.com, All Rights Reserved

栾川县| 凤台县| 健康| 河源市| 松滋市| 新宾| 桓仁| 东台市| 比如县| 竹北市| 邵武市| 仁化县| 皮山县| 湟中县| 敖汉旗| 馆陶县| 洛浦县| 嫩江县| 曲水县| 淮滨县| 娱乐| 浮梁县| 河北省| 炎陵县| 叙永县| 巴中市| 北碚区| 昌邑市| 新干县| 柘城县| 明水县| 外汇| 凤庆县| 沂源县| 吴旗县| 肇庆市| 甘洛县| 安化县| 巫溪县| 西宁市| 洪湖市|