zoukankan      html  css  js  c++  java
  • MES中的松耦合设计一例

      

    在不少领域,MES深入地参与现场作业,如将防错、配方等指令下发给工位和设备PLC,以指导现场作业。

    通常这种MES与设备PLC的交互是实时通过OPC进行的,并且伴随不少的握手互锁逻辑。

    但是在一些工厂,业务部门出于对IT系统的不信任,明确要求在MES服务器宕机的情况下不影响现场作业,从而实现所谓的松耦合设计。

    以发动机拧紧防错为例,通常拧紧防错的方法是在MES里配置的,比如将机型在各工位的防错方法分配到拧紧枪号,并定义方向、次数、套筒号、扭矩等参数,但是拧紧的实现操作是由工位PLC配合拧紧枪控制器实现的。

    因此对于工位PLC来说,有两种执行防错的方式:

    方式一:每次当发动机到达拧紧工位时,工位PLC从MES下载拧紧防错参数,然后执行拧紧作业,此谓与MES的紧耦合设计,依赖与MES的实时通讯。

    方式二:每次当发动机到达拧紧工位时,工位PLC从MES之外的某个介质获取拧紧防错参数,然后执行拧紧作业,此谓与MES的松耦合设计,不需要与MES进行实时通讯。

    方式二的介质主要有两种:RFID与条码。

    如下图所示,防错配置数据通过MES服务器>>OPC服务器>>IT PLC>>工位PLC>>RFID进行传递,在上线工位由工位PLC写到RFID上,并可在实际上线作业发生之前提前下载并缓存到IT PLC上,从而实现上线工位的松耦合。

    当发动机到达装配工位时,工位PLC从RFID中提取防错配置数据,然后与拧紧枪控制器一起执行拧紧作业,因此拧紧作业发生时也不需要与MES进行实时交互。

    利用条码进行防错也非常类似,在上线工位为每个拧紧工位打印一张拧紧参数条码,然后张贴到随车单上,当发动机到达拧紧工位时,操作工扫描对应工位的条码,即可将拧紧参数传递给工位PLC。

     

    前面提到的IT PLC可以起到一个关键的数据缓存作用,即在上线作业实际发生之前,提前将上线所需的工单和防错配方等数据下载到IT PLC,这样在上线时,工位PLC直接从IT PLC获取数据,从而绕开了MES上层应用环境。

    此外,IT PLC还可以起到数据上传的缓存作用,即设备PLC将业务数据(如过站记录和追溯数据)同步给IT PLC(工位PLC在普通作业工位将数据写到RFID,然后在同步工位将数据提取出来同步给IT PLC),然后由IT PLC在MES系统可用时同步到MES服务器,这样对于工位PLC而言,它无须与MES服务器进行通讯,更加专注于装配作业本身。

  • 相关阅读:
    基本类型数组与包装类型数组相互转换
    (转载)JVM中的内存模型与垃圾回收
    Python之threading多线程
    Python之基于socket和select模块实现IO多路复用
    Python之利用socketserver实现并发
    Python的网络编程socket模块
    Python设计模式之一(单例模式)
    Python异常处理
    Python面向对象之常用的特殊方法(5)
    Python面向对象之私有方法(4)
  • 原文地址:https://www.cnblogs.com/tallrain/p/5334766.html
Copyright © 2011-2022 走看看