← 所有文章
MES

MES 是车间里实际发生了什么的唯一记录系统

📅 · 阅读时长 4 分钟 · Meta Smart Factory 团队

大多数关于制造执行系统(MES)的定义都是准确的,也都是没法用的。它们列出十几项功能,读者看完仍然说不出下周一自己那个工作中心会有什么不同。这一页走另一条路:在一个零件被做出来的那一刻,MES 到底对什么负责。它是车间里实际发生了什么的唯一记录系统,而这份记录如果是错的,它上面的一切都不可能是对的。

MES 做什么:派工、执行数据采集、报工与追溯

先说派工,它常被误当成打印。计划下达一张订单和一条工艺路线;MES 决定哪台设备跑哪道工序、以什么顺序放行,以及到底允不允许开工。提前几天、把工装、人员和换型族一起算进去得到的全厂顺序是另一件事,属于高级计划与排程(APS),不管它是以 MES 模块的形式出现,还是一套单独的系统。一份按无限产能做出来、直接丢给车间的计划,到班次过半就是虚构。

放行有前提条件,而对每一条都要问一句:系统是自己知道,还是只是被告知。上道工序已经签核、操作员的资质还在有效期内,这两条 MES 从自己的记录里就知道。正确的批次已经齐套到位,需要一次扫描,或者一个接口连到持有这份预留的系统。装的是正确的刀具,需要刀具管理、刀柄上的芯片或者对刀仪接口——要么就是操作员确认一下,那么这道检查的可靠程度恰好等于那次确认的可靠程度。背后有数据来源的前提条件是一道控制;靠一个勾选框撑着的,是一条带时间戳的记录。

接着是执行:换型时间和加工时间分开记,两者又都与人员工时分开,良品数、带原因的报废、有去向的返工、带原因和时长的停机。质量属于同一条流,在工序上定义、由做这道工序的人执行,其结果可以拦住这个零件不让它往下走。最终检验会在四道工序之后发现同一个缺陷,而那四道工序的钱您已经付过了。

报工把闭环接回业务系统:物料过账到订单上,人员工时过账到工序上,这两笔过账就成了实际成本和实际库存。追溯垫在这一切下面,OEE 则是顺带掉出来的,它是对执行本来就已经产生的事件做的算术,而不是另一套系统。

哪些事归 MES,哪些事归 ERP、SCADA 或 PLC

ISA-95(国际上以 IEC 62264 发布)在这里有用,不是因为它那张分层图,而是因为它的对象模型——生产计划、生产绩效、物料批次、人员、设备——因为正是这些东西要在车间和业务之间来回穿行,这就使它们成了一份接口规格说明的检查清单。

最难划的是最下面那条线。安全功能——防护门联锁、安全光幕、双手操作装置、区域扫描仪——属于硬接线安全回路或安全控制器,其性能等级(PL)或 SIL 由按 ISO 13849-1 或 IEC 62061 做的风险评估确定。网络的确定性再高,也不会让这一层之上的软件在法律上成为安全功能的容身之处。值得争论的是工艺联锁:没装正确刀具不许开工,参数窗口之外不许运行。那里,物理上的阻止归 PLC——一条必须在几十毫秒内动作的规则,不可能活在一个数据库和一台交换机后面——而后果归 MES:它不放行下一道工序,并把这个批次扣住。

这条线之上,分工是熟悉的:可视化、报警和上位设定值给 SCADA;订单身份、工艺路线、谱系、质量处置和人员工时给 MES;需求、采购、成本核算和对客户的承诺给 ERP。两个问题就能定下一个边界案例:这个决策必须多快做出来,以及两年之后会不会有人需要证明它当时确实发生过。

在设备接口这一层,实时到底是什么意思

这里的实时不是控制回路的确定性。它的意思是,记录落下来的时间离事件足够近,近到造成这件事的人还站在旁边——读取节奏一秒或更快,而怎么读比读得多快更重要。

