4、UI/UX设计规范:工业HMI配色原则、字体选择与触控尺寸

好,咱们进入第四讲。这一章我打算聊聊UI/UX设计规范里最容易被忽视、但又最要命的三件事:配色、字体、触控尺寸

你可能觉得配色不就是选几个好看的颜色吗?字体随便用个黑体不就行了?触控尺寸?屏幕够大就行?

嗯,我以前也这么想。直到有一次,我在一个钢厂项目里,操作工在强光下盯着屏幕看了八小时,眼睛都快瞎了,还按错了好几次按钮……从那以后,我再也不敢小看这些“基础规范”了。

4.1 工业HMI配色原则:安全色与低饱和度

工业HMI的配色,跟做手机App完全是两码事。手机App可以花里胡哨,工业界面不行。为什么?因为操作工要长时间盯着看,而且现场环境往往很恶劣——强光、震动、灰尘、甚至油污。

核心原则就两条:安全色优先,饱和度压低。

4.1.1 安全色:别让颜色产生歧义

工业现场有国际通用的安全色标准,比如ISO 3864或者GB 2893。这些颜色是有“语义”的,不能乱用。

颜色 含义 典型用途
红色 危险/紧急/停止 急停按钮、报警状态、故障指示
黄色 警告/注意 预警状态、边界条件、维护提示
绿色 安全/正常/运行 设备运行中、状态正常、允许操作
蓝色 强制/指令 必须执行的操作、安全标识
黑色/白色/灰色 中性/背景/文字 界面背景、文字、分割线
⚠️ 警告: 千万别把“停止”按钮做成绿色,把“运行”做成红色。我在一个食品加工厂见过这种设计,操作工习惯性按绿色启动,结果按成了停止,整条产线停了半小时。这种错误,一次就够了。

4.1.2 低饱和度:保护操作工的眼睛

