4. HMI画面基础元件与变量连接
HMI画面是操作人员与PLC之间的“窗口”,而基础元件则是这个窗口里真正可交互的控件。按钮负责把操作意图送入PLC,指示灯负责把PLC内部状态反馈给操作人员,输入输出域则承担参数设定与数值监视。三者配合,才能构成一个完整的启停控制与状态显示回路。本节围绕按钮、指示灯、输入输出域三类元件,说明它们在HMI工程中的属性含义、与虚拟PLC变量的连接方式,以及如何通过变量地址、数据类型和读写方向实现可靠的启停控制与状态显示。
一、三类基础元件的职责与变量方向
在HMI组态中,每个元件都必须绑定一个PLC变量,元件的行为由“变量方向”和“数据类型”共同决定。按钮通常写入PLC,属于HMI→PLC方向;指示灯读取PLC,属于PLC→HMI方向;输入输出域则可能双向,输入时写PLC,输出时读PLC。理解这一点,是避免“按钮按下去没反应”或“指示灯不亮”的第一道关口。
以常见的虚拟PLC联调环境为例,假设PLC侧已定义以下变量:启动按钮信号 M0.0(BOOL)、停止按钮信号 M0.1(BOOL)、运行状态 M10.0(BOOL)、故障状态 M10.1(BOOL)、设定转速 MW20(INT)、实际转速 MW22(INT)。HMI侧元件与这些变量的对应关系如下表所示。
| HMI元件 | 绑定变量 | 数据类型 | 方向 | 作用 |
|---|---|---|---|---|
| 启动按钮 | M0.0 | BOOL | HMI→PLC | 置位启动请求 |
| 停止按钮 | M0.1 | BOOL | HMI→PLC | 置位停止请求 |
| 运行指示灯 | M10.0 | BOOL | PLC→HMI | 显示运行状态 |
| 故障指示灯 | M10.1 | BOOL | PLC→HMI | 显示故障状态 |
| 转速设定域 | MW20 | INT | HMI→PLC | 写入目标转速 |
| 转速显示域 | MW22 | INT | PLC→HMI | 读取实际转速 |
这张表是HMI变量连接的核心依据。组态时如果方向填反,例如把运行指示灯也设成HMI→PLC,那么指示灯将不再跟随PLC状态变化,而是被HMI单方面改写,联调时就会出现“灯亮但PLC里M10.0仍为0”的矛盾现象。
二、按钮的组态要点:瞬时、置位与复位
按钮在HMI中通常有三种触发方式:瞬时按下(按下为1,松开为0)、置位(按下后保持1)、复位(按下后保持0)。对于启停控制,推荐采用“启动按钮置位M0.0、停止按钮置位M0.1”的方式,再由PLC程序在扫描周期内完成自锁与互锁。这样做的原因是:HMI按钮的按下时间远短于PLC扫描周期,若用瞬时方式直接驱动输出,容易因通信延迟丢失信号。
具体组态时,启动按钮的“按下”事件绑定函数 SetBit(M0.0),停止按钮的“按下”事件绑定 SetBit(M0.1)。PLC侧程序在检测到M0.0为1后,置位运行状态M10.0并复位M0.0;检测到M0.1为1后,复位M10.0并复位M0.1。这种“请求—应答—清除”的握手方式,可以避免按钮信号长期占用导致无法再次启动。
三、指示灯的动态属性与状态映射
指示灯的关键在于“什么状态显示什么颜色”。以运行指示灯为例,绑定M10.0后,可设置:M10.0=0时显示灰色,M10.0=1时显示绿色。故障指示灯绑定M10.1,M10.1=0时灰色,M10.1=1时红色并闪烁。闪烁频率通常设为1Hz或2Hz,用于区分“故障存在”与“故障已确认但未排除”两种状态。
在虚拟联调中,指示灯的刷新依赖HMI与PLC的通信周期。若通信周期为100ms,而PLC扫描周期为10ms,则指示灯最多滞后100ms显示。对于启停控制这类慢过程,100ms完全可接受;但对于高速计数或脉冲输出状态,就需要缩短通信周期或改用事件触发刷新。
四、输入输出域的数据类型与格式
输入输出域比按钮和指示灯多了一层“数值转换”。以转速设定域为例,绑定MW20(INT),量程0~3000,单位r/min。组态时需要设置:数据类型为INT,格式为十进制,小数位为0,输入范围0~3000。如果实际PLC中MW20是REAL类型,则HMI侧也必须选REAL,否则会出现数值错乱。
输出域绑定MW22时,除了显示实际转速,还可以增加“超限变色”功能:当MW22大于MW20的110%时,显示红色。这一功能通过HMI的“动画—颜色”属性实现,条件表达式为 MW22 > MW20 * 1.1。这样操作人员无需计算,就能直观判断转速是否异常。
五、联调验证:从按钮到指示灯的完整回路
组态完成后,需要按“写—读—显示”的顺序验证。第一步,在HMI上按下启动按钮,观察虚拟PLC的M0.0是否变为1;若不变,检查按钮事件是否绑定正确、通信是否建立。第二步,M0.0变为1后,PLC程序应在一个扫描周期内将M10.0置位并复位M0.0;此时观察M10.0是否变为1。第三步,M10.0变为1后,HMI运行指示灯应在通信周期内由灰变绿。第四步,在转速设定域输入1500,观察MW20是否变为1500;再观察MW22是否随PLC程序中的反馈逻辑变化,显示域数值是否同步更新。
如果运行指示灯不亮,但PLC中M10.0确实为1,问题通常出在HMI侧:指示灯绑定的变量地址写错、方向设反、或者颜色动画条件未启用。如果按钮按下后M0.0短暂为1又立刻变0,但M10.0没有置位,则可能是PLC程序未下载或未运行,或者M0.0被其他逻辑复位。联调时建议同时打开PLC变量监视表和HMI画面,逐点比对,不要只盯一个界面。
六、常见问题与处理
第一类问题是“按钮无响应”。优先检查通信连接是否正常、变量地址是否存在、按钮事件是否绑定。第二类问题是“指示灯常亮或常灭”。检查变量方向是否为PLC→HMI,以及颜色动画的条件是否写反。第三类问题是“输入域数值跳变或显示乱码”。检查数据类型是否匹配,INT与REAL不能混用,同时确认量程和格式设置正确。第四类问题是“启停互锁失效”。这通常不是HMI问题,而是PLC程序中未做M10.0的自锁和M0.1的优先复位,需要在PLC侧补充逻辑。
掌握按钮、指示灯、输入输出域与虚拟PLC变量的连接方法后,HMI画面就不再是静态的图片,而是一个能真实反映PLC运行状态、并能向PLC下达操作指令的交互界面。后续更复杂的画面切换、报警记录和趋势曲线,都建立在这一节所讲的变量连接基础之上。