小厂管机器设备,大部分情况下,并不复杂。
经常是用Excel来记录台账,用纸本子来记录故障,换班的时候再口头交代一下。
但问题也恰恰出在这里。
夜班发现机器有故障,白班没有说明清楚,机器带着隐患又运行了一天。
保养过几次、修到哪一步,换个人接手,很快就找不全了。
到月底的时候,老板要数据,主管还要把一堆本子重新整理成 Excel发出去。
最近我在 GitHub 上刷到了一个叫 smart-factory 的项目。

它不是那种几万块的完整 MES,没有排产、BOM,也没有质量管理,却把小厂最常遇到的几件事,放进了一个 WinForms 程序里:
设备台账、保养、故障工单、刷脸打卡和数据统计。

技术栈也很简单,.NET 8 + WinForms,本地用 SQLite 存数据,人脸识别用 OpenCvSharp4,图表用 ScottPlot,导出 Excel 用的是 ClosedXML。
如果有C#基础的话,就可以拿源码改一改,做一个自己的车间管理工具,门槛很低。
下面带大家看一下它到底做了什么。
先看权限,三级角色划分得很清楚
超级管理员基本上什么都可以管,机器增删、用户管理、数据库设置等都由这个权限管理。
车间主管可以管理设备、处理工单,但是不能随便删除机器,也进不了系统设置。
普通员工就更简单了,看机器、报故障、自己打卡,其他功能直接看不到。

我比较喜欢的一点是,权限不仅在界面上有按钮,服务层还会再校验一次。
即使有人绕过界面调用功能,也不能直接越权操作。
项目还准备了默认账号,登录之后就可以看到效果了。
设备台账配上状态流转,终于不用翻本子
每个设备都有自己的编号、名称、种类、所在位置以及当前的状态。
运行中、空闲、保养中、故障、停用这五种状态直接区分。
设备多也不需要一台一台地去找,按照类型、车间、状态筛选一下就可以找到。

在做保养的时候,保养人、保养内容、费用都可以登记,系统会自动更新最近一次保养的时间。
以前在本子上写上“今天已经保养过了”,过了几个月之后谁也不知道是谁做的、什么时候做的,现在至少可以留下完整的记录。
另外设备删除是软删除,数据不会一下子就没有了。
故障工单这一块,我觉得更适合三班倒
员工发现机器有问题就直接报故障,设备就会自动变成“故障”状态,并且会生成工单。
工单按照待处理、处理中、已完成三个阶段来推进,严重程度、故障描述、报修人、时间等信息都会被记录下来。
修好之后,设备就又处于空闲状态。
这样换班的时候,白班打开系统就可以知道:哪台机器坏过,现在修到哪一步了。

不用再用“昨天那台好像有点问题”这样的说法来进行交接。
刷脸打卡,连考勤机都省了
除了设备管理之外,它还顺便把考勤也做了进来。
登录可以使用账号密码也可以用人脸识别。管理员先录入头像和人脸数据,然后员工走到摄像头前进行人脸识别就可以打卡了。
白班和夜班分开记录,时间精确到秒,迟到、早退可以直接查。
更重要的是,人脸特征存储在本地,不需上传到云端。
一台旧电脑加上一个USB摄像头就可以基本部署实施这套东西了。
数据统计做好,月底也不用重新抄表
系统还用到了ScottPlot来制作一些统计图,每天、每个班次、每个部门、每台设备的运行状况都可以直接查看。
老板问“上个月设备运行情况如何”,不用翻很多本子,查一查,直接导出Excel。

考勤记录也可以导出,迟到、缺勤不用人工一个一个地去数。
数据都存储在SQLite中,并且自带数据库面板和SQL查询器,后面自己加报表也方便。
操作日志,我认为这个细节挺重要的
设备管理最害怕的并不是改错,而是改错之后没有人知道是谁改的。

该系统将操作日志同时写入到数据库和文件中,可以记录下是谁、什么时候、对哪台机器进行了操作。
用户修改、系统设置等操作也会被记录下来。
出了问题,不需要挨个问“那天谁值班”,把日志拉出来,基本就能顺着查。
本地运行也很简单
用 Git 下载代码:
git clone https://github.com/agentthink/smart-factory
cd smart-factory/FactoryAttendance
dotnet run
SQLite 会自动创建数据库,不需要另外安装 MySQL、SQL Server 数据库,只要有 .NET 8 环境就可以运行。
项目还准备了默认账号和一些测试设备,第一次启动就可以看到全部的效果。
如果想重新开始,删掉:
%LocalAppData%\FactoryAttendance\Data\factory_attendance.db
重新启动就行。
有兴趣的朋友可以试一试。
开源地址:https://github.com/agentthink/smart-factory
夜雨聆风