文章目录
从0到1:PCB制前工程CAM自动化系统的架构设计与多基地落地实践
作者:一阵寒风 | 17年PCB制前工程CAM自动化系统架构经验
标签:#CAM自动化#InCAMPro二次开发#Genesis#多基地标准化#工业软件架构
一、为什么要自己搭一套CAM自动化系统?
在PCB行业,大多数工厂的CAM自动化停留在"脚本级":
- 这里写一个涨缩补偿脚本;
- 那里写一个自动拼版脚本;
- 工程师离职,脚本失传;
- 新基地投产,系统重新搭建。
当产品走向高多层、HDI、AI服务器板时,这种"脚本堆砌"模式会遇到三个致命问题:
- 不可维护:脚本之间无关联,改一处崩一片;
- 不可复制:一个基地跑得好,另一个基地跑不通;
- 不可扩展:新工艺出现,系统无法快速适配。
我在过去17年里,先后主导多个生产基地的CAM系统从0搭建与重构,最终沉淀出一套"可复用、可维护、可扩展的CAM自动化系统架构"。
二、系统总体架构(核心)
本系统采用分层解耦、配置驱动、中心调度的设计思想,整体由四层构成,各层之间通过标准接口通信,避免模块间强耦合。
2.1 基础设施层
底层基于 Linux 服务器集群构建,运行环境统一为 Rocky Linux / CentOS 稳定分支,搭载 InCAMPro/Genesis 原生 CAM 内核。
关于版本管理,我用了最朴素但最有效的办法:每日全量备份。
- 每天凌晨,系统自动将脚本、配置、符号库打包,按
YYYYMMDD_序号格式存档; - 关键版本(如新基地上线、重大工艺变更)单独标记为
RELEASE_前缀; - 备份文件同时存放在本地服务器与异地灾备节点。
工业现场容不得半点闪失,当半夜系统崩溃时,能5分钟恢复生产的,永远是昨天那份完整的备份,而不是复杂的版本回滚流程。
2.2 核心引擎层(CAMGuide 调度平台)
这是整个系统的中枢模块,承担"大脑"角色。CAMGuide 并不直接处理 CAM 图形逻辑,而是负责任务调度、流程编排与异常拦截:
- 从 MES/ERP 接收生产订单,按预设规则自动分发至对应 CAM 处理节点;
- 内置标准 CAM 作业流程(Input → DFM → Layup → Output),流程节点可配置、可插拔;
- 在任务执行前进行前置校验,如层别完整性、孔径匹配性、涨缩参数合法性等,异常任务自动挂起并生成告警;
- 实时采集各节点运行状态,为后续运维与优化提供数据支撑。
2.3 业务逻辑层(原子能力封装)
为避免传统脚本开发中"重复造轮子、维护困难"的问题,系统将所有 CAM 操作抽象为不可再分的原子函数,例如线宽补偿、钻孔层生成、环宽检查、字符镜像等。
上层应用仅通过调用原子函数完成业务需求,不直接操作 InCAMPro底层命令。
为了不让脚本变成"屎山",我立了一条铁律:
每个脚本文件头部,必须写明:功能描述、创建日期、修改记录。
函数命名必须语义化,拒绝a1()、test()这种鬼东西。
这套"人肉规范"配合每日备份,效果不输专业的版本管理工具。
2.4 应用层
在原子能力之上,组合形成面向业务的自动化模块,主要包括:
- 自动拼版模块:支持多拼、阴阳拼、Step & Repeat 等复杂拼版逻辑;
- 涨缩自动计算模块:基于板材类型、层别结构与历史数据,自动推算涨缩系数;
- DFM 自动评审模块:内置可配置的工艺规则库,对线宽、间距、环宽、钻孔公差等进行批量检查;
- 多基地同步模块:通过单向同步机制,将集团标准库、脚本与配置下发至各生产基地,实现标准化复制。
2.5 架构设计的核心原则
- 稳定性优先:所有设计均以 7×24 小时工业级稳定运行为前提,宁可牺牲部分灵活性,也不引入高风险逻辑。
- 可维护性优先:通过分层解耦与原子封装,将系统复杂度控制在可接受范围内,确保后续人员可接手、可优化。
- 标准化优先:系统从设计之初就面向多基地复制,所有差异通过配置文件管理,核心逻辑保持唯一。
三、多基地标准化落地的关键设计
在肇庆、益阳、泰国等基地复制这套系统时,坚持三个原则:
3.1 配置与代码分离
- 各基地差异(设备精度、工艺偏好)写入配置文件;
- 核心代码库完全一致;
- 新基地上线只需修改配置,无需改动代码。
3.2 符号库(Symbol Library)三级管理
| 层级 | 说明 |
|---|---|
global_symbols/ | 集团统一标准 |
site_symbols/ | 基地特有符号 |
job_symbols/ | 订单临时符号 |
既保证集团标准统一,又保留基地灵活性。
3.3 网络与权限隔离
- 各基地 CAM 服务器独立;
- 通过单向同步机制推送标准库与脚本;
- 避免"一个基地误操作,全网瘫痪"。
四、落地效果(量化成果)
以某新厂投产为例:
| 指标 | 改造前 | 改造后 |
|---|---|---|
| 系统搭建周期 | — | 15天 |
| 工程资料处理效率 | 基准 | 提升 35% |
| 系统连续稳定运行 | — | 12个月无重大故障 |
| CAM资料制作人员 | 基准 | 减少 40% |
| 客户资料一次性通过率 | 78% | 95% |
五、踩过的坑(工程经验)
工业现场最怕"不知道为什么错了",日志比功能更重要。
5.1 不要迷信"全自动"
自动化必须保留人工干预入口,如涨缩计算由系统给建议值,资深工程师最终确认。完全闭环的自动化在高复杂度PCB产品上风险极高。
5.2 日志比功能更重要
约30%开发时间投入日志系统,出问题可快速定位。一个优秀的日志系统,是工业软件最重要的"黑匣子"。
5.3 备份不是万能的,但没有备份是万万不能的
曾因一次脚本更新导致某类HDI板资料异常,依靠前一天的备份,30分钟内恢复生产。
教训:备份不仅要存,还要定期演练恢复流程。否则备份只是心理安慰。
六、写给同行的话
CAM自动化不是"写几个脚本"那么简单,也不是非要上Git、Docker、K8s才叫架构。
在PCB这种重工艺、重稳定、轻互联网的行业,能连续跑一年不出事,能快速恢复生产,能让新人接得住手——这才是真本事。
我这套系统,没用Git,靠的是每日备份、人肉规范和一颗对生产线敬畏的心。
17年摸爬滚打下来,我发现:在工业现场,稳定,就是最高的技术。
附录:技术栈清单
| 类别 | 技术选型 |
|---|---|
| CAM软件 | InCAMPro / Genesis2000 |
| 开发语言 | Python(主)、Shell(辅) |
| Web框架 | Flask(内部管理界面) |
| 数据库 | MySQL / SQLite(轻量级配置管理) |
| 部署工具 | Rsync(同步) + Cron(定时备份) |
| 运行环境 | Rocky Linux / CentOS |
如果这篇分享对你有启发,欢迎点赞、收藏、评论。不欢迎喷子,只欢迎同样在一线摸爬滚打的兄弟交流。
6730

被折叠的 条评论
为什么被折叠?



