工厂的MES网页每天下班前都要翻一遍,手动抄数据填Excel,抄完都过了饭点。
" "6个车间,每个车间200多条工单。你要做的是:打开浏览器 → 输入网址 → 登录MES → 点进生产日报 → 选中数据区域 → 复制 → 打开Excel → 粘贴 → 保存 → 再切到下一个车间。
" "一个车间10分钟,6个车间就是1小时。每天1小时,一个月20小时,相当于两天半的工作日全花在复制粘贴上。
" "更离谱的是,MES网页的表格不能导出,不能下载,不能API对接。你能做的只有肉眼盯着屏幕,手在键盘上重复。
" "后来我直接用影刀RPA搭了一个MES数据采集机器人,每天早上8点自动执行,6个车间数据8分钟抓完,写入Excel直接发邮箱。
" "今天把搭建过程拆成6步,你跟着做,今天下午就能跑起来。
" '简单来说,就是代替你每天登录MES、翻网页、抄数据。
" "流程跑通后,每天早上8点自动执行:
" "全程不需要你动手,不需要会Python,不需要找IT对接API。
" "开始前,先确认MES系统的可访问性:
" "http://192.168.1.100/mes(内网地址)MES生产日报.xlsx,提前建好表头Excel表头建议:
" '打开影刀RPA,新建空白流程。
" '从左侧"网页"组件库,拖入"打开网页"组件:
' "http://192.168.1.100/mes(替换成你的MES地址)拖入后,在组件后加一个"等待"组件,设置3秒,确保登录页完全加载。
' "登录页通常有账号框、密码框、登录按钮。影刀可以自动识别元素。
" '拖入"输入文本"组件:
' "你的账号再拖一个"输入文本",定位密码框,输入密码。
' '再拖一个"点击元素",定位"登录"按钮。
' "加等待5秒,等登录完成进入系统首页。
" "安全提醒:账号密码直接写在流程里不安全。建议:
" "登录后,页面通常是系统首页或仪表盘。你需要找到生产日报的入口。
" '拖入"点击元素",定位左侧菜单中的"生产日报"或"日报查询"。
' "加等待3秒,等页面加载。
" '如果MES系统有弹窗提示(如"今日数据已更新"),加一个"判断元素存在"组件:如果弹窗出现,点击关闭按钮,再继续。
' "这是核心步骤。MES的生产日报通常是一个HTML表格,结构比较固定。
" '先观察表格结构:打开Chrome开发者工具(F12),找到表格的class或id。通常是 <table class="data-table"> 或者 <table id="productionDaily">。
影刀有两种抓取方式:
" "方式A:按行抓取(推荐)
" '拖入"获取相似元素列表"组件:
' "tr 元素行列表然后拖入"ForEach项"循环:
' "行列表当前行循环内部,拖入"获取子元素文本"组件,依次提取每个单元格:
' "当前行.td:nth-child(1)当前行.td:nth-child(2)当前行.td:nth-child(3) → 用"转换为数字"组件处理当前行.td:nth-child(4) → 同样转数字当前行.td:nth-child(5) → 用"字符串替换"去掉"%",再转数字当前行.td:nth-child(6)当前行.td:nth-child(7) → 加"判断非空",空的话写"无异常"把提取的7个字段组装成一个数据行,写入Excel。
" "方式B:按表格整体抓取
" '如果MES表格结构特别规范,也可以直接用"获取表格数据"组件,一次性抓取整个表格,输出为数据表对象,再按行写入Excel。这种方式更简单,但如果表格有合并单元格或复杂样式,可能解析出错。
' "一个车间可能有多页数据。在流程中加入"判断元素存在":
' "下一页按钮 存在车间切换逻辑:
" '拖入"点击元素",定位顶部车间下拉菜单(如 select#workshop)。
拖入"选择下拉选项"组件:
' "["A车间","B车间","C车间","D车间","E车间","F车间"]每次切换车间后,加3秒等待,等页面刷新,然后回到第4步重新抓取。
" '如果MES的车间是左侧树形菜单而非下拉框,用"ForEach项"循环点击每个车间节点。
' "数据抓取完成后,写入Excel。
" '拖入"打开Excel工作簿":
' "D:\\日报数据\\MES生产日报.xlsx日报簿每个车间对应一个Sheet。拖入"写入数据表"组件:
' "日报簿车间A(循环变量)A2当前车间数据保存并关闭工作簿。
" '最后加一个"发送邮件"组件,把日报附件发给生产主管(SMTP设置同前一篇)。
' '问题1:元素定位失败,提示"未找到元素"
' "原因:MES网页结构变化,或者表格是动态加载的(JavaScript渲染)。
" "解法:
" "问题2:登录后页面跳转慢,流程卡在登录页
" '解法:在点击登录后,用"等待元素出现"判断"生产日报"菜单是否出现,出现后再继续,而不是固定等几秒。
' '问题3:良品率抓取后变成"99.5"而不是0.995
' '解法:加一个"字符串替换"组件,把"%"替换为空,再用"除以100"组件转成小数,再写入Excel。
' "问题4:异常记录字段为空时,Excel写入报错
" '解法:用"判断非空"组件,空的话赋默认值"无异常",再写入。
1. 增量采集而非全量
" '每天全量抓取200条太慢。MES通常支持按日期筛选。在流程开头加"输入文本",在日期筛选框填入当天日期,只抓当天的数据。
' "2. 数据校验
" '写入Excel前,加一个"判断":如果良品率 > 100% 或 < 0%,标记为异常数据,单独存到"异常数据"Sheet,方便人工复核。
' "3. 多车间并行
" "影刀RPA支持多流程并行。如果6个车间独立采集,可以拆成6个子流程同时跑,总时间从8分钟降到2分钟。
" "4. 异常预警
" '在流程中加入判断:如果某个车间的良品率低于90%,或者异常记录中出现"停机",自动发送微信/钉钉告警。
' "这个系列三篇文章各有侧重:
" '| 文章 | 场景 | 数据源 | 核心难点 |
|---|---|---|---|
| 电商竞品采集 | 公开网页 | 电商平台商品列表 | 翻页循环 + 反爬 |
| Excel自动汇总 | 本地文件 | 多个Excel文件 | 数据清洗 + 公式写入 |
| MES生产日报 | 内网系统 | MES网页表格 | 元素定位 + 动态加载 |
影刀RPA做MES数据采集的核心逻辑是:打开网页 → 登录系统 → 定位表格 → 按行提取 → 翻页/切换 → 写入Excel → 邮件推送。
" "和Excel汇总那篇相比,这篇多了一个网页交互层:登录、导航、元素定位、等待渲染。这也是大多数企业内网系统的共性——有网页就能抓,不需要API接口。
" "搭建一次,每天省1小时。一个月省20小时。省下来的时间,用来做良品率分析、异常趋势预警、产能预测——这才是MES数据真正的价值。
" "让机器人做重复的事,你去做思考的事。
"作者声明:作品含AI生成内容