MES 对接¶
工厂里的 MES 系统要知道每一件产品检测的结果。这一页讲检测软件怎么把结果交出去、 断网或 MES 不回话时软件会怎么表现、以及每件产品的 SN 码从哪来。
先搞清分工¶
检测软件不直接连 MES 服务器。它只负责把每一件的结果整理成一个数据包,交给同一台工控机上另一个独立的程序——我们称它"MES 上传程序"。那个程序才知道 MES 的地址、账号和规程编号,由它去登录、去写库。
所以:
- MES 的地址、账号、密码、规程 ID 不在检测软件里配,在 MES 上传程序那边配。检测软件的菜单里没有"MES 设置"这一项。
- 两个程序之间走本机回环网络,不占外部网口。MES 上传程序开着并且能正常响应,检测软件才认为"MES 在线"。
- 每个客户的 MES 接口字段不一样,是在打包时按项目定制的,现场改不了。要改字段请联系售后。
老版本里有、现在没有的
2.0 时代的这几样已经取消:软件目录下的 MES 配置文件、菜单里的"MES 设置"、界面上手动切换"在线 / 离线"、以及"检测前先问 MES 这件能不能做"的卡控询问。现在只有"检测完上报结果"这一个方向,过站与否由 MES 通过上报的回复来决定(见下面的 QC)。
界面上和 MES 有关的东西¶
| 位置 | 是什么 |
|---|---|
| 运行端顶部的在线 / 离线图标 | 检测软件和 MES 上传程序之间通不通。每 1.5 秒刷新一次 |
| 运行端的 MES 信息标签 | 显示 MES 每次回过来的那句话。底色灰 = 成功,红 = 失败 |
| 运行端的大结果标签 | MES 上报失败时会显示"MES上传失败"并播 NG 提示音 |
| 运行端的 MES 未上传告警条 | 一条大号红底白字的横幅,出现在大结果标签正上方。只有真的发生过上传失败才会出现,平时不占版面 |

