设备端口与地址分配
本页回答现场工程师最常问的"这个协议到底用哪个端口"、"两张网卡怎么分"、"多台 PLC 的网段怎么规划"类问题。不涉及协议如何使用 (参考 通讯问题), 只讲网络规划与端口分配。
一、EtherCAT 从站有 IP 吗
没有。 这是被问得最多的问题。
EtherCAT 使用拓扑自动编址 (Auto Increment Addressing), 数据帧在总线上像火车车厢一样依次穿过每个从站, 每个从站根据自己在物理拓扑中的位置 (第几个) 被赋予一个临时地址。
三种寻址方式
| 方式 | 地址来源 | 适用场景 |
|---|---|---|
| AutoInc (自动递增) | 拓扑顺序 (第 0, -1, -2... 个) | 扫描发现阶段 |
| Fixed Address (固定站号) | 主站分配 16-bit 地址 | 运行期常用, 主站在枚举时分配 |
| Configured Station Alias | 从站硬件拨码开关 / EEPROM | 需要按物理位置固定身份 |
EtherCAT 主站 (LAN2)
│
┌─────────┬───────┴───────┬─────────┐
│ │ │ │
Slave 0 Slave 1 Slave 2 Slave 3
(-0x0000) (-0x0001) (-0x0002) (-0x0003) ← AutoInc
(0x1001) (0x1002) (0x1003) (0x1004) ← 主站分配固定地址
运行时主站用固定地址寻址, 从站掉线会触发 WKC 不匹配, 但剩余从站地址不变。详见 WKC 问题。
二、TCP/IP 端口占用清单
Darra 自有端口是产品协议常量, UI 不显示、不可编辑, 文档和配置中不得暗示可修改:
| 服务 | 协议 | 默认端口 | 方向 | 是否必需 | 说明 |
|---|---|---|---|---|---|
| DarraLink 主通道 | TCP | 18821 | 入站 | 是 | IDE ↔ Service 在线监控、远程部署、热更新主通道 |
| RemoteAccessServer | HTTPS | 18443 | 入站 | 是 | IDE 远程管理 API, `/api/status /variables /alarms /diagnostics /plc/start |
| HMI Web Server | HTTP | 18823 | 入站 | 是 | 浏览器/WebView2 访问 HMI 页面 |
| HMI WebSocket | WS | 18823/ws | 入站 | 是 | 实时数据推送, 复用 HTTP 端口 |
| Discovery UDP | UDP | 18852 | 入站 | 是 | 同广播域设备发现兜底 |
| OPC UA Server | OPC UA | 4840 | 入站 | 可选 | 对上位机/MES 提供变量访问 |
| Modbus TCP Server | Modbus | 502 | 入站 | 可选 | 对第三方 HMI/SCADA 提供寄存器 |
| MQTT Client → Broker | MQTT | 1883 | 出站 | 可选 | 连接外部 MQTT Broker |
| MQTT Client → Broker (TLS) | MQTTS | 8883 | 出站 | 可选 | TLS 加密 MQTT |
第三方协议客户端 (出站)
| 协议 | 默认端口 |
|---|---|
| Siemens S7 | 102 |
| Omron FINS | 9600 |
| EtherNet/IP (EIP) Explicit | 44818 |
| EtherNet/IP Implicit (I/O) | UDP 2222 |
| Melsec MC Protocol | 5000-5010 (可配) |
| CC-Link IE Field | UDP 61440 |
| Modbus RTU over TCP | 502 (端口号复用) |
三、端口冲突排查
查看端口占用
# PowerShell: 查 18823 被谁占用
Get-NetTCPConnection -LocalPort 18823 | Format-Table -AutoSize
# 查进程详情
Get-Process -Id (Get-NetTCPConnection -LocalPort 18823).OwningProcess
# 传统 cmd
netstat -ano | findstr :18823
tasklist /fi "PID eq <PID>"
常见占用冲突
| 端口 | 常见占用者 | 处理 |
|---|---|---|
| 502 | 其他 Modbus 软件 (Modbus Poll / Modscan) | 关闭或改端口 |
| 4840 | KEPServerEx, OPC UA Demo Server | 停止服务或改 Darra 端口 |
| 18823 | IIS 默认绑定通配符 | IIS 管理器中改绑定, 或停 IIS |
| 1883 | 本机 Mosquitto | 停 Mosquitto 服务 |
| 9527 | QQ 小号登录端口 (罕见) | 改 Service 端口 |
Darra 自有端口不可修改
DarraLink 18821、HMI Web 18823、RemoteAccessServer 18443、Discovery UDP 18852 以及 L2 Discovery / DarraSync EtherType 均为固定协议常量。若发生端口冲突, 应释放被占用端口或调整占用方, 不修改 Darra 自有端口。
四、防火墙放行
首次安装后, Windows Defender 防火墙会弹窗询问是否允许, 容易被用户误点"取消"。手工检查:
# 查看 DarraRT 相关入站规则
Get-NetFirewallRule | Where-Object DisplayName -like "Darra*" | Format-Table DisplayName,Enabled,Direction
# 手工添加 HMI Web 放行 (入站)
New-NetFirewallRule -DisplayName "DarraRT HMI Web 18823" `
-Direction Inbound -Protocol TCP -LocalPort 18823 -Action Allow
# OPC UA
New-NetFirewallRule -DisplayName "DarraRT OPC UA 4840" `
-Direction Inbound -Protocol TCP -LocalPort 4840 -Action Allow
# Modbus TCP
New-NetFirewallRule -DisplayName "DarraRT Modbus TCP 502" `
-Direction Inbound -Protocol TCP -LocalPort 502 -Action Allow
工厂域控制器推送的组策略 (GPO) 可能覆盖本地防火墙规则。若本地规则新增无效, 联系 IT 在域策略里加 Darra 例外。
五、双网卡 IP 规划
单机标准方案
| 网卡 | 用途 | IP | 子网掩码 | 网关 | DNS |
|---|---|---|---|---|---|
| LAN1 (板载) | 管理 + HMI + MES | 192.168.0.10 | 255.255.255.0 | 192.168.0.1 | 按办公网 |
| LAN2 (Intel 独立) | EtherCAT | 不配 IP | — | — | — |
LAN2 在网络连接属性中应当:
- 取消勾选 IPv4 / IPv6
- 取消勾选 QoS 数据包计划程序
- 取消勾选 Microsoft 网络客户端
- 仅勾选 "DarraRT_Eth Protocol" (安装驱动后自动出现)
多工位多台 PLC 网段规划
避免所有 PLC 挤在同一广播域, 按工位或产线分段:
| 位置 | 管理网段 | 举例 |
|---|---|---|
| 工位 1 | 192.168.10.0/24 | PLC: 192.168.10.10 |
| 工位 2 | 192.168.11.0/24 | PLC: 192.168.11.10 |
| 工位 3 | 192.168.12.0/24 | PLC: 192.168.12.10 |
| 上位机/MES | 192.168.100.0/24 | Server: 192.168.100.5 |
各工位之间通过三层交换机或路由器路由, 广播域隔离后 ARP/DHCP 风暴不再扩散到 EtherCAT 网卡。
六、VLAN 规划
为什么要 VLAN
办公网有大量广播/多播 (Windows 发现、打印机 SSDP、mDNS), 如果与实时控制同交换机, 即使 EtherCAT 口不接办公网, 管理口 (LAN1) 的流量也会抢 CPU 中断时间, 间接影响实时抖动。
推荐 VLAN 划分
| VLAN ID | 名称 | 用途 | 子网 |
|---|---|---|---|
| 10 | Office | 办公 PC、打印机 | 192.168.10.0/24 |
| 20 | PLC-Mgmt | 各 PLC 管理口 | 192.168.20.0/24 |
| 30 | HMI | HMI 终端、触摸屏 | 192.168.30.0/24 |
| 40 | MES-SCADA | MES/SCADA 服务器 | 192.168.40.0/24 |
| 99 | Native | 交换机管理 | 192.168.99.0/24 |
EtherCAT 总线不走 VLAN 交换机, 从 PLC LAN2 口直接进入专用 EtherCAT 环网。
七、交换机要求
管理网 (LAN1) 交换机
| 指标 | 要求 |
|---|---|
| 类型 | 二层/三层工业以太网 |
| 端口速率 | 至少千兆 |
| 管理功能 | 支持 VLAN、可选 QoS |
| 工作温度 | -10°C 至 60°C |
| 供电 | DIN 导轨 24VDC 双电源冗余 |
| 典型品牌 | Hirschmann, Moxa, 西门子 Scalance, 研华 |
EtherCAT 总线不走普通交换机
EtherCAT 主站直接接第一个从站, 从站通过菊花链或环网级联:
主站 LAN2 ──→ Slave0 ──→ Slave1 ──→ ... ──→ SlaveN
│
(环网冗余时回到 主站 LAN3)
如果必须经过设备扩展网口: 使用专用 EtherCAT 分支器/耦合器 (如 Beckhoff EK1100 + EK1110, 或 Hirschmann Spider EC), 绝不能用办公以太网交换机。
环网冗余硬件要求
| 要求 | 说明 |
|---|---|
| 主站双口 | 必须两个 Intel NIC (LAN2 + LAN3) |
| 从站支持回环 | Slave IC 支持 Loop Close (大多数 ESC 都支持) |
| 物理拓扑闭环 | 最后一个从站 Out 口接回主站第二个口 |
详见 冗余功能。
八、串口分配
Windows 中 COM 口的坑
Windows 按插入顺序分配 COM 号, 同一条 USB-Serial 线换个 USB 口就变号。生产环境必须固定 COM 号。
固定 COM 号方法
- 设备管理器 → 端口 (COM 和 LPT) → 右键设备 → 属性 → 端口设置 → 高级
- 下拉选择目标 COM 号 (常用 COM1-COM9)
- 如果提示"已被占用"但实际不存在, 说明某个已移除设备保留了号:
手工清理残留键值后可复用。
# 列出所有已注册过的 COM 设备 (包括未插入的)
reg query "HKLM\SYSTEM\CurrentControlSet\Control\COM Name Arbiter"
分配建议
| 类型 | COM 号 | 用途 |
|---|---|---|
| RS-232 板载 | COM1 - COM4 | 调试终端、老旧仪表 |
| RS-485 转换器 | COM5 - COM9 | 现场仪表、Modbus RTU |
| USB-Serial (FT232) | COM10+ | 临时调试 |
串口参数常见冲突
| 问题 | 排查 |
|---|---|
| 读到乱码 | 波特率不匹配 |
| 偶尔丢包 | 校验位或停止位错 |
| 完全无数据 | 收发线接反 (RS-485 A/B) |
| 间歇失败 | 地线未接, 长距离信号浮动 |
| 多主机冲突 | RS-485 总线同时有两个主机发送 |
九、CAN 总线接口卡
| 类型 | 示例型号 | 接口 | 特点 |
|---|---|---|---|
| PCIe CAN 卡 | PEAK PCAN-PCIe, Kvaser PCIEcan | PCIe x1 | 中断时延低, 推荐 |
| USB-CAN | PEAK PCAN-USB, 周立功 USBCAN-II | USB 2.0 | 易携带, 中断时延较高 |
| 以太网-CAN 网关 | Kvaser Ethercan, 周立功 CANET-200T | 以太网 | 适合远距离, 延迟不确定 |
DarraRT 官方测试过: PEAK PCAN (PCIe 和 USB) 与 Kvaser。其他厂商需要提供 Windows 驱动 DLL 接口文档。
与 EtherCAT 对比
| 指标 | CAN 2.0B | EtherCAT |
|---|---|---|
| 最大速率 | 1 Mbps | 100 Mbps |
| 节点数 | 32 (无中继) | 65535 |
| 实时性 | 毫秒级 | 微秒级 |
| 成本 | 低 | 中 |
| 适用场景 | 车辆、简单 IO | 伺服、密集 IO |
除非设备只支持 CAN (如部分老旧 HVAC / 小型伺服), 优先选 EtherCAT。
十、Modbus 站号冲突
Modbus RTU / TCP 从站使用 Slave ID (1-247) 区分, 同一总线不能重号。
常见站号冲突症状
| 现象 | 原因 |
|---|---|
| 读一会儿正确一会儿乱 | 两台从站同 ID |
| 只读到一台, 忽略其他 | 同 ID 时响应最快的覆盖 |
| 总线崩溃 (RS-485) | 两台同时响应导致电平冲突 |
站号规划建议
| 设备类型 | 推荐 ID 范围 |
|---|---|
| 主 PLC 控制器 | 1 |
| 备 PLC (冗余) | 2 |
| 变频器 | 10-29 |
| 温控仪表 | 30-49 |
| 电表 / 水表 | 50-79 |
| 触摸屏 | 80-89 |
| 预留 | 90-99 |
上位机 HMI 作为 Modbus Master 轮询时, 按 ID 顺序分组发起读取, 减小总线碰撞窗口。