场景:使用 VLAN 进行虚拟控制
要求
场景
至少两个实例 CODESYS Virtual Control for Linux SL (在这个例子中,
vPLC1
和vPLC2
)
硬件
支持 VLAN 的交换机
现场总线设备(基于以太网),例如 Profinet
配置交换机
重要
如果您的设备配置不正确,则可能会无法访问该设备。
将适配器(应在其中定义 VLAN)连接到交换机。在本示例中,向以下适配器添加了两个 VLAN 接口:
enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether f0:b2:b9:11:b8:b3 brd ff:ff:ff:ff:ff:ff inet 192.168.2.2/24 brd 192.168.2.255 scope global noprefixroute enp1s0 valid_lft forever preferred_lft forever inet6 fe80::2e96:178c:586a:b97b/64 scope link noprefixroute valid_lft forever preferred_lft forever
打开交换机的配置界面。有关如何打开接口和凭证的说明,请参阅供应商的说明。
登录后,打开 VLAN 的配置页面。如果您的交换机支持不同的协议,则选择
802.1Q VLAN
。在
Port Config
页面,配置Link Type
先前连接的端口为Trunk
。将所有现场总线设备连接到交换机。
在
VLAN Config
页面,添加两个新 VLAN。在本示例中,您使用的是 VLAN ID 100 和 200。添加先前连接的端口并配置为Trunk
到每个 VLAN。将现场总线设备的端口添加到每个 VLAN
在以下示例配置中,控制器与交换机的连接是在端口 14 上建立的。这个 Link Type
此端口的已配置为 Trunk
。现场总线设备分别连接到端口 11 和端口 12
VLAN ID | 描述 | 端口 |
---|---|---|
100 | VLAN 100 | 11, 14 |
200 | VLAN 200 | 12, 14 |
配置 VLAN 接口
在永久更改网络配置之前,应测试设置并根据需要进行修改。
创建类型为的新适配器
VLAN
。该命令的格式如下:
sudo ip link add link <physical_adapter> name <virtual_adapter_name> type vlan id <vlan_id>
惯例是将 VLAN ID 附加到虚拟适配器的名称中。对于上面显示的适配器和交换机配置,命令如下所示:
sudo ip link add link enp1s0 name enp1s0.100 type vlan id 100
替换
enp1s0
以及系统上带有值的 VLAN ID。现在当你跑的时候
ip a
,你应该看到类似以下的输出:enp1s0.100@enp1s0: <BROADCAST,MULTICAST,PROMISC> mtu 1500 qdisc noop state DOWN group default qlen 1000
同时对第二个 VLAN 执行此命令。
测试配置
打开 CODESYS Control SL Deploy Tool 并与您的控制器建立连接。
有关更多信息,请参阅: 建立连接。
切换到 操作 选项卡,然后选择
vPLC1
实例。在右侧的配置视图中,单击
Nic
直线,然后在右边缘单击按钮。
Nic 配置对话框打开。
在可用适配器列表中,单击
enp1s0.100
然后选择 映射到实例 选项。如有必要,配置 IP 地址和网络掩码。网络掩码采用 CIDR 表示法的格式(例如:
24
)。有关更多信息,请参阅: https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
点击 好吧 和 保存 按钮。
选择
vPLC2
实例并使用执行步骤 3-6enp1s0.200
适配器。在控制器上启动实例和网关。
有关更多信息,请参阅: 启动运行时系统
一个小型应用程序加载到两个实例上,以检查网络的功能。有关更多信息,请参阅: 下载并启动 CODESYS 控制器上的应用
保留适配器配置
如果你的配置正确,你仍然需要永久保存。有关如何永久保存交换机配置的说明,请参阅供应商的说明。两个实例的配置 vPLC1
和 vPLC2
已经持续存在了。在这里你只需要设置 自动启动 设置为 是的。
以下步骤介绍如何在控制器上配置两个 VLAN 适配器,以便它们在系统启动时可用。
重要
这些设置可能会对您的系统造成损害。
创建所有重要文件的备份。
复制所有事先修改过的文件,这样您就可以轻松撤消更改。
打开
/etc/network/interfaces
在编辑器中(例如:sudo nano /etc/network/interfaces
)。添加以下几行(修改控制器的适配器名称和 VLAN ID):
# enp1s0.100 vlan (vPLC1) auto enp1s0.100 iface enp1s0.100 inet dhcp vlan-raw-device enp1s0 # enp1s0.200 vlan (vPLC2) auto enp1s0.200 iface enp1s0.200 inet dhcp vlan-raw-device enp1s0
有关此文件的更多信息,请参阅: https://wiki.debian.org/NetworkConfiguration
重启系统或执行命令
sudo systemctl restart networking
以使更改生效。
注意
这种配置方法在 Debian 12 上进行了测试。您可能需要为设备或操作系统选择不同的方法才能永久保存配置
其他例子是 netplan (https://netplan.readthedocs.io/en/stable/structure-id/) 或网络管理器 (https://networkmanager.dev/)。控制器的相应说明可以在相应的文档中找到。