news 2026/9/4 18:49:49

OT 与 IT 的鸿沟:为什么工业软件不能只按互联网思维开发

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OT 与 IT 的鸿沟:为什么工业软件不能只按互联网思维开发

系列:工业软件与开发者成长实战
本文主题:理解 IT、OT 与 MES 之间的关系,以及设备数据如何进入业务系统
资料基础:个人学习记录与项目分析;未在代码中确认的内容以 [TODO] 标记

整理日期:2026-07-17
背景:入职xxxx后,通过MES系统逆向学习制造业全流程,发现学校教的和工厂用的是两套完全不同的知识体系


🐟这里是yurenpai

27届开发者,主要学习 Java 后端与 AI 应用开发。

这里记录真实项目中的代码调用链、Agent/RAG 工程化、问题排查和开发复盘。

个人理念:

跨行业学习的第一步,不是急着写代码,而是先承认自己还不了解现场。

写在前面

先给结论:OT 和 IT 不是“硬件与软件”的简单对立,而是围绕不同目标建立的两套技术体系。本文在原稿基础上补充 MES 分层、数据链路、验证边界和学习路线。


一、两个世界的分野

中国的大学专业划分,天然制造了一条鸿沟:

计算机科学与技术(IT) 自动化/电气工程(OT) ───────────────────────── ─────────────────────── Java / Python / Go 梯形图 / 结构化文本 / 组态软件 Spring Boot / 微服务 PLC / DCS / SCADA MySQL / Redis / MQ 工业协议:OPC-UA / Modbus / Profinet HTTP / WebSocket 传感器 / 执行器 / 变送器 / 数据采集模块 云原生 / K8s / Docker 工控机 / HMI人机界面 / 现场总线 开源社区 / GitHub 闭源商业软件 / 厂商私有协议

IT和OT分属两个学院、两套课程体系、两种思维方式。计算机专业不会讲PLC编程,正如自动化专业不会讲Redis集群。这不是个人知识盲区,是专业隔离。


二、为什么工业知识在互联网上"隐身"

2.1 从业者画像完全不同

互联网技术从业者 工业技术从业者 ───────────────────────── ────────────────────── 20-35岁,一线城市 30-50岁,工业园区/二三线城市 互联网公司/大厂 制造业工厂/设计院/系统集成商 跳槽靠GitHub和技术博客 经验靠师傅带徒弟,口口相传 开源文化 → 写博客、录视频 闭源生态 → 操作手册锁在档案柜里 技术大会、B站UP主 不出圈、不录视频、不写公众号 知识变现(课程/咨询) 经验不对外(行业壁垒也是护城河)

2.2 软件生态完全不同

互联网软件 工业软件 ───────────────────────── ────────────────────── Spring Boot → 免费开源 西门子TIA Portal → 一套几十万 MySQL → 随便装随便用 PI System → 百万级授权费 源码在GitHub上随便看 无源码,厂商封装成黑盒 B站教程满天飞 官方文档是PDF,纯英文,几百页 社区活跃(Stack Overflow) 靠厂商技术支持电话解决问题

2.3 为什么制造业经验不外传

  1. 没有受众:"PLC编程入门"的B站播放量可能不到500。搞互联网的不会看,搞工业的不上B站。
  2. 没有变现:没有人靠讲工厂业务在互联网上赚钱。知识付费的消费者是程序员,不是工厂师傅。
  3. 行业壁垒:制造业的"know-how"(知道怎么做)本身就是核心竞争力。一个配方、一套工艺参数,可能就是一个工厂的命脉,不可能写成博客公开。
  4. 不依赖流量:工业圈找工作不走"技术网红"路线。靠的是行业人脉、项目经验、资质证书。

三、MES系统的技术分层(真实情况)

互联网圈讲"高并发、分布式、微服务",工业圈的真实架构是另一种分层:

┌─────────────────────────────────────────┐ │ 应用层(IT的世界) │ │ Spring Boot + Vue + MySQL + Redis │ │ 订单/工单/报工/检验 → 全是CRUD + 状态机 │ │ ← 这是计算机专业教的东西,你会 │ ├─────────────────────────────────────────┤ │ 中间层(OT和IT的交界) │ │ OPC-UA Client / MQTT Broker │ │ 协议转换:工业协议 → HTTP/JSON │ │ 时序数据库:InfluxDB / TDengine │ │ ← 这部分是两个世界的翻译官 │ ├─────────────────────────────────────────┤ │ 设备层(OT的世界) │ │ PLC控制器 / 传感器 / 执行器 │ │ SCADA组态软件 / HMI人机界面 │ │ 工业以太网:Profinet / EtherCAT │ │ ← 这是自动化专业教的东西,计算机不教 │ └─────────────────────────────────────────┘