读累计计数器、取差值,不要去数边沿。比采样间隔还短的脉冲,对轮询读取来说是不存在的;订阅只有在队列深度和采样速率为此专门设置过的情况下才救得了您,而默认情况下并没有:一个队列深度为 1 的监视项(monitored item)只保留最新一次跳变,其余全部丢弃。只增不减的计数器对这件事免疫,代价只有分辨率。PLC 计数器常常是会翻转的 16 位字,所以翻转必须显式处理,而且只要设备断电重启或复位,这个值就得重新对齐基准。

设备状态几乎从来不是一个位。单独一个运行信号通常是驱动使能,主轴空转等操作员的时候它照样是真;可用的判定要把循环进行中、驱动使能,以及计数器在某个时间窗内有没有走动这三件事组合起来。这个时间窗设定了检出阈值:比它短的停机在停机里是看不见的,然后会以性能损失的形式、不明不白地回来。事件必须由同一个时钟打时间戳,边缘侧必须缓存,这样交换机重启留下的是一段空白,而不是一小时的幽灵停机。

停机原因代码:设备信号说不出来的那部分

接口知道设备停了、停了多久。它不知道为什么停,不知道刚刚计数进去的那个零件会在下一个工位被判报废,也不知道操作员等的是行车而不是物料。

填这个空缺的是人,而这一刻怎么设计,决定了它上面的一切。停机原因代码是常用的手段,也是常见的失败。给得太多,操作员每次都选第一个看着像的,从那一刻起,列表的排列顺序就替您写好了帕累托图。给得太少,什么都变成“其他”。分类必须在班次之内、线索还在的时候完成,而且必须有某种东西作为回报返回给操作员。

无纸化车间与电子批记录

无纸化不等于把同样的表单做成 PDF 放到屏幕上。它的意思是,工位上的那份文件是这张订单对应的现行有效版本,由系统挑选,因此这个工位能拿到的版本只可能是当前版本——并且这份记录是在干活的过程中生成的,而不是事后誊抄上去的,同时性正是在誊抄那一步丢掉的,可信度也跟着一起丢。任何文档系统都管不住的东西是纸。上周二打印出来、搁在抽屉里的图纸,按定义就是不受控的,而抽屉输给系统的唯一条件,是系统查起来更快。

在受监管的生产里,这份记录就是电子批记录,产品的法定履历。监管框架——FDA 的 21 CFR Part 11(电子记录与电子签名)以及欧盟 GMP 附录 11——把平常的软件问题变成了设计要求:不可被修改的审计追踪、含义明确的签名、可归属到具体某个人、并且在事情发生的当时记录下来。真正省时间的例外审核,只有在系统于录入环节就强制了限值的前提下才成立,因为只有那样,一个没有被标记出来的批次才是真的不需要再多看一眼。

追溯与谱系是设计要求,不是一项功能

谱系(genealogy)有两个方向,两个都得能跑通:反向,从一件成品回到贡献过它的每一个物料批次、每一台设备、每一把刀具、每一名操作员、每一个参数和每一次检验;正向,从一个可疑的来料批次出发,找到它进入过的每一件产品,以及这些产品发给了哪些客户。真正会被用到的是正向那一次,在供应商打电话来的那个下午,而它通常是更弱的那一个。

粒度是那个设计决策,它由您在消耗发生的那一刻采集了什么来定死。单件序列号、一托盘一批、一个班次一批,或者一个时间窗:每一种都给召回范围定了一个下限,因为围堵的代价就是您排除不掉的那个集合的大小。从班次级身份改成托盘级身份不是报表口径的变化,而是操作员要扫什么的变化。

汇合点带来的是一个过渡期,而不是一刀切。生产途中往料仓里补料,之后放出来的就是混合料;旧批次还会出现多久,取决于料仓容积、里面原有的余料、通过量和流型,因为在漏斗流里,旧料会沿着仓壁往下渗很久很久。所以要把这次补料连同它的批次号记下来,把从这一刻起到旧批次可证明已经放空为止的所有产出同时挂上两个批次,并且把关于何时放空的那个假设写下来。混合机根本不是这个问题:它是一个批,有若干个投入批次,是多对一的谱系,在模型里应当作为一个带多批次投入清单的批来处理。这些事都没法在已经发货的产品上事后补做,所以要在上线之前测:从发货口拉一件产品下来,要求在一小时之内给出它完整的反向谱系。

