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ī)器視覺(jué)等強(qiáng)實(shí)時(shí)的任務(wù),集中運(yùn)行在1-2個(gè)專(zhuān)用CPU核上。與此同時(shí),其余CPU核則專(zhuān)注于處理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)用場(chǎng)合。

MotionRT750應(yīng)用優(yōu)勢(shì):
1.跨平臺(tái)兼容性:支持Windows/Linux系統(tǒng),適配不同等級(jí)CPU。
2.開(kāi)發(fā)靈活性:提供多語(yǔ)言編程接口,便于二次開(kāi)發(fā)與功能定制。
3.實(shí)時(shí)性提升:通過(guò)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)線(xiàn)安全運(yùn)行。
7.功能擴(kuò)展性:實(shí)時(shí)內(nèi)核支持C語(yǔ)言程序開(kāi)發(fā),方便功能拓展與實(shí)時(shí)代碼提升效率。
更多關(guān)于MotionRT750的詳情介紹與使用點(diǎn)擊→強(qiáng)實(shí)時(shí)運(yùn)動(dòng)控制內(nèi)核MotionRT750(一):驅(qū)動(dòng)安裝、內(nèi)核配置與使用。
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主站互不影響。

此外,對(duì)于EtherCAT接口數(shù)量需求不高的客戶(hù),我們也有衍生型號(hào)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ī)器人及激光加工等高速高精場(chǎng)景,為固晶機(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)控制卡上市!。
XPCIE1032H是一款基于PCI Express的EtherCAT總線(xiàn)運(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開(kāi)發(fā)的非實(shí)時(shí)痛點(diǎn),指令交互速度比傳統(tǒng)的PCI/PCIe快10倍。

XPCIE1032H硬件特性:
1.6-64軸EtherCAT總線(xiàn)+脈沖可選,其中4路單端500KHz脈沖輸出。
2.16軸EtherCAT同步周期500us,支持多卡聯(lián)動(dòng)。
3.板載16點(diǎn)通用輸入,16點(diǎn)通用輸出,其中8路高速輸入和16路高速輸出。
4.通過(guò)EtherCAT總線(xiàn),可擴(kuò)展到512個(gè)隔離輸入或輸出口。
5.支持PWM輸出、精準(zhǔn)輸出、PSO硬件位置比較輸出、視覺(jué)飛拍等。
6.支持直線(xiàn)插補(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)測(cè)!”查看。
PCI Express®總線(xiàn)運(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)核使用,可高度滿(mǎn)足高速視覺(jué)篩選機(jī)應(yīng)用所需的運(yùn)動(dòng)控制需求。

XPCIE1028運(yùn)動(dòng)控制卡是正運(yùn)動(dòng)技術(shù)專(zhuān)為高速視覺(jué)篩選設(shè)備設(shè)計(jì)的一款PCI Express®總線(xiàn)運(yùn)動(dòng)控制卡,內(nèi)置豐富的I/O、通訊接口,可以輕松地實(shí)現(xiàn)與視覺(jué)篩選機(jī)通信,非常匹配使用于1-12個(gè)相機(jī)+多個(gè)高速吹氣口的全自動(dòng)CCD光學(xué)篩選機(jī)等設(shè)備上使用。

高速視覺(jué)篩選設(shè)備示意圖
XPCIE1028自帶8路高速輸入和多達(dá)16路高速硬件位置比較輸出,能夠輕松實(shí)現(xiàn)視覺(jué)飛拍和高速、精準(zhǔn)觸發(fā)控制等視覺(jué)篩選機(jī)所需的多種實(shí)時(shí)性運(yùn)動(dòng)控制,以及高穩(wěn)定性。脈沖輸出+編碼器反饋,可實(shí)現(xiàn)轉(zhuǎn)盤(pá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.支持電子凸輪、直線(xiàn)插補(bǔ)等運(yùn)動(dòng)控制功能。
2.板載28+2點(diǎn)通用輸入,32+2點(diǎn)通用輸出,其中8路高速輸入和16路高速輸出。
3.板載4路脈沖輸出,其中一路專(zhuān)用脈沖軸接口(差分脈沖輸出+編碼器反饋)。
4.支持8路高速鎖存輸入口,可記錄轉(zhuǎn)盤(pán)來(lái)料位置。
5.多達(dá)16路精準(zhǔn)輸出、硬件位置比較輸出,機(jī)器視覺(jué)飛拍檢測(cè)和篩選吹氣高速輸出,可根據(jù)需求分配。
更多關(guān)于高速視覺(jué)篩選機(jī)方案詳情點(diǎn)擊“高速視覺(jué)篩選機(jī)PCI Express實(shí)時(shí)運(yùn)動(dòng)控制卡XPCIE1028”查看。
01 C#進(jìn)行MotionRT750項(xiàng)目的創(chuàng)建與開(kāi)發(fā)
本案例開(kāi)發(fā)環(huán)境Visual Studio 2022。
1.打開(kāi)Visual Studio 2022軟件選擇創(chuàng)建新項(xiàng)目。

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

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

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

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

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

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

7.至此項(xiàng)目新建完成,可以進(jìn)行C#項(xiàng)目開(kāi)發(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)測(cè)試代碼介紹
本次指令交互速度測(cè)試使用三種型號(hào)的控制器對(duì)比測(cè)試,以下測(cè)試為正運(yùn)動(dòng)實(shí)驗(yàn)室測(cè)試數(shù)據(jù),與配置的電腦與程序代碼等有關(guān)系,以下測(cè)試數(shù)據(jù)僅供客戶(hù)參考?蛻(hù)具體項(xiàng)目以客戶(hù)實(shí)際測(cè)試環(huán)境為準(zhǔn)。
以下正運(yùn)動(dòng)實(shí)驗(yàn)室測(cè)試為:XPCIE1032H(需搭配MotionRT750使用)、PCIE464、ZMC432-V2,MotionRT750可以通過(guò)LOCAL和網(wǎng)口方式連接,故本次MotionRT750測(cè)試使用LOCAL和網(wǎng)口兩種方式進(jìn)行測(cè)試。
1.XPCIE1032H型號(hào)控制卡使用MotionRT750的LOCAL、網(wǎng)口連接方式測(cè)試。

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

3.PCIE464型號(hào)控制卡使用PCI的連接方式測(cè)試。

①M(fèi)otionRT750通過(guò)LOCAL連接按鈕的事件處理函數(shù),調(diào)用函數(shù)ZAux_FastOpen(),選擇連接類(lèi)型5去連接控制卡(LOCAL連接方式)。
private void localConct(object sender, EventArgs e)
{
//LOCAL方式連接
int ret = zmcaux.ZAux_FastOpen(5, comboBox2.Text, 1000, out handle);
if (ret == 0)
{
label5.Text = "已鏈接" + comboBox2.Text;
label5.BackColor = Color.Green;
}
else
{
MessageBox.Show("鏈接失敗,請(qǐng)選擇正確的LOCAL!");
}
}
②MotionRT750和ZMC432-V2型號(hào)控制器通過(guò)網(wǎng)口連接按鈕的事件處理函數(shù),調(diào)用函數(shù)ZAux_OpenEth()去連接控制器(網(wǎng)口連接方式)。
private void IPConct(object sender, EventArgs e)
{
//網(wǎng)口方式連接
int ret = zmcaux.ZAux_OpenEth(textBox1.Text, out handle);
if (ret == 0)
{
label2.Text = "已鏈接" + textBox1.Text;
label2.BackColor = Color.Green;
}
else
{
MessageBox.Show("鏈接失敗,請(qǐng)輸入正確的ip!");
}
}
③PCIE464型號(hào)控制卡通過(guò)PCI連接按鈕的事件處理函數(shù),調(diào)用函數(shù)ZAux_FastOpen(),選擇連接類(lèi)型4去連接控制卡(PCI連接方式)。
private void pciConct(object sender, EventArgs e)
{
//PCI方式連接
int ret = zmcaux.ZAux_FastOpen(4, comboBox4.Text, 1000, out handle);
if (ret == 0)
{
label13.Text = "已鏈接" + comboBox4.Text;
label13.BackColor = Color.Green;
}
else
{
MessageBox.Show("鏈接失敗,請(qǐng)選擇正確的LOCAL!");
}
}
④通過(guò)單條指令交互周期的測(cè)試按鈕的事件處理函數(shù)來(lái)計(jì)算單條指令的交互平均耗時(shí)和總耗時(shí)。
private void run(object sender, EventArgs e)
{
//run函數(shù)用于測(cè)試單條指令交互周期與總耗時(shí)
float dpos = 0;
int testNum = Convert.ToInt32(comboBox3.Text.ToString());
//beforeDT記錄交互指令前的時(shí)刻
DateTime beforeDT = System.DateTime.Now;
for (int i = 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();
}
⑤通過(guò)多條指令交互周期的測(cè)試按鈕的事件處理函數(shù)來(lái)計(jì)算多條指令的交互平均耗時(shí)和總耗時(shí)。
private void runMuch(object sender, EventArgs e)
{
//runMuch函數(shù)用于測(cè)試多條指令交互周期與總耗時(shí)
int testNum = Convert.ToInt32(comboBox3.Text.ToString());
string cmd;
int star = 0;
StringBuilder cmdBuff = new StringBuilder(2048);
string[] tmp = new string[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 (int i = 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í)測(cè)試函數(shù)如下。
private void CycIoTest(object sender, EventArgs e)
{
int[] InState = new int[1000];
Int32 singleValue = 0;
//打開(kāi)使能周期上報(bào)
zmcaux.ZAux_CycleUpEnable(handle,0,1000,"IN(0,1000)");
//強(qiáng)制上報(bào)一次,0 為通道號(hào)
zmcaux.ZAux_CycleUpForceOnce(handle, 0);
//beforeDT記錄交互指令前的時(shí)刻
DateTime beforeDT = System.DateTime.Now;
for (uint i = 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í)測(cè)試函數(shù)如下。
private void oneIo(object sender, EventArgs e)
{
UInt32 singleValue = 0;
uint[] InState = new uint[1000];
//beforeDT記錄交互指令前的時(shí)刻
DateTime beforeDT = System.DateTime.Now;
for (int i = 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í)測(cè)試函數(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)行存儲(chǔ),一個(gè)INT型數(shù)組可以存儲(chǔ)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通過(guò)LOCAL連接方式的單條指令和多條指令交互時(shí)間測(cè)試結(jié)果如下圖所示。

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

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

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

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

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

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

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

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

ZMC432-V2 網(wǎng)口連接方式測(cè)試(10w次)
4.PCIE464控制卡通過(guò)PCI連接方式的單條指令和多條指令交互時(shí)間測(cè)試結(jié)果如下圖所示。

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

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

PCIE464 PCI連接方式測(cè)試(10w次)
5.接下來(lái)是對(duì)IO狀態(tài)獲取的耗時(shí)測(cè)試,通過(guò)不同的IO狀態(tài)獲取模式(周期上報(bào),單指令獲取1個(gè)或多個(gè)輸入口狀態(tài)),對(duì)比各連接方式下的總耗時(shí),旨在為實(shí)際應(yīng)用場(chǎng)景提供性能參考,提升數(shù)據(jù)獲取效率,確保系統(tǒng)能更高效穩(wěn)定運(yùn)行。
(1)MotionRT750通過(guò)網(wǎng)口連接方式使用周期上報(bào)功能獲取輸入口狀態(tài)、使用單條指令獲取1個(gè)輸入口狀態(tài)和使用單條指令獲取多個(gè)輸入口狀態(tài),三種方式獲取1000個(gè)輸入口狀態(tài)的總耗時(shí)如下。

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

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

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

05 分析與結(jié)論
1.對(duì)于MotionRT750的LOCAL方式連接、網(wǎng)口方式連接以及PCI方式和控制器網(wǎng)口方式連接時(shí)的單條或多條指令交互時(shí)間測(cè)試,從上面的運(yùn)行效果圖的數(shù)據(jù)顯示來(lái)看,可以看出:
當(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.對(duì)于讀取輸入口狀態(tài)指令測(cè)試,從運(yùn)行效果圖的顯示結(jié)果來(lái)看:
無(wú)論是MotionRT750還是控制器,在網(wǎng)口連接下周期上報(bào)功能效率最高,避免輪詢(xún)引發(fā)的多包數(shù)據(jù)傳輸耗時(shí)問(wèn)題,提升帶寬利用率,總耗時(shí)大約僅需0.33ms;
而單指令批量讀取多個(gè)輸入口狀態(tài)因減少通信次數(shù),耗時(shí)時(shí)間對(duì)比讀取單個(gè)輸入口降低約96%;
LOCAL和PCI連接時(shí),雖不支持周期上報(bào)功能,但單指令對(duì)比下,批量讀取多個(gè)輸入口狀態(tài)的效率顯著高于讀取單個(gè)輸入口。
綜合來(lái)看,在實(shí)際應(yīng)用中,選擇哪種數(shù)據(jù)獲取策略取決于具體的應(yīng)用場(chǎng)景、數(shù)據(jù)特性和性能要求。
例如,如果程序需要快速響應(yīng)單個(gè)事件,單條獲取可能更為合適。如果目標(biāo)是最大化數(shù)據(jù)處理速度,多條獲取可能更有益。而對(duì)于需要定期維護(hù)數(shù)據(jù)新鮮度的應(yīng)用,周期性獲取是必要的。
總結(jié)
綜上所述,我們可以從測(cè)試結(jié)果看出,MotionRT750的LOCAL連接方式展現(xiàn)卓越的實(shí)時(shí)性能,指令交互的效率也非常的穩(wěn)定。
當(dāng)測(cè)試次數(shù)從1k增加到1w、10w次時(shí),指令交互時(shí)間波動(dòng)不大,在延遲、穩(wěn)定性上全面優(yōu)于PCI和控制器網(wǎng)口的連接,更加適合高精度、高實(shí)時(shí)性、高穩(wěn)定性的工業(yè)運(yùn)動(dòng)控制場(chǎng)景應(yīng)用。
教學(xué)視頻可點(diǎn)擊→“強(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(三):us級(jí)高速交互之C#,為智能裝備提速,就分享到這里。
更多精彩內(nèi)容請(qǐng)關(guān)注“正運(yùn)動(dòng)小助手”公眾號(hào),需要相關(guān)開(kāi)發(fā)環(huán)境與例程代碼,請(qǐng)咨詢(xún)正運(yùn)動(dòng)技術(shù)銷(xiāo)售工程師:400-089-8936。
本文由正運(yùn)動(dòng)技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國(guó)智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來(lái)源。

正運(yùn)動(dòng)技術(shù)專(zhuān)注于運(yùn)動(dòng)控制技術(shù)研究和通用運(yùn)動(dòng)控制軟硬件產(chǎn)品的研發(fā),是國(guó)家級(jí)高新技術(shù)企業(yè)。正運(yùn)動(dòng)技術(shù)匯集了來(lái)自華為、中興等公司的優(yōu)秀人才,在堅(jiān)持自主創(chuàng)新的同時(shí),積極聯(lián)合各大高校協(xié)同運(yùn)動(dòng)控制基礎(chǔ)技術(shù)的研究,是國(guó)內(nèi)工控領(lǐng)域發(fā)展最快的企業(yè)之一,也是國(guó)內(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)_視覺(jué)控制器__運(yùn)動(dòng)控制PLC_運(yùn)動(dòng)控制_機(jī)器人控制器_視覺(jué)定位_XPCIe/XPCI系列運(yùn)動(dòng)控制卡等等。
|