You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TwinCat3-TF6310 TCP/IP多网卡数据发送配置方法咨询

解决TwinCAT 3中多台IP重复设备的跨网卡通信问题

可以通过绑定不同物理网卡实现通信,核心逻辑是利用不同网卡的独立网络链路,让TwinCAT的Socket指定从特定网卡发送报文,从而区分同IP的设备。具体配置步骤如下:

一、物理连接与网卡IP配置

  • 将IP重复的设备分别接入不同的物理网卡,确保各设备所在的网络链路完全独立(比如设备1接网卡A,设备2接网卡B,两者不共享交换机或网线)
  • 给每个网卡配置不重叠的网段IP,例如:
    • 网卡A:192.168.1.10/24
    • 网卡B:192.168.2.10/24
      无需修改设备的重复IP,只要设备和对应网卡在同一物理链路即可。

二、TwinCAT Socket绑定特定网卡

在PLC程序中,使用FB_TcpClient(或对应Socket功能块)时,必须指定本地绑定IP(即对应网卡的IP地址),不能使用默认的0.0.0.0(自动选网卡)。示例ST代码如下:

PROGRAM MAIN
VAR
    TcpClient_Dev1: FB_TcpClient;
    TcpClient_Dev2: FB_TcpClient;
    // 网卡A的IP
    LocalIp_NIC_A: STRING := '192.168.1.10';
    // 网卡B的IP
    LocalIp_NIC_B: STRING := '192.168.2.10';
    // 两台设备的重复IP
    Device_IP: STRING := '192.168.0.1';
    Device_Port: UINT := 502; // 示例端口,根据设备实际端口调整
END_VAR

// 绑定网卡A连接设备1
TcpClient_Dev1(
    sLocalAddr := LocalIp_NIC_A,
    sRemoteAddr := Device_IP,
    nRemotePort := Device_Port,
    bConnect := TRUE
);

// 绑定网卡B连接设备2
TcpClient_Dev2(
    sLocalAddr := LocalIp_NIC_B,
    sRemoteAddr := Device_IP,
    nRemotePort := Device_Port,
    bConnect := TRUE
);

三、系统路由与隔离配置

为避免Windows自动路由导致报文交叉,需配置静态路由:

  1. 查看网卡接口索引:执行命令 route print,找到对应网卡的Interface Index值
  2. 删除默认路由(可选,若原有路由干扰通信):
route delete 0.0.0.0 mask 0.0.0.0 <原有默认网关IP>
  1. 添加针对设备IP的静态路由:
    • 针对网卡A(假设网关为192.168.1.1,接口索引为10):
      route add 192.168.0.1 mask 255.255.255.255 192.168.1.1 metric 1 if 10
      
    • 针对网卡B(假设网关为192.168.2.1,接口索引为11):
      route add 192.168.0.1 mask 255.255.255.255 192.168.2.1 metric 1 if 11
      

四、通信验证

  • 监控TwinCAT中每个FB_TcpClient的bConnected状态,确认连接成功
  • 使用Wireshark分别在两个网卡上抓包,验证报文仅从指定网卡收发,无交叉流量

内容的提问来源于stack exchange,提问作者Lyu Jeff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 19:45:31