ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

HMI仪表盘设计:三秒看懂设备状态的数据可视化实践

HMI仪表盘设计:三秒看懂设备状态的数据可视化实践 1. 先别急着画图表你的HMI仪表盘为什么“看不懂”做了这么多年HMI项目我发现一个特别有意思的现象很多工程师把大量精力花在PLC程序、通信驱动和报警逻辑上到了画面组态阶段就开始放飞自我。什么数据都往一屏上塞趋势图排三行按钮放五列配色恨不得把WinCC的调色盘用遍。结果交付的时候设备厂家很满意——“功能都有了”真正用的人却很痛苦——现场操作工站在触摸屏前一脸懵不知道先看哪里。我曾经接过一个改造项目客户的反应是老画面用了五年操作工天天抱怨“要看的东西找不到不看的全堆在眼前”。当时我就意识到HMI的核心从来不是“把数据显示出来”而是“让操作者在最短时间内理解当前的设备状态并做出正确判断”。这也是今天这篇博文想聊透的事什么才是“一眼即懂”的HMI仪表盘它背后的逻辑是什么以及我几年项目里沉淀下来的一整套落地方法。这篇文章适合三类人刚入门HMI开发、正被画面设计折磨的技术人员做数据可视化想往工控领域平移的前端工程师以及项目管理者——哪怕你不亲自画画面也需要有能力对HMI设计稿提出确切的要求而不是只会说“看起来不高级”。先明确一个定义我这里说的“仪表盘”不是一个花瓶式的数据大屏而是给操作员用的、承载监控和操作职能的核心交互界面。它要解决的是三个问题现在设备是什么状态有没有需要我立刻处理的异常设备运行趋势到底是在变好还是变坏如果这三件事没法在三秒内看清楚你的HMI仪表盘就需要重新设计了。2. 三个典型失败画面以及它们违反的基础法则先聊反面案例更容易把原则讲清楚。我见过大量HMI仪表盘做失败归根结底都是同样几个原因。我挑三个最有代表性的场景拆一拆。场景一是“数据壁纸”。一整面触摸屏用表格塞了八十个工艺参数有当前值、有累计值、有设定值五个小数点全保留数字密密麻麻铺满屏幕。现场操作工想找“三号泵出口压力”得逐行扫描十几秒。这类画面的问题不在信息量——信息量确实大——而在于完全没有视觉层级。所有元素权重一样等于没有权重。人类视觉对“均匀分布”的画面是没有抓取顺序的你一视同仁地呈现所有数据结果就是什么都留不下。场景二是“动效狂欢”。饼图、仪表盘、动画箭头、闪烁指示灯一应俱全温度变化还要配个渐变进度条红色绿色蓝色在天蓝色背景上轮流闪耀。第一次看觉得挺炫连续盯四个小时夜班操作工的眼睛基本就废了。更严重的是动效抢占了操作者视觉注意力一旦真正的报警闪烁混在这些装饰性动画里他根本分不清主次。场景三是“图表滥用”。典型的例子是把电机电流做成饼图把水泵启停状态做成折线趋势图。饼图适合表达“占总体的比例”而单台电机的电流是一个绝对值指标用饼图纯粹是浪费空间增加认知负担启停状态是离散量只有两个状态用趋势图去画意义也不大还不如一个大色块直接在旁边绿红切换来得直观。图表选错了不是“效果不好”的问题而是直接误导操作者对数据含义的解读。把这三个场景放在一起就引出了HMI仪表盘设计必须遵守的底层逻辑信息要有明确的优先级异常和报警永远最高级运行状态次之精确数值再次之历史趋势只是辅助。视觉元素要有秩序尺寸、位置、颜色、密度都要服从优先级而不是服从美观。图表必须匹配数据语义比例的用饼图或环形图趋势的用折线图区间的用仪表盘或色带离散状态用色块和图标。我在团队内部经常跟同事讲一句话HMI画面设计本质上是“注意力的编排学”。操作员的注意力是稀缺资源你的职责是把他的注意力精确引导到该看的地方。3. 一台设备三个区仪表盘的物理结构应该长什么样“一眼即懂”不是说画面只能放三个元素而是说画面要能被人眼在一个注视周期内完成结构扫描。人眼扫视一张完整画面的模式是先整体看轮廓再顺着视觉层次找焦点。所以仪表盘的布局必须让这两步都极其顺畅。我自己在项目里反复迭代后固定下来一套布局模板适应了十几个现场从单台设备到整条产线都验证过。一套完整的HMI仪表盘从物理结构上可以拆成三个区。顶部区放“身份与总览”。最左侧是产线或设备名称和当前操作模式自动、手动、维护中间是整线/整机当前最重要的综合指标比如产量完成率、总运行时间、当前班次目标达成进度。右上角固定放全局报警汇总显示当前激活的报警数量和最高级别报警条目。这个区域不会被页面切换影响任何画面里都固定存在让操作工在任何细分页面里随时能找到“全局状态”的锚点。中间核心区放“设备状态首视图”。这是操作员眼睛停留时间最长的区域放当前设备的核心工艺状态。比如一套灌装设备这里就该有瓶盖供料位、灌装液位、封盖扭矩、成品计数用大号数字卡片加状态色块呈现。数字用固定字体大小只保留工艺要求有效位数的精度大部分场景一到两位小数就够了最多三位超过三位就是给质检员看的不是给操作工看的。这一块区域的原则是只看数字和颜色就能回答“现在干得好不好”。底部或右侧区放“趋势与辅助信息”。趋势曲线、交接班记录、参数修改日志、能耗统计都归到这里。这些信息操作员不会一直盯着但需要的时候要能及时找到。趋势图默认显示最近一小时而不是默认显示全部历史因为操作员关心的是“刚发生了什么变化”全部历史那是工程师的事。这套三区结构还有一个关键设计每个区之间要有明确的视觉分隔但分隔可以用间距和底色不要用粗线条。用间隔实现分区用色块表达状态用尺寸表达优先级永远别用边框线当设计主力。我在实际项目里测试过这套结构给操作工做培训拿一套完全没用过的新画面让他们看十秒然后问“哪台设备报警了”“产量趋势在上升还是下降”几乎都能立刻答对。换成原来的老画面同样的测试一半人答错。这就是结构带来的认知效率差距。4. 仪表盘设计的几条硬原则每一条都是拿现场教训换的4.1 三秒法则操作工在一张画面上停留超过三秒还找不到目标信息这个画面就是失败的。这里说的“三秒”不是拍脑袋定的人类工作记忆容量的研究显示视觉搜索任务在2到3秒内完不成的大部分会进入第二次扫视而第二次扫视的准确率明显下降。反复扫视之下操作员的疲劳感会快速累积。所以设计完任何一张画面我都会做一遍自查盯着画面快速扫视三遍每遍三秒把每次第一个抓到眼球的元素记下来。如果三次抓到的全都是同一个非核心元素那层级设计就出了问题。4.2 异常优先原则这是最重要的一条。任何情况下和异常与安全相关的信号必须拥有最高视觉优先级。一个灰色底的小字报警文本和一个占据画面十分之一面积的红色报警条在紧急情况下带来的处理速度差距是巨大的。我的做法是报警信息永远用红色而且必须是画面里唯一的红色。如果画面上还有其他红色装饰元素——哪怕是一条红色的生产进度虚线——立刻改掉。红色在HMI里有明确的信号语义不能被挪用。4.3 状态色块胜过精确数字很多新手工程师喜欢把所有数值都做得又大又清晰但真正在现场待过的都有体会操作工不关心精确数值他关心“正常不正常”。同样一个冷却水温度58.3摄氏度这个数字包含的信息量远不如旁边那个绿色色块中包含的“一切正常”直观。数字负责精确色块负责状态两者组合而不是互相替代。这里有个细节色块不要用渐变不要用半透明就用纯色铺底。渐变在工业触摸屏上会拖慢渲染速度而且抗阳光直射的能力差操作工在车间强光下看屏幕时渐变色块会显得脏纯色块清晰利落。4.4 亮度分区人的视觉系统对亮度差异的敏感度远高于色相差异。也就是说一块暗色底和高亮元素的对比比纯靠红蓝黄的颜色变化更抓眼球。我在画面上会用“底灰、中色、高亮”三个亮度层级大背景和未激活区域用低亮度灰色调正常运行状态的中性信息用中等亮度只有当前需要被注意的活跃元素才用高亮色。这样操作工的视线会自然地被“亮”的区域吸引你不需要做闪烁动画也能实现注意力引导。4.5 每屏一个核心任务如果一张画面承担的任务超过一个把它拆成两张。开机画面只负责开机和状态确认参数设定画面只负责参数修改运行监控画面只负责运行监控。我看到过有人把参数设定弹窗和报警处理界面叠在一起结果操作工改一个温度还得分心处理报警两边都容易出错。HMI画面的原则是一屏一焦点所有辅助信息为焦点服务。5. 图表选型不是凭喜好而是跟着“数据语义”走图表选型这件事我在大量项目里见过最典型的错误就是把Web端的可视化习惯无脑搬到HMI上。工控场景有它自己的节奏和交互方式图表的选型逻辑本质上要从“数据本身的语义”出发。照着数据语义来做图表选型我是把常见场景分成了四类离散状态量比如电机的运行/停止、阀门的开/关、模式的自动/手动。这类数据的最佳呈现方式是状态色块加图标绿色运行、红色停止、灰色待机配合一个大号的文字标明当前状态。强行用折线图画启停状态画出来也是一堆方波除了占面积没有意义。连续过程量比如温度、压力、流量、转速。单点实时值在当前状态区用大数字显示历史值在趋势区用折线图呈现。要注意的是趋势图的时间轴默认窗口设置有报警联锁的变量给最近10到15分钟就够因为操作员关心的是“报警前后发生了什么”而用于工艺分析的温度曲线给到最近一小时或者一个班次才有参考价值。这个窗口是可以让操作员切换的但默认值要为最高频的使用场景服务。比例构成量比如一个批次里合格品、返工品、废品各自占的比例或者一个罐区里不同物料的占比分配。这个场合用环形图或者饼图才有意义放在仪表盘的辅助区域不要让这类图占据主画面——因为占比信息在操作层面属于“分析性信息”不属于“即时响应信息”。设定值和实际值的对比比如温度设定80度实际82度偏差2度。这种场景用仪表盘或者进度条配合偏差值显示是最高效的操作工一眼看到指针偏了多少就知道要不要手动干预。如果偏差超过工艺允许范围这个仪表盘区域必须同步触发颜色变化从正常色变成警戒色。图表选型的另一个容易被忽视的维度是“刷新频率和动画”。工业触摸屏的算力不像手机那么强一个页面塞四个带动画的ECharts图表微处理器渲染起来分分钟掉帧。实测下来WinCC这类组态软件自带的原生趋势控件对这类场景是够用的但如果你要做更精细的可视化推荐把图表交给前端渲染引擎在嵌入式的Web面板上跑ECharts性能表现要比组态软件自带图表好不少。后面我单独拿一节展开讲工具选型的问题。6. HMI仪表盘的工程化实现从组态软件到ECharts嵌入的技术路线聊完设计原则落到实现上。现在市面上的HMI软件大体分两类一类是传统组态软件像博图WinCC、组态王、威纶通EBPro这些另一类是智能HMI和边缘网关支持Web技术栈可以跑前端可视化框架。两条路线我都走过结论是选型取决于你的硬件平台和数据复杂度不要盲目追求“高级感”。6.1 入门标配组态软件原生控件如果你用的是传统PLC加触摸屏一体机比如西门子精简系列、威纶通、昆仑通态这些最稳妥的做法就是把组态软件自带的仪表盘、趋势图、数据显示控件用好。这类方案的优势是集成度高变量直接从PLC映射过来通信链路不用自己写而且原生控件经过大量现场验证稳定性是最好的。缺点是视觉表现力确实一般动画效果和Web端完全不是一个量级。在这种方案下我的实现步骤基本是固定的第一步在组态软件里统一规划变量表把需要显示的变量整理出来区分模拟量和数字量命名统一加前缀方便引用第二步做画面模板把顶部区、状态区、趋势区的框架搭好在模板里预留变量绑定位点后续每个画面都基于模板新建改起来只改变量名不动布局第三步把报警变量单独归一组在组态软件里配置报警触发和颜色联动确保报警发生时不只是弹一条记录而是整个画面都有视觉响应。这里有个容易翻车的点组态软件里的变量刷新周期。默认情况很多组态软件是100毫秒轮询一次如果一屏放了五十个变量通信负载就会明显上升触摸屏画面会发卡。实测下来模拟量的采集周期设250到500毫秒完全够用数字量状态量设100毫秒报警类的设50到100毫秒。不同变量对实时性的要求差异很大不要所有变量都用一个刷新周期这是优化屏体流畅度性价比最高的一步。6.2 进阶方案HMI里跑ECharts做高密度数据可视化如果你的项目需要在触摸屏上呈现大量的历史趋势、多设备对比、复杂的比例分析传统组态控件就显得很吃力了。这时候就要考虑走Web可视化的路线。现在很多中高端触摸屏和工业平板已经内置了浏览器内核可以加载本地HTML页面这时候把数据可视化的活交给ECharts表现力完全不一样。我这几年做的几个产线数据看板项目都是先用串口或者以太网把PLC数据推给边缘网关网关做协议解析、数据清洗和时间戳对齐再通过WebSocket或者HTTP接口把数据推给HMI的Web页面前台用ECharts画图。这种架构的灵活度高得多数据可以缓存、可以按时间窗口聚合、可以做预计算后期想接MES系统、ERP系统也顺畅。但这条路线有它的门槛。第一个门槛是数据链路的延时控制从PLC到网关到Web页面如果中间环节多了实时性就保不住。我的建议是做历史趋势数据可视化可以走Web页面做实时报警状态显示务必保留组态原生的通信通道两条路并行不要把所有数据都塞进Web通道。第二个门槛是工控触摸屏和商用手写板的硬件差异工控屏CPU主频普遍偏低内存也小ECharts项目千万不能把无关依赖打进包里能用单文件绝对不引入框架能用Canvas就不上SVG大面积渲染。这里给一个我在ECharts嵌入HMI项目里的通用配置思路。图表初始化放到页面加载完成后数据更新采用定时器轮询或者WebSocket推送更新频率控制在1秒一次以内如果需要动画效果要注意动画总时长在300毫秒左右时间太长会拖慢交互响应图表容器尺寸写成自适应不要写死像素值因为不同分辨率触摸屏切来切去很常见。ECharts的tooltip默认悬停显示但是在触摸屏上没有hover事件要改成click或者tap事件触发否则操作工的手指点上去什么都看不到。6.3 大屏可视化平台用于HMI场景的前提还有人会问Tableau这类商业智能工具能不能拿来做HMI仪表盘。我的回答是能但有前提。这类工具的数据刷新机制、交互响应速度都是面向分析场景设计的做生产大屏给领导和参观者看效果很好但给操作工做实时监控刷新延迟和交互响应是硬伤。我在一个食品产线项目里试过用Tableau拉实时产量数据数据发布和缓存机制导致画面刷新比实际进程慢了一轮操作工按产量数据做判断就出现了偏差。所以我的结论很简单Tableau适合做管理驾驶舱不适合做操作员工作界面。两类场景要用两套方案别混在一起。7. 从“能看”到“好用”一些看不见的细节和实战经验很多HMI画面做出来截图放PPT里挺好看到了车间现场就露馅。原因全是那些不上相但影响使用体验的细节。我把这几年实际踩过的坑沉淀成几条每一条都值得你在项目里验证一下。第一字体和字号是有硬约束的。触摸屏的观看距离通常在1到1.5米操作工要站着看、车间接着噪音不能指望他贴到屏幕前仔细分辨小字。我的经验是核心状态数字不低于32磅一级标题不低于24磅辅助信息不低于18磅。小于16磅的字就不要出现在HMI画面里了那不是给操作工看的那是给自己给自己验收用的。字体优先选择无衬线的黑体类衬线字体的笔画粗细变化在低分辨率屏上会糊。同一张画面的数字全部用等宽数字字体防止小数点位数变化时数字左右乱跳。第二触摸热区必须做到位。这是我反复吃过的亏。很多工程师设计按钮和可点击的仪表盘元素尺寸用鼠标的精度来考虑画得很精致。结果身在现场要隔着一层手套用粗壮的手指去点十五乘十五像素的小按钮根本点不准。工业触摸屏的可点击区域最小也要做到40乘40像素如果操作工可能戴手套做到50乘50以上更稳妥。按钮之间的间距保证在10像素以上防误触。这个细节直接决定一套HMI能不能在产线上真正用起来但我在设计方案验收时很少见到有人提起。第三界面配色要过“车间光环境”这一关。设计稿里用得美美的深蓝渐变背景在车间顶灯加阳光直射下一看就是一团黑。我在几个项目里测下来HMI最稳的底色是浅灰或者米白其次是深色高对比模式但必须配高亮度和高饱和度前景色。绿色和红色这对报警色在车间环境里要特别注意如果你的现场有红绿色盲的操作工最核心的“正常/异常”信号就不能只靠颜色承载必须同时附加文字或图形比如绿色块加对勾、红色块加叉号双通道编码这是无障碍设计的基本要求在工业环境里尤其重要。第四画面上信息密度要给自己留回旋余地。很多项目第一阶段验收的时候数据量不大画面上干干净净等第二阶段把采集点全扯进来所有预留位置都被填满画面就变成了最开始吐槽的“数据壁纸”。我在布局阶段会刻意在辅助区留出百分之十五左右的空位不为别的就是为了给后续加测点留余地。留白不是浪费是给自己项目二期、三期省下的返工成本。第五历史趋势页的默认数据范围要跟操作习惯匹配。把默认范围设成“最近一小时”一旦操作工点进趋势页面不需要任何额外操作就能看到刚才的变化过程。数据默认值调的越高大上现场用起来越别扭。8. 数据可视化在这类项目里容易把路走歪的两个误区写到最后想重点掰两个我见过最普遍的路走歪的情况都属于“初心是好的结果是坏的”。第一个误区是把仪表盘当成了“数据展示的终点”。很多工程师花大量时间把各个页面都设计得精美每一张趋势图的颜色都好看到可以做壁纸然而他们忘了仪表盘的终极使命是驱动决策和动作。操作工看完仪表盘要不就是在正常状态下快速确认离开要不就是在异常状态下快速操作干预。如果你的仪表盘只是数据好看而没有明确的行动引导——下一步干什么、点哪里能处理异常、报警了应该先看哪里——它就是一块会发光的壁纸。我自己的画面上每条报警都会绑定一个“跳转到处理页”的按钮数据旁边永远有一个“操作入口”的暗示哪怕只是一个高亮的边框。第二个误区是“一屏塞所有”的诱惑。现在做数据可视化的人上手就喜欢做驾驶舱设备状态、产量统计、能耗分析、质量指标、报警记录恨不得全放一张屏上。但这种“大而全”的思路在办公场景做PPT汇报也许行在HMI场景几乎必然翻车。原因还是回到操作员的真实需求他不需要在同一时刻知道所有信息他只需要知道当前时刻该关注的信息。把不同时效性的信息放在一个屏幕上最大的代价不是屏幕不够大而是视觉搜索空间变大后每次判断都慢了那么零点几秒积累到一天十几个班次疲劳和误操作的概率都会上升。我在交付时都会提醒客户的负责人做完的HMI仪表盘先让一个完全没参与开发的操作工来试用。你看他操作之前会不会迟疑、手指会不会悬停、眼睛会不会在画面上来回扫很多次才找到目标。这些都是你自己“看”不出来但“用”出来的问题。多迭代几轮你的仪表盘才真正从“能看”变成“好用”。做了这么多项目之后我对HMI仪表盘最大的体会是它不是设计师的自嗨作品也不是工程师觉得“技术上实现了”就行的交付物而是操作员手里的工具。工具的第一性要求是称手——一眼看清状态、一触完成操作。这条标准到什么时候都不会过时。
返回列表