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

?
該方案采用獨(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ù)的絕對實(shí)時(shí)性與系統(tǒng)穩(wěn)定性,特別適用于半導(dǎo)體、電子裝備等高速高精的應(yīng)用場合。

?MotionRT750應(yīng)用優(yōu)勢:
1.跨平臺兼容性:支持Windows/Linux系統(tǒng),適配不同等級CPU。
2.開發(fā)靈活性:提供多語言編程接口,便于二次開發(fā)與功能定制。
3.實(shí)時(shí)性提升:通過CPU內(nèi)核獨(dú)占機(jī)制與高效LOCAL接口,實(shí)現(xiàn)2-3μs指令交互周期,較傳統(tǒng)PCI/PCIe方案提速近20倍。
4.擴(kuò)展能力強(qiáng)化:多卡多EtherCAT通道架構(gòu)支持254軸運(yùn)動(dòng)控制及500μsEtherCAT周期。
5.系統(tǒng)穩(wěn)定性:32軸125μsEtherCAT冗余架構(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主站互不影響。

此外,對于EtherCAT接口數(shù)量需求不高的客戶,我們也有衍生型號XPCIE2032H可選。同系列產(chǎn)品XPCIE2032H集成2路獨(dú)立EtherCAT接口。整卡最高可支持至254軸運(yùn)動(dòng)控制;125usEtherCAT通訊周期時(shí),單接口最高可支持32軸運(yùn)動(dòng)控制。2個(gè)EtherCAT主站各通道獨(dú)立工作,多EtherCAT主站互不影響。

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)控制卡上市!”查看。
PCIe EtherCAT實(shí)時(shí)運(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ù)傳輸。

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

?
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 等您評測!”查看。
PCI Express實(shí)時(shí)運(yùn)動(dòng)控制卡XPCIE1028
PCI Express?總線運(yùn)動(dòng)控制卡XPCIE1028,具備位置鎖存、多維高速硬件位置比較輸出PSO、同步跟隨、精準(zhǔn)觸發(fā)的運(yùn)動(dòng)控制和I/O控制功能。配合正運(yùn)動(dòng)技術(shù)MotionRT7實(shí)時(shí)內(nèi)核使用,可高度滿足高速視覺篩選機(jī)應(yīng)用所需的運(yùn)動(dòng)控制需求。

?XPCIE1028運(yùn)動(dòng)控制卡是正運(yùn)動(dòng)技術(shù)專為高速視覺篩選設(shè)備設(shè)計(jì)的一款PCI Express?總線運(yùn)動(dòng)控制卡,內(nèi)置豐富的I/O、通訊接口,可以輕松地實(shí)現(xiàn)與視覺篩選機(jī)通信,非常匹配使用于1-12個(gè)相機(jī)+多個(gè)高速吹氣口的全自動(dòng)CCD光學(xué)篩選機(jī)等設(shè)備上使用。
高速視覺篩選設(shè)備示意圖
?XPCIE1028自帶8路高速輸入和多達(dá)16路高速硬件位置比較輸出,能夠輕松實(shí)現(xiàn)視覺飛拍和高速、精準(zhǔn)觸發(fā)控制等視覺篩選機(jī)所需的多種實(shí)時(shí)性運(yùn)動(dòng)控制,以及高穩(wěn)定性。脈沖輸出+編碼器反饋,可實(shí)現(xiàn)轉(zhuǎn)盤的旋轉(zhuǎn),并實(shí)時(shí)記錄編碼器的實(shí)時(shí)反饋位置,幫您更加精準(zhǔn)地控制設(shè)備。
XPCIE1028在光學(xué)篩選機(jī)上硬件方案1(8相機(jī)+8排料)?
XPCIE1028在光學(xué)篩選機(jī)上硬件方案2(12相機(jī)+4排料)
XPCIE1028硬件特性:
1.支持電子凸輪、直線插補(bǔ)等運(yùn)動(dòng)控制功能。
2.板載28+2點(diǎn)通用輸入,32+2點(diǎn)通用輸出,其中8路高速輸入和16路高速輸出。
3.板載4路脈沖輸出,其中一路專用脈沖軸接口(差分脈沖輸出+編碼器反饋)。
4.支持8路高速鎖存輸入口,可記錄轉(zhuǎn)盤來料位置。
5.多達(dá)16路精準(zhǔn)輸出、硬件位置比較輸出,機(jī)器視覺飛拍檢測和篩選吹氣高速輸出,可根據(jù)需求分配。
更多關(guān)于高速視覺篩選機(jī)方案詳情點(diǎn)擊→“高速視覺篩選機(jī)PCI Express實(shí)時(shí)運(yùn)動(dòng)控制卡XPCIE1028”查看。
01 C#進(jìn)行MotionRT750項(xiàng)目的創(chuàng)建與開發(fā)
本案例開發(fā)環(huán)境Visual Studio 2022。
1.打開Visual Studio 2022軟件選擇創(chuàng)建新項(xiàng)目。

