1. 课程导入

在工业自动化项目中,PLC 控制逻辑只是系统的一半,另一半是“人如何看见、如何操作、如何远程维护”。CODESYS 作为 IEC 61131-3 的主流开发平台,不仅提供 PLC 编程环境,还内置了可视化(Visualization)与远程访问能力。本课程围绕 CODESYS HMI 开发 与 远程运维 两条主线展开,帮助你把“能跑的控制程序”升级为“可交付、可维护、可远程诊断的完整系统”。

一、学习目标:从会编程到能交付

本课程不是单纯讲控件拖拽,而是以工程交付为目标。学完后,你应当具备以下能力:

  • HMI 设计能力:能基于 CODESYS Visualization 设计画面、绑定变量、处理用户权限与报警。
  • 数据交互能力:理解 HMI 与 PLC 变量、结构体、数组之间的数据映射关系。
  • 远程运维能力:掌握 WebVisu、网关、VPN、端口映射等远程访问方式,并能判断其适用边界。
  • 诊断与排障能力:能通过日志、在线变量、网络状态定位 HMI 无响应、变量不刷新、远程断连等问题。
  • 安全与规范意识:理解远程运维中的认证、加密、最小权限与审计要求。
核心判断:HMI 不是“画得好看”,而是“数据对、权限清、报警准、远程稳”。这四点决定了项目能否真正上线。

二、核心概念:先建立正确的对象模型

CODESYS HMI 与远程运维涉及几个关键对象,理解它们之间的关系,比记住菜单位置更重要。

概念 作用 典型对象/参数
可视化(Visualization) 运行在 PLC 或 Web 端的画面系统 Visualization、Frame、Element
变量绑定 把画面元素与 PLC 变量关联 PLC_PRG.nSpeed、结构体成员
WebVisu 通过浏览器访问 HMI 画面 WebServer、端口 8080
网关/路由 实现跨网段远程访问 Gateway、IP 转发、VPN
用户与权限 控制不同角色的操作范围 User、Group、Access Rights
报警系统 对异常状态进行提示与记录 Alarm、Alarm Group、Ack

其中最容易混淆的是“本地 HMI”与“WebVisu”。本地 HMI 通常运行在触摸屏或工控机上,依赖目标设备;WebVisu 则由 PLC 内置 Web 服务器生成页面,浏览器即可访问。两者变量来源相同,但部署方式和性能边界不同。

三、整体框架:三层结构看清全貌

本课程的知识体系可以归纳为“现场层—服务层—访问层”三层结构。现场层负责数据采集与控制;服务层负责画面、报警、用户和 Web 服务;访问层负责本地操作与远程接入。下图展示了这一整体框架及学习路径。

CODESYS HMI 与远程运维整体框架 访问层 本地触摸屏 HMI 浏览器 WebVisu 远程运维终端 目标:看得见、控得住、连得稳 服务层 可视化画面 报警与记录 用户与权限 Web 服务器 目标:数据映射正确、权限清晰、报警可追溯 现场层 PLC 控制程序 变量与结构体 设备与 I/O 目标:变量稳定、周期确定、状态可读 学习路径:变量与画面 → 报警与权限 → WebVisu → 网关与远程接入 → 安全与排障

四、方法流程:一个可复用的开发闭环

无论项目大小,HMI 与远程运维开发都可以按以下闭环推进:

  1. 需求梳理:明确画面数量、操作角色、报警等级、远程访问范围。
  2. 变量规划:先定义 PLC 变量与结构体,再设计画面绑定,避免“画面先行、变量混乱”。
  3. 画面开发:按“总览—分页—详情”组织,关键参数放在首屏。
  4. 权限与报警:配置用户组、访问权限、报警组与确认机制。
  5. 远程接入:选择 WebVisu、网关或 VPN,并测试带宽与延迟。
  6. 联调与排障:在线监控变量、查看日志、模拟断网与权限切换。
建议在项目初期就建立变量命名规范,例如 HMI_ 前缀用于画面变量,ALM_ 前缀用于报警变量。后期排障时,命名规范能显著降低沟通成本。

五、案例场景:一个远程水泵站监控

假设你需要为一个偏远水泵站开发 HMI,并要求工程师在办公室远程查看。典型配置如下:

PLC 变量:
  PLC_PRG.nPressure   : REAL;   // 出口压力
  PLC_PRG.bPumpRun    : BOOL;   // 泵运行状态
  PLC_PRG.nFlow       : REAL;   // 瞬时流量
  ALM_PRG.bOverload   : BOOL;   // 过载报警

WebVisu 配置:
  WebServer  : 启用
  Port       : 8080
  访问方式   : http://192.168.1.10:8080/webvisu.htm

远程接入:
  方案A:VPN 拨入内网后访问 WebVisu
  方案B:网关端口映射 + 强密码 + HTTPS

这个案例中,画面负责展示压力、流量和泵状态;报警系统负责过载提示;WebVisu 负责远程查看;VPN 或网关负责跨网段接入。四者缺一不可。若只做画面不做权限,任何人都能启停水泵;若只做远程不做加密,端口暴露将带来严重安全风险。

六、常见误区与复盘

  • 误区一:先画画面再想变量。 结果变量命名混乱、结构体无法复用,后期改一处牵动全局。
  • 误区二:把 WebVisu 当成万能远程方案。 低带宽或高实时场景下,WebVisu 刷新延迟明显,应评估网关或本地 HMI。
  • 误区三:忽略权限分级。 操作员与工程师共用同一账号,误操作风险极高。
  • 误区四:远程端口直接暴露公网。 必须使用 VPN、HTTPS、强密码与访问白名单。
  • 误区五:不做断线模拟。 远程运维必须测试网络抖动、断连重连和会话超时。
远程运维的第一原则是“最小暴露面”。能走 VPN 就不要直接映射端口;能只读就不要开放写权限;能审计就不要关闭日志。