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