高饱和度的颜色,比如纯红(#FF0000)、纯蓝(#0000FF),在屏幕上非常刺眼。操作工盯久了,眼睛会疲劳、流泪,甚至出现色觉偏差。

我个人习惯的做法是:把安全色的饱和度降低30%-50%

举个例子:

  • 红色:不用#FF0000,改用#CC3333或#B22222
  • 绿色:不用#00FF00,改用#339933或#2E8B57
  • 黄色:不用#FFFF00,改用#CCAA00或#DAA520

这样既保留了颜色的语义,又不会刺眼。说白了,就是让颜色“柔和”一点。

💡 小技巧: 我一般会在调色板里把饱和度控制在40%-70%之间。背景色饱和度更低,10%-20%就够了。你想想看,操作工一天看八小时,舒服比好看重要得多。

4.2 字体选择与可读性

字体这件事,我踩过不少坑。有一次在石化项目里,用了微软雅黑,结果在嵌入式Linux系统上显示不全,部分字符变成了方框。嗯,从那以后,我养成了几个习惯。

4.2.1 字体类型:无衬线字体是首选

工业HMI屏幕分辨率通常不高(很多还是1024x768甚至800x600),而且观看距离远。衬线字体(比如宋体、Times New Roman)的笔画粗细变化,在低分辨率下会糊成一团。

我推荐的无衬线字体:

  • 中文: 思源黑体(Source Han Sans)、Noto Sans CJK、微软雅黑(仅限Windows平台)
  • 英文/数字: Arial、Helvetica、Roboto、DIN Pro(工业感很强)

为什么不用宋体?因为宋体在像素点阵下,横细竖粗,小字号时横线几乎看不见。操作工看数据,最怕的就是“看不清”。

4.2.2 字号与观看距离

字号不是随便定的。我一般按这个经验公式来算:

最小字号(px) = 观看距离(mm) / 150

举个例子:操作工距离屏幕大约700mm,那么最小字号就是700/150 ≈ 4.7mm。换算成像素(按96DPI),大约是18px。

实际项目中我的推荐值:

用途 推荐字号(px) 说明
关键数据/报警 24-36px 一眼就能看到
普通参数/标签 18-24px 正常阅读
辅助信息/单位 14-16px 不能小于14px
⚠️ 警告: 绝对不要用小于12px的字体!我曾经在一个项目里看到设计稿用了10px的注释文字,结果现场操作工都是40多岁的老工人,根本看不清。最后全部返工,浪费了三天时间。

4.2.3 字重与对比度

工业HMI里,Regular(常规)和Bold(粗体)就够用了。Light(细体)和Thin(极细)在工业场景下就是灾难——屏幕反光一照,字就消失了。

另外,文字与背景的对比度至少要达到4.5:1(WCAG AA标准)。我习惯用5:1以上,这样在强光下也能看清。

4.3 触控交互尺寸标准:最小48px

这一节我要重点讲。很多做惯了PC软件的人,做HMI时直接把按钮做成20px、30px,觉得挺精致。结果到了现场,操作工戴着手套,怎么戳都戳不准。

核心标准:触控目标最小48px(约9mm)。

4.3.1 为什么是48px?

这个数字不是拍脑袋定的。它来自人体工程学的研究:

  • 成年人食指指尖宽度约10-14mm
  • 戴手套时,有效触控面积会增大到12-16mm
  • 触控误差范围约±3mm

所以,48px(约9mm)是最低下限。我个人建议做到56-64px(约10-12mm),这样操作工戴着手套也能轻松点击。

📌 我的经验: 在钢铁厂项目里,操作工戴的是防割手套,厚度有3mm。我一开始按48px设计,结果测试时误触率高达15%。后来把按钮放大到60px,误触率降到了2%以下。别省那十几个像素,省出来的都是隐患。

4.3.2 触控间距:别让按钮“打架”

除了按钮本身的大小,按钮之间的间距也很重要。两个按钮贴在一起,操作工一戳,可能同时触发两个。

我推荐的间距标准:

  • 相邻按钮间距:至少8px(约1.5mm)
  • 推荐间距:12-16px(约2-3mm)
  • 危险按钮(如急停)周围:留出20px以上的空白区域

4.3.3 触控反馈:让操作工知道“按到了”

工业HMI的触控反馈,不能只靠视觉。因为现场噪音大,操作工可能听不到声音;光线强,可能看不清颜色变化。

我建议做三重反馈:

  1. 视觉反馈: 按钮按下时,颜色变化或凹陷效果(变化时间0.1-0.2秒)
  2. 触觉反馈: 如果硬件支持,加一个短震动(约50ms)
  3. 状态反馈: 按钮按下后,显示“已执行”或“处理中”的状态文字
💡 避坑指南: 我曾经在一个项目里只做了视觉反馈,结果操作工在强光下根本看不到颜色变化,连续按了五次,导致设备重复执行了五次动作。后来我加了一个“按钮按下后变灰并显示‘执行中’文字”的逻辑,问题就解决了。

4.4 综合示例:一个标准的HMI按钮

说了这么多,咱们看一个实际例子。这是一个“启动”按钮的设计规范:

/* 启动按钮样式 */
.btn-start {
    width: 64px;          /* 触控尺寸,大于48px */
    height: 64px;
    background-color: #339933;  /* 低饱和度绿色 */
    color: #FFFFFF;             /* 白色文字 */
    font-family: 'Source Han Sans', 'Arial', sans-serif;
    font-size: 20px;           /* 字号适中 */
    font-weight: bold;         /* 粗体,提高可读性 */
    border: none;
    border-radius: 8px;        /* 圆角,避免尖锐边缘 */
    box-shadow: 0 2px 4px rgba(0,0,0,0.3); /* 轻微阴影,增加立体感 */
    cursor: pointer;
    transition: background-color 0.15s; /* 快速反馈 */
}

/* 按下状态 */
.btn-start:active {
    background-color: #267326;  /* 颜色变深,表示已按下 */
    transform: scale(0.95);     /* 轻微缩小,模拟物理按钮 */
}

这个按钮,64px大小,绿色低饱和度,白色粗体文字,按下有反馈。操作工戴着手套也能准确点击,看久了眼睛也不累。

好了,这一章的内容就这些。配色、字体、触控尺寸,这三件事看起来简单,但做扎实了,你的HMI就成功了一半。下一章咱们聊聊交互流程设计,到时候我会讲一个让我印象深刻的“误操作导致整条产线停机”的案例。