您可以使用 EtherCAT I/O 設計即時部署系統,並透過現場可程式化閘道陣列 (FPGA) 進行程式設計。EtherCAT RIO 模組化附屬機箱可為 NI CompactRIO 與其他支援 EtherCAT 的可程式化自動化控制器 (PAC) 提供智慧型擴充 I/O。使用 NI LabVIEW FPGA Module 程式設計 EtherCAT RIO 附屬機箱,提供可程式化的分散式裝置,可進行客製化時序、閉迴路控制與行內處理。
在設計具有大量通道數或廣泛空間的即時系統時,經常會需要擴充 I/O。擴充 I/O 可讓使用者新增分散式量測項目,也可以擴充原有應用。然而,建置自己的同步化架構以維持控制系統的決定性,可能很快就會變得既複雜又難以擴充。現今有如 EtherNet/IP、EtherCAT 與 PROFINET 等即時乙太網路 I/O 技術能簡化這類應用,因此可考慮使用設計用於與主控制器保持決定性通訊的遠端 I/O 即時網路。
EtherCAT RIO 擴充機箱可將 EtherCAT I/O 新增至您的 CompactRIO、PXI 或工業控制器系統。此 C 系列模組的 8 插槽堅固機箱,可透過開放式即時乙太網路協定 EtherCAT,進行決定性通訊。您可以透過菊鏈方式,從 EtherCAT 主控制器連接多個 EtherCAT RIO 擴充機箱,以擴充高時效性應用。此外,當新增即時 EtherCAT I/O 時,軟體設定與 LabVIEW 程式設計體驗設計為簡單易用。
圖 1.使用 NI 主控制器與分散式附屬裝置的典型 EtherCAT 系統
您可以使用 LabVIEW Real-Time 與 LabVIEW FPGA 模組,對 EtherCAT RIO 附屬機箱進行程式設計。透過 NI 掃描模式搭配 LabVIEW Real-Time 進行程式設計,即可享有立即可用的體驗,輕鬆擴充 I/O。NI 掃描模式使用簡單的拖曳式 I/O 變數,以及即時測試面板,可立即存取 EtherCAT RIO 附屬裝置的實體 I/O 值,以監控系統效能並進行進階除錯。那麼,為何要將 FPGA 智慧型功能新增至 EtherCAT 擴充 I/O?
在 FPGA 模式中程式設計 EtherCAT RIO 附屬機箱,為您的應用帶來全新層次的客製化與彈性。透過嵌入決策能力,可縮短響應時間,無需主機互動即可快速回應環境。智慧型裝置也可在節點端進行行內分析、自訂觸發與訊號操作,進而將處理作業從主控制器卸載。此外,使用 LabVIEW FPGA 可為領域專家鋪路,讓他們無需具備 VHDL 編程能力即可快速進行原型開發與實現構想。
如果您熟悉透過 LabVIEW FPGA 為 CompactRIO 與其他 NI 可重設 I/O 平台進行程式設計,請注意本端 FPGA 與 EtherCAT RIO 的 FPGA 程式設計之間存在一些差異。在 LabVIEW 2009 中,NI 採用了使用者定義的 I/O 變數,以將附屬 FPGA 資料與主控制器的即時處理同步。這些使用者定義的 I/O 變數也是唯一能在控制器的即時程式與擴充機箱的 FPGA 程式之間傳輸資料的方式。
表 1.比較本端機箱與擴充機箱的 FPGA 傳輸方式。
在 LabVIEW 專案視窗中將 FPGA 目標新增至 EtherCAT RIO 附屬裝置後,您可以在 EtherCAT RIO 裝置上按一下滑鼠右鍵,選擇「Add » User-Defined Variable」(新增 » 使用者定義變數),以建立使用者定義的 I/O 變數。您可透過「Properties」(屬性) 視窗設定變數名稱、資料類型、資料方向 (從主機到 FPGA 或反之)。請注意,您在附屬 FPGA 模式中可建立的使用者定義 I/O 變數數量有限。針對掃描模式的 I/O 變數與 FPGA 模式的使用者定義 I/O 變數,EtherCAT RIO 總共可容納 512 位元組的輸入資料與 512 位元組的輸出資料。例如,如果在掃描模式下使用四個 32 通道模組,每個通道佔用 32 位元資料,則掃描模式 I/O 變數會使用 256 位元組的輸入資料。利用剩餘的 256 位元組輸入資料,您可以在 FPGA 模式下建立最多 64 個輸入使用者定義的 I/O 變數 (長度同為 32 位元)。
圖 2.建立使用者定義的 I/O 變數,以便在主控制器即時程式碼與附屬 FPGA 程式碼之間進行通訊。
這些使用者定義的 I/O 變數在每個掃描週期中會將單點資料傳輸至主控制器,因此最適合從 EtherCAT RIO 擴充機箱傳送已處理的資料。舉例來說,在 NIWeek 2009 的主題演講中,演講者使用六個 EtherCAT RIO 附屬機箱敲響數個演奏歌曲的音鈴。主控制器的即時程式碼控制每個分散式音鈴的敲擊時序,但附屬機箱上的 FPGA 記錄了麥克風的音訊波形量測,並執行快速傅立葉轉換 (FFT),以取得特定音鈴頻率的聲音強度。隨後,附屬 FPGA 使用脈寬調變 (PWM) 控制一系列 LED 的亮度,以配合音鈴的音量。即使未執行即時程式,這些 LED 也會因 EtherCAT RIO 擴充機箱上的 FPGA 邏輯,在相同音鈴頻率下回應其他聲音。
圖 3.這段 EtherCAT RIO FPGA 程式碼用於 NIWeek 2009 主題演講示範,敲響數個演奏歌曲的音鈴。
除了使用 LabVIEW FPGA 演算法函式外,附屬機箱還提供多個機箱 I/O 訊號,有助於客製化與同步您的程式碼。舉例來說,您可以利用 EtherCAT 狀態,在七種 EtherCAT 狀態之一下執行特定 FPGA 邏輯。因此,如果與主控制器的通訊中斷,EtherCAT RIO 擴充機箱將進入安全操作狀態,FPGA 程式碼可指定適當的安全狀態行為。另一組實用訊號是輸出與輸入虛擬點。這兩個時序訊號可精確指示每個附屬裝置在每次掃描期間更新其輸出與輸入值的時機。因此,其上升緣可用於同步多個 EtherCAT RIO 擴充機箱上的 FPGA 程式碼。NI-Industrial Communications for EtherCAT 驅動程式隨附 LabVIEW 範例,可示範多項進階 FPGA 功能,例如 NI 掃描引擎同步、特殊數位訊號與非同步多倍取樣。
圖 4.使用虛擬點時序訊號,同步您的 EtherCAT I/O FPGA 程式碼。
使用決定性分散式 I/O (如 EtherCAT RIO 擴充機箱) 可確保您維持即時應用所需的嚴謹時序與同步。此外,將硬體層級的 FPGA 程式碼新增至 EtherCAT RIO 附屬機箱後,您可在節點端做出智慧決策,進而卸載控制器的處理作業並縮短響應時間。