EtherCAT 乙太網路
走 EtherCAT 協定的乙太網路 (Ethernet over EtherCAT,EoE) 是一種通訊協定,允許 Windows 客戶端應用程式使用 EtherCAT 網路透過乙太網路封包與 EtherCAT 裝置(EtherCAT 從屬裝置)的伺服器程式溝通。要連接客戶端和伺服器端,最簡單的方式是使用網路介面卡,但用這種方法,Windows 和伺服器程式必須各有兩張網路卡,因為 EtherCAT 網路不允許其他乙太網路封包通行,如果您有多個 EtherCAT 從屬裝置,則每個從屬裝置都需要兩張網路卡以使用乙太網路和 EtherCAT。
EoE 解決這個難題的辦法是:將乙太網路的封包封裝在 EtherCAT 信箱 (mailbox) 封包中。Windows 客戶端應用程式和裝置伺服器應用程式透過虛擬網路卡溝通,而非實體網路卡。
虛擬網路卡的運作原理是:Windows 應用程式傳送乙太網路封包給虛擬網路卡。如果有多個裝置使用 EoE,KINGSTAR(EtherCAT 主控裝置)內附的虛擬交換器會依據每個裝置的 MAC 位址劃分封包,再將它們傳送至 KINGSTAR,KINGSTAR 會將這些乙太網路封包封裝在 EtherCAT 信箱封包中,再將封裝的封包透過 EtherCAT 網路卡傳送至從屬裝置。再將封裝的封包透過 EtherCAT 網路卡傳送至從屬裝置。最後,從屬裝置從封裝的封包中取出乙太網路封包,再將它們傳送給伺服器程式。
雖然 EoE 很便捷,但也有其限制:
- 反應時間較慢,需要幾毫秒才能收到傳回的封包。
- 您必須手動在 KINGSTAR 中設定 EoE,EoE 預設為停用。
在 KINGSTAR 中設定 EoE
下列步驟說明如何在 KINGSTAR 中設定 EoE:
一、設置 Windows IP 位址和子網路遮罩
若要使用虛擬網路卡,需要指派一個 IP 位址給 Windows 和 RTX64,並提供子網路遮罩,第一步是指派一個 IP 位址給 Windows。
注意:您必須檢查網際網路通訊協定第四版 (TCP/IPv4) 的連線,以確保虛擬網路可以運作。虛擬網路不支援網際網路通訊協定第六版 (TCP/IPv6),您可以在網路功能中將其取消勾選。
- 開啟網際網路通訊協定第四版 (TCP/IPv4) Properties:
- 設定您要用的 IP 位址。建議使用如下設定:
- 點選確定 (OK)。
Windows 10:控制台 (Control Panel) > 網路和網際網路 (Network and Internet) > 檢視網路狀態及工作 (View Network Status and Tasks) > 變更介面卡設定 (Change adapter settings) > Ethernet: Windows Virtual RTX64 Ethernet > Properties(按右鍵)> 網際網路通訊協定第 4 版 (Internet Protocol Version 4 (TCP/IPv4)) > Properties > 使用下列的 IP 位址 (Use the following IP address)
Windows:192.168.100.254
子網路遮罩:255.255.255.0
重要:指定於 Windows 的子路遮罩必須與 RTX64 控制台 (Control Panel) 內指定的子網路遮罩相匹配,RtVirtualNic 介面之預設子網路遮罩為 255.255.255.0。
重要:預設閘道和 DNS 欄位必須為空白。
二、設置RTX64 虛擬網路介面
虛擬網路介面卡為 RTX64 功能之一。此須在 RTX64 控制台中設置。KINGSTAR 3.3 及以上的版本皆支援虛擬網路介面卡與 EoE,欲使用 EoE,您需先下載 KINGSTAR 3.3 或以上的版本。
- 在工作列,點擊 Start
> RTX64 4.4 Runtime > RTX64 Control Panel。
- 點選 介面管理 (Manage interfaces)。
- 在左窗格中,點選
新增介面。
- 在新增介面 (Add Interface) 對話方塊的裝置 (Device) 清單中,選取 RTX64 虛擬網路介面 (Virtual Network Interface)。選取後,其他欄位會自動填入對應的資料。Windows 和 RTX64 IP 位址中的前三組數字必須相同。若為 IPv4 位址,建議您使用 192.168.100.253。完成後,點選添加 (Add)。
- 在 NAL Properties 中的裝置 (device) 清單中,添加於左窗格的 RTX64 虛擬網路介面 (Virtual Network Interface) 應在此顯示。若未顯示,選擇您在左窗格添加的虛擬 NIC。
- 在 TCP/IP Stack properties 內的 Filter status 清單中,點選已啟用 (Enabled)。
- 在篩選名稱 (Filter name) 欄位中,找到在
<KSMDir>\bin
(<KSMDir>
在 KINGSTAR 安裝的位置)的檔案KSeoe.rtdll
,此將把 KINGSTAR 篩選器與介面串聯起來。
注意:如果您使用預設位址 192.168.100.50,能和預設的 EoE 設置運作的 EtherCAT 從屬裝置數量為最多 49 個。將位址的最後一組數字設為 253,可以在從屬裝置超過 50 個時避免問題產生,並將從屬裝置的最大數量提升為 252 個。若您有更多的從屬裝置,您需要手動設置所有 IP 位址、MAC 位址和網路遮罩。
開始使用 EoE
設定好 EoE 並啟動 KINGSTAR 後,KINGSTAR 會自動將 IP 位址指派給每個 EtherCAT 從屬裝置,EtherCAT 從屬裝置的 IP 位址是「從屬裝置 ID + 1」。例如,您有三個從屬裝置不支援 EoE,他們的 ID 是 0、1、2,第四個從屬裝置支援 EoE,那麼第四個裝置的 IP 位址是 192.168.100.4。它的從屬裝置 ID 是 3,所以它的 IP 位址是 4(最後一組數字)。
注意:EoE 只能在運作狀態 (OP) 下運作。
變更 EtherCAT 從屬裝置的 IP 位址
如果您不想使用 KINGSTAR 指派給從屬裝置的 IP 位址,可以使用 IP 設定功能來變更 IP 位址。
- RT/Win32:信箱 > EoeSetSlaveEoeIp
- .NET API:信箱 (Mailbox) > EoeSetSlaveEoeIp
- .NET Class:ISlave > EoeSetSlaveEoeIp