【工业自动化平台】 工程设计-项目分层目录设计(1)

发布时间:2026/8/1 17:14:08

【工业自动化平台】 工程设计-项目分层目录设计(1)
【工业自动化平台】 工程设计-项目分层目录设计1总想做点什么方向UIWPF/WinFormsMVVMApplication只负责插件生命周期和应用协调设备Domain按插件拆分Infrastructure基础服务Driver底层通信驱动EventBus / CommandBus / DataBusCore定义契约Common工具程序集设计工程目录如下Industrial.Platform.sln │ ├── 01.Core 核心契约层 │ │ │ └── Platform.Core │ │ │ ├── Interfaces 接口定义 │ │ ├── IPlugin.cs │ │ ├── IPluginManager.cs │ │ ├── IEventBus.cs │ │ ├── ICommandBus.cs │ │ ├── IDataBus.cs │ │ ├── IRepository.cs │ │ └── IDriver.cs │ │ │ ├── Messages 消息契约 │ │ ├── EventMessage.cs │ │ ├── CommandMessage.cs │ │ └── DataMessage.cs │ │ │ ├── Events 系统事件 │ │ ├── DeviceStateEvent.cs │ │ ├── AlarmEvent.cs │ │ └── PluginStateEvent.cs │ │ │ ├── Models 基础模型 │ │ ├── DeviceInfo.cs │ │ ├── PluginInfo.cs │ │ └── StateInfo.cs │ │ │ └── Exceptions │ │ ├── 02.Common 通用工具层 │ │ │ └── Platform.Common │ │ │ ├── Extensions │ │ ├── StringExtensions.cs │ │ └── ObjectExtensions.cs │ │ │ ├── Helpers │ │ ├── JsonHelper.cs │ │ ├── ReflectionHelper.cs │ │ └── DateTimeHelper.cs │ │ │ ├── Serialization │ │ │ ├── Threading │ │ │ └── Result │ │ ├── 03.Application 应用协调层 │ │ │ └── Platform.Application │ │ │ ├── Services │ │ ├── PluginApplicationService.cs │ │ └── DeviceApplicationService.cs │ │ │ ├── Commands │ │ │ └── DTO │ │ ├── 04.Runtime 平台运行时 │ │ │ └── Platform.Runtime │ │ │ ├── PluginManager │ │ ├── PluginLoader.cs │ │ └── PluginContainer.cs │ │ │ ├── ServiceManager │ │ │ ├── AssemblyLoader │ │ │ └── Lifecycle │ │ ├── 05.Infrastructure 基础设施层 │ │ │ └── Platform.Infrastructure │ │ │ ├── EventBus │ │ ├── LocalEventBus.cs │ │ └── RabbitMQEventBus.cs │ │ │ ├── CommandBus │ │ │ ├── DataBus │ │ │ ├── Persistence │ │ ├── SQLite │ │ ├── EFCore │ │ └── Repository │ │ │ ├── Logging │ │ │ ├── Configuration │ │ │ ├── Cache │ │ │ └── FileStorage │ │ ├── 06.Driver 底层驱动层 │ │ │ └── Platform.Driver │ │ │ ├── Abstractions │ │ ├── IPlcDriver.cs │ │ ├── ICameraDriver.cs │ │ └── IMotionDriver.cs │ │ │ ├── PLC │ │ ├── Siemens │ │ ├── Mitsubishi │ │ ├── Omron │ │ └── Modbus │ │ │ ├── Motion │ │ ├── Servo │ │ └── Robot │ │ │ ├── Camera │ │ ├── Basler │ │ └── Hikvision │ │ │ ├── SECS │ │ ├── HSMS │ │ ├── SECS-II │ │ └── GEM │ │ │ └── Network │ ├── TCP │ ├── UDP │ └── SerialPort │ │ ├── 07.Domain.Plugin 设备领域插件层 │ │ │ ├── Tester.Plugin │ │ │ │ │ ├── Domain │ │ ├── StateMachine │ │ ├── Process │ │ ├── Recipe │ │ ├── Alarm │ │ └── PluginEntry.cs │ │ │ │ │ ├── Robot.Plugin │ │ │ ├── SMT.Plugin │ │ │ ├── Vision.Plugin │ │ │ └── SECS.Plugin │ │ ├── 08.UI 表现层 │ │ │ ├── Platform.UI.WPF │ │ │ │ │ ├── Views │ │ ├── Controls │ │ ├── Themes │ │ └── Resources │ │ │ │ │ └── Platform.UI.WinForms │ │ ├── 09.ViewModels MVVM层 │ │ │ └── Platform.ViewModels │ │ │ ├── MainViewModel.cs │ ├── DeviceViewModel.cs │ ├── AlarmViewModel.cs │ └── PluginViewModel.cs │ │ └── 10.Host 主程序 Platform.Client.exe │ ├── Startup ├── DI注册 ├── Configuration └── App.xaml依赖方向严格控制Host | ↓ UI | ↓ ViewModel | ↓ Application | ↓ Domain.Plugin | ↓ Core Infrastructure ─────→ Core Driver ─────────────→ Core Runtime ────────────→ Core Common ← 所有层引用各层最终职责层职责示例Core定义规则IPlugin、IEventBusCommon通用工具Json、反射Application应用协调启动插件Runtime运行管理加载DLLInfrastructure公共能力SQLite、日志Driver硬件通信PLC、SECSDomain.Plugin设备大脑状态机、工艺ViewModel界面逻辑Command、BindingUI显示WPF/WinFormsHost组装启动DI、配置这个结构更适合你的目标“工业设备上位机平台化开发”后续增加新设备 → 新 Domain.Plugin新PLC → 新 Driver新通信 → 新 Infrastructure新界面 → 新 UI主程序无需修改。下面对每一层进行详细说明。整体定位Host负责组装系统Runtime负责运行插件Application负责协调Domain Plugin负责设备逻辑Driver负责硬件通信Infrastructure提供平台能力Core定义契约。1. Core 核心契约层定位Core是整个系统的公共协议层。它不包含任何业务实现只定义谁和谁通信模块之间遵循什么规则数据如何传递类似操作系统的 API 定义。主要内容项目Platform.Core结构Core ├── Interfaces ├── Messages ├── Events ├── Commands ├── Models └── Exceptions1.1 Interfaces接口定义系统能力。例如插件publicinterfaceIPlugin{stringId{get;}stringName{get;}TaskInitializeAsync();TaskStartAsync();TaskStopAsync();}所有设备插件实现PLC.Plugin Robot.Plugin Vision.Plugin1.2 EventBus接口publicinterfaceIEventBus{voidPublishT(Tmessage);voidSubscribeT(ActionThandler);}Core只定义“有消息机制”不关心内存事件RabbitMQMQTT1.3 Driver接口例如publicinterfaceIPlcDriver{TaskConnect();TaskDisconnect();TaskWrite(stringaddress,objectvalue);}实现SiemensDriver MitsubishiDriver1.4 消息模型例如设备状态publicclassDeviceStateChangedEvent{publicstringDeviceId{get;set;}publicstringState{get;set;}}用于PLC Plugin 发布 ↓ UI显示2. Common 通用工具层定位开发辅助库。原则谁都可以使用但不能包含业务。项目Platform.Common内容2.1 扩展方法例如publicstaticclassStringExtensions{publicstaticboolIsNull(thisstringvalue){returnstring.IsNullOrEmpty(value);}}2.2 序列化例如JsonHelper XmlHelper BinarySerializer用途配置文件通信数据缓存2.3 反射工具插件加载AssemblyHelper.Load()用于扫描Plugins目录 加载DLL2.4 Result统一返回ResultT统一成功 失败 错误信息 数据3. Application 应用协调层定位Application不是设备业务。你的设计只负责插件开启、关闭、协调。项目Platform.Application职责3.1 插件管理调用例如用户点击启动设备流程ViewModel ↓ ApplicationService ↓ PluginManager ↓ Plugin.Start()代码publicclassPluginApplicationService{privatereadonlyIPluginManagermanager;publicTaskStart(stringplugin){returnmanager.Start(plugin);}}3.2 应用状态管理例如系统启动 插件加载 插件运行 插件停止3.3 不包含❌ PLC逻辑❌ Recipe流程❌ 设备状态机这些属于 Domain Plugin。4. Runtime 运行时层定位整个软件的操作系统。负责DLL加载插件生命周期DI容器服务管理项目Platform.Runtime4.1 PluginManager核心publicclassPluginManager{Load();Start();Stop();}流程启动程序 ↓ 扫描 Plugins ↓ 找到 xxx.Plugin.dll ↓ 反射创建对象 ↓ 注册DI ↓ 启动插件4.2 AssemblyLoader负责Assembly.Load()支持动态加载插件隔离升级5. Infrastructure 基础设施层定位提供技术能力。不包含设备业务。项目Platform.Infrastructure5.1 EventBus实现Core:IEventBusInfrastructure:LocalEventBus RabbitMQEventBus例如单机内存事件分布式RabbitMQ5.2 SQLite负责数据保存查询ORM例如保存报警记录 运行日志 Recipe参数结构Persistence ├── DbContext ├── Repository └── Migration5.3 Logger例如Serilog NLog统一Debug Info Error5.4 Configuration负责设备配置 系统配置 插件配置例如{PLC:{IP:192.168.1.10}}6. Driver 驱动层定位连接真实硬件。属于软件到设备的最后一公里。项目Platform.DriverPLC结构Driver.PLC ├── Siemens ├── Mitsubishi ├── Omron └── Modbus负责TCP 协议 数据转换 读写Camera例如Basler SDK Hikvision SDK Cognex SDKMotion例如Servo Robot AxisSECS拆分HSMS SECS-II GEM7. Domain.Plugin 设备领域插件层定位这是设备的“大脑”。每一种设备一个插件。例如Tester.Plugin.dll Robot.Plugin.dll内部Tester.Plugin ├── Domain ├── StateMachine ├── Process ├── Recipe ├── Alarm └── PluginEntryDomain定义设备对象Tester Wafer CarrierStateMachine例如Idle ↓ Ready ↓ Run ↓ Complete ↓ ErrorProcess工艺流程例如Load Align Test UnloadRecipe参数温度 速度 时间8. ViewModel层定位MVVM中的VM。连接UI ↓ ViewModel ↓ Application负责数据绑定CommandUI状态例如StartCommand StopCommand ResetCommand不负责❌ PLC通信❌ 数据库❌ 设备控制9. UI层定位显示。支持WPF WinForms负责页面控件样式用户操作不包含业务代码 PLC代码 数据库代码10. Host主程序定位系统入口。负责启动所有模块。流程Main() ↓ 创建DI ↓ 加载配置 ↓ 初始化Runtime ↓ 加载插件 ↓ 显示UI最终数据流控制流用户 ↓ UI ↓ ViewModel ↓ Application ↓ Runtime ↓ Domain Plugin ↓ Driver ↓ 设备状态流设备 ↓ Driver ↓ Domain Plugin ↓ EventBus ↓ ViewModel ↓ UI数据保存设备 ↓ Plugin ↓ Repository ↓ SQLite最终架构定位总结层一句话Core定义规则Common提供工具UI显示界面ViewModel连接界面和系统Application协调应用Runtime管理插件运行Domain Plugin设备大脑Infrastructure提供平台能力Driver连接硬件Host启动系统这个分层适合构建EAP、SCADA、半导体设备控制软件、智能制造上位机平台。

相关新闻

LMU伊莫拉赛道RCF性能分析:实现1:44.999圈速的完整指南

LMU伊莫拉赛道RCF性能分析:实现1:44.999圈速的完整指南

2026/8/1 17:04:08

这次我们来看一个赛车模拟领域的专业工具——LMU(Le Mans Ultimate)伊莫拉赛道的RCF(Racing Car Factor)性能分析,重点是如何在游戏中实现1:44.999的单圈成绩。对于赛车模拟爱好者来说,圈速优化不仅关乎车辆…

2027届毕业设计答辩前瞻:从评分标准到演示技巧的完整备战指南

2027届毕业设计答辩前瞻:从评分标准到演示技巧的完整备战指南

2026/8/1 17:04:08

引言 七月流火,2027届的同学大多还在暑期当中,距离答辩似乎遥不可及。但如果你去问每一位经历过答辩的学长学姐,他们几乎都会说同一句话:答辩的准备,从来不是答辩前两周才开始的。 答辩的本质,是你把过去大…

NLP技术解析翻译一致性:从原理到动画台词本地化实战

NLP技术解析翻译一致性:从原理到动画台词本地化实战

2026/8/1 17:04:08

最近重温《小马宝莉》第一季国语配音版,发现有些台词翻译确实让人摸不着头脑。作为技术博主,今天我们不讨论语言艺术,而是用工程思维来拆解这些"翻译差异"背后的逻辑,看看如何用技术手段实现台词本地化的自动化处理。 …

AI 文件自动化工具 OpenClaw 安装指南,新手可直接上手(含安装包)

AI 文件自动化工具 OpenClaw 安装指南,新手可直接上手(含安装包)

2026/8/1 18:14:10

OpenClaw 本地 AI 自动化工具部署教程✨图形化一键搭建环境 适配平台:Windows 10/11 64 位、macOS Windows 版本:v2.9.0 macOS 版本:v2.7.9 安装包大小:45.8MB 📥资源下载地址 Windows v2.9.0:https://x…

USB Type-C接口深度解析:从物理引脚到协议栈的全面指南

USB Type-C接口深度解析:从物理引脚到协议栈的全面指南

2026/8/1 18:14:10

1. 从“正反插”到“万能口”:USB Type-C的演进与核心价值 十年前,我们给手机充电、给电脑传文件,还得眯着眼睛对准接口的豁口,生怕插反了把接口弄坏。那个时代,Micro-USB是绝对的主流,但它的“防呆不防傻”…

Unity项目管理革命:用Projeny实现模块化开发与高效团队协作

Unity项目管理革命:用Projeny实现模块化开发与高效团队协作

2026/8/1 18:14:10

1. 项目概述:为什么Unity项目需要Projeny?如果你在Unity开发团队里待过一段时间,尤其是经历过从Demo到正式产品、团队从三五人扩张到十几二十人的阶段,大概率会对下面这些场景感到头疼:项目越来越大,Assets…

本地智能自动化 OpenClaw 搭建|Windows v2.9.0 图形化安装完整指南(含安装包)

本地智能自动化 OpenClaw 搭建|Windows v2.9.0 图形化安装完整指南(含安装包)

2026/8/1 18:14:10

OpenClaw AI 桌面自动化工具部署实操✨可视化方式快速搭建运行环境 适配系统:Windows10/11 64 位、macOS Windows 版本:v2.9.0 macOS 版本:v2.7.9 安装包大小:45.8MB 📥资源下载地址 Windows v2.9.0:htt…

收音机调谐拉线维修:从机械传动原理到实战修复指南

收音机调谐拉线维修:从机械传动原理到实战修复指南

2026/8/1 18:14:10

1. 从一次“失声”的维修说起上周,一位老友抱着一台老旧的“红灯”牌收音机来找我,说机器突然没声了,调台旋钮空转,指针纹丝不动。打开后盖一看,果不其然,是调谐拉线断了。这几乎是所有指针式收音机、收录机…

OpenClaw情感识别混合架构解析与应用实践

OpenClaw情感识别混合架构解析与应用实践

2026/8/1 18:04:10

1. OpenClaw情感识别技术路线解析在对话系统领域,情感识别一直是个极具挑战性的任务。最近OpenClaw框架在这方面的表现引起了广泛关注,但很多开发者对其技术实现细节仍存在疑问——它到底是采用独立的情感分析模型,还是通过端到端学习直接输出…

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

2026/8/1 16:37:34

目标:电脑作为RTSP 服务端,循环推送 H264/H265 视频流; RDK X5 通过 rtsp2display 拉流预览,完全不需要在开发板编译 live555。 提供两套成熟方案: ✅ 方案 A:FFmpeg(最简单,优先推…

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

2026/8/1 0:15:49

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

2026/8/1 4:47:48

说实话,提到PDF拆分再压缩,我真是被折腾得够呛。 上个月公司年度合同归档,一份300多页的PDF总合同,需要按年份拆分成三个独立文件,再分别压缩到10MB以内方便邮件发送各部门确认。我心想这还不简单?先找个海…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/1 0:03:03

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/1 0:03:03

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/1 0:03:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/1 0:03:03

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/1 0:03:03

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/1 0:03:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…