# ScrewStation **Repository Path**: ralfchen1978/screw-station ## Basic Information - **Project Name**: ScrewStation - **Description**: 自动螺丝机工作站, 顺便找个工作 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-14 - **Last Updated**: 2026-09-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ScrewStation 自动锁螺丝机上位机 — 演示脚本 > 总时长约 12~15 分钟,全程无需真实硬件(内置 PLC/电批/相机模拟器)。 > 建议投影分辨率 1280×820 以上,提前关闭其他占屏程序。 --- ## 一、演示准备(开演前 5 分钟) 1. **启动程序**(二选一): - Visual Studio 2022 打开 `ScrewStation.sln`,将 `ScrewStation.App` 设为启动项目,按 F5; - 或命令行:`dotnet run --project src/ScrewStation.App` 2. **确认顶栏三盏设备灯全绿**:● PLC / ● 电批 / ● 视觉 均在线。 3. **确认数据库已初始化**:首次运行自动生成 `Data/screwstation.db`,含种子配方「iPhone 16 Pro v1.0」(12 个锁付点位)与三个账号。 4. **准备账号**(演示中会切换): | 账号 | 密码 | 角色 | 演示用途 | |------|------|------|----------| | admin | admin123 | 系统管理员 | 主讲账号,可故障注入 | | engineer | eng123 | 设备工程师 | 演示复打/跳过/改配方 | | operator | op123 | 产线操作员 | 演示权限约束(按钮变灰) | 5. 建议预演一遍"滑牙注入 → 复打"(第 4 幕),确认时序顺畅。 --- ## 二、分幕脚本 ### 第 1 幕:登录与权限体系(约 1 分钟) **操作**:启动后弹出登录窗 → 用 `admin / admin123` 登录。 **话术**: > "系统启动即完成 PLC、智能电批、视觉相机三路设备连接,当前全部在线。 > 登录采用账号 + 密码哈希(PBKDF2 加盐)存储,三级角色权限矩阵:操作员只能生产,工程师可改配方和处置 NG,管理员额外拥有故障注入与用户管理。" **预期**:进入主界面,顶栏显示当前用户"系统管理员"、当前配方"iPhone 16 Pro 1.0",三设备灯绿色。 --- ### 第 2 幕:正常生产全流程(约 3 分钟)★核心 **操作**: 1. 切到「生产监控」页,在产品条码框输入一个新条码(如 `DEMO-001`),回车扫码; 2. 点击「开始生产」; 3. 观察左侧手机点位图与右侧扭矩曲线,静置观看约 1 分钟。 **话术**: > "扫码后进入待开始态;点击开始,流程引擎按配方 12 个点位依序执行: > 每颗螺丝先视觉定位取偏移,再驱动电批按目标扭矩-角度拧紧,实时曲线与判定结果同步刷新。 > 绿色 = OK,红色 = NG。所有明细、扭矩曲线 JSON 全部落 SQLite,条码级追溯。" **预期现象**: - 点位图从 P01 → P12 逐个由灰转绿; - 右侧曲线实时绘制,超过目标扭矩后判定 OK; - 状态由"生产中" → "完成",事件栏滚动记录每一步; - 顶栏当班计数 OK +1。 **讲解要点**:可随手点选一个已完成点位,展示目标/实际扭矩、角度、耗时与完整曲线。 --- ### 第 3 幕:滑牙 NG 注入与复打处置(约 3 分钟)★核心 **操作**: 1. 扫新条码 `DEMO-002` → 开始生产; 2. 生产中切到「系统设置」页 → 故障注入下拉选「滑牙」→ 点「注入」; 3. 切回「生产监控」页:看到 P01(下一颗)变红,事件栏报"滑牙"NG,产品最终 NG; 4. 在点位图**选中红色点位**,点「复打选中点」; 5. 等待复打完成,点位翻绿、产品转 OK。 **话术**: > "演示最关键的品质场景——滑牙:注入只作用于下一颗螺丝,后续自动恢复正常,符合真实故障的一次性特征。 > NG 后引擎自动停在该点位等待处置。工程师复打后 Attempt 记为 2,追溯里能完整看到第一次 NG、第二次 OK 的全过程——这就是防漏防错的可追溯闭环。" **预期现象**: - 注入后仅 1 颗 NG,其余 11 颗正常; - 产品状态 NG,事件栏有滑牙报警; - 复打成功后产品翻为 OK,当班 NG 不虚增。 --- ### 第 4 幕:扭矩低 NG + 工程师跳过(约 2 分钟) **操作**: 1. 扫 `DEMO-003` → 开始生产; 2. 「系统设置」注入「扭矩低」→ 回监控页等 NG; 3. (如已是 engineer/admin)选中红点 → 「跳过选中点」→ 录入跳过原因(如"物料异常,品质确认放行")。 **话术**: > "跳过是有权限、有记录的:只有工程师及以上可执行,原因强制登记,追溯中该点位标记'跳过'而非 OK——杜绝不合格品被悄悄放行。" **预期现象**:产品完成,跳过计数 +1,追溯页可见跳过原因。 --- ### 第 5 幕:视觉失败 → 自动重试 → 中止(约 2 分钟) **操作**: 1. 扫 `DEMO-004` → 开始生产; 2. 「系统设置」注入「视觉识别失败」→ 回监控页观察。 **话术**: > "视觉定位失败时引擎自动重试 3 次;全部失败则产品置为'中止'并完整建档。 > 注意:中止品不能复打、不能跳过——必须复位重来,防止半成品被翻成 OK。" **预期现象**:事件栏连续 3 次视觉重试失败 → 状态"中止",追溯可查该条码(无螺丝明细)。 --- ### 第 6 幕:安全联锁(可选,约 1 分钟) **操作**:「系统设置」页 → 「触发急停」→ 展示报警与状态 → 「急停复位」;可顺带演示「打开安全门」。 **话术**: > "急停与安全门是硬件级联锁的真实映射:急停同时取消在途电批动作,复位后需重新走流程,杜绝危险状态下继续生产。" --- ### 第 7 幕:配方管理与切换权限(约 2 分钟) **操作**: 1. 切「配方管理」页:展示 iPhone 16 Pro 配方 12 点位参数(坐标/扭矩/公差/角度/转速); 2. 以 operator 登录(顶栏「用户 ▾」切换)→ 展示"新建/编辑/复制/导入导出"按钮**禁用**; 3. 切回 engineer/admin → 编辑某点位目标扭矩(如 1.30 → 1.35)→ 保存; 4. 顶栏配方下拉切换配方(有确认弹窗)。 **话术**: > "配方按机型管理,参数可视化编辑。注意权限设计贯穿始终:操作员只读,复制/导出也需要相应权限;生产进行中配方下拉会自动禁用,防止中途误切。" --- ### 第 8 幕:生产追溯与导出(约 2 分钟)★核心 **操作**: 1. 切「追溯查询」页 → 直接查询:看到今天所有 DEMO 产品; 2. 选 `DEMO-002`(滑牙复打那台):下方明细显示 12+1 条记录(复打 Attempt=2); 3. 点选复打那条 → 曲线回看两次拧紧曲线; 4. 顶部按"结果=NG/中止"过滤演示;最后点「导出 CSV」,打开文件展示。 **话术**: > "每一颗螺丝都有档案:条码、点位、目标/实际扭矩角度、判定、操作员、时间、完整曲线。 > 支持条码模糊查询、结果过滤、时间范围筛选,一键导出 CSV 给品质部门存档。 > 前面演示的滑牙、跳过、中止,全部在追溯里闭环留痕。" --- ## 三、故障注入速查表(设置页 → 演示/调试工具) | 注入项 | 作用 | 预期结果 | 处置方式 | |--------|------|----------|----------| | 滑牙 | 下一颗螺丝扭矩异常波动 | 点位 NG,NG 分类=滑牙 | 工程师复打 | | 浮锁 | 角度到位但扭矩不足 | 点位 NG | 工程师复打 | | 扭矩高 | 超上限 | 点位 NG | 工程师复打 | | 扭矩低 | 低于下限 | 点位 NG | 工程师复打或跳过 | | 视觉识别失败 | 下一次拍照失败 | 该点位重试 3 次后产品中止 | 复位重新生产 | > 注入均为一次性,作用于下一颗螺丝/下一次拍照,之后自动恢复正常。 --- ## 四、演示风险与应对 | 风险 | 应对 | |------|------| | 条码重复被拦截 | 这是功能不是故障——顺势讲解"重复条码防混料拦截" | | 忘记复位就扫新条码 | 先点「复位」再扫码;中止态必须复位 | | 注入后没反应 | 注入只影响"下一颗",确认当时正处于生产中;且操作员无注入权限,需 admin/engineer | | 复打按钮不可用 | 复打/跳过仅产品"完成"态可用,且需工程师权限;中止态一律禁止 | | 数据太乱 | 关闭程序删除输出目录下 `Data/screwstation.db`,重启即恢复种子数据 | --- ## 五、收尾话术(30 秒) > "总结三个卖点:一,仿真先行——零硬件即可完整演示与培训,接口化设计后期直接替换真实 PLC/Atlas Copco 电批/海康相机驱动;二,品质闭环——NG 处置、复打、跳过全部权限管控 + 全程留痕;三,数据可追溯——条码级螺丝档案与曲线,SQLite 落库,CSV 一键导出。谢谢!"