18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(六):us級(jí)高速交互之C++,為智能裝備提速

正運(yùn)動(dòng)技術(shù) ? 來源:正運(yùn)動(dòng)技術(shù) ? 作者:正運(yùn)動(dòng)技術(shù) ? 2025-09-04 14:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

強(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)核。

wKgZPGi5NrOAQWvRAAMxG6MrdvA670.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)用場合。

wKgZO2i5NrOAPgx6AAPC9JyZk3E427.png


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

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í)代碼提升效率。

MotionRT750視頻介紹請(qǐng)點(diǎn)擊→“正運(yùn)動(dòng)強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750”查看。

更多關(guān)于MotionRT750的詳情介紹與使用請(qǐng)點(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主站互不影響。

wKgZPGi5NrSAV4jqAAVq3C2HUzg389.png

wKgZO2i5NrSADo56AAQxzBwWQ24847.png


XPCIE6032H視頻介紹請(qǐng)點(diǎn)擊→“全球首創(chuàng)!PCIe 6路高性能EtherCAT運(yùn)動(dòng)控制卡XPCIE6032H”查看。

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的詳情介紹與使用請(qǐng)點(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主站互不影響。

wKgZO2i5NrWAalJYAAatGCNsEDI178.png


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

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

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

wKgZPGi5NrWAV7MDAATBxNPBPAA813.png

wKgZPGi5NrWAYZdDAAMv513p3I4681.png

XPCIE2032H視頻介紹請(qǐng)點(diǎn)擊→“高速高精運(yùn)動(dòng)控制!PCIe超實(shí)時(shí)2通道EtherCAT運(yùn)動(dòng)控制卡上市!”查看。


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的詳情介紹與使用請(qǐng)點(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ù)傳輸。

wKgZO2i5NraAQQA7AAjdXINFs_8390.png

chaijie_default.png

XPCIE1032H視頻介紹可點(diǎn)擊→“高性能PCIe EtherCAT運(yùn)動(dòng)控制卡 | XPCIE1032H”查看。

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倍。

wKgZO2i5NreAHBQMAAGli2TGi_w623.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)目。

wKgZO2i5NreAHKn9AACQvrf3TBk174.png

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

wKgZPGi5NreARKONAAEMHf6oQBU716.png

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

wKgZO2i5NriAZlFkAABZf37YIWI961.png

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

wKgZPGi5NriAWUDoAAEpjbCZ7Yw713.png

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

wKgZO2i5NriAA3-mAAJWaP3EQgE957.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)”。

wKgZPGi5NrmADNYkAAI2F1uAk_c449.png

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

wKgZO2i5NrmAA8SvAAF3ELPhccs407.png

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

wKgZPGi5NrmAMm3tAAD4QaREiXI824.png


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

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

wKgZO2i5NrmACv9eAADPw3Fwguk699.png

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

wKgZPGi5NrqAHe3gAAGEdeQ6fyE965.png

wKgZO2i5NrqAaC2iAADtq4P-pCU055.png

wKgZPGi5NrqAQCrrAAIF7l_xhVQ378.png

wKgZO2i5NruAN1jrAAFyx6NcCug956.png

wKgZPGi5NruAFj19AAG4ZwM3PEg013.png

wKgZO2i5NruAH9WzAADgdzmm4y4128.png

wKgZPGi5NruANlyvAAShLsdfldA907.png

wKgZO2i5NryAWsYVAAFggsmHgnA625.png

wKgZPGi5NryACjAcAAEqhH-3VwU164.png

wKgZO2i5NryAPm67AAHxcXgQ2L8046.png


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

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

wKgZPGi5Nr2AXi2SAAKJG0Oepqk005.png

voidCcRunSpdDlg::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)口連接方式)。

wKgZPGi5BkaAapIEAAG_AtHG2TM297.pngwKgZO2i5Nr2AC048AAQ1sy05jtU645.png

voidCcRunSpdDlg::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連接方式)。

wKgZPGi5Nr2AJgYCAANBmd9DYZ0372.png

voidCcRunSpdDlg::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í)。