?2.選擇開發(fā)語言為“C#”和Windows窗體應(yīng)用(.NET Framework)。

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

4.將廠商提供的C#的庫文件復(fù)制到新建的項(xiàng)目中。
(1)將Zmcaux.cs文件復(fù)制到新建的項(xiàng)目里面。

(2)將zauxdll.dll和zmotion.dll文件放入bindebug文件夾中。

5.打開新建的項(xiàng)目文件,在右邊的解決方案資源管理器中點(diǎn)擊顯示所有,然后鼠標(biāo)右鍵點(diǎn)擊Zmcaux.cs文件,點(diǎn)擊包括在項(xiàng)目中。

?6.進(jìn)入Form1.cs代碼編輯界面,寫入using cszmcaux,并聲明控制器句柄g_handle。

7.至此項(xiàng)目新建完成,可以進(jìn)行C#項(xiàng)目開發(fā)。
02 相關(guān)PC函數(shù)介紹



?

?

?

?

?


?

?
注:使用網(wǎng)口方式連接MotionRT750時(shí),要將MotionRT750的Config配置Eth num值設(shè)置為一個(gè)大于0的數(shù)(0-12),輸入的ip地址為本機(jī)ip地址,可以在RTSys連接中直接查看。



?
03 相關(guān)測試代碼介紹
本次指令交互速度測試使用三種型號的控制器對比測試,以下測試為正運(yùn)動(dòng)實(shí)驗(yàn)室測試數(shù)據(jù),與配置的電腦與程序代碼等有關(guān)系,以下測試數(shù)據(jù)僅供客戶參考??蛻艟唧w項(xiàng)目以客戶實(shí)際測試環(huán)境為準(zhǔn)。
以下正運(yùn)動(dòng)實(shí)驗(yàn)室測試為:XPCIE1032H(需搭配MotionRT750使用)、PCIE464、ZMC432-V2,MotionRT750可以通過LOCAL和網(wǎng)口方式連接,故本次MotionRT750測試使用LOCAL和網(wǎng)口兩種方式進(jìn)行測試。
1.XPCIE1032H型號控制卡使用MotionRT750的LOCAL、網(wǎng)口連接方式測試。

2.ZMC432-V2型號控制器使用網(wǎng)口連接方式測試。

3.PCIE464型號控制卡使用PCI的連接方式測試。

