跳到主要内容

PLC 连接

编译完的程序要下载到 Runtime 才能运行。连接 Runtime 分两种场景:

场景 1:本机连接

开发机和 Runtime 在同一台电脑上。

步骤:

  1. Ribbon → PLC → 启动本机 Runtime
  2. 等待状态栏显示「Runtime 已就绪」
  3. 点「下载」,程序自动上传并运行

这是入门最简单的方式,适合学习和仿真。

场景 2:远程连接

Runtime 在工控机 / 边缘盒子 / 另一台电脑上运行。

步骤:

  1. Ribbon → PLC → 连接 Runtime
  2. 输入远程 IP、端口、密码(首次需要)
  3. 连接成功后,状态栏显示目标主机名
  4. 下载按钮会把程序推送到远程
提示

不知道远程 IP? 使用 网络扫描 自动发现同一局域网内所有 Runtime。

连接状态

状态栏最右侧图标指示连接状态:

图标含义
🟢 绿色已连接,运行中
🟡 黄色已连接,停止状态
🔴 红色断开
⚪ 灰色未配置

常见问题

  • 连不上? 检查目标机防火墙是否放行 TCP 端口、Runtime 是否启动
  • 连上后下载失败? 一般是版本不一致,先升级 Runtime 到与 IDE 相同版本
  • 密码忘了? 在远程机用管理员工具重置,或重装 Runtime

更多问题见 常见问题 → 通讯

场景 3:USB 连接

适合移动维修, Runtime 在工控机上, 平板/笔记本通过 USB-to-Ethernet 直连。

步骤:

  1. 用 USB 网卡把笔记本和工控机串起来, 双方配置 169.254.x.x 链路本地地址
  2. Ribbon → PLC → 连接 Runtime, IP 填对端的 169.254.x.x
  3. 设备会自动发现对端 (链路本地 mDNS), 列表里直接双击

USB 方式不需要固定 IP 规划, 适合现场临时接入。

场景 4:串口连接

极少数场景 (无网卡、仅有 RS-232 调试口):

  1. 串口线连接 IDE 电脑和目标 Runtime
  2. Ribbon → PLC → 串口连接, 选 COM 口、波特率 (通常 115200)
  3. 握手成功后进入"低速模式", 只支持下载和简单在线
串口性能

串口模式受带宽限制 (115.2 kbps ≈ 14 KB/s), 下载 1MB 项目约 70 秒。不支持高频在线监控, 仅做应急通讯。

连接管理器

Ribbon → PLC → 连接管理器 打开统一界面:

功能说明
连接列表所有保存过的 Runtime, 含 IP / 名称 / 最后使用时间
扫描局域网自动发现, 一键添加
手动添加输入 IP / 端口 / 名称
批量导入从 CSV 导入 N 个 Runtime
测试连接不实际连接, 仅 Ping + 端口探测
删除从列表移除 (不影响 Runtime 本身)
重命名给 Runtime 起别名, 方便识别
导出保存为 .dplcconn 文件, 分享给同事

连接凭证

每个 Runtime 可配置以下鉴权方式:

方式安全性说明
无密码首次出厂默认, 强烈建议改
密码IDE 弹窗输入
密钥对Runtime 侧导入 IDE 公钥, 免密登录
证书TLS 双向认证, 企业级部署

密码存储: 勾选"记住密码"后, 密码用 Windows DPAPI 加密存于:

%AppData%\DarraPLC\credentials.dat

换电脑后需要重新输入。

防火墙与端口

默认端口

用途端口协议
Service RPC15000TCP
Runtime 控制15001TCP
在线变量通道15002TCP
发现广播15003UDP
HMI WebSocket18080TCP

防火墙放行

IDE 电脑侧:

  • 出站: 允许连接 Runtime 的 TCP 15000~15002 (通常默认允许)
  • 入站: 允许接收 UDP 15003 广播响应

Runtime 电脑侧:

  • 入站: 允许 TCP 15000~15002 和 UDP 15003
  • 出站: 允许向 IDE 发送回复 (通常默认允许)

Windows 防火墙配置:

# Runtime 侧: 放行必要端口
New-NetFirewallRule -DisplayName "DarraPLC Runtime" `
-Direction Inbound -Protocol TCP `
-LocalPort 15000-15002 -Action Allow

New-NetFirewallRule -DisplayName "DarraPLC Discovery" `
-Direction Inbound -Protocol UDP `
-LocalPort 15003 -Action Allow

跨网段连接

默认广播发现只在同一子网生效。跨网段时需要:

  1. 手动添加: 连接管理器 → 手动添加 → 输入对端公网/路由可达 IP
  2. 路由配置: 网络设备放行 15000~15002/tcp
  3. NAT 端口映射 (如果走公网): 云端 Runtime 把 15000 映射到公网端口

不建议在公网上裸跑 TCP 15000, 推荐:

  • VPN 隧道: IDE 先连公司 VPN, 再访问内网 IP
  • SSH 跳板: ssh -L 15000:runtime:15000 jumphost, IDE 连 localhost:15000
  • Cloudflared / Tailscale: 零配置的安全隧道

多 Runtime 切换

工程里记录着目标 Runtime, 下载/在线会以当前激活目标为准。切换方法:

  • 状态栏底部 "当前目标" 区域点击下拉, 选其他 Runtime
  • 或 Ribbon → PLC → 目标 Runtime 下拉

Tip: 把常用目标拖到 Ribbon 的快速访问区, 一键切换。

连接健康监控

连接成功后, IDE 会周期性 (默认 5s) 发送心跳确认链路活跃。状态栏显示:

心跳延迟含义
< 50ms局域网正常
50~500ms一般 WAN / VPN
500~2000ms跨境 / 弱网, 可能卡顿
> 2000ms极差, 建议使用远程桌面 + 本地 IDE

连接抖动或断开时, IDE 会尝试最多 5 次重连 (指数退避 1s/2s/4s/8s/16s), 均失败后在状态栏显示"已断开"。

超时设置

设置 → 连接 → 超时:

参数默认含义
握手超时10s首次 TCP 连接 + 鉴权
下载超时300s大型项目传输最大等待
读取超时3s单次在线变量读取
心跳间隔5s两次心跳之间
重连间隔1~16s指数退避

弱网环境可以把"读取超时"调到 10s, 避免频繁超时提示。

排错决策树

连不上 Runtime
├─ Ping 通?
│ ├─ 否 → 网络问题, 检查网线/网关/IP 冲突
│ └─ 是 → 继续
├─ 端口 15000 可达? (telnet IP 15000)
│ ├─ 否 → 防火墙挡住; Runtime 未启动
│ └─ 是 → 继续
├─ 握手被拒绝?
│ ├─ "版本不匹配" → 升级 Runtime 或 IDE, 保持版本一致
│ ├─ "密码错误" → 核对凭证
│ ├─ "证书无效" → 在 Runtime 侧信任 IDE 公钥
│ └─ "许可证无效" → 续期或换授权
└─ 握手成功但后续命令失败
├─ 下载失败 → 查看 Runtime 日志 `%AppData%\DarraPLC\logs\service_*.log`
└─ 在线监视卡 → 检查心跳延迟, 可能带宽不足

更系统的排查步骤见 连接诊断