voidCcRunSpdDlg::OnBnClickedButton5()
{
   CString s;
  std::string S;
 floatdpos =0;
  cb2.GetWindowText(s);
  S = s.GetBuffer();
 inti;
  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í)。

voidCcRunSpdDlg::OnBnClickedButton6()
{
  CString s;
  std::string S;
 floatdata[12] = {0};
 charget[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(inti =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ù)如下。

voidCcRunSpdDlg::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(inti =0; i 

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

voidCcRunSpdDlg::OnBnClickedButton10()
{
 //TODO:在此添加控件通知處理程序代碼
  uint32 singleValue =0;
  uint32 InState[1000];
  LARGE_INTEGER fre, StartCount, StopCount;
 QueryPerformanceFrequency(&fre);
 //開始計(jì)數(shù)
  QueryPerformanceCounter(&StartCount);
 for(inti =0; i 

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

voidCcRunSpdDlg::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é)果如下圖所示。

wKgZO2i5Nr6Ac0BqAAKJG0Oepqk295.png

MotionRT750 LOCAL連接方式示意圖

wKgZPGi5Nr6AMd93AAEiNy3cCw0498.pngMotionRT750 LOCAL連接方式測試(1k次)

wKgZO2i5Nr6AczLoAAEho6i8Rhk211.pngMotionRT750 LOCAL連接方式測試(1w次)

wKgZPGi5Nr-ARYEGAAEkZ_pFVq0135.pngMotionRT750 LOCAL連接方式測試(10w次)

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

wKgZO2i5Nr-AETtLAAKYtpidfv0471.pngMotionRT750 網(wǎng)口連接方式示意圖


wKgZPGi5Nr-ARnChAAENLFX2lSM048.pngMotionRT750 網(wǎng)口連接方式測試(1k次)

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

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

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

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

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

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

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

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

wKgZPGi5NsKATG9uAANAH5nKGTE746.pngPCIE464 PCI連接方式示意圖

wKgZO2i5NsKAL_L3AAE9sQVig4o581.pngPCIE464 PCI連接方式測試(1k次)

wKgZO2i5NseATJswAAFHcwUA7Bs664.pngPCIE464 PCI連接方式測試(1w次)

wKgZPGi5NseAQg3tAAFGUvfTi1s313.pngPCIE464 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í)如下。

wKgZPGi5Nr2AXi2SAAKJG0Oepqk005.png

wKgZO2i5NsiAF4_4AAFw5Q6DxVs841.png

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

wKgZO2i5Nr-AETtLAAKYtpidfv0471.png

wKgZPGi5NsiAHgi7AAF8bI4sSi4858.png

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

wKgZO2i5NsmAMwjwAAQ1sy05jtU344.png

wKgZPGi5NsmATJ6BAAGeRbqgH58165.png

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

wKgZO2i5B9qAM6vGAAKM1fYGEHc338.pngwKgZO2i5NsqABoPIAAFrGr-LlJs759.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左右)。

wKgZPGi5NsqAPvVfAAEkYCef1W8462.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++,為智能裝備提速”查看。


完整代碼獲取地址

wKgZO2i5NsqAZsvYAAA9vKPXRmQ572.jpg

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

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


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 運(yùn)動(dòng)控制
    +關(guān)注

    關(guān)注

    4

    文章

    778

    瀏覽量

    34164
  • 智能裝備
    +關(guān)注

    關(guān)注

    3

    文章

    259

    瀏覽量

    19218
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(五):EtherCAT總線冗余讓生產(chǎn)制造更可靠

    EtherCAT總線冗余賦能生產(chǎn)更可靠保障!
    的頭像 發(fā)表于 08-21 11:14 ?439次閱讀
    <b class='flag-5'>強(qiáng)</b><b class='flag-5'>實(shí)時(shí)運(yùn)動(dòng)</b><b class='flag-5'>控制</b><b class='flag-5'>內(nèi)核</b><b class='flag-5'>MotionRT750</b>(五):EtherCAT總線冗余讓生產(chǎn)制造更可靠

    強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(四):高速貼裝應(yīng)用中的拱形運(yùn)動(dòng)

    C#編程實(shí)現(xiàn)高速貼裝應(yīng)用中的拱形運(yùn)動(dòng)
    的頭像 發(fā)表于 08-15 11:32 ?2186次閱讀
    <b class='flag-5'>強(qiáng)</b><b class='flag-5'>實(shí)時(shí)運(yùn)動(dòng)</b><b class='flag-5'>控制</b><b class='flag-5'>內(nèi)核</b><b class='flag-5'>MotionRT750</b>(四):<b class='flag-5'>高速</b>貼裝應(yīng)用中的拱形<b class='flag-5'>運(yùn)動(dòng)</b>

    強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(二):精密點(diǎn)膠的PSO應(yīng)用

    PSO在精密點(diǎn)膠中的應(yīng)用
    的頭像 發(fā)表于 07-16 11:35 ?347次閱讀
    <b class='flag-5'>強(qiáng)</b><b class='flag-5'>實(shí)時(shí)運(yùn)動(dòng)</b><b class='flag-5'>控制</b><b class='flag-5'>內(nèi)核</b><b class='flag-5'>MotionRT750</b>(二):精密點(diǎn)膠的PSO應(yīng)用

    強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(一):驅(qū)動(dòng)安裝、內(nèi)核配置與使用

    強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750的驅(qū)動(dòng)安裝與內(nèi)核配置
    的頭像 發(fā)表于 07-03 15:48 ?3100次閱讀
    <b class='flag-5'>強(qiáng)</b><b class='flag-5'>實(shí)時(shí)運(yùn)動(dòng)</b><b class='flag-5'>控制</b><b class='flag-5'>內(nèi)核</b><b class='flag-5'>MotionRT750</b>(一):驅(qū)動(dòng)安裝、<b class='flag-5'>內(nèi)核</b>配置與使用

    2025慕尼黑上海電子生產(chǎn)設(shè)備展,正運(yùn)動(dòng)高速高精運(yùn)動(dòng)控制卡應(yīng)用預(yù)覽(一)

    設(shè)備展(productronica China)將于3月26日- 28日在上海新國際博覽中心隆重舉行。 本次慕尼黑上海設(shè)備展正運(yùn)動(dòng)技術(shù)將攜高速高精運(yùn)動(dòng)控制卡亮相。 產(chǎn)品導(dǎo)讀 ●
    的頭像 發(fā)表于 03-14 14:36 ?661次閱讀
    2025慕尼黑上海電子生產(chǎn)設(shè)備展,正<b class='flag-5'>運(yùn)動(dòng)</b><b class='flag-5'>高速</b>高精<b class='flag-5'>運(yùn)動(dòng)</b><b class='flag-5'>控制</b>卡應(yīng)用預(yù)覽(一)

    運(yùn)動(dòng)控制卡周期上報(bào)實(shí)時(shí)數(shù)據(jù)IO狀態(tài)C++

    使用C++進(jìn)行運(yùn)動(dòng)控制卡的周期上報(bào)功能實(shí)現(xiàn)
    的頭像 發(fā)表于 12-17 13:59 ?1338次閱讀
    <b class='flag-5'>運(yùn)動(dòng)</b><b class='flag-5'>控制</b>卡周期上報(bào)<b class='flag-5'>實(shí)時(shí)</b>數(shù)據(jù)IO狀態(tài)<b class='flag-5'>之</b><b class='flag-5'>C++</b>篇

    基于國產(chǎn)化鴻道Intewell操作系統(tǒng)的高性能實(shí)時(shí)運(yùn)動(dòng)控制解決方案

    目前國產(chǎn)化高實(shí)時(shí)運(yùn)動(dòng)控制達(dá)到了什么樣的控制水平呢?軟件+操作系統(tǒng)實(shí)時(shí)控制如何實(shí)現(xiàn)呢?下面,讓我們一起看看基于國產(chǎn)化鴻道Intewell操作系
    的頭像 發(fā)表于 12-05 16:03 ?671次閱讀