4. HMI变量绑定机制

在Sysmac Studio中,NA系列HMI与NJ/NX系列PLC同处一个工程体系,HMI画面上的每一个可交互对象——按钮、指示灯、数值显示、趋势图——最终都要落到一个具体的变量上。理解变量绑定机制,本质上就是理解“HMI侧的对象如何与PLC侧的存储区建立一条可读可写的通道”。这条通道建立得是否准确,直接决定了画面能否正常显示、操作能否被PLC接收,以及调试阶段能否快速定位问题。

一、直接映射:HMI变量与PLC变量的对应关系

NA HMI的变量绑定有两种基本方式。第一种是直接映射:在HMI变量表中定义一个变量,将其“PLC地址”属性指向PLC侧的某个变量名或直接地址。例如在HMI变量表中建立变量 StartBtn,类型为BOOL,映射到PLC全局变量 GVL_Machine.bStart。此时HMI画面上按钮的“按下”动作就会直接写入该PLC变量,PLC程序无需做任何额外处理即可读取。

第二种是通过变量组间接映射。当画面数量多、变量数量大时,逐个手工填写映射关系既繁琐又容易出错。Sysmac Studio允许把一组逻辑相关的HMI变量组织成一个变量组,并让该组整体关联到PLC侧的一个结构体变量或一组连续地址。例如把一台电机的“启动、停止、运行反馈、故障、电流、转速”六个变量放入变量组 Grp_Motor1,整体映射到PLC结构体 stMotor[1]。这样在画面复制、设备批量复用、多工位程序生成时,只需替换组映射目标,组内所有变量的对应关系随之整体迁移。

直接映射适合变量少、逻辑独立的场合;变量组适合设备重复、结构规整的场合。选择哪种方式,取决于工程中“同类对象”的数量和复用程度。

二、数据类型匹配:绑定能否成立的硬条件

变量绑定不是“名字对上就行”,数据类型必须匹配。NA HMI变量支持BOOL、INT、DINT、REAL、STRING、TIME等类型,PLC侧对应变量也有自己的类型。若HMI侧定义为INT而PLC侧为REAL,绑定虽然可能被接受,但运行时数值会按位解释,显示结果完全错误。常见匹配关系如下:

HMI变量类型PLC变量类型典型用途
BOOLBOOL按钮、指示灯、联锁标志
INTINT / WORD小范围计数值、状态码
DINTDINT / DWORD累计产量、位置值
REALREAL / LREAL温度、压力、速度
STRINGSTRING配方名、报警文本

需要特别注意的是数组与结构体。PLC侧 stMotor[1].rCurrent 是REAL,HMI侧就必须用REAL去接;若HMI侧误用DINT,读到的将是该REAL的整数位模式,显示为一个毫无意义的大整数。另一个易错点是位访问:PLC侧 wStatus.0 是WORD的第0位,HMI侧应绑定为BOOL,而不是把整个WORD绑成INT再在画面上做位判断——后者会增加脚本负担且容易出错。

三、在线变量监控:绑定是否生效的验证手段

绑定关系建立后,必须通过在线监控确认它真的通了。Sysmac Studio提供两条并行的观察路径:一是PLC侧的变量监视表,可以看到 GVL_Machine.bStart 当前是TRUE还是FALSE;二是HMI侧的在线变量监控,可以看到HMI变量 StartBtn 的当前值。当操作者在HMI上按下按钮时,若PLC侧变量立即变为TRUE、松开后变回FALSE,说明写通道正常;若PLC侧数值变化而HMI数值显示不变,则说明读通道或刷新周期有问题。

监控时还要关注刷新周期。NA HMI的变量有“周期更新”和“事件更新”两种刷新方式。对于按钮类写变量,通常用事件更新即可;对于数值显示、趋势曲线,必须用周期更新,周期一般设为100~500ms。若把需要连续观察的模拟量设为事件更新,画面上的数值会长时间不变化,容易被误判为通信故障。

NA HMI 变量绑定与在线监控关系图 NA HMI 侧 HMI变量表 StartBtn : BOOL 变量组 Grp_Motor1 bStart / rCurrent / iSpeed 画面对象 按钮 / 数值显示 / 指示灯 在线变量监控 观察HMI侧当前值 刷新:周期 / 事件 NJ/NX PLC 侧 全局变量 GVL_Machine bStart : BOOL 结构体 stMotor[1] bStart / rCurrent / iSpeed 用户程序 读取 / 写入 / 逻辑运算 变量监视表 观察PLC侧当前值 EtherNet/IP 或 OPC UA 直接映射:StartBtn → GVL_Machine.bStart 变量组映射:Grp_Motor1 → stMotor[1] 数据类型匹配检查 BOOL↔BOOL REAL↔REAL INT↔INT STRING↔STRING 在线监控:两侧数值对照验证 绑定成立条件:名称对应 + 类型匹配 + 刷新方式正确 + 通信链路正常

四、绑定失败的典型排查顺序

当画面上按钮无响应或数值不刷新时,按以下顺序排查效率最高。第一步,确认HMI变量是否真的绑定了PLC变量,而不是只建了变量却忘了填映射地址。第二步,核对数据类型,重点检查REAL与DINT、WORD与BOOL位访问这两类高频错误。第三步,检查刷新方式,数值显示类对象若设为事件更新,改为周期更新并设置合理周期。第四步,确认通信链路,EtherNet/IP连接是否建立、节点地址是否一致、PLC是否处于RUN模式。第五步,用两侧监控表对照,若PLC侧变量随操作变化而HMI侧不变,问题在HMI读取路径;若HMI侧变化而PLC侧不变,问题在写入路径或PLC程序未使用该变量。

变量组映射时,组内变量的顺序和偏移必须与PLC结构体成员严格一致。若结构体中间插入了一个新成员,而HMI变量组未同步调整,后续所有成员的映射都会整体错位,表现为“数值全部对不上但通信正常”,这类问题最难排查,务必在结构体变更后重新核对组映射。

五、一个可复用的绑定检查清单

综合以上内容,实际工程中可按以下清单逐项确认,避免遗漏:

  • HMI变量是否已填写PLC映射地址,地址拼写是否与PLC变量名完全一致(区分大小写)。
  • HMI变量类型与PLC变量类型是否匹配,数组下标、结构体成员名是否正确。
  • 变量组映射时,组内成员顺序、数量、类型是否与PLC结构体定义一致。
  • 数值显示、趋势图类对象是否使用周期更新,周期是否在100~500ms合理区间。
  • 按钮类写变量是否使用事件更新,是否存在重复写入或写冲突。
  • 在线监控时,两侧数值是否同步变化,变化方向是否符合预期。
  • 结构体或数组定义变更后,是否重新核对了所有相关变量组映射。