分辨率、尺寸、触摸方式这些参数对齐之后,三类方案看上去很像。把它们拉开差距的,是业务代码所处的运行层级——以及由此决定的进程模型、中间件来源和升级方式。
看一条典型的项目路径(示意,不是某个具体客户):设备中控面板选型,需求是 7 寸、电容触摸、1024×600、成本有上限。三家方案都满足,参数表接近,最终按报价定了方案。
三个月后需求变更:屏上要播一段操作指引视频;运行日志本地留存三个月;设备自主联网上报状态;界面按反馈再改一版。
这时候参数表失效了。能不能加得动、加了要多久、出问题现场什么代价,这三件事在选型那天就已经被架构定死,只是没写进参数页。
决定它的是一件更底层的事:业务代码跑在哪一层。
先给全貌:
方案 | 业务代码的运行位置 | 屏的角色 |
串口屏 | 屏外的外接 MCU | 显示终端 |
RTOS 组态屏 | 屏上,与系统调度、GUI 驱动同地址空间 | 屏即系统,业务是系统的一部分 |
中科世为 HMI(FlyThings OS) | 屏上的独立 Linux 用户态进程 | 一台小型 Linux 设备,业务是设备上的一个应用 |
下面不逐个介绍方案,按选型时该问的五个技术问题对比,每个问题给出三类方案的工程结论与影响范围。
一、五个技术问题,拉开三类方案的差距
问题 1:业务代码跑在哪一层?
决定能力上限。
串口屏:业务全部落在外接 MCU。简单场景够用;一旦出现“屏端留存三个月日志”“屏上解码播放视频”“屏自主联网上报”这类需求,负载全部压回那颗做控制的 MCU——相当于用控制芯片承担应用服务器的工作量,选型时预留的算力余量很快耗尽。
组态屏:业务可以写在屏上,但没有进程级隔离,业务脚本与系统调度、GUI 驱动处于同一地址空间。
中科世为 HMI:业务是标准 Linux 用户态进程。socket、线程、文件系统、动态链接这些 POSIX 能力默认可用;接入第三方开源库走通用流程,四步判据:libc 是否匹配(glibc / musl)、符号与架构是否一致、体积预算是否允许、运行期路径是否可见。
工程含义:项目会往“带业务的中控”演进的,只要需求清单里出现视频、数据库、独立联网任意一项,串口屏方案基本出局。
问题 2:业务异常时,系统的失败模式是什么?
决定故障代价。
串口屏:屏只负责显示,业务异常发生在 MCU 侧。
组态屏:常见失败模式是业务代码踩内存后整屏卡死或黑屏,只能断电重启——业务与系统之间没有隔离边界。
中科世为 HMI:业务进程异常退出后由类 init 的服务自动重新拉起,屏端交互继续,不需要人工断电。
注意区分两件事:自动拉起意味着恢复时间短,不等于进程永不异常。
工程含义:部署在产线、机房、户外等不方便现场断电位置的设备。这类场景下,“崩一次要不要跑现场”是可量化的运维成本。
问题 3:新增功能需要多大改动量?
决定迭代成本。
串口屏:任何屏端能力的新增,都落在 MCU 侧的二次开发上。
组态屏:音视频、文件管理、数据库等中间件,多数需要自行选型、移植与调试。
中科世为 HMI:这些能力位于系统服务层,业务直接调用。口径要说清——这是“系统提供这些能力”,不等于“每种参数组合都在真机验证过”,具体分辨率、码率、数据量需上机实测。
工程含义:需求仍会演进的项目。反之,需求已冻结的项目,这条差异接近于零。
问题 4:升级包怎么出?
决定维护方式。
串口屏:改业务等于改 MCU 程序,屏端固件与业务一并改动。
组态屏:通常整包重刷。
中科世为 HMI:出的是应用工程的升级包,不必重编整套系统镜像。这条要说完整,否则现场会踩坑:升级流程本身包含一次重启(实测一轮约 45 秒),过程中会停止应用与无线服务,升级包与机型绑定、不可跨机型使用。它替代的是“每次改动都动整套镜像”,不是“不停机热更新”。
工程含义:一年多次迭代、每次只改业务的项目。改动粒度越小、频次越高,“只出应用包”的收益越明显。
问题 5:交付前如何验证可运行性?
串口屏 / 组态屏:主要依赖上机实测。
中科世为 HMI:除真机调试外,交付前有一道整机自检,扫描 11 个分区(设备、显示、存储、网络、蓝牙、输入、外设、时间、库清单、部署一致性),逐区给出结论与提示;界面改动可先离线渲染确认效果,再上真机抓屏做像素比对复核——把“能不能跑起来”的判定前移到上机之前。
工程含义:排期紧、试产窗口少的项目。烧录一轮几十分钟起步,一天能烧的轮次有限。
二、能力清单对应的工作量削减
上一节的能力落到工程上,就是一张“不必自行实现”的清单。抽象的“系统自带某库”换算成工作量才有意义:
系统层已有能力 | 省掉的工作量 | 工程含义 |
视频:H.264 硬解播放器(按平台选包)+ ffmpeg 软解兜底 | 播放器移植、解码参数调试、硬件图层配置 | 播放视频是调用接口,不是启动一个移植项目 |
数据:依赖包内的 sqlite3(3.7.11)+ 可挂载数据分区 | 自定义文件格式、自行实现掉电保护 | 日志、配置、业务数据有现成落点 |
联网与远程升级服务 | 从零搭建 OTA 通道与校验机制 | 出应用包即完成一次升级分发 |
交付前 11 分区整机自检 | 烧录后黑屏再逐项排查 | 可运行性在上机前就有结论 |
界面离线渲染 + 真机抓屏像素比对 | 手机拍照、多人主观判断 | 界面改动有秒级反馈,不必等烧录 |
工具链方面:IDE 拖拽搭建界面、受限 HTML 原型转为设备界面,以及 FlyThings MCP 这类工具让 AI 助手直接读工程、改配置、编译推送、抓屏校验——界面侧的重复劳动可以部分交出去。
三、三笔成本账
总投入账。单看模组单价,前两类占优;计入后期投入后排序常常反转:
前期节省 | 后期支出 |
模组单价低 | 音视频、文件、网络等中间件需自行移植适配 |
前期上手快 | 业务与 GUI 强耦合,改动影响面大、验证成本高 |
不需要接触 Linux | 每新增一项能力,重走一遍移植与联调 |
反之,如果项目确实只有简单显示且确定不再演进,这笔账不成立,前两类依然划算。
升级账(迭代频繁的项目关注)。实测数据:1.9 MB 升级包推送约 4 秒,整轮含重启约 45 秒完成(随机型与包体而异)。带宽占用低,现场批量升级不必安排长窗口。包体存在上限——受设备资源分区大小约束,实测在 7 MiB 量级,换型号需重新核对,不要照抄。
迁移账(从组态屏迁移的项目关注)。迁移项目中登记在案的降级项有二十余条——无过渡动画、无动图格式、无 disabled 状态位、无多页面栈等。判定原则为“外观风格一致 + 语义等价 + 可交互”即视为迁移成立;性能与可交互性不在可降级范围内,拖动卡顿、点击无响应即判定不合格。迁移不是把界面搬过去就结束,动效与形态需按目标平台重新定义。
四、选型对照表
项目特征 | 优先考虑 | 理由 |
仅基础显示与按键,外部 MCU 资源富余,需求不再演进 | 串口屏 | 结构简单,不必上更重的架构 |
低功耗、微秒级实时响应、成本敏感、界面简单 | RTOS 组态屏 | 这几项正是它的强项 |
屏端需音视频、本地数据存储、独立联网、多页复杂 UI、后期频繁迭代 | 中科世为 HMI(FlyThings OS) | 这些能力在系统层现成,业务直接调用 |
适用边界说明:微秒级硬实时控制、超低功耗、成本极敏感的极简小屏,前两类仍是更合适的选择。采用第三条路径的项目,硬实时控制逻辑也建议保留在外接 MCU,屏端负责交互、数据与事务。
不确定时,用三个问题自测:
后续是否会在屏端增加视频、本地存储、独立联网?
设备部署后,现场断电是否方便?
一年迭代几次,每次是改业务还是整套刷机?
三个问题中有两个答“会 / 不方便 / 经常改”,就应认真评估第三条路径。
五、小结
参数表回答“屏好不好”,运行层级回答“这套架构能支撑多远的演进”。评估带屏方案时,参数照比,再加一句:业务代码跑在哪一层?
可执行的下一步
用上面三个问题给在评估的项目打分;
带具体场景沟通适配性,可索取方案资料与样件做评估;
工具链与升级包用法见公开仓库gitee.com/Kwolve/flythingsmcp_release。
FAQ
Q1:业务运行在用户态进程,性能是否会下降?能否用于工业场景?
常规人机交互场景的响应速度可以满足工业面板、家电中控的需求。存在硬实时控制要求的,建议分层:控制逻辑留在 MCU,屏端负责交互、数据上报与事务处理。
Q2:原有串口屏项目迁移是否需要重写?
可分步实施:先将 UI、本地数据、多媒体逻辑移入屏端应用进程,实时控制保留在原 MCU,两者通过串口对接——Modbus 这类协议的编解码可直接使用 Linux 上现成的开源实现。无需一次性重构全部代码。
Q3:选择 Linux 方案,团队是否必须具备内核与驱动级经验?
不必。系统裁剪、BSP 适配由方案侧完成;业务代码是应用层普通 Linux 程序,UI 通过配置化方式搭建,不涉及内核与驱动。接入第三方开源库时按四步判据核对(libc、符号与架构、体积预算、路径可见性)即可。真正的门槛在“团队是否开始接触 Linux”这一步,而非底层深度。
Q4:仅需在屏上播放宣传视频,是否有必要采用 Linux 方案?
取决于分辨率、码率,以及是否需要边播边交互。串口屏与组态屏在视频上通常依赖外部播放器或需更换平台;中科世为 HMI 侧为 H.264 硬解播放器(按平台选包)加 ffmpeg 软解兜底,具体支持的分辨率与码率以真机实测为准。有视频需求应在选型阶段确认,避免结构件开模后再改。