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