1. 字体踩坑实录:一次配方输错暴露的“隐形风险”
做工业HMI项目这些年,我吃过最大的亏,不是通信不上、不是PLC程序跑飞,而是一个看起来毫无技术含量的“字体”问题。
那次是给客户改造一条配料生产线,界面做完了,仿真正常,PC上看也清清楚楚,于是满怀信心地发到现场。结果操作工在配方输入框里填参数时,把屏幕上显示的“号码O”看成了“数字0”,输入框里也敲了个O,结果软件报错,整条产线暂停了半个多小时。售后同事排查到最后发现,问题出在屏幕分辨率较低的液晶显示器上,那套界面用的默认字体里,数字0和字母O几乎一模一样。
从那次之后,我在任何项目里都不会再轻视字体这件事。
HMI里的字体,不是设计师口中的“视觉元素”,它是操作员获取设备状态、输入控制指令的第一媒介。字体选错了,不是在审美上扣分,而是在安全上埋雷。
我总结下来,工业场景下HMI字体选择要满足三个适配要求:
- 显示条件适配:工业现场有强光、反光、灰尘、震动、远距离观察,字体必须保证任何条件下都清晰可读;
- 语义辨识适配:0/O、1/l、8/B这些易混淆字符必须能明确区分,防止误读、误输入;
- 硬件空间适配:工业屏分辨率参差、内存有限、显示面积紧张,字体不能变形、不能发虚、不能撑爆布局。
为什么特别强调“拒绝通用字体”?因为通用字体——就是我们在办公电脑上惯用的Arial、Times New Roman、系统默认宋体、微软雅黑——它们是为文档和网页设计的,应用环境是明亮、近距离、高分辨率、无振动的桌面场景。拿到工厂里,三个适配要求每一项都可能翻车。下面我拆开讲。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 适配要求一:现场显示条件下必须“看得清、认得准”
2.1 观看距离决定最小字号,别再按电脑屏幕思维设计
做界面的人,习惯盯着电脑屏幕看效果,但工业HMI是给站在设备旁边的操作员看的。有人近距离操作触摸屏,也有值班人员站在两三米外扫一眼状态。观看距离一变,字体大小就得重新算。
这里有一个可以拿来就用的经验公式:
最小字符高度(mm)≈ 观看距离(mm)÷ 200
这个公式来自人眼对字符的舒适视角(约0.3度),不是玄学。下面这张表,是我在不同项目里常用到的换算结果:
| 观看距离 | 最小字符高度 | 对应工业屏上的最小字号(经验值) |
|---|---|---|
| 0.5米 | 2.5mm | 约12pt以上 |
| 1米 | 5mm | 约16pt以上 |
| 2米 | 10mm | 约24pt以上 |
| 3米 | 15mm | 约36pt以上 |
注意,这还只是“能看清”的下限。我习惯在此基础上加50%的余量,因为操作工不是时刻都精神饱满,夜班、疲劳、光线差这些因素都会打折。项目启动时我会先问自己三个问题:操作工平时站在哪里?隔着防护玻璃还是直接触摸?屏幕是横装还是吊装?这几个答案直接决定字号,比任何设计规范都管用。
2.2 亮度、反光、震动场景下的对比度与字重要同步加码
工厂环境里的光线,和办公环境完全两回事。靠窗工位可能正对强光,有些车间晚上只开昏暗的钠灯,还有大量设备带防护玻璃和防爆罩,屏幕前再贴一层膜,透光率立刻下降。
在这种环境里,字体太细就是灾难。笔画细的字体,在LCD屏反光时会出现“整根笔画断掉”的错觉,远看像字体缺了笔。我的实测经验是三个字:粗、黑、稳。普通信息至少用Medium字重,关键数值用Bold,报警信息用更粗的字重加底色反白。
文字和背景的对比度,我建议不低于7:1。虽然业内常提的WCAG标准是4.5:1,但那是针对普通显示器,工业现场有反光、偏光、防爆玻璃这些干扰因素,标准要往上抬。也不要迷信“深底白字”就一定清楚,如果字体笔画过细,白字在深色背景下反而会发虚,适得其反。
2.3 数据动态刷新时,字体的“拖影”和“糊感”如何规避
工业HMI上大量显示实时数据,温度、压力、转速、产量,每秒都在刷新。字体如果字腔小、笔画过于密集,数字在切换的时候就容易“糊”成一团。
举个例子,7段数码管风格在低分辨率屏上很占优势,笔画简单、辨识度高。但在高分辨率屏上,这种风格反而显得线条细碎,长时间看容易疲劳。反而是一些字腔大、笔画均匀的无衬线字体,在动态刷新时人眼追踪更轻松。
还有一个很容易踩的坑:斜体。数据刷新区域千万不要用斜体字,斜体笔画让视觉重心偏移,刷新的瞬间人眼很难锁定数字,亲测在温度跳变频繁的页面上尤其明显。动态数据区域,全部用正体、粗体,这是原则。
3. 适配要求二:0和O、1和l,误读风险必须降到零
3.1 最容易读错的字符组合清单
在工业界面上,有几组字符是误读高发区,我不能说得太绝对,但下面这几组必须警惕:
- 数字0 与 字母O
- 数字1 与 小写字母l、大写字母I
- 数字8 与 字母B
- 数字5 与 字母S
- 数字2 与 字母Z
- 数字7 与 字母T(某些字体下)
- 单位里的“kg”(千克)和“ml”(毫升)放在一起也容易看花眼
这些字符出现在配方号、批次号、序列号、参数输入框里时,危险系数直线上升。Arial、微软雅黑这类通用字体,0和O、1和l在较小的字号下几乎无法区分,在办公文档里无所谓,在HMI上就是现场事故的导火索。
3.2 什么样的字形设计才是“防呆”的
真正适合工业HMI的字体,字形上一定自带“防呆设计”:
- 数字0带斜杠或底部点,字母O不带任何标记;
- 数字1带明显的顶部衬线(小旗子),大写I不带横杠和衬线,小写l呈圆尾或带钩;
- 数字8和字母B的“肚子”大小有明显差异,不是对称关系;
- 数字5的上横平直清晰,数字7带或者不带中间横杠要在项目里统一,不能混用。
如果字体本身不具备这些特征,那就换一款。我实测表现比较好的有:Tahoma的0/O区分明显,1带小旗子,适合作为英文数据主字体;Verdana字腔大、笔画均匀,远距离可读性好;思源黑体(Noto Sans CJK)在中文和数字混排时的表现也很稳。反过来,Arial、Times New Roman、宋体这类,在易混淆字符的辨识上统统不合格。
3.3 中文界面里的全角半角、单位与特殊符号陷阱
国内HMI还有一个很隐蔽的坑:全角字符。
操作员输入数据时,如果输入法停留在中文状态,敲出来的数字会是全角数字“123”,显示宽度和半角数字完全不同。这会导致字符串匹配失败、校验出错,甚至数据写库时出错。排查这类问题非常耗时间,因为它看起来不像字体问题,实际上就是字体和字符集的问题。
字体选型时,还要确认每个字重下都完整包含这些常用符号:摄氏度(°C)、正负号(±)、百分号(%)、欧姆(Ω)、微(μ)、乘号(×)、除号(÷)等。很多字体在常规字重下齐全,但到了Bold字重就缺字符,界面上一旦触发粗体显示,符号就会变成方框乱码。
另外,汉字本身的笔画结构复杂,信息密度高。在低分辨率工业屏上,宋体这类衬线字体的横细竖粗差异会被放大,缩小后明显断笔,非常不建议用。无衬线的黑体类字体——包括思源黑体、微软雅黑、系统黑体——笔画相对均匀,在屏显环境下才是更稳的选择。
4. 适配要求三:字体要装进工业屏的物理限制里
4.1 分辨率跨度大,字体必须自适应
工业HMI的屏幕分辨率跨度,比手机生态乱得多。从老款组态屏的320×240,到中端设备的800×480、1024×768,再到宽屏项目的1280×800、1920×1080,同一个工程经常要部署到不同尺寸的触摸屏上。
字体如果锁死绝对像素,换一块屏就全乱。我现在的做法是:在HMI组态软件里尽量用相对尺寸、百分比布局,同时针对不同物理尺寸的屏幕定制“字号分档”,比如7寸屏一套、10寸屏一套、15寸屏一套,而不是靠一台机器单独调。
还有一点容易被忽略——字体嵌入。把字体文件塞进HMI设备时,要确认字符集完整,特别是中文全字库和特殊符号,否则项目换到另一台设备上就会缺字。有些项目为了省空间只嵌入了子集,结果切换页面时发现某些汉字变方框,哭都来不及。
4.2 嵌入式渲染引擎和位图字体的问题
这是“PC上看着好好的,一到设备就拉胯”的经典原因。PC端组态软件用的是桌面系统的字体渲染引擎,平滑、抗锯齿、次像素渲染全开着,显示效果当然好。很多嵌入式HMI设备运行的是精简版Linux或RTOS,字体渲染往往是用位图方式,没有高级抗锯齿,同一款TrueType字体显示出来就是满屏毛刺。
所以选型时要注意两点:
- 优先使用HMI硬件厂商预装的字体,这些字体在设备上经过专门适配,显示效果有保障;
- 如果要加载外部TTF字体,选那些笔画结构简洁、字腔开阔的,不要选笔画极细的极简设计字体或装饰性强的艺术字体,它们在位图渲染下毫无辨识度。
西门子、威纶通等主流HMI平台都有自己的系统字体建议,项目初期先查一遍对应型号的字体支持文档,能省下大量的联调时间。
4.3 信息密度是平衡艺术:不是所有信息都配大字
屏幕面积就那么大,如果所有信息都用超大号字体,整个界面会变成一锅粥,重点信息反而淹没在字海里。信息密度和字号之间必须做平衡。
我习惯在项目里建立一套“三级字号体系”:
| 信息级别 | 典型内容 | 建议字重 | 对比度要求 |
|---|---|---|---|
| 一级 | 当前值、报警信息、目标值 | Bold/Heavy | ≥7:1 |
| 二级 | 参数名称、操作按钮文字 | Regular/Medium | ≥4.5:1 |
| 三级 | 辅助说明、单位、时间戳 | Regular | ≥3:1 |
行高控制在字体大小的1.3~1.5倍,中文和数字混排时数字用半角、中文用全角,单位符号紧跟数字、不用空格隔开。这一套规则做下来,眼睛扫视数据的速度能明显提升,因为信息被组织成了“块”,不是散落的单字。
5. 落地选型:我在项目中一直在用的HMI字体方案
5.1 一份可直接复制的字体清单
做项目不是搞字体研究,稳定、省心、少踩坑才是第一诉求。我目前在各类项目里用的是下面这套组合,不是唯一解,但经过多个项目验证,很少出问题:
| 用途 | 推荐字体 | 理由 |
|---|---|---|
| 英文数值与状态 | Tahoma、Verdana | 数字/字母区分度高,观感清晰,兼容性好 |
| 中文界面 | 思源黑体(Noto Sans CJK)、微软雅黑、系统黑体 | 笔画均匀,屏显稳,中英文混排协调 |
| 配方号/序列号 | DejaVu Sans Mono、Consolas | 等宽字体下0/O、1/l辨识度极高 |
| 仪表盘纯数字 | DSEG7、7段数码字体 | 工业仪表风格,远距离清晰 |
| 大屏看板 | 思源黑体 Heavy、DIN Pro | 字面饱满,远距离辨识度高 |
微软雅黑在这里单独提一句:显示效果确实不错,但它有版权问题,商业设备批量出货时存在法律风险。如果做的是批量销售的设备,建议优先用开源的思源黑体,或者干脆用HMI平台内置的字体,省心省事。
5.2 字号阶梯和界面规范怎么定
我每启动一个项目,就会先把字号阶梯定下来,所有界面都套用同一条规则,避免电气工程师和上位机工程师各写各的:
- 触摸输入框:16pt以上
- 按钮标题:16pt
- 三级标题:20pt
- 二级标题:28pt
- 一级关键数值:40pt及以上
- 报警弹出框:24pt加粗
这套阶梯不是死数字,要按屏幕物理尺寸和观看距离做二次折算。但它给了团队一个统一的参照系,界面风格才不会五花八门。组态软件里如果支持样式模板,就把这套字号存成模板,项目里直接调用,改一处全局生效。
5.3 特殊场景:手套操作、防护玻璃、防爆环境
工业现场还有一个容易被“坐在电脑前”的设计师忽略的场景:操作工是戴手套的。
棉纱手套会显著降低触控精度,所以按钮上的文字不能小,按钮的物理按压尺寸也不能小。我的建议是按钮文字不低于20pt,按钮最小按压尺寸不小于44×44px。这个尺寸在人体工程学里是有依据的,不是拍脑袋。
如果操作工隔着防护玻璃、防爆罩或者护目镜看屏幕,字体的字号和粗度还要再往上加一档。因为这些遮挡物都会造成视觉模糊和对比度下降。我做过一个化工项目,屏幕外面加了两层防爆玻璃,原本看得清楚的20pt字体装上去就模糊了,最后把关键信息全部调到32pt加粗才算过关。
6. 选型验证:用误读率而不是“第一眼好看”来验收字体
6.1 字符辨识测试:把高危字符怼到屏幕上
项目验收前,我会专门做一个“字符辨识测试页”——把0、O、1、l、I、8、B、5、S、2、Z、7、kg、ml、°C这些高危字符和组合,按随机顺序铺满整个屏幕,让操作员在正常工作距离读一遍,我逐条记录。
判定标准很简单:任何字符的误读率超过1%,这组字体就不合格;报警相关的数据误读率必须为0。注意,一定要找不熟悉这个项目的人来测,不能找开发工程师自己测——工程师知道屏幕上写的是什么,会下意识地“脑补”出正确答案,测试效果失真。
6.2 现场光照模拟与观察距离测试
把设计稿真正“装”进HMI设备里,拿到车间现场,分别模拟白天、夜班、强光直射、屏幕反光、玻璃隔挡五种条件。每个条件下翻几页关键界面,拍至少10张照片,拿回电脑上放大看,找笔画断裂、反光发白、边缘毛刺的字体做替换。
我还有一个实用的土办法:用手机在真实观察距离拍一张屏幕照片,然后再退后50%拍一张,放大后看能不能一眼读出关键数值。这个方法不花一分钱,但效果奇好,能提前暴露很多在电脑上完全看不出来的问题。
6.3 连续注视抗疲劳测试
设备操作不是读一眼就完事,是连续8小时盯着看。有些字体第一眼清楚,看久了眼睛特别累。我的测试方法是:让测试人员在HMI前连续看15分钟动态刷新数据,结束后我问一句:“最后3分钟屏幕上的数值是多少?”答不上来,说明字体的易读性没过关,需要加大字号或者行距。
这个测试几乎没人做,但恰恰是字体“实战”能力的分水岭。我自己做了一轮才发现,一款原本很满意的字体,在动态刷新1小时之后,视觉疲劳非常明显。换成笔画更粗、字腔更大的字体后,疲劳感明显缓解。所以,一定不要只看第一眼印象。
字体选型这件事,本质上是为操作员的眼睛和手负责。多花半天时间做一轮测试,可能就避免了一次误操作事故。那次“字母O当数字0”的覆辙,我是不想再犯第二回了。