怎样诚实地算 OEE,以及一个 OEE 数字是怎么变成谎话的

设备综合效率(OEE)是可用率乘以性能再乘以合格率,这三项各有一套标准的注水办法,而定义和时间基准必须在第一个数字被拿出来看之前就写成白纸黑字。

时间基准是最大的那根杠杆。OEE 按惯例是对着计划生产时间算的,所以您每把一小时挪出计划生产时间——把它宣布成计划性损失而不是停机——这一小时就离开了分母;而您宣布为非计划的那些小时留在分母里,它们恰恰是把可用率往下拽的东西。把试制和无人班次划到时间基准之外,数字立刻变得好看,而设备一周里大半时间都闲着。换型完全不是什么灰色地带:在六大损失里,装夹与调整就在计划生产时间之内,本来就应该让您损失可用率,把它剔出去因此成了给 OEE 注水最常见的做法。对着日历时间算的 TEEP(设备综合生产率)应该摆在它旁边:两者之间的差距,就是您已经拥有、却没有使用的产能。

性能是被理想节拍时间扭曲的。经典定义和 ISO 22400 取的是理论节拍或设计节拍;多数工厂取的是工艺路线上的那个值,而那是多年前为成本核算定下来的标准,里面预留了宽放。如果标准写的是 55 秒,而设备被证明过的最快是 40 秒,那么报出来的性能大约高了 37%——而且由于多数系统会把性能截顶在 100%,送到屏幕上的其实是一个被截断的错误,而不是一个好成绩。在公布任何性能数字之前,先从事件数据里把能够持续跑出来的最快节拍捞出来,跟工艺路线上的标准比一比。

合格率是被“在产生返工的那道工序上把返工件算成良品”这件事扭曲的,而一次合格率(FPY)本该把这次失手显示出来。可用率则被上面说的检出阈值扭曲,还被“停机确实分了类,但大部分归进了其他”扭曲。

还剩两个汇总上的错误。把 OEE 在多台设备之间取平均,会把一台受约束的设备和一台按设计本来就该闲着的设备混在一起,于是全厂那个数字的涨落,没人能针对它做任何事。而在一台已经具备保护性产能的非约束设备上把 OEE 拉高,买到的是瓶颈前面的在制品,不是产出——这条规则有三个常见例外:保护性产能不足的非约束会把约束饿着,那损失的是产出而不是变成在制品;瓶颈会随产品组合移动,这个月的非约束就是下个季度的约束;还有共用的大设备,热处理、喷涂或者那副唯一的夹具,它是间歇性的约束。可用率到处都要测,OEE 只在损失能转化成产出的地方去追,产品组合一变就重新识别约束。

MES 与 ERP 集成真正要做的是什么

连接器是小的那部分。真正的工作是逐个字段决定归属,并且把它写下来。物料主数据、物料清单(BOM)、工艺路线、工作中心、客户订单、生产订单:每一项都有一个系统是权威方,另一个是消费方,并且约定好两边不一致时的行为。跳过这一步的项目会在第一个月里发现它,当有人在那个并不拥有这份 BOM 的系统里把它改了的时候。

接下来是报工粒度。按工序、按订单、按小时还是按件,您是在拿 ERP 的事务量去换库存数字可以有多旧。倒冲与扫码消耗是同一笔账在物料这一侧的版本:倒冲在报工时按 BOM 数量过账,快,而且错的量等于您的收率波动加上每一次替代料、每一次没人报的报废;扫码发料过账的则是实际被拿走的东西。可追溯的和贵的物料去扫,紧固件用倒冲。

然后是不好看的那部分工程。每一条消息都需要一个幂等键,因为接口会重试,而一笔重复过账的收货,会在几周之后的一次盘点里冒出来。必须有人能看到失败消息队列,并且不用找开发就能把一条消息重新处理;计量单位需要明确的换算关系和约定好的舍入规则。这个接口在两边还都需要一个指定的负责人,因为没有主人的集成是悄悄退化的:加了一个字段,某个映射不再匹配,错误堆在一个没人看的队列里。