①M(fèi)otionRT750通過LOCAL連接按鈕的事件處理函數(shù),調(diào)用函數(shù)ZAux_FastOpen(),選擇連接類型5去連接控制卡(LOCAL連接方式)。
privatevoidlocalConct(objectsender, EventArgs e)
{
//LOCAL方式連接
intret = zmcaux.ZAux_FastOpen(5, comboBox2.Text,1000,outhandle);
if(ret ==0)
{
label5.Text ="已鏈接"+ comboBox2.Text;
label5.BackColor = Color.Green;
}
else
{
MessageBox.Show("鏈接失敗,請選擇正確的LOCAL!");
}
}
②MotionRT750和ZMC432-V2型號控制器通過網(wǎng)口連接按鈕的事件處理函數(shù),調(diào)用函數(shù)ZAux_OpenEth()去連接控制器(網(wǎng)口連接方式)。
privatevoidIPConct(objectsender, EventArgs e)
{
//網(wǎng)口方式連接
intret = zmcaux.ZAux_OpenEth(textBox1.Text,outhandle);
if(ret ==0)
{
label2.Text ="已鏈接"+ textBox1.Text;
label2.BackColor = Color.Green;
}
else
{
MessageBox.Show("鏈接失敗,請輸入正確的ip!");
}
}
③PCIE464型號控制卡通過PCI連接按鈕的事件處理函數(shù),調(diào)用函數(shù)ZAux_FastOpen(),選擇連接類型4去連接控制卡(PCI連接方式)。
privatevoidpciConct(objectsender, EventArgs e)
{
//PCI方式連接
intret = zmcaux.ZAux_FastOpen(4, comboBox4.Text,1000,outhandle);
if(ret ==0)
{
label13.Text ="已鏈接"+ comboBox4.Text;
label13.BackColor = Color.Green;
}
else
{
MessageBox.Show("鏈接失敗,請選擇正確的LOCAL!");
}
}
④通過單條指令交互周期的測試按鈕的事件處理函數(shù)來計(jì)算單條指令的交互平均耗時(shí)和總耗時(shí)。
privatevoidrun(object sender, EventArgs e)
{
//run函數(shù)用于測試單條指令交互周期與總耗時(shí)
floatdpos=0;
inttestNum=Convert.ToInt32(comboBox3.Text.ToString());
//beforeDT記錄交互指令前的時(shí)刻
DateTimebeforeDT=System.DateTime.Now;
for(inti=0; i < testNum; i++)
? ? {
? ? ? ??//進(jìn)行n次單指令交互
? ? ? ? zmcaux.ZAux_Direct_GetDpos(handle,?0, ref dpos);
? ? }
? ??//afterDT記錄交互指令后的時(shí)刻
? ??DateTime?afterDT?=?System.DateTime.Now;
? ??//計(jì)算beforeDT與afterDT的時(shí)間差
? ??TimeSpan?ts?=?afterDT - beforeDT;
? ??//總耗時(shí) ms
? ? label11.Text = ts.TotalMilliseconds.ToString();
? ??//平均耗時(shí) us
? ? label8.Text = (ts.TotalMilliseconds *?1000?/ testNum).ToString();
? ? label14.Text = dpos.ToString();
}
⑤通過多條指令交互周期的測試按鈕的事件處理函數(shù)來計(jì)算多條指令的交互平均耗時(shí)和總耗時(shí)。
privatevoidrunMuch(objectsender, EventArgs e)
{
//runMuch函數(shù)用于測試多條指令交互周期與總耗時(shí)
inttestNum = Convert.ToInt32(comboBox3.Text.ToString());
stringcmd;
intstar =0;
StringBuilder cmdBuff =newStringBuilder(2048);
string[] tmp =newstring[12];
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)";
//beforeDT記錄交互指令前的時(shí)刻
DateTime beforeDT = System.DateTime.Now;
for(inti =0; i < testNum; i++)
? ? {
? ? ? ? zmcaux.ZAux_DirectCommand(handle, cmd, cmdBuff,?2048);
? ? }
? ??//afterDT記錄交互指令前的時(shí)刻
? ? DateTime afterDT = System.DateTime.Now;
? ??//計(jì)算beforeDT與afterDT的時(shí)間差
? ? TimeSpan ts = afterDT - beforeDT;
? ??//總耗時(shí) ms
? ? label23.Text = ts.TotalMilliseconds.ToString();
? ??//平均耗時(shí) us
? ? label16.Text = (ts.TotalMilliseconds *?1000?/ testNum).ToString();
? ??string?s = cmdBuff.ToString();
? ??string[] arrS =?new?string[20];
? ??for?(int?i =?0; i < s.Length; i++)
? ? {
? ? ? ??if?(s[i] !=?9)
? ? ? ? {
? ? ? ? ? ? arrS[star] += s[i];
? ? ? ? }
? ? ? ??else
? ? ? ? {
? ? ? ? ? ? star++;
? ? ? ? ? ??continue;
? ? ? ? }
? ? }
}
⑥網(wǎng)口連接周期上報(bào)的方式獲取輸入口狀態(tài)的總耗時(shí)測試函數(shù)如下。
privatevoidCycIoTest(object sender, EventArgs e) { int[] InState =newint[1000]; Int32singleValue=0; //打開使能周期上報(bào) zmcaux.ZAux_CycleUpEnable(handle,0,1000,"IN(0,1000)"); //強(qiáng)制上報(bào)一次,0 為通道號 zmcaux.ZAux_CycleUpForceOnce(handle,0); //beforeDT記錄交互指令前的時(shí)刻 DateTimebeforeDT=System.DateTime.Now; for(uinti=0; i ?1000; i++) ? ? { ? ? ? ??//從周期上報(bào)內(nèi)容里面讀取輸入口狀態(tài) ? ? ? ? zmcaux.ZAux_CycleUpReadBuffInt(handle,?0,?"IN", i, ref singleValue); ? ? ? ? InState[i] = singleValue; ? ? } ? ??//afterDT記錄交互指令后的時(shí)刻 ? ??DateTime?afterDT?=?System.DateTime.Now; ? ??//計(jì)算beforeDT與afterDT的時(shí)間差 ? ??TimeSpan?ts?=?afterDT - beforeDT; ? ??//總耗時(shí) ms ? ? label57.Text = ts.TotalMilliseconds.ToString(); ? ??//關(guān)閉使能周期上報(bào) ? ? zmcaux.ZAux_CycleUpDisable(handle,?0); }
⑦單條指令讀取1個(gè)輸入口狀態(tài)的總耗時(shí)測試函數(shù)如下。
privatevoidoneIo(objectsender, EventArgs e)
{
UInt32 singleValue =0;
uint[] InState =newuint[1000];
//beforeDT記錄交互指令前的時(shí)刻
DateTime beforeDT = System.DateTime.Now;
for(inti =0; i ?1000; i++)
? ? {
? ? ? ??//單條指令讀取單個(gè)輸入口狀態(tài)
? ? ? ? zmcaux.ZAux_Direct_GetIn(handle, i,?ref?singleValue);
? ? ? ? InState[i] = singleValue;
? ? }
? ??//afterDT記錄交互指令后的時(shí)刻
? ? DateTime afterDT = System.DateTime.Now;
? ??//計(jì)算beforeDT與afterDT的時(shí)間差
? ? TimeSpan ts = afterDT - beforeDT;
? ??//總耗時(shí) ms
? ? label48.Text = ts.TotalMilliseconds.ToString();
}
⑧單條指令讀取多個(gè)輸入口狀態(tài)的總耗時(shí)測試函數(shù)如下。
private void muchIo(object sender, EventArgs e)
{
int[] InState = new int[32];
//beforeDT記錄交互指令前的時(shí)刻
DateTime beforeDT = System.DateTime.Now;
//單條指令讀取多個(gè)輸入口狀態(tài),輸入口狀態(tài)按位進(jìn)行存儲,一個(gè)INT型數(shù)組可以存儲32個(gè)輸入口狀態(tài),可讀取32個(gè)及以上
zmcaux.ZAux_Direct_GetInMulti(handle, 0, 999, InState);
//afterDT記錄交互指令前的時(shí)刻
DateTime afterDT = System.DateTime.Now;
//計(jì)算beforeDT與afterDT的時(shí)間差
TimeSpan ts = afterDT - beforeDT;
//總耗時(shí) ms
label19.Text = ts.TotalMilliseconds.ToString();
}
04 運(yùn)行效果
1.MotionRT750通過LOCAL連接方式的單條指令和多條指令交互時(shí)間測試結(jié)果如下圖所示。
MotionRT750 LOCAL連接方式測試(1k次)
MotionRT750 LOCAL連接方式測試(1w次)
?
MotionRT750 LOCAL連接方式測試(10w次)
2.MotionRT750通過網(wǎng)口連接方式的單條指令和多條指令交互時(shí)間測試結(jié)果如下圖所示。
MotionRT750 網(wǎng)口連接方式測試(1k次)
MotionRT750 網(wǎng)口連接方式測試(1w次)
MotionRT750 網(wǎng)口連接方式測試(10w次)
3.ZMC432-V2控制器通過網(wǎng)口連接方式的單條指令和多條指令交互時(shí)間測試結(jié)果如下圖所示。
ZMC432-V2 網(wǎng)口連接方式測試(1k次)
ZMC432-V2 網(wǎng)口連接方式測試(1w次)
ZMC432-V2 網(wǎng)口連接方式測試(10w次)
4.PCIE464控制卡通過PCI連接方式的單條指令和多條指令交互時(shí)間測試結(jié)果如下圖所示。
PCIE464 PCI連接方式測試(1k次)
PCIE464 PCI連接方式測試(1w次)
?
PCIE464 PCI連接方式測試(10w次)
5.接下來是對IO狀態(tài)獲取的耗時(shí)測試,通過不同的IO狀態(tài)獲取模式(周期上報(bào),單指令獲取1個(gè)或多個(gè)輸入口狀態(tài)),對比各連接方式下的總耗時(shí),旨在為實(shí)際應(yīng)用場景提供性能參考,提升數(shù)據(jù)獲取效率,確保系統(tǒng)能更高效穩(wěn)定運(yùn)行。
(1)MotionRT750通過網(wǎng)口連接方式使用周期上報(bào)功能獲取輸入口狀態(tài)、使用單條指令獲取1個(gè)輸入口狀態(tài)和使用單條指令獲取多個(gè)輸入口狀態(tài),三種方式獲取1000個(gè)輸入口狀態(tài)的總耗時(shí)如下。

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

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

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

05 分析與結(jié)論
1.對于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.2us左右)和一次性讀取12個(gè)狀態(tài)的多條指令交互所需要的時(shí)間(平均3.9us左右),都是要比PCI連接和控制器網(wǎng)口連接的方式更快(PCI單條平均38us左右、多條平均115us左右;網(wǎng)口單條平均169us、多條平均208us左右)。
而MotionRT750的網(wǎng)口連接方式的指令交互時(shí)間也是快于控制器網(wǎng)口連接方式的。

