数值显示元件隐藏零,核心是处理前导零、尾零、全零三种情况,按你用的是HMI 触摸屏、PLC 数码管、组态软件,直接用下面对应方法即可。
一、HMI 触摸屏(威纶 / 西门子 / 普洛菲斯 / 昆仑通态)
1. 隐藏前导零(最常用)
威纶通(EasyBuilder Pro)
打开数值元件属性 → 显示格式
格式选择:9999.99(用 9 代替 0)
勾选:零抑制 / 隐藏前导零
对齐:右对齐
西门子(博图 / WinCC)
I/O 域 → 属性 → 显示格式
格式字符串:S9999.99(S = 右对齐,9 = 不显示前导零)
普洛菲斯(GP-Pro EX)
数值显示 → 样式 → 零抑制(勾选)
2. 隐藏小数点后尾零(如 5.00 → 5)
威纶 / 西门子 / Proface:
显示格式 → 勾选 隐藏无效零 / 尾零抑制
小数位数设为固定(如 2 位),自动去掉末尾 0
3. 变量 = 0 时完全隐藏(显示空白)
方法 A(颜色隐藏,推荐)
数值元件 → 动画 → 外观
条件:变量 = 0 → 字体颜色 = 背景色
方法 B(可见性控制)
数值元件 → 可见性
关联变量:变量≠0 时显示,=0 时隐藏
二、PLC + 数码管 / LED(三菱 / 西门子 / 欧姆龙)
1. 硬件数码管:高位消零(程序实现)
核心逻辑:从高位开始,遇到第一个非零才开始显示
plaintext
// 伪代码(4位数码管) 标志位 := 0; // 0=前导零状态,1=已开始显示 FOR i := 4 DOWNTO 1 DO IF 标志位=0 AND 数码管[i]=0 AND i>1 THEN 不显示该位; ELSE 显示该位; 标志位 := 1; END_IF; END_FOR; // 全零处理:最后一位必须显示0
三菱 FX:用 MOV/COMP/AND 组合实现
西门子 S7-1200:用 FC/FB 写消零逻辑
2. 隐藏全零(0 不显示)
PLC 程序:当数值 = 0 时,关闭对应数码管段选 / 位选,或输出空白编码
三、组态软件(WinCC / 组态王 / 力控)
1. 格式字符串(直接设置)
WinCC:I/O 域 → 格式 → 9999.99(自动消前导零)
组态王:数值显示 → 显示格式 → #.###(#= 隐藏无效零)
2. 脚本处理(灵活)
VBS 示例(变量 = 0 时显示空)
vb
If HMIRuntime.Tags("Tag1").Value = 0 Then ScreenItems("Text1").Text = ""Else ScreenItems("Text1").Text = CStr(HMIRuntime.Tags("Tag1").Value)End If
四、常见问题与处理
前导零还在
格式用了 0000.00 → 改成 9999.99 或 #.###
小数点前 0 不显示(如.5 instead of 0.5)
格式改为 0.99(强制显示小数点前一个 0)
全零想显示一个 0,不想空白
程序 / 脚本:判断数值 = 0 → 显示 "0",否则正常显示
五、快速设置对照表
表格
| 场景 | 目标 | 推荐设置 |
|---|---|---|
| HMI 数值 | 隐藏前导零 | 格式:9999.99 + 零抑制 |
| HMI 数值 | 隐藏尾零 | 勾选 “隐藏无效零” |
| HMI 数值 | 0 显示空白 | 颜色 = 背景色 或 可见性控制 |
| 数码管 | 高位消零 | PLC 程序写消零逻辑 |
| 组态软件 | 通用隐藏 | 格式:#.### |