一个互联网程序员转行做工业软件,最难的不是写代码,是理解设备层在干什么。


四、设备数据到底存在哪

4.1 实际情况:看工厂规模

小厂(几十台设备,年产值几千万): 直接存 MySQL → 一天几千条,MySQL 完全扛得住 运维简单,不用引入新组件 中厂(几百台设备,年产值几个亿): 时序数据库 → InfluxDB / TDengine / TimescaleDB 开源免费,运维成本可控 大厂(几千台设备,年产值几十亿): 商业工业数据平台 → PI System(OSIsoft) / 西门子MindSphere 一套百万级 → 买的不只是软件,是整个数据采集+存储+分析体系

4.2 时序数据库 vs MySQL

MySQL: 擅长:事务、JOIN、随机读写 存什么:订单、用户、工单、报工记录 特点:数据量不大,但关系复杂 时序数据库: 擅长:按时间范围扫描、降采样聚合、超高并发写入 存什么:设备温度/压力/转速(每500ms一条) 特点:数据量巨大但结构简单,几乎没有JOIN 举例: MySQL 查:SELECT * FROM temp WHERE time BETWEEN '10:00' AND '11:00' → 索引扫描,几千条数据,可能需要100ms 时序库查:同样的查询 → 数据按时间连续存储在磁盘上,顺序读取,可能只需要5ms

4.3 数据量计算

1台设备,每500ms一条数据(温度/压力/转速/电流) = 2条/秒 × 86,400秒/天 = 172,800条/天 64台设备 = 约1,100万条/天 所以设备数据通常: ├── 实时数据(最近24h)→ 放在内存/Redis ├── 近期数据(最近3个月)→ 时序数据库 └── 历史归档(3个月以上)→ 压缩存储/只保留小时级聚合

五、PLC和设备接入是什么

5.1 物理链路

工厂车间物理层: 温度传感器(热电偶) ──┐ 压力传感器 ──┤ 振动传感器 ──┼──→ PLC控制器(西门子S7-1200) ──→ 网线 ──→ 车间交换机 转速传感器 ──┤ 电流互感器 ──┘ │ 搅拌机 ──→ PLC控制器(三菱FX5U) ──→ 网线 ──→ 车间交换机 灌装机 ──→ PLC控制器(欧姆龙) ──→ 网线 ──→ 车间交换机 │ ▼ MES服务器(内网) ├── OPC-UA Client 采集数据 ├── 阈值对比 → 超了就写告警表 └── 存进设备数据表/时序库

5.2 OPC-UA是什么

HTTP = 互联网的标准通信协议(浏览器 ↔ 服务器) OPC-UA = 工业界的标准通信协议(PLC ↔ MES/SCADA) 类比: HTTP: GET /api/user/1 → 返回 JSON {"name": "张三"} OPC-UA:读 ns=3;s=TemperatureSensor1 → 返回值 75.5 OPC-UA 的价值: 不管PLC是西门子的、三菱的还是欧姆龙的, 只要支持OPC-UA,上层系统用同一套代码就能读数据。 相当于工业界的"统一API标准"。

六、从IT跨界到OT,你应该学什么(后附避坑指南)

第一层:和团队正常协作需要的

知识点学到什么程度时间
制造业业务流程(BOM/工单/报工/工艺路线)能听懂别人在说什么看MES文档,两天
所在行业的术语(细度/粘度/固含/色差)知道每个指标是什么意思半天
OEE的计算方式稼动率×性能率×合格率10分钟
GMP合规/批号追溯(如果接药厂/食品厂)知道数据不能物理删除半小时
时序数据库 vs MySQL的区别面试能讲清楚半天

第二层:面试能拉开差距的

知识点为什么值钱时间
Docker 深入(Dockerfile/多阶段构建/镜像优化)你简历写了但深度不够3天
Jenkins / CI-CD Pipeline6人团队,持续集成大概率要用3天
Git 协作规范(Git Flow/Code Review/冲突解决)独立开发→团队协作的第一步2天
Nginx 配置(反向代理/负载均衡/HTTPS)你们的网关就是Nginx2天
Linux 排障(top/free/df/journalctl/netstat)服务器排查问题必备持续积累
多租户SaaS架构你们的平台卖给多家工厂3天
工业互联网/IIoT概念MQTT协议、数字孪生、数据采集架构3天

第三层:长期——让你和普通Java程序员拉开质的差距

知识点为什么值钱
Netty / 网络编程基础设备接入层本质是高性能网络通信(TCP粘包/拆包/Reactor模型)
分布式系统设计107个子模块,单体迟早拆微服务
系统可观测性Prometheus + Grafana + SkyWalking
工业协议入门(至少知道MQTT和OPC-UA的概念)市面上懂互联网又懂工业的人极少

⚠️ 避坑指南:这些不用学

