★英特爾亞太研發有限公司 胡巍
1 引言:實時計算對工業控制的重要性
在現代工業領域,無論離散制造業還是流程行業,若要生產設備和過程能安全且高效運轉,從而制造出質量合格且有經濟效益的產品,均離不開自動控制技術的支撐和驅動。工業控制系統需與真實世界的生產過程和裝置,進行數據通信和能量傳遞,才能完成自動化任務。
生產過程中的物理或化學變化,總是需要時間的,即無論變化過程有多快,從開始到結束總有延遲。在常規觀測條件下的真實時間是均勻流逝且不能被操控的。工業自動化系統為實現自動化而執行的各種功能任務,如測量輸入、控制輸出和控制計算等,也需要在預定的某個時刻開始,并在預期的某段時間內完成。控制器的各類操作,即使計算數值正確,若不能及時響應被控對象或被控過程的需要,那么也會導致錯誤而無法完成任務。
作為系統核心的工業控制器,一般都采用基于計算機的架構,即以執行存儲程序的方式來實現控制算法邏輯。當一個計算任務,不但要求計算結果正確,而且也要求滿足時間上確定的指標時,則可稱其具備了“實時性”的特征;所以,工業控制器必須具備實時計算的能力,才可對生產過程實施自動化控制。
2 實時控制的概念:基于實時計算的工業控制技術
實時計算的概念,定義了計算任務的成功取決于兩個必要條件:計算結果的正確性、完成時間上的確定性,即按實際任務的需求在指定的時間要求下提供正確的結果。當然,計算機任務處理速度快,是完成實時計算任務的一個重要前提,有利于設計時留有充分的余量;但單純的“快”不足以描述實時,真正的實時是要“疾如所指”(asfastasspecified)[1],這也是對“如何正確理解實時性特征”的一個精煉表述。按實時計算所涉及的領域,大體上可分為兩類:信息技術(IT)領域,以計算機的信息和數據處理為主,如:分布式科學計算、金融交易系統等;工業自動化(OT)領域,涉及到真實物理設備和工業流程,如:工業控制、自動駕駛、遠程醫療、電網負載均衡調度等。其中,對完成某個實時任務所涉及的軟、硬件的全體,可統稱為實時系統;如離散制造中的多軸聯合電機調速任務,為實現此實時運動控制任務,通常需要由控制器、伺服驅動器和電機、傳動機構和機械負載、傳感器等測量裝置及其它附屬部件等組件一起構成了實時系統;其中控制器和伺服驅動器,本質都是計算機,即依靠軟件與硬件協同來完成與實時控制相關的功能。
工業實時控制,泛指以工業控制器為核心裝置來實現工業自動化任務的相關技術統稱??筛鶕刂破鳟a品特征和應用領域細分如下:可編程邏輯控制器(PLC),廣泛用于單臺機電設備和自動化生產線,也可用于過程控制節點;數控系統(CNC),主要是完成機加工等相關的控制任務;此外,還有工業機器人的專用控制器,以及過程控制領域常見的分布式控制系統(DCS)。當前主流的控制器,均可視為有與現場設備進行通信能力的計算機,以離散方式進行工作,即時間上以時鐘節拍信號來指揮和協調各器件運作,數值上對連續的物理量進行量化編碼式處理。在工業自動化場景下,通常需要在等間隔的時刻與外部交互,即接收測量數據和下發控制命令;而這個間隔被稱為“控制周期”,簡記為周期(cycle);所以要求控制器在一個周期內,完成測量接收、控制計算和指令下發,以及其它相關事件響應等一系列操作;后續各個周期也依此循環往復。工業控制不同應用場景的任務需求各異,那其所需的實時性能要求也就不盡相同,即周期和響應時間等約束上存在差異,如石油化工等流程行業可能以秒和分鐘作為周期單位,而離散制造中的運動控制任務一般要達到毫秒級的控制周期或響應能力。
工業控制器按架構可分為:專用計算機型(嵌入式)和通用計算機型(PC-based)等兩大類控制器。其中,嵌入式(embedded)系統,一般指計算機的硬件實體裝在被控設備機柜內;其特點是體積小、結構簡單、可靠性高、功能專用、擴展性和靈活性低、性能夠用即可、價格相對便宜。嵌入式計算機,可用于實現工業實時控制,但并非所有的嵌入式系統應用都要求具備明確的實時性特征。隨著實際生產中,如機器視覺、大數據、人工智能和預測性維護等各種新技術和多樣性新需求的出現,通用型計算機,以其靈活性和易于實現負載整合的特點,越來越多地應用在工業控制領域,形成通用控制器類產品。其具體特征,是在通用硬件平臺和通用軟件基礎設施上定義和開發相應的功能;如:軟PLC技術,不斷擴大其在產線自動化領域的應用范圍。而大多主流的數控機床和工業機器人系統,也基本都采用了以英特爾X86架構的計算機,作為其專用控制器?,F可將“嵌入式系統”概念擴展,理解為這樣一類廣義計算機裝置:其本身會從屬于某個設備或系統,作為該系統的一個核心組件,其軟件也是專用于此設備或系統功能的實現,如監測、操控,以及數據采集和傳輸等。這里“專用”的含義,已從在定制型計算機上實現的功能,擴展為可在通用硬件平臺上實現的面向某類應用場景的功能。
3 實時操作系統:基于通用架構的開源方案
應用程序,是可以在沒有操作系統的情況下,直接運行在計算機硬件上的,即所謂的“裸機”(bare metal)方式。隨著計算機硬件的持續進步——特別是微處理器(CPU)的迅猛發展,計算任務管理復雜度不斷提高,而編寫高效和可靠的多任務并發的裸機程序,也變得越來越困難;操作系統類軟件因此應需而生,采用“分層架構”設計思想,作為底層直接管理各種硬件資源,并為其上的應用程序提供訪問硬件受控的接口,從而對任務執行和并發進行高效而安全地管理。一般而言,操作系統的引入,為應用開發帶來如下優點:
(1)應用編程,更聚焦和友好:單個任務,只需聚焦于自身算法邏輯的實現,支撐性和維護性工作均借助于操作系統來完成;因此,對于各專業領域人員而言,編程開發體驗更高效和友好。
(2)多任務和多用戶:在一臺計算機上,通過操作系統的隔離機制,多個任務可安全、獨立且并發地執行;利用通信基礎設施,可更好地實現任務間的同步和協調,從而有利于解決更復雜的問題。
(3)提升硬件利用率:操作系統會調度各種工作負載,在“性能過?!钡挠布弦蕴岣呃寐屎图骖櫢咝绦袨槟繕耍瓿筛鞣N任務;一般以充分利用計算資源(特別是避免CPU閑置)為策略,從而提高了系統的整體任務吞吐量(throughput)。
(4)軟件生態基礎:統一而規范的接口和基礎設施,是代碼移植和復用的前提,也是各種軟件協同合作的基礎;會方便終端用戶在同一平臺上,累積和復用各種軟件的使用習慣和經驗;從而產生一個良性發展的、合作共贏的軟件應用的市場環境。
實時操作系統(RTOS),首先是作為操作系統而存在,然后才是滿足實時性保障特征,其應具備一般操作系統基本功能和由此帶給應用程序開發的便捷和優勢,然后才是保證滿足實時要求的措施,必須優于裸機實時編程方式,提供更加可靠的實時性和穩定性保障。通常一個實時操作系統,應具備基于優先級的任務調度,支持搶占的內核和高精度時鐘等模塊,和針對中斷處理、優先級反轉等延時問題的解決方案等基礎措施,來支持和保障計算任務的實時性特征。按設計方式,可分為專用和基于通用改造的實時操作系統;前者包含如商用VxWorks和開源的FreeRTOS等,后者包含基于Linux的Preempt_RT實時補丁方案、雙操作系統內核架構的Xenomai方案等。
此外,還有基于虛擬化技術的實時解決方案,如ACRN、RTS Hypervisor和KVM等,其引入的虛擬機監控管理計算資源,實現了類操作系統的硬件管理和隔離等功能。工業控制參考實例,如在同一臺IPC上運行多個虛擬機,可在其Windows虛擬機中運行常用的用戶界面程序和數據處理、仿真程序,而在實時虛擬機(如基于Linux實時操作系統)運行實時控制類計算負載等關鍵任務程序。
相較而言,開源的方案,易于獲取和使用,但需要投入較多前期培訓和維護成本;商業方案,一般具有良好的技術支持保障,并且便于某些領域的安全認證和規范要求,但授權費用一般較高。而通用操作系統對比專用操作系統,具備更廣譜軟件硬件支持,更新升級快,能夠完成更廣泛的計算任務,且可通過配置和調試,對特定計算任務進行優化。基于通用架構和系統的開源實時解決方案,在高效地應對復雜性的同時,還提供確定性、可靠性和靈活性的計算能力;且經長期的發展和累積,其上的軟、硬件生態豐富,為滿足多樣化負載整合的需求,提供了便利。但在具體實踐中也要面對如下復雜性:
(1)硬件平臺復雜:組件品類和型號多樣,最優選型比較困難,需要平衡性能、價格和擴展性。
(2)軟件系統復雜:獲取到開源代碼,遠不是對平臺系統完全掌控,代碼龐雜,需要理清依賴關系。
(3)調優過程復雜:缺少系統性的指導和解釋,并且開源社區對新問題的響應也無法保證及時。
為此需要專業團隊,一方面具備實時計算基本知識和技能,另一方面理解工業控制任務的實際需求,對具體應用,提供針對性的實時解決方案。
4 ECI:基于X86架構的參考平臺軟件
“英特爾工業邊緣控制平臺[2]”(Intel? Edge Controls for industrial)方案——簡稱ECI,是以面向工業自動化領域應用和軟硬一體化實現的這兩個目標為自身定位;基于“通用開放架構”和“軟件定義”的兩個基本設計理念進行開發,突出軟硬協同優化的特征;包含“一硬一軟”兩個基礎構件,用以實現各種邊緣控制任務的整合應用:
(1)硬:以基于X86架構的通用計算硬件平臺,用作為緣控制軟件的執行載體。
(2)軟:具備實時性保障的通用操作系統和虛擬化方案,用作邊緣控制應用軟件的運行基礎。
ECI架構如圖1所示。
圖1 ECI架構圖:功能與組件
此平臺軟件,提供了兩種主流的基于Linux通用操作系統的開源實時解決方案:內核實時補丁Preempt_RT方案和雙內核Xenomai方案;并且基于計算硬件特性,針對其對實時任務可能影響,提供了推薦配置和調優方法。如:通過主板固件(UEFI/BIOS)選項和內核啟動參數等手段,來配置與運算速率相關的時鐘頻率、功耗和溫控等管理功能,以減少CPU頻率波動對實時應用的影響;共享緩存(LLC)的隔離和分配技術,以降低共享資源爭搶式訪問對實時應用造成的干擾;此外,在某些處理器上還集成了專門為實時任務設計的Intel TCC技術、相關軟件工具及配置方法等。
Preempt_RT Linux內核模型如圖2所示,Xenomai雙內核模型如圖3所示。
圖2 Preempt_RTLinux內核模型[3]
圖3 Xenomai雙內核模型[3]
英特爾ECI平臺,不但包含了底層操作系統級軟件,而且也有針對工業控制的各種應用組件,如:集成了工業控制所需的軟PLC運行時——CoDeSysruntime;現場通信所需的工業實時以太網方案——EtherCAT和TSN等;以及包含了實時任務優先級調度和內存頁鎖定等方法;并且在推薦的IPC硬件平臺上,進行系統的實時性能測試,可供最終用戶硬件平臺選型參考。因為采用了軟硬件一體的設計和調優方式,可提供高效而可靠的實時性能;并且基于Intel的處理器設備具備廣泛的軟硬件生態伙伴,從而降低了最終用戶的開發和調試周期,降低開發、維護和擴展升級成本,更好地滿足現有工業開放和通用的要求。
需要注意的是,工業實時應用的成功落地是一個需要軟件和硬件一體化且高度協同調優的過程,特別需要針對具體的場景和應用實例進行長時間且充分的驗證和性能測試。為此,ECI還針對不同應用場景,比如:離散制造涉及的PLC控制、伺服電機的運動控制、機器人(機械臂和移動小車AMR)的控制,以及流程行業控制應用,提供了樣例(sample)代碼;在推薦的一系列IPC平臺上進行了相關的功能和實時性能測試,并且提供了相關文檔說明,以及結果評價和參考建議。由此,為工業領域的客戶利用ECI平臺進行產品設計和驗證測試,提供參考依據和可行性方案。
5 結論與建議
一個可以落地的實時控制解決方案,在需求、設計、實現和調優的產品全生命過程中,需要注意以下三方面的影響:
(1)現場設備的實時通信方案
工業控制中的實時應用程度的性能受到外部現場設備的約束,要進行等時間隔I/O通信,如工業以太網方案中對網卡的訪問。進行工業控制實時任務設計和驗證時,不但要考慮占用CPU資源的計算密集型負載和也要關注對網卡等的IO密集型負載消耗的時間,對IPC上運行的實時任務,通過底層RTOS提供的機制和硬件調優的保障,可以讓實時任務按規律的時間周期穩定地喚醒和睡眠具體的實時線程。
(2)控制器IPC的硬件選型與調優配置
當前主流商用工控機基礎平臺和環境,為多核處理器架構的計算機硬件平臺,所以還要考慮實時多線程和共享資源隔離分配等方式,以提升整體并行計算能力,實現多任務的實時性調度。一個實時控制軟件,其各項功能和任務,要針對具體的目標硬件平臺(IPC)和應用場景,進行充分的測試和驗證,才能進行應用。在通用計算機硬件平臺,實時控制應用開發者,應該對計算機硬件平臺有足夠深度的了解,掌握CPU時鐘工作頻率、定時器的影響,頻率變化的影響和引起頻率變化的因素,以及CPU的硬件特性(features)即頻率分配和管理,特別是電源和功耗管理,對共享Cache管理等在系統固件和操作系統中的配置和調試方法。
(3)參考資源
還應充分利用開源和可供借鑒的參考資源 ,用于實時控制軟件方案設計 、方向探索和具體落地實踐的過程中 。英特爾的ECI平臺 ,基于主流開源Linux的實時方案 ,并針對具體IPC硬件選型 ,提供了在實時控制的系統硬件 、固件 、軟件——三位一體式的調優;并且針對離散制造、工業機器人和流程行業等場景的典型需求,抽象出帶真實負載的測試場景,進行驗證,并在相關文檔中推薦配置和調優方法。綜上,ECI平臺可供工業實時控制方案探索和落地時參考。
作者簡介:
胡?。?982-),男,黑龍江齊齊哈爾人,碩士,現就職于英特爾亞太研發有限公司,研究方向為工業自動化技術與邊緣控制。
參考文獻:
[1] Linux基金會. In the trenches with Thomas Gleixner, real-time Linux kernel patch set[EB/OL].
[2] 英特爾. 英特爾邊緣控制軟件平臺[EB/OL].
[3] 黃敬群. Making Linux do Hard Real-time[EB/OL].
摘自《自動化博覽》2022年11月刊