三个能调的开关¶
NG 是否上传 MES(运行端)¶
运行端"设置"菜单 →"打开系统设置",找到"NG是否上传MES"。
- 不勾(默认):检测不通过的件不往 MES 报,MES 信息标签会显示"设置了NG时不上传MES"。
- 勾上:不管 OK 还是 NG 都报。
按客户的 MES 规则来定。多数产线只报 OK 件,NG 件走返修流程另行处理。
启用 MES 上传(运行端 设置 → 系统设置 → 通用设置)¶
运行端"设置"菜单 →"打开系统设置"→"通用设置"页,找到"启用 MES 上传"。默认勾上,老现场行为不变。
- 勾上:按上面的流程往 MES 报结果;下面的"NG是否上传MES"这时才可用。
- 不勾:不写 MES、不留痕、不记错误、不弹告警条;信息区每件只打一行"MES 未启用(系统设置), 不写入Mes系统"。就算 MES 上传程序还连着,汇总结果里也不会出现"写入Mes结果"那一行。
不接 MES 的现场用这个开关,不要只去藏告警条。
MES 未上传告警条 显示 / 隐藏(调试端)¶
顶部"设置"→"工程设置"(在运行页、调试页都能开),找到"MES 未上传告警条",选"显示"或"隐藏"。这是跟着工程走的设置。
不用 MES 的现场去系统设置把"启用 MES 上传"勾掉;"隐藏"只管红条:隐藏的只是那条横幅,本地留痕和计数照常做。
上报失败时软件怎么表现¶
分三档,行为完全不同,现场要能区分:
| 情况 | 软件的表现 | 要做什么 |
|---|---|---|
| 连不上 MES 上传程序,或者数据没送出去 | 红色告警条亮起,写明累计多少件没上传和留痕文件路径;信息区打红字;检测继续跑,不停机 | 恢复连接后把留痕文件里的数据补传给 MES |
| MES 收到了,判为 NG 或 RE(重复过站) | 大结果标签显示"MES上传失败",播 NG 音;这一件不计入直通率 | 按 MES 的结论处理这件产品 |
| MES 收到了,判为 QC(品质管控) | 停机,弹出 MES 返回的原因;同时良率统计被锁定 | 品质人员处理完之后,由超级管理员在运行端点"清空良率检测结果"解锁 |
断线不会停线
这是刻意设计的:MES 那一侧出任何问题都不能把产线停下来。所以"MES 断了"这件事只会以告警条的形式提示,产品照常检测、照常出结果。这意味着漏报是有可能发生的,现场必须留人看那条告警条。
没上传的数据留在哪¶
每一件没能上传的产品,软件都会把完整数据追加写到本机的一个文件里:
~/.labeldetect/mes_pending/mes_pending_年月日.jsonl
(~ 是当前 Windows 用户的主目录,例如 C:\Users\Administrator。)
按天分文件,每行一件,内容是这件产品的 SN、结果、缺陷描述、时间等。
软件不会自动补传
这个文件只保证数据不丢。补传要人工做,或者用售后提供的补传工具。连接恢复时软件会在信息区再提醒一次累计多少件需要补传。
告警条在两种情况下消失:MES 恢复连接时,或者下一轮运行开始时(已经落盘的留痕文件不会被动)。
SN 码从哪来¶
上报给 MES 的每一件都要有 SN。SN 有三个来源,取哪个由设置决定:
| 设置 | SN 来自 |
|---|---|
| 检测 SN 开着 + 没用外接扫码枪 | 工程里被设成"SN"的那个检测项识别出来的内容 |
| 检测 SN 开着 + 用了外接扫码枪 | 操作员用扫码枪扫到的内容 |
| 检测 SN 关掉 | 一个时间戳,格式 20260914_102341 |
开关在哪¶
顶部"设置"→"工程设置"(在运行页、调试页都能开),把"检测SN:"设成 enable 或 disable。
怎么指定哪个检测项出 SN¶
- 进调试端,进入编辑模式,选中要用的码检测或条码字符对检测项。
- 点右键,选"设置为SN码"。
- 保存工程。
一个工程里只能有一个 SN 检测项,设了新的旧的自动取消。运行中不能改,会提示"正在运行中, 请先关闭运行界面的运行状态"。
开了 SN 检查却没指定检测项,会出问题
保存工程时会提示"未设置SN检测项!";真跑起来会直接报错停机。另外,开了 SN 检查时,SN 读不出来(空)这一件就直接判 NG,即使其它检测项全部通过。条码印得糊、框画得太紧导致读不出来,表现就是"明明没缺陷却一直 NG",这时先看信息区有没有"当前SN条码为空"。
自定义比对:把某个识别结果也带上去¶
除了 SN,还可以把别的检测项的识别结果一起报给 MES:
- 在调试端编辑模式下选中检测项,点右键选"设为自定义变量",给它起个名字。
- 能这么挂的检测项有:字符识别、码检测、条码字符对、可变区域、卡尺。
- 起名时不能用
SN、总结果、检测时间这三个保留名。
挂上之后,这些变量会随每一件的数据一起上报给 MES(在数据包里单独成一组),也可以在通讯输出里引用,见字符串协议(TCP / 串口)。
想看当前有哪些自定义变量、值是多少,在顶部"菜单"→"查看自定义变量"里看(要先登录)。
常见问题¶
一直显示离线。 MES 上传程序没启动,或者它崩了。先确认那个程序在任务栏 / 任务管理器里还在。它和检测软件必须跑在同一台工控机上。
告警条一直亮着,数字越涨越大。 这些件的数据都没进 MES。先恢复连接(见上一条),再把留痕文件交给负责补传的人。数字会在下一轮运行开始时清零,但数字清零不代表数据补上了。
一上报就停机,提示一串 MES 返回的话。 MES 判了 QC。这是 MES 主动要求停线,按 MES 提示的原因处理;处理完让超级管理员点"清空良率检测结果"解锁。
结果标签一直显示"MES上传失败",但产品看着没问题。 MES 那边把这件判成了 NG 或 RE(重复过站)。RE 常见于同一件产品被重复检测。这类件不计入直通率。
NG 的件没上报。 运行端系统设置里"NG是否上传MES"没勾。