2.對于讀取輸入口狀態(tài)指令測試,從運(yùn)行效果圖的顯示結(jié)果來看:
無論是MotionRT750還是控制器,在網(wǎng)口連接下周期上報(bào)功能效率最高,避免輪詢引發(fā)的多包數(shù)據(jù)傳輸耗時(shí)問題,提升帶寬利用率,總耗時(shí)大約僅需0.33ms;
而單指令批量讀取多個(gè)輸入口狀態(tài)因減少通信次數(shù),耗時(shí)時(shí)間對比讀取單個(gè)輸入口降低約96%;
LOCAL和PCI連接時(shí),雖不支持周期上報(bào)功能,但單指令對比下,批量讀取多個(gè)輸入口狀態(tài)的效率顯著高于讀取單個(gè)輸入口。
綜合來看,在實(shí)際應(yīng)用中,選擇哪種數(shù)據(jù)獲取策略取決于具體的應(yīng)用場景、數(shù)據(jù)特性和性能要求。
例如,如果程序需要快速響應(yīng)單個(gè)事件,單條獲取可能更為合適。如果目標(biāo)是最大化數(shù)據(jù)處理速度,多條獲取可能更有益。而對于需要定期維護(hù)數(shù)據(jù)新鮮度的應(yīng)用,周期性獲取是必要的。
總結(jié)
綜上所述,我們可以從測試結(jié)果看出,MotionRT750的LOCAL連接方式展現(xiàn)卓越的實(shí)時(shí)性能,指令交互的效率也非常的穩(wěn)定。
當(dāng)測試次數(shù)從1k增加到1w、10w次時(shí),指令交互時(shí)間波動(dòng)不大,在延遲、穩(wěn)定性上全面優(yōu)于PCI和控制器網(wǎng)口的連接,更加適合高精度、高實(shí)時(shí)性、高穩(wěn)定性的工業(yè)運(yùn)動(dòng)控制場景應(yīng)用。
教學(xué)視頻可點(diǎn)擊查看→
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(三):us級高速交互之C#,為智能裝備提速_嗶哩嗶哩_bilibili
完整代碼獲取地址
▼

