zoukankan      html  css  js  c++  java
  • 浅谈MES的通用设计之一:数据传输

    本人从2000年开始接触MES系统,先后使用过UGS Tecnomatrix,Apriso FlexNet,Rockwell FTPC等产品,对MES应用的情况有一定了解。

    除了灵敏制造等老生常谈的优点之外,我对MES有两个深刻的印象:一是没有一个被广泛应用的明星产品(就象ERP领域的SAP/ORACLE一样);二是几乎每个工厂在实施MES时都有大量的定制,并且涉及到大量的代码编写,因此实施周期漫长,管理较为困难。

    基于多年MES实施和开发经验,笔者尝试思考如何将MES的一些常用模块做通用性设计,以便让同一产品适用更多的行业,并且尽量减少客制化。

    本文即系列文章的第一篇,讨论数据传输通道的设计。

    众所周知,相较于ERP产品,MES的一个特殊之处是其不仅仅与外围IT系统通讯,它还需要与下游的控制设备通讯,从而在计划层与控制层之间起到承上启下的桥梁作用。

    对于MES与ERP、PLM之间的数据交换,可以通过WEB SERVICE或者消息队列服务很方便地实现,并且可以将各种不同的数据格式方便地转换为XML格式,从而在应用的底层实现数据的一致性,这样就可以用同一套机制实现各种不同来源数据的逻辑处理。

    比如对于输入数据,可以依据以下步骤处理:

    1、将原始数据转换成固定格式的XML。

    2、XML通过消息队列服务输入。

    3、将XML数据映射到数据库中的原始数据表,附加对应业务功能的标记。

    4、根据标记将原始数据映射到对应的业务数据表。

    5、执行对应的业务处理存储过程进行数据处理。

    6、将处理后的数据展现给客户端。

    而对于MES,通常通过PLC与控制层的设备通讯。而PLC并不能直接与应用系统通讯,通常使用OPC进行协议的转换。

    逻辑上我们可以将OPC对PLC的读写操作理解成某种特殊格式数据的输入、输出。因此一旦通过OPC转换之后,我们仍然可以通过某种机制将PLC数据串接到消息队列服务中,比如ILS公司 的deviceWISE产品,就可以很方便地将PLC数据转换成XML之后输送到JAVA消息队列中。

    因此相对于前面所说的6个步骤,对于PLC数据的处理,只要前置增加以下2个步骤:

    1、通过OPC读取PLC。

    2、将OPC读取到的数据转换成XML格式。

    经过以上处理之后,来自PLC的数据,就在形式上实现了和其它IT系统数据的一致性。

    当然出于实时监控的需求,我们仍然需要通过OPC客户端来实时查看PLC数据。这两种方式都能够实现远程数据读取,方便维护。

    下图展示了如何将控制层PLC数据与计划层IT数据统一输送到MES数据库中:

     

  • 相关阅读:
    MVC 自定义异常过滤特性
    写一个左中右布局占满屏幕,其中左右两块是固定宽度200,中间自适应宽度, 要求先加载中间块,请写出结构及样式。
    请写出jQuery绑定事件的方法,不少于两种
    用js写个原生的ajax过程
    link和@import的区别
    attribute和property的区别是什么?
    请简要描述margin重复问题,及解决方式
    display:none;与visibility:hidden;的区别
    web标准以及w3c标准
    css优先级
  • 原文地址:https://www.cnblogs.com/tallrain/p/Common_MES_1.html
Copyright © 2011-2022 走看看