在使用EtherCAT技術(shù)作為現(xiàn)場(chǎng)總線時(shí),性能往往起著決定性的作用。但是,性能的真正含義是什么呢?在大多數(shù)情況下,性能等同于速度。在EtherCAT網(wǎng)絡(luò)中,這通常意味著需要快速的周期時(shí)間,大約1kHz或更快,以實(shí)現(xiàn)快速的控制周期。然而,高性能也可能意味著處理大量數(shù)據(jù),或者從一個(gè)控制器上操作多個(gè)設(shè)備。
在EtherCAT網(wǎng)絡(luò)中,這些性能考慮因素都?xì)w結(jié)為EtherCAT主站。因此,EtherCAT主站軟件應(yīng)滿足以下所有要求:
- 支持較短的周期時(shí)間,實(shí)現(xiàn)快速的設(shè)備更新率
- 支持處理大量循環(huán)過程數(shù)據(jù)
- 能夠處理許多EtherCAT設(shè)備
此外,所有這些都必須在控制器上以盡可能低的負(fù)載來(lái)實(shí)現(xiàn)。對(duì)于高性能的EtherCAT網(wǎng)絡(luò)部署,不應(yīng)在功能、錯(cuò)誤檢查、診斷選項(xiàng)和出現(xiàn)問題時(shí)的可靠性方面妥協(xié)。基于此,本文將提出一種測(cè)量方法并給出結(jié)果,便于您對(duì)EC-Master協(xié)議棧的性能有更多了解。
測(cè)量方法
為了支持控制硬件的選擇,或者為了能夠?qū)ΜF(xiàn)有硬件在EtherCAT方面的可能性做出聲明,可以利用現(xiàn)有的性能值進(jìn)行新的測(cè)量。在應(yīng)用的關(guān)鍵循環(huán)處理區(qū)域中,正確且精確地測(cè)量EtherCAT協(xié)議棧建立的主站軟件運(yùn)行的所有處理路徑的計(jì)算時(shí)間消耗,這一點(diǎn)非常重要。近年來(lái),盟通科技合作伙伴acontis在具有不同操作系統(tǒng)和相同參考網(wǎng)絡(luò)配置的不同系統(tǒng)上進(jìn)行了大量的性能測(cè)量。此數(shù)據(jù)可用于粗略評(píng)估給定處理器上可實(shí)現(xiàn)的性能。
然而,最可靠的值當(dāng)然是通過在運(yùn)行所需操作系統(tǒng)和實(shí)際所需網(wǎng)絡(luò)配置的真實(shí)硬件上進(jìn)行實(shí)時(shí)測(cè)量而獲得的。這些測(cè)量不需要任何特殊的專業(yè)知識(shí)或額外的設(shè)備,并且可以通過EC-Master中包含的示例應(yīng)用程序進(jìn)而非常容易地執(zhí)行:EcMasterDemo和EcMasterDemoDc。在這些演示應(yīng)用程序中,各個(gè)主作業(yè)函數(shù)的執(zhí)行時(shí)間(最小值、最大值和平均值)以及周期時(shí)間被計(jì)算并保存到日志文件中(或打印到控制臺(tái))。
示例應(yīng)用程序中的內(nèi)置測(cè)量函數(shù)
在acontis的EtherCAT主站軟件協(xié)議棧中,應(yīng)用程序與循環(huán)部分的主站集成是通過同步調(diào)用某些功能來(lái)實(shí)現(xiàn)的,每個(gè)函數(shù)都完成一項(xiàng)特定的任務(wù)。這些函數(shù)是從高優(yōu)先級(jí)任務(wù)中調(diào)用的,用于控制網(wǎng)絡(luò)計(jì)時(shí)。在許多情況下,高優(yōu)先級(jí)任務(wù)已存在于客戶應(yīng)用程序中,因此可以簡(jiǎn)單地從此現(xiàn)有任務(wù)中調(diào)用函數(shù)。這些作業(yè)是在應(yīng)用程序的上下文中調(diào)用的,因此應(yīng)用程序不會(huì)與其他任務(wù)進(jìn)行交互。因此,通過測(cè)量這些函數(shù)的計(jì)算時(shí)間消耗,可以非常簡(jiǎn)單準(zhǔn)確地確定主堆棧的計(jì)算時(shí)間消耗。
功能包括:
在一個(gè)周期的開始,EC-Master的示例Demo首先會(huì)更新新接收的數(shù)據(jù)(輸入)。這是通過調(diào)用Process Inputs作業(yè)函數(shù)并評(píng)估先前接收的EtherCAT幀來(lái)實(shí)現(xiàn)的。接下來(lái),應(yīng)用程序獲取這些新接收的數(shù)據(jù),并計(jì)算出應(yīng)發(fā)送到網(wǎng)絡(luò)的數(shù)據(jù)(輸出)。當(dāng)調(diào)用Write Outputs作業(yè)函數(shù)時(shí),這些新的輸出數(shù)據(jù)便被發(fā)送出去。借助Direct Memory Access (DMA),幀從內(nèi)存?zhèn)鬏數(shù)?a target="_blank">以太網(wǎng)控制器并通過物理網(wǎng)絡(luò)發(fā)送,整個(gè)過程無(wú)需加載CPU。幀會(huì)經(jīng)過網(wǎng)絡(luò)上的所有EtherCAT設(shè)備,并在返回到主站時(shí)自動(dòng)接收,無(wú)需中斷。最后,調(diào)用"Master Administration"作業(yè)函數(shù),執(zhí)行主狀態(tài)機(jī)和每個(gè)單獨(dú)從設(shè)備上的狀態(tài)機(jī)。
在初始啟動(dòng)過程中,所有從設(shè)備必須通過一系列連續(xù)步驟從INIT狀態(tài)轉(zhuǎn)移到OPERATIONAL狀態(tài)。在常規(guī)操作中,需要狀態(tài)機(jī)來(lái)處理非循環(huán)通信,例如通過郵箱協(xié)議CAN應(yīng)用協(xié)議在EtherCAT (CoE)上下載參數(shù)。這些非循環(huán)郵箱通信需要另一個(gè)幀,其中包含針對(duì)從站的讀取和寫入命令。這個(gè)非循環(huán)幀是使用“發(fā)送非循環(huán)數(shù)據(jù)報(bào)/命令”作業(yè)函數(shù)發(fā)送的。主站能夠限制這種非循環(huán)數(shù)據(jù)流量的方式非常重要,否則網(wǎng)絡(luò)或CPU可能會(huì)過載。
使用示例應(yīng)用程序進(jìn)行性能測(cè)量
EC-Master協(xié)議棧在隨附的示例應(yīng)用程序中具有內(nèi)置的性能測(cè)量功能??梢允褂脦в惺纠龖?yīng)用程序(–perf) 的命令行參數(shù)來(lái)調(diào)用此性能度量計(jì)算。啟用后,示例應(yīng)用程序?qū)y(cè)量在應(yīng)用程序的循環(huán)部分內(nèi)調(diào)用的作業(yè)函數(shù)的執(zhí)行時(shí)間,以及循環(huán)任務(wù)本身消耗的總計(jì)算時(shí)間。示例應(yīng)用程序使用包含的API ecatPerfMeasStart() 和ecatPerfMeasEnd() 進(jìn)行高精度測(cè)量時(shí)間計(jì)算。
測(cè)量結(jié)果
以下測(cè)量結(jié)果是在具有不同循環(huán)時(shí)間的不同控制器上使用16、32和64個(gè)從站來(lái)執(zhí)行測(cè)試的。EtherCAT主站(EC-Master)在CPU上的負(fù)載百分比是通過將工作函數(shù)的累積運(yùn)行時(shí)間與總周期時(shí)間的比率來(lái)計(jì)算的。
Texas Instruments AM3359,ARM Cortex-A8,32位,600 MHz
NXP i.MX 8,ARM Cortex-A72,64位,1000 Mhz
Intel Atom, D510, 64-Bit, 1600MHz
-
測(cè)試
+關(guān)注
關(guān)注
8文章
5303瀏覽量
126656 -
主站
+關(guān)注
關(guān)注
0文章
42瀏覽量
7841 -
ethercat
+關(guān)注
關(guān)注
18文章
690瀏覽量
38705 -
EtherCAT主站
+關(guān)注
關(guān)注
2文章
13瀏覽量
4178
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論