上位机开发完整能力地图
这页专门回答一个问题:把整套文档敲完以后,到底会不会做上位机,还缺不缺关键基础?
先说结论
Week 01-12 负责 C#、.NET、Avalonia 和 MVVM 基础;Week 13-21 负责设备通信、工业协议、实时采集、历史数据、趋势报警、工业界面和现场交付。两阶段都完成,才形成完整的上位机基础能力。
这套路线覆盖的是“通用工业上位机开发底座”,不是声称学完就自动精通所有厂家的设备和协议。
21 周能力覆盖表
| 能力领域 | 学习周次 | 必须做到什么 |
|---|---|---|
| C# 基础语法 | Week 01 | 能独立写变量、判断、循环、方法和集合程序 |
| 集合与数据处理 | Week 02 | 能筛选、分组、统计、清洗和处理坏数据 |
| 面向对象 | Week 03 | 能用类、接口、组合、事件建立设备模型 |
| 异步与取消 | Week 04 | 能写不阻塞界面的任务、超时、并发和取消 |
| 工程结构 | Week 05 | 能拆分 Core、Service、Infrastructure、App 和 Tests |
| Avalonia 基础 | Week 06-08 | 能搭窗口、布局、控件、样式、模板和复用控件 |
| MVVM | Week 07 | 能正确使用 Binding、Command、验证和集合通知 |
| 桌面交付基础 | Week 09-12 | 能保存配置、处理大列表、记录日志、测试和发布 |
| 字节与串口 | Week 13 | 能分析十六进制报文,完成串口异步收发和帧解析 |
| TCP 与 UDP | Week 14 | 能处理粘包拆包、心跳、超时、重连和设备发现 |
| Modbus | Week 15 | 能读写线圈和寄存器,处理地址、字序、缩放和异常码 |
| OPC UA | Week 16 | 能连接、浏览、读写、订阅并处理证书和质量码 |
| 实时采集引擎 | Week 17 | 能设计驱动、调度、队列、缓存、质量码和 UI 节流 |
| SQLite 历史数据 | Week 18 | 能建表、批量写入、时间查询、迁移、保留和备份 |
| 趋势与报警 | Week 19 | 能做实时/历史趋势和完整报警生命周期 |
| Avalonia 工业专项 | Week 20 | 能管理生命周期、导航、UI 线程、工业控件和安全写入 |
| 测试与现场交付 | Week 21 | 能做模拟器、自动测试、诊断、权限、升级、回滚和联调 |
一个真实上位机的数据流
真实设备或模拟器
-> Serial / TCP / Modbus / OPC UA 驱动
-> 采集调度器
-> TagSample(值 + 质量 + 时间)
-> 有界队列
-> 最新值缓存 -> Avalonia ViewModel -> 实时界面
-> 报警服务 -> 活动报警 / 确认 / 恢复 / 审计
-> SQLite 批量写入 -> 历史查询 -> 趋势图 / 报表
-> 日志和指标 -> 诊断包 -> 现场排错如果其中任意一段只会复制,不会解释和排错,就回到对应周重做。
Avalonia 是否覆盖完整
用于上位机的 Avalonia 核心能力已经覆盖:
- XAML、布局、常用控件、资源和样式。
- DataTemplate、ControlTemplate、UserControl 和自定义控件。
- MVVM、Binding、Command、数据验证和集合通知。
- 页面导航、对话框、文件选择和应用生命周期。
- UI 线程、Dispatcher、后台任务、进度和取消。
- 大列表虚拟化、趋势数据节流和界面性能。
- 键盘焦点、状态可读性、本地化和工业操作流程。
- 安全写命令、权限、联锁、确认、回读和审计。
- 发布、关闭清理、异常日志和现场诊断。
Avalonia 只是界面层。真正的上位机能力还包括通信、采集、数据库、报警和现场排错,所以不能只学 Week 06-08。
学完能达到什么阶段
只完成 Week 01-12
能达到扎实的初级 C# / Avalonia 桌面开发阶段。可以开发普通 CRUD 桌面程序,但还不能独立承担工业通信项目。
完成 Week 13-19
能开发包含串口、TCP、Modbus、OPC UA、采集、SQLite、趋势和报警的上位机核心功能。
完成 Week 20-21 和毕业项目
能够独立承担常见初中级上位机项目:需求拆分、架构、开发、模拟测试、设备联调、发布和故障定位。
“专业从业者”还需要真实项目经验。建议至少做 2-3 个完整项目,并经历一次真实设备联调和一次现场故障处理。
哪些不属于通用基础
下面内容根据行业和设备选择,不必全部塞进第一条主线:
- CAN、CANopen、EtherCAT、Profinet、EtherNet/IP。
- MQTT、IEC 60870-5-104、BACnet、DL/T 645。
- PLC 编程、运动控制、机器视觉和机器人 SDK。
- 大型 SCADA、MES、云端数据平台和 Web 远程监控。
- 特定厂家的私有协议、驱动库和组态软件。
遇到具体项目后,再增加对应协议专题。不要在基础没有扎实时同时追十种协议。
最终毕业项目必须包含
- 至少 3 台模拟设备和 1 种真实通信方式。
- 设备和点位配置。
- 后台采集、取消、超时、重连和质量码。
- 实时监控、历史查询和趋势图。
- 报警产生、延时、死区、确认、恢复和审计。
- SQLite 批量写入、保留、备份和恢复。
- 操作员、工程师和管理员权限。
- 安全写入、联锁、确认和回读。
- 日志、健康指标和一键诊断包。
- 自动测试、发布包、升级回滚和验收文档。
完成的判断标准不是“页面做出来了”,而是断网、坏数据、数据库忙、重复点击、关闭窗口等异常情况下仍然可控、可恢复、可排查。