4、常用工控控件:按钮、指示灯、仪表盘、趋势图、报警列表、数据表格

工控界面说白了,就是人和机器对话的窗口。你想想看,一个操作工坐在中控室,他靠什么去感知现场设备的状态?又靠什么去下发指令?全靠这些控件。

我做了十几年工控,见过太多界面花里胡哨但不好用的案例。嗯,这里要注意,工控界面不是网页设计,稳定、直观、响应快才是第一位的。今天我就把这六个最常用的控件,掰开了揉碎了讲给你听。

4.1 按钮(Button)

按钮是最基本的输入控件。操作工点一下,设备就动作。听起来简单,但坑不少。

核心属性:

  • 状态:正常、按下、禁用、悬停。工控里禁用状态特别重要——设备在自动模式时,手动按钮必须灰掉。
  • 颜色规范:启动用绿色,停止用红色,复位用黄色。这是行业惯例,别乱改。我见过有人把启动按钮做成蓝色,结果操作工误操作,差点出事故。
  • 防误触:关键按钮(如急停)要加确认弹窗,或者长按2秒才触发。

避坑指南:我曾经在一个项目中,把按钮的点击区域做得太小(只有30x30像素)。结果操作工戴着手套根本点不准,被投诉了好几次。后来我统一改成48x48以上,再也没出过问题。

代码示例(基于WinForms):

// 按钮状态切换示例
buttonStart.Enabled = (currentMode == Mode.Manual);
buttonStop.BackColor = Color.Red;
buttonStart.BackColor = Color.Green;

// 长按确认逻辑
private void btnEmergency_Click(object sender, EventArgs e)
{
    if (holdTimer.ElapsedMilliseconds > 2000)
    {
        ExecuteEmergencyStop();
    }
}

4.2 指示灯(Indicator)

指示灯用来显示设备的运行状态。说白了,就是让操作工一眼看出设备现在「在干嘛」。

颜色标准(IEC 60073):

颜色 含义 典型场景
绿色 运行/正常 电机运转、阀门打开
红色 故障/停止 过载报警、急停触发
黄色 警告/待机 参数超限、手动模式
蓝色 指示/状态 远程控制、通讯中

我个人习惯,指示灯一定要加闪烁效果。为什么?因为人眼对动态变化更敏感。比如一个红色灯常亮,操作工可能没注意到;但如果它一闪一闪的,马上就能引起注意。

小技巧:闪烁频率建议用500ms(半秒)或1秒。太快了看着眼晕,太慢了又没警示效果。

4.3 仪表盘(Gauge)

仪表盘用来显示模拟量,比如温度、压力、液位、转速。它比数字更直观——操作工扫一眼指针位置,就知道参数在不在正常范围。

设计要点:

  • 量程范围:一定要标注单位(℃、MPa、rpm)。我见过一个仪表盘没写单位,操作工把压力当温度看,差点出事。
  • 分区颜色:绿色区域(正常)、黄色区域(警告)、红色区域(报警)。指针进入红色区,系统自动触发报警。
  • 刻度精度:不要追求太多刻度线。工控仪表盘一般显示到小数点后一位就够了,多了反而看不清。

实际项目经验:有一次我做锅炉温度监控,仪表盘量程设成了0-500℃。但实际运行温度只有150-200℃,指针永远在底部晃悠。后来我把量程改成100-300℃,指针活动范围大了,操作工一眼就能看出温度波动。

4.4 趋势图(Trend Chart)

趋势图是工控界面的「黑匣子」。它记录参数随时间的变化曲线,用来分析设备运行趋势、排查故障原因。

两种模式:

  1. 实时趋势:显示最近几分钟/几小时的数据,自动滚动更新。适合监控当前状态。
  2. 历史趋势:查询过去某段时间的数据,可以缩放、平移。适合事后分析。

关键参数:

  • 采样周期:一般1秒一次。变化快的参数(如电流)可以设100ms。
  • 存储深度:历史数据存多久?我建议至少存30天,有些项目要求存1年。
  • 曲线颜色:不同参数用不同颜色,并在图例中标注。别用红绿搭配——色盲操作工分不清。

注意:趋势图的数据源一定要做缓存。我曾经遇到一个项目,操作工频繁查询历史趋势,结果数据库连接数爆了,整个系统卡死。后来加了Redis缓存,查询速度从5秒降到0.2秒。

4.5 报警列表(Alarm List)

报警列表是工控系统的「哨兵」。设备一出问题,它必须第一时间通知操作工。

报警级别:

级别 颜色 处理方式
紧急 红色闪烁 立即停机,需人工确认
警告 黄色 提示操作工关注
信息 蓝色 记录日志,无需处理

必备字段:报警时间、设备名称、报警内容、当前值、限值、确认状态、处理人。

嗯,这里有个细节——报警确认机制。操作工看到报警后,必须点击「确认」按钮,报警状态才会从「未确认」变成「已确认」。这样管理者可以追溯:谁在什么时间处理了哪个报警。

避坑指南:我曾经做过一个项目,报警列表没有做去重。结果一个传感器抖动,1秒钟报了100条同样的报警,直接把数据库写爆了。后来我加了防抖逻辑:同一报警在5秒内只记录一次。

4.6 数据表格(Data Table)

数据表格用来展示批量数据,比如设备参数列表、生产报表、配方数据。它不像仪表盘那么直观,但胜在信息量大、便于对比。

设计原则:

  • 行高:至少40像素,方便操作工点击和阅读。
  • 列宽:关键列(如报警状态)固定宽度,内容列(如描述)自适应。
  • 排序与筛选:支持按时间、按状态排序。操作工经常需要快速找到「今天所有报警过的设备」。
  • 斑马纹:奇数行和偶数行用不同背景色,减少看错行的概率。

实际案例:我做配方管理系统时,表格里要显示50多种原料的配比。操作工需要快速对比当前配方和目标配比的差异。我就在表格里加了一列「偏差值」,并用颜色标记:绿色表示在允许范围内,红色表示超差。操作工一眼就能看出哪个原料加多了。

小技巧:数据量大的时候(超过1000行),一定要用虚拟滚动或分页。别一次性加载所有数据,否则界面会卡死。我一般每页显示50行,操作工可以翻页或搜索。

好了,这六个控件是工控界面的基础。你想想看,一个完整的监控系统,无非就是把这些控件组合起来:用按钮下发指令,用指示灯显示状态,用仪表盘展示模拟量,用趋势图记录变化,用报警列表提醒异常,用数据表格管理参数。

下一章我会讲这些控件的布局原则——怎么把它们合理地放在一个屏幕上,让操作工用着顺手。咱们到时候见。