不用学原因
PLC编程(梯形图/ST语言)你是AI模块负责人,PLC有自动化工程师负责
SCADA组态软件同上,不是你的职责范围
电路/模电/数电自动化专业的课,你做软件不需要
深度学习模型训练你用的是大模型API(DashScope/DeepSeek),不是自己训模型
LangChain(现在)Spring AI先学透,概念全重叠,后面用的时候两周上手

七、你现在的独特位置

大多数人: 你现在: 只懂IT,不知道工厂怎么运作 既会Spring AI搭建AI模块 或者 + 只懂OT,不会写代码 正在理解制造业全流程(10板块107子模块) 还知道AI怎么嵌入每个环节 面试市场上: "会Spring Boot的Java程序员" → 一抓一大把 "做过工厂MES系统 + 从0搭建AI模块" → 很少

你不需要学会PLC编程才能做AI模块。你需要的是:理解业务在干什么 + 知道AI能在哪个环节落地 + 能用Spring AI把方案做出来。这才是你不可替代的地方。


八、一份实话

工业软件和互联网软件最大的区别:

互联网:用户多了加机器,Redis扛不住上Cluster,MySQL慢就分库分表 → 技术问题的解法是"加更多技术" 工业软件:用户多了不能随便加机器,产线停一分钟可能赔几万 → 技术问题的解法是"不出错" 互联网追求"高并发、高可用" 工业追求"高可靠、高安全"

这两种思路在同一个系统里碰撞(你们的MES平台就是要同时做到可靠+智能),这是你这个岗位值钱的地方。面试的时候把这段话讲出来,面试官会觉得你不是那种"只会写CRUD、不知道业务是什么"的程序员。

当前进度与发布说明

[OK] 已完成

已按照《00-个人技术文章风格规范.md》补充文章定位、作者介绍、结论导向、测试/验证说明和上下篇衔接。

[TODO] 发布前继续确认

  • 涉及真实公司、项目名称、内部架构、数量和行业比例的内容,需要结合授权范围决定是否公开;
  • 具体类名、模块数量、设备协议和性能数字,需要以当前代码、配置或正式资料复核;
  • 截图和代码片段发布前应检查密码、Token、内网地址和真实业务数据。

总结

本文的核心不是罗列概念,而是把“理解 IT、OT 与 MES 之间的关系,以及设备数据如何进入业务系统”放回真实项目和个人学习过程里理解。阅读时建议沿着下面的路径复述:

问题或现象 → 业务背景 → 系统/行业结构 → 真实项目案例 → 可验证结论

小鱼点睛

先区分“资料中的规划”“代码中的实现”和“自己已经验证的结论”,再把经验写成文章,内容才经得起复盘。

下一篇

下一篇将继续写SmartMake 平台开发总结:从工具到引擎

下一篇将从平台实现角度进入 SmartMake,分析基础 Starter、代码生成、在线配置和运行时如何组合。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 18:47:41

DeepSeek Agent开发实战:从API接入到工具调度全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 18:46:48

逆向工程经典游戏《真魂斗罗》:从内存分析到资源解包的技术实践

如果你是一位资深游戏开发者,或者对经典游戏架构和逆向工程有浓厚兴趣,那么“真魂斗罗”这个名字,可能比你想象中更有价值。它绝不仅仅是一款承载着童年回忆的PS2平台横版射击游戏。在技术层面,它代表了PS2时代Capcom(…

作者头像 李华
网站建设 2026/9/4 18:45:00

STM32音乐播放器开发:从硬件选型到稳定播放的实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 18:43:53

车载多波束激光雷达(HEISAI:AT128P)与上位机(PC端)的通信

利用Wireshark获取车载多波束激光雷达(HEISAI:AT128P)的IP地址与物理地址,从而实现雷达与上位机的通信 说明:首先我们来了解以下以太网中的一些基本概念,如果想快速连接雷达可以直接跳到最后一步的具体步骤 目录 1. I…

作者头像 李华
网站建设 2026/9/4 18:40:07

专升本学生边上课边写论文,按学期进度推进的节奏

专升本的论文要求比专科明显上了一个台阶,可课业一点没少:白天的课排得满满当当,晚上还有作业和小测。很多同学不是写不出来,是找不到整块时间坐下来写。本文按"学期进度"给你拆一套推进节奏——把论文拆进每个学期的前…

作者头像 李华
网站建设 2026/9/4 18:39:34

第一款Mac app就获97%媒体评分?关键在于发布前的工程细节

那天刷新 Show HN 的时候,我注意到一条标题:My first app got 97% on MacSources。发帖人没有写长篇功能清单,没有讲解技术栈,也没有放几十张截图,只是把一个结果放在那里。评论区里有人恭喜,有人询问这款具…

作者头像 李华