本次,正運(yùn)動(dòng)技術(shù)強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(三):us級高速交互之C#,為智能裝備提速,就分享到這里。
?本文由正運(yùn)動(dòng)技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請注明文章來源。
審核編輯 黃宇
-
cpu
+關(guān)注
關(guān)注
68文章
11288瀏覽量
225231 -
運(yùn)動(dòng)控制
+關(guān)注
關(guān)注
5文章
825瀏覽量
34558 -
運(yùn)動(dòng)控制卡
+關(guān)注
關(guān)注
7文章
130瀏覽量
16104
發(fā)布評論請先 登錄
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(十一):C#實(shí)現(xiàn)CAD導(dǎo)圖和小線段速度前瞻優(yōu)化 #運(yùn)動(dòng)控制內(nèi)核
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(十):運(yùn)動(dòng)控制中的微調(diào)軌跡動(dòng)態(tài)補(bǔ)償
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(九):內(nèi)置C語言的自定義機(jī)械手模型實(shí)現(xiàn) #正運(yùn)動(dòng)技術(shù) #運(yùn)動(dòng)控制器
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(七):us級高速交互之Qt,為智能裝備提速 #正運(yùn)動(dòng)技術(shù) #正運(yùn)動(dòng)
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(六):us級高速交互之C++,為智能裝備提速
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(六):us級高速交互之C++,為智能裝備提速 #正運(yùn)動(dòng)技術(shù)
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(四):高速貼裝應(yīng)用中的拱形運(yùn)動(dòng)
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(四):高速貼裝應(yīng)用中的拱形運(yùn)動(dòng) #正運(yùn)動(dòng)技術(shù) #運(yùn)動(dòng)控制器
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(三):us級高速交互之C#,為智能裝備提速 #正運(yùn)動(dòng)技術(shù) #
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(二):精密點(diǎn)膠的PSO應(yīng)用
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(二):精密點(diǎn)膠的PSO應(yīng)用#正運(yùn)動(dòng)技術(shù) #運(yùn)動(dò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)安裝 #正運(yùn)動(dòng)技術(shù) #正運(yùn)動(dòng) #運(yùn)動(dòng)控制 #
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(一):CPU配置 #正運(yùn)動(dòng)技術(shù) #運(yùn)動(dòng)控制 #正運(yùn)動(dòng) #
強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(三):us級高速交互之C#,為智能裝備提速
評論