前言
大家好,我是wacky。最近在整理工控方向的技术资料时发现一个现象:提起.NET做工业控制,很多人的第一反应是"WinForm拖几个按钮、接个串口"。但实际接触下来,从PLC通信到数据可视化、从状态机引擎到机器视觉,整个.NET工控生态已经覆盖了从设备层到企业层的完整链路。这个系列的目标不是教你怎么写某行代码,而是给你一张"生态地图"——让你知道.NET在工控领域能做什么、该用什么库、从哪一步开始。今天是第一篇,我们先不碰代码,聊聊基本概念:工控系统到底是怎么回事,.NET在其中扮演什么角色。什么是工控
工控,即工业控制,本质上是让计算机来指挥和监控工业设备。一个完整的工控系统通常包含四层,自下而上依次是:

最底层是现场设备层——传感器、执行器、电机、仪表。它们是系统的"手和眼",负责采集物理量(温度、压力、位置)和执行动作(开关阀门、启停电机)。往上一层是控制层——PLC(可编程逻辑控制器)是这一层的主角。PLC直接连着现场设备,按照预先编写的控制逻辑运行。比如"温度超过80度就关闭加热器"这种规则,就烧在PLC里。PLC的可靠性极高,7×24小时不间断运行是基本要求。再往上是上位机层——这是.NET开发者最常接触的领域。上位机不直接控制设备,而是通过通信协议读取PLC的数据,在界面上展示、存储、报警、生成报表。你可以理解为:PLC是干活的,上位机是管理的。最顶层是企业系统层——MES(制造执行系统)、SCADA(数据采集与监控系统)、ERP。这些系统对接上位机,把车间数据汇总到企业管理层面。
PLC:工控的"大脑"
既然上位机是跟PLC打交道的,那得先搞清楚PLC是什么。PLC全称Programmable Logic Controller,诞生于1968年,最初是为了替代继电器控制系统而发明的。它有三个核心特点:第一,抗干扰能力极强,在电磁环境恶劣的工业现场也能稳定运行;第二,实时性高,从输入信号到输出响应通常在毫秒级;第三,编程方式以梯形图为主,电气工程师更容易上手。工业现场主流的PLC品牌包括汇川、西门子、三菱、欧姆龙、罗克韦尔等。国产品牌中,汇川近年来的市场份额增长很快,EVO系列PLC配iFA Evolution软件平台,在高精运控、过程控制、产线设备开发等场景都有广泛应用。不同品牌的PLC使用不同的通信协议——这就是上位机开发要解决的核心问题:你的软件要用什么"语言"跟PLC对话。通信协议:上位机和PLC之间的"语言"
通信协议是上位机和PLC之间约定好的数据交换规则。打个比方,PLC就像一个只会说方言的老人,通信协议就是你跟他沟通时用的翻译规则。翻译规则不对,你说什么他都听不懂。工业领域的通信协议有好几种,各有各的适用场景。这里先做个概览,后续文章会逐个深入:Modbus —— 工控界的"普通话"。1979年诞生,几乎所有PLC都支持,通用性最强。OPC UA —— 下一代统一标准。跨厂商、内置安全、结构化数据模型。MQTT —— IoT时代的"轻骑兵"。轻量发布-订阅模式,适合云边协同。这里面有个重要的认知:通信协议没有"最好",只有"最合适"。Modbus通用但功能简单,OPC UA先进但学习成本高。选哪个,取决于你的项目用的什么PLC、有什么性能要求、团队有什么技术储备。以汇川EVO系列为例,它同时支持Modbus TCP和OPC UA,两种协议各有用武之地。这些后续会展开聊。.NET在工控领域的生态位
聊完工控的基本概念,该说回.NET了。很多人对.NET的印象停留在"做Web的"或者"做企业信息系统的"。但实际上,.NET在工控上位机开发领域一直占有一席之地,而且生态比大多数人想象的要完整得多。

具体来说,.NET在工控的三个层面都有成熟的生态支撑:通信层:NModbus4处理Modbus协议,OPCFoundation官方提供.NET Standard的OPC UA SDK,MQTTnet覆盖IoT场景。这些库都是开源的,在NuGet上一键安装。配合汇川EVO系列PLC和iFA Evolution软件平台,从协议配置到代码对接可以跑通完整链路。数据与业务层:SQLite做本地轻量存储,InfluxDB处理时序数据,EF Core和Dapper做数据访问,Stateless管理设备状态机,Elsa编排业务流程。展示层:WinForm和WPF是工控界面的两大主力框架,ScottPlot和OxyPlot提供实时图表,HandyControl让WPF界面告别"土味工控"风格,Avalonia则在跨平台方向上崭露头角。也就是说,一个.NET开发者想入行工控,不需要换语言、不需要换技术栈,从通信到存储到界面,整套工具链都是现成的。这是.NET在这个领域最大的优势——学习成本低、生态完整、上手快。当然也有局限。硬实时控制(响应要求在1毫秒以内)不是.NET的强项,那是C++和RTOS的领地。资源极度受限的嵌入式设备也不是.NET的主场。但这两类场景在整个工控项目中占比有限,绝大多数上位机开发——数据采集、监控界面、报警报表、MES对接——.NET完全能胜任。
这个系列会聊什么
梳理完基本概念,接下来这个系列会自下而上展开:第一层,通信协议——Modbus和OPC UA怎么选、怎么用、怎么避坑,以汇川EVO系列PLC为例子展开实战。第二层,数据与业务——采集到的数据怎么存、怎么管、业务逻辑怎么设计。第三层,展示与交互——界面框架怎么选、可视化控件怎么用、怎么让工业软件不再"丑"。三篇看完,各位看官就能在脑子里画出一张完整的.NET工控技术栈地图。之后我们会进入实战环节,用这套技术栈从零搭建一个上位机系统。后记
工控是一个被很多.NET开发者忽视的方向。它不像Web开发那样光鲜,也不像AI那样风口浪尖,但胜在稳定、需求大、技术栈匹配。如果你是一个.NET程序员,想找一个有深度、有积累、不容易被AI替代的垂直领域,工控值得认真看看,诸君共勉。
本文首发于我的公众号【wacky的碎碎念】,欢迎关注追更!

浙公网安备 33010602011771号