跳到主要内容

远程 Runtime

Runtime 是真正执行 PLC 程序的进程。常见部署方式:

部署位置

部署在哪适用场景
开发机本地学习、离线仿真
同机房工控机现场控制,通过以太网连接
边缘盒子远程站点,走 VPN 或公网
虚拟机测试、演示、多人共享

安装 Runtime

  1. 下载 页面下载 Runtime 安装包(Windows / Linux 版本)
  2. 目标机上运行安装包,按向导完成
  3. 启动后 Runtime 自动开启 TCP 端口,等待 IDE 连接

管理远程 Runtime

IDE 不是管理 Runtime 的唯一方式。远程机上有独立的 Runtime 管理器,可以:

  • 查看 Runtime 运行状态
  • 启动 / 停止 / 重启
  • 查看日志
  • 配置自启动

多 Runtime 管理

如果有多台 Runtime(例如产线上 10 个工位),建议:

  1. 每台 Runtime 起唯一主机名
  2. IDE 侧用 工作区(Workspace) 保存一份 IP 列表
  3. 切换目标时直接选列表,不用每次输 IP

授权

每台 Runtime 都需要一个有效授权才能运行超过试用期。授权绑定硬件 ID,详见 许可 FAQ

Runtime 组件

远程 Runtime 安装后包含以下进程:

进程用途是否默认启动
DarraPLC.Service.exe主服务, 监听端口, 管理项目
DarraPLC.Runtime.exePLC VM 宿主, 加载编译产物按需
DarraPLC.Panel.exe可选的现场 HMI, 操作员用按需
DarraRT_Eth.sys内核 EtherCAT 驱动开机加载
DarraRT_PLC.sys内核 PLC VM 驱动开机加载
DarraRT.sys内核核心隔离驱动开机加载

Runtime 状态 = Service 进程活跃 + Runtime 进程加载了项目 + 内核驱动健康。

部署向导

远程机 (工控机) 上的安装流程:

  1. 下载对应架构的 Runtime 安装包 (DarraPLCRuntime_<ver>_x64.msi)
  2. 以管理员身份运行, 向导选项:
    • 安装目录 (默认 C:\Program Files\DarraPLC)
    • 是否安装 Panel (取决于是否有现场 HMI 需要)
    • 核心隔离数 (推荐 2, 保留 CPU 核心给 RT)
    • 网卡角色 (哪些网卡给 EtherCAT 专用)
  3. 安装程序自动:
    • 注册 Service 为 Windows 服务, 开机自启
    • 安装三个内核驱动 (需要管理员)
    • 开启防火墙规则 (TCP 15000-15002, UDP 15003)
    • 创建开始菜单项
  4. 首次启动向导:
    • 设置 Runtime 主机名 (用于 IDE 发现)
    • 设置访问密码
    • 导入/激活授权 (可选, 试用期 30 天)

无人值守部署

大批量部署 (N 台产线工控机) 时用命令行:

msiexec /i DarraPLCRuntime_2.1.0_x64.msi /quiet `
TARGETDIR="C:\Program Files\DarraPLC" `
HOSTNAME="plc-line01-工位01" `
PASSWORD="..." `
LICENSEFILE="\\file-server\licenses\line01.lic" `
AUTOSTART=1

返回码 0 = 成功, 非 0 = 查看 %Temp%\DarraPLC_install.log

Runtime 管理器界面

远程机桌面有 "Darra PLC 管理器" 图标, 打开后:

视图内容
概览运行状态、当前项目、CPU/内存使用
项目已加载的 .plcx 列表, 启停/重新加载
日志Service / Runtime 日志实时 tail
驱动三个内核驱动的状态 + 版本
网络网卡角色, EtherCAT 绑定, 端口监听
授权授权状态, 到期时间, 硬件 ID
备份手动/定时备份项目 + 配置
更新检查并应用 Runtime 升级

管理器与 IDE 共用 RPC, 所以本机/远程操作体验一致。

远程部署流程

IDE 下载项目到远程 Runtime 的完整流程:

IDE 编译产出 .plcx
↓ (TCP 15000 流传输)
Service 接收并校验签名

原子替换: 备份旧项目 → 写入新项目 → 验证 → 切换

通知 Runtime 重新加载

Runtime 停 (当前 PLC 状态保存到 retain 区)

Runtime 加载新项目

Runtime 启动 (从 retain 区恢复状态)

上报成功

IDE 状态栏绿灯

任何一步失败会回滚到旧项目, 不会出现"半成功"状态。

项目热切换

同一 Runtime 可以预加载多个项目, 在线秒级切换:

  1. IDE 下载项目 A, B, C (每个项目不同 ID)
  2. 切换: runtime.switch("B") 通过 IDE 或 HMI 按钮触发
  3. Runtime 停 A, 加载 B, 启动

切换时常见 Q 区/M 区处理策略:

  • 清零: 每次切换都清 (适合安全优先)
  • 保留: 切换时 Q 区保持, 避免设备复位 (适合连续生产)
  • 自定义: 切换脚本里指定字段清, 其他保留

工作区与目标列表

IDE 侧可以把多个 Runtime 组织成工作区:

工作区: 某某电子产线
├── plc-line01-工位01 192.168.1.101
├── plc-line01-工位02 192.168.1.102
├── plc-line01-工位03 192.168.1.103
└── plc-line01-工位04 192.168.1.104

切换工作区 = 一键切换 4 个目标的上下文。

批量操作:

  • 批量下载: 对工作区内所有 Runtime 下载同一项目
  • 批量启停: 一键启动/停止所有 Runtime
  • 批量备份: 周期性备份所有 Runtime 的项目
  • 批量升级: 推送 Runtime 升级包

日志与监控

远程 Runtime 日志:

<安装目录>\logs\service_<日期>.log       Service 层
<安装目录>\logs\runtime_<日期>.log Runtime 层
<安装目录>\logs\driver_<日期>.log 内核驱动层 (需要 DbgView)

每个日志文件默认 100 MB 滚动, 最多保留 30 个文件 (~3 GB)。可在 Runtime 管理器 → 日志设置 调整。

远程查看: IDE → Ribbon → 诊断 → 远程日志, 实时 tail Runtime 侧日志。

时间同步

Runtime 之间协调需要时间一致:

  • 推荐 NTP 同步到同一服务器 (误差 < 10ms)
  • 支持 PTP (IEEE 1588) 同步, 误差 < 1μs, 用于 EtherCAT 分布式时钟

Runtime 管理器 → 时间 可查看当前时间源和偏移量。

灾备与备份

场景策略
硬件故障Runtime 管理器 → 备份 → 导出完整镜像 (项目+配置+授权)
项目误改每次下载前自动备份旧项目, 支持回滚到最近 N 个版本
授权丢失授权绑定硬件 ID, 换机器需申请新授权
误删整机备份镜像 + 再次执行静默安装 + 授权迁移申请

典型部署规模

规模架构说明
单机1 IDE + 1 Runtime学习、小型项目
产线1 IDE + 10~20 Runtime常见制造业产线
多产线N IDE + 50~200 Runtime大型工厂
云 + 边中心 + 边缘 Runtime远程站点, 物联网

排错

症状处理
Service 无法启动管理器 → 日志查看启动失败原因, 常见为端口被占
下载后 Runtime 没重启检查是否启用"自动重启", 或手工 Restart
远程 IDE 连不上但本机能连防火墙、端口转发、VPN 检查
授权过期续期后 License Manager → Reload License
项目加载后立刻崩查看 Runtime 日志 + Core Dump
多台 Runtime 时 IDE 卡减少同时在线监视的数量, 或升级 IDE 网速

更多见 连接诊断