嵌入式工程師為先進(jìn)的機(jī)器人、自動化機(jī)器和運(yùn)動系統(tǒng)設(shè)計(jì)現(xiàn)代工業(yè)系統(tǒng),需要將許多元素組合在一起來構(gòu)建工業(yè)伺服驅(qū)動器。這包括實(shí)時(shí)、確定性操作;高計(jì)算架構(gòu)和足夠的應(yīng)用程序內(nèi)存;以及用于分布式控制的工業(yè)網(wǎng)絡(luò)連接。
不幸的是,這些不同的子系統(tǒng)通常是從過去的旋轉(zhuǎn)簡單伺服電機(jī)、參加工業(yè)以太網(wǎng)協(xié)議編程研討會或參加關(guān)于控制理論和算法的暑期班的經(jīng)驗(yàn)拼湊在一起的。思考這些元素如何真正互連可以產(chǎn)生更高效的多通道運(yùn)動控制解決方案,該解決方案可針對不同應(yīng)用進(jìn)行擴(kuò)展。
以下是關(guān)于如何簡化伺服驅(qū)動器開發(fā)、解決管理多個(gè)工業(yè)以太網(wǎng)協(xié)議的挑戰(zhàn)的三個(gè)設(shè)計(jì)案例研究。這包括 Profinet、EtherCAT 和 Ethernet/IP。
傳統(tǒng)的伺服驅(qū)動解決方案(圖 1)包含不同的組件,這些組件必須在最佳情況下“實(shí)時(shí)”運(yùn)行以使電機(jī)旋轉(zhuǎn)。
圖 1:傳統(tǒng)驅(qū)動解決方案。
實(shí)時(shí)處理器子系統(tǒng) 用于伺服驅(qū)動器的現(xiàn)代實(shí)時(shí)嵌入式系統(tǒng)需要高性能架構(gòu)來實(shí)現(xiàn)使用高載波頻率的磁場定向控制算法。當(dāng)它與位置環(huán)結(jié)合并與軌跡生成一起使用時(shí),計(jì)算負(fù)載會增加,特別是如果將第二個(gè)運(yùn)動軸添加到系統(tǒng)中。
許多當(dāng)前的微控制器解決方案僅在此應(yīng)用中就耗盡了處理器帶寬。使用具有更多處理器帶寬的微處理器 (MPU) 或微控制器 (MCU) 的想法是典型的解決方案。
這里的挑戰(zhàn)是,隨著 CPU 時(shí)鐘越來越高,內(nèi)存系統(tǒng)無法跟上,我們需要等待狀態(tài)或高速緩存。高速緩存在硬實(shí)時(shí)系統(tǒng)中是有問題的,因?yàn)樗狈τ邢迗?zhí)行時(shí)間所需的確定性。
一個(gè)典型的應(yīng)用程序?qū)⑹褂帽染彺嬷腥菁{的更多的程序和數(shù)據(jù)。如果緩存未命中,則必須從較慢的內(nèi)存中加載代碼或數(shù)據(jù),這會導(dǎo)致執(zhí)行時(shí)間發(fā)生變化。典型的 MPU 內(nèi)核也缺少向量中斷控制器,這需要軟件進(jìn)行更多處理以找到中斷源并調(diào)度正確的中斷服務(wù)程序。
如果發(fā)生多個(gè)中斷,高速緩存存儲器和中斷控制器的影響會導(dǎo)致不確定的行為和無限的執(zhí)行時(shí)間。
實(shí)時(shí)設(shè)計(jì)的架構(gòu),例如,具有嵌套向量中斷控制器和緊密耦合存儲器 (TCM),可確保高可用性操作(圖 2)。向量中斷控制器將通過硬件直接通過向量表調(diào)度到適當(dāng)?shù)闹袛嗵幚沓绦颍瑥亩畲笙薅鹊販p少中斷延遲。
圖 2:具有 TCM 和向量中斷控制器的實(shí)時(shí)架構(gòu)視圖。
TCM 直接連接到與高速緩存相同的內(nèi)存層次結(jié)構(gòu)的內(nèi)核。TCM 是一個(gè)簡單的 SRAM,沒有像緩存這樣的標(biāo)簽,因此它體積小,實(shí)現(xiàn)效率高。接下來,內(nèi)置雙精度浮點(diǎn)單元 (FPU) 充當(dāng) CPU 的數(shù)學(xué)協(xié)處理器并簡化數(shù)學(xué)運(yùn)算。
實(shí)時(shí)處理器子系統(tǒng)的另一個(gè)好處是減少抖動。由于運(yùn)動涉及非常高速的計(jì)算,因此在處理微米級分辨率時(shí),位置控制的準(zhǔn)確性至關(guān)重要。例如,如果伺服驅(qū)動器以 10 m/s 的速度運(yùn)行,并且以 2 μs 的時(shí)間偏移(中斷延遲加上抖動)捕獲位置,則產(chǎn)生的位置誤差將為 0.02 mm。
盡管這似乎并不重要,但及時(shí)傳播此位置誤差將導(dǎo)致生產(chǎn)錯誤和報(bào)廢單元。
硬件中的工業(yè)以太網(wǎng)加速器工業(yè)以太網(wǎng)需要高效的數(shù)據(jù)包處理,以實(shí)現(xiàn)盡可能確定性的通信。典型的 TCP/IP 協(xié)議的問題是當(dāng) TCP 檢查數(shù)據(jù)的傳遞并在未成功接收數(shù)據(jù)時(shí)重新傳輸時(shí)的固有延遲。
傳統(tǒng)上,幀是使用特定的軟件程序來處理的,以處理以太網(wǎng)報(bào)頭和數(shù)據(jù)。這顯然需要時(shí)間,并且可能被視為 CPU 的“開銷”,因此會影響 CPU 吞吐量。
工業(yè)以太網(wǎng)協(xié)議以大約 100 Mbps 的速度運(yùn)行,并且基于 UDP,因此沒有丟包的空間,尤其是在運(yùn)動控制系統(tǒng)中。許多具有 100 Mbps 和獨(dú)立于媒體的接口 (MII) 的 MCU 無法處理幀有效負(fù)載而沒有不確定抖動的風(fēng)險(xiǎn),因?yàn)樗鼪]有針對高速數(shù)據(jù)包處理進(jìn)行優(yōu)化。
因?yàn)?CPU 需要優(yōu)先考慮控制循環(huán)算法,所以可能會丟失數(shù)據(jù)包,或者更糟糕的是,非同步分布式運(yùn)動系統(tǒng)。
如果可以在硬件中實(shí)現(xiàn)諸如編碼/解碼數(shù)據(jù)包或簡單校驗(yàn)和等高速操作,以改善數(shù)據(jù)包處理并為其他任務(wù)卸載 CPU 帶寬,則可以改善 RTOS 操作并減少校驗(yàn)和操作的額外開銷(圖 3 )。
圖 3:硬件輔助幀處理。
用于實(shí)時(shí)控制的固件 固件操作需要根據(jù)它們對確定性行為的需要劃分為不同的任務(wù)。
圖 4:電機(jī)和運(yùn)動控制應(yīng)用架構(gòu)。
圍繞虛擬電機(jī)模塊塊構(gòu)建的固件架構(gòu)(圖 4)將簡化開發(fā)。它包括執(zhí)行確定性周期性和非周期性任務(wù)的函數(shù)。它們在一側(cè)與電機(jī)控制硬件接口,在另一側(cè)與其余固件模塊接口。
周期性實(shí)時(shí)任務(wù)從產(chǎn)生 PWM 周期的定時(shí)器的中斷處理程序中調(diào)用。它確??刂坪瘮?shù)調(diào)用的確定性時(shí)序。這包括獲取當(dāng)前位置、執(zhí)行位置控制回路和電流控制回路——也稱為磁場定向控制——為下一個(gè) PWM 周期生成占空比,并收集數(shù)據(jù)以供將來診斷。
非周期性實(shí)時(shí)任務(wù)響應(yīng)外部模擬或數(shù)字信號觸發(fā)的事件??刂乒δ茉u估上下文以在電流過載或位置捕獲的情況下采取行動。
虛擬電機(jī)可以識別不同的命令,提供對所有控制參數(shù)和算法的訪問。主機(jī)可以定期獲取信息,跟蹤每個(gè)電機(jī)的狀態(tài),控制運(yùn)動請求的執(zhí)行。或者,主機(jī)可以配置來自不同變量的樣本集合,這些變量可以在設(shè)備上緩沖并在以后進(jìn)行分析。
然后可以將電機(jī)控制框架實(shí)例化為使用共享內(nèi)存與虛擬電機(jī)和其他外圍設(shè)備交互以與主機(jī)通信的包裝器。虛擬電機(jī)還通過觸發(fā)可以協(xié)調(diào)特定應(yīng)用線程操作的信號量與 RTOS 集成。
實(shí)時(shí)處理器:關(guān)鍵要點(diǎn)設(shè)計(jì)您自己的伺服驅(qū)動器可能會變得復(fù)雜,因?yàn)樾枰m應(yīng)實(shí)時(shí)控制、連接性和可針對不同應(yīng)用程序或產(chǎn)品變體進(jìn)行擴(kuò)展的固件架構(gòu)。
使用實(shí)時(shí)處理器內(nèi)核可實(shí)現(xiàn)更具確定性的操作并減少抖動。能夠利用硬件 IP 來加速和提高網(wǎng)絡(luò)吞吐量,或者利用可編程模塊來支持不同的編碼器,可以簡化分布式運(yùn)動和各種協(xié)議的管理。
最后,設(shè)計(jì)能夠支持不同類型應(yīng)用的固件將有助于進(jìn)一步簡化開發(fā)過程??紤]到這些因素來進(jìn)行伺服驅(qū)動器設(shè)計(jì)將有助于您啟動并運(yùn)行構(gòu)建自己的伺服電機(jī)驅(qū)動控制器。
審核編輯:湯梓紅
-
處理器
+關(guān)注
關(guān)注
68文章
19896瀏覽量
235208 -
伺服電機(jī)
+關(guān)注
關(guān)注
88文章
2120瀏覽量
59660 -
伺服驅(qū)動器
+關(guān)注
關(guān)注
22文章
526瀏覽量
32578
發(fā)布評論請先 登錄
EtherCAT科普系列(3): EtherCAT技術(shù)在伺服驅(qū)動器領(lǐng)域的應(yīng)用

伺服驅(qū)動器常見故障及維修方法有哪些
伺服驅(qū)動器作用及其功能
伺服驅(qū)動器故障及維修處理 怎樣維護(hù)保養(yǎng)伺服電機(jī)驅(qū)動器
伺服驅(qū)動器的控制方式分析
伺服驅(qū)動器與傳統(tǒng)電機(jī)的區(qū)別
常見伺服驅(qū)動器故障及維修方法
伺服驅(qū)動器的工作原理解析 伺服驅(qū)動器選型注意事項(xiàng)
伺服驅(qū)動器與步進(jìn)電機(jī)的比較
如何調(diào)試伺服驅(qū)動器
伺服驅(qū)動器在工業(yè)自動化中的應(yīng)用
伺服驅(qū)動器和伺服電機(jī)介紹
伺服驅(qū)動器AL04報(bào)警什么原因
MCUXpresso IDE下在線聯(lián)合調(diào)試雙核MCU工程的三種方法

評論