MES 项目为什么会失败,以及什么能提前看出来

主数据是最常见的原因,也是最少被谈到的。工艺路线描述的是多年没人跑过的顺序,工作中心建模的粒度不对,标准工时从来没有重新测过,同一种物料有三种写法。MES 不制造这些问题,它只是在第一天就把它们显示出来,然后就因为它揭出来的这摊事被怪罪。上线之前实测一次真实生产和一次真实换型,并且要有重写工艺路线的心理准备。

第二个是操作员的接受度,原因就是上面讲录入设计那一段说的;对策是自己去掐那些报工步骤的时间,在一次真实换型里,和将来要执行它们的那位操作员一起。第三个是没人负责的接口。第四个是先给例外建模的范围划分,在一个罕见的批次拆分上耗掉几个月,而标准流程还没做完。第五个是在最忙的季度、在约束工序上上线。最后一个是定义上的:两个系统对同一个班次报出不同的数字,因为没人约定过计划停机算不算,于是会议变成了关于这个数字的争论,而不是关于数字背后那部分损失的讨论。

怎样做一次真能问出东西来的 MES 选型

脚本化的演示展示的是顺利路径,而顺利路径每一套 MES 软件都处理得了。评估的意思是把难看的路径逼到台面上来,用您自己的数据。带上四个案例:一张做到一半要换设备的订单;一道在这个班次开工、由另一个人在下个班次完成的工序;一个批次被拆到两张订单上;以及一次事后订正——两个小时前有人选错了停机原因,您想知道谁有权改、审计追踪会留下什么,以及这次订正能不能传到已经报出去的数字里。

要求看谱系在他们的数据上跑一遍,然后问,要在您的数据上跑起来需要做什么。问设备接口在 PLC 于订单中途断电重启时会怎么处理。要求跟将来真正做您这套集成的那位工程师谈,而不是客户经理。去参观参考客户的时候,把时间花在操作员身上,问他们平时都在绕开什么。商务上:第二个工厂要多少钱,升级要多少钱,API 给到什么程度——您工艺里那些不常见的部分是要在它上面开发出来的,而不是买来的——以及您能不能把自己的原始事件数据以可用的形式导出来。最后这一条,才真正检验出这份记录到底是不是您的。

Meta Smart Factory 的 MES 模块处在什么位置

Meta Smart Factory 的 MES 模块覆盖上面这些内容:带前提条件的派工与放行、工位上的执行数据采集、带原因的停机与报废、人员工时与物料的报工过账、绑定在工序上的质量检验、谱系,以及从同一条事件流(而不是另起一条)推导出来的 OEE。

在设备这一侧,它原生读取西门子的 S7comm、罗克韦尔的 AB-ETH、Logix 与 DF1、施耐德的 UMAS、倍福的 ADS、三菱的 MC 协议和欧姆龙的 FINS;其余场合讲 OPC UA、Modbus TCP 与 RTU、EtherNet/IP 和 MQTT,也包括接入已有的 OPC UA 或 DA 服务器,用在没人愿意往网络上再加一台设备的地方。没有值得读取的控制器的设备,加装 I/O 模块,接到本来就已经存在的开关量信号上——运行触点、循环输出、报警继电器——它们能按那套接线的分辨率给出设备状态和产量计数,并且由于上面讲过的原因,永远给不出停机的原因。

它与质量、维护、WMS 和计算机视觉模块共用一套数据模型,也和 ERP 集成层共用。有限产能的排序在 APS 模块里,位于上文描述的那条边界上,而不是在执行里面;对于 ERP 不跑 MRP 的工厂,MRP 运算也在这里。

这些都不会拿走真正难的那些部分,而这一页讲的基本上就是那些部分:把数字的含义谈定,把从来就没对过的工艺路线改对,选一个您能过得下去的追溯粒度,以及设计一个操作员不用别人催第二遍就会去做的录入步骤。

与我们的专家交流探讨