Gear.NET微编排框架,能为工业自动化吗?
摘要:告别“屎山”代码!Gear.NET:专为 .NET 工业自动化打造的微编排框架 🛑 灵魂拷问:工业软件开发的“六大至暗时刻” 做上位机、做电检(EOL)、做自动化的兄弟们,这些场景是否让你感到窒息? 硬件强耦
告别“屎山”代码!Gear.NET:专为 .NET 工业自动化打造的微编排框架
🛑 灵魂拷问:工业软件开发的“六大至暗时刻”
做上位机、做电检(EOL)、做自动化的兄弟们,这些场景是否让你感到窒息?
硬件强耦合:换个电源品牌就要改源码重新编译?代码里充斥着 if(type=="Keysight") 的硬编码?
逻辑面条化:业务逻辑、UI 刷新、串口读写全堆在 btnStart_Click 里?几千行的 if-else 嵌套看得让人绝望?
假死与卡顿:到处是 Thread.Sleep(500)?界面一点开始就无响应,想加个“取消”按钮都做不到?
数据黑洞:断电导致 CSV 文件损坏?想查“上个月所有 NG 的数据”界面直接卡死?存 String 没法统计,存 Double 丢了精度?
协议手撸:还在手动拼接十六进制数组?还在为了解析 TCP 粘包、拆包写一堆容易出错的底层代码?
维护噩梦:客户现场是 Win7 (Framework 4.8),开发环境是 Win11 (.NET 8),代码无法复用,陷入 DLL 版本地狱?
如果中了两条以上,Gear.NET (General Engine for Automation & Research) 就是为你准备的解药。
🚀 Gear.NET 是什么?
Gear.NET 是一个基于 .NET Standard 2.0 的工业级微编排框架。
它拒绝大而全的臃肿,专注于解决“流程编排”与“软硬解耦”两大核心矛盾。通过先进的洋葱架构(Onion Architecture),它让工业代码像 Web 后端一样优雅、健壮、可测试。
🔥 核心能力:对症下药
1. 治愈“逻辑面条化” —— MicroWorkflow 微流程引擎
告别嵌套地狱。使用链式 API 优雅地编排测试步骤,原生支持异步、重试、并发、超时。
// 像写诗一样写代码
var flow = new MicroWorkflow("EOL_Test")
.Then("初始化仪器", async ctx => await device.InitAsync())
.Parallel("多通道并发测试", // 并行执行,缩短节拍
b => b.Then("读电流", async ctx => await dmm.ReadAsync()),
b => b.Then("读CAN", async ctx => await can.ReadFrameAsync())
)
.Retry("易失败的步骤", async ctx => await network.ConnectAsync(), count: 3) // 自动重试
.If(ctx => ctx.IsNg, // 逻辑分支
thenFlow: new MicroWorkflow().Then("报警停机", async ctx => await plc.AlarmAsync())
)
.Build();
2. 治愈“硬件强耦合” —— UniversalScpi 配置驱动
换硬件不改代码。对于 90% 的标准 SCPI 仪器(电源、负载、万用表),JSON 即驱动。
配置 (JSON): 定义命令模板与正则解析规则。
调用 (C#): 使用强类型扩展方法。
// device_config.json
"Commands": {
"SetVoltage": { "Template": "VOLT {val}" },
"ReadCurrent": { "Template": "MEAS:CURR?", "Parser": { "Type": "Regex", "Pattern": "([\\d.]+)" } }
}
代码调用:await device.SetVoltageAsync(12.0); —— 就算底层把安捷伦换成泰克,业务代码一行不用动。
3. 治愈“数据黑洞” —— 双轨制分表存储
基于 SqlSugar 的深度封装,专为工业大数据设计:
双轨制:
原始轨 (String):原样存储 "12.500 V" / "TIMEOUT",保证 MES 上传 0 误差。
分析轨 (Double):自动清洗数值建立索引,支持 CPK/GR&R 毫秒级分析。
自动分表:按月自动切分数据表,SQLite 也能扛住千万级数据量。
高可靠:显式事务 + WAL 模式,读写分离,拒绝文件损坏。
4. 治愈“维护噩梦” —— 极致兼容性
核心库:严格遵守 .NET Standard 2.0。
