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数据库中:

     

  • 相关阅读:
    ExtJS小技巧
    Oracle 表的行数、表占用空间大小,列的非空行数、列占用空间大小 查询
    NPM 私服
    IDEA 不编译java以外的文件
    SQL 引号中的问号在PrepareStatement 中不被看作是占位符
    Chrome 浏览器自动填表呈现淡黄色解决
    批量删除Maven 仓库未下载成功.lastupdate 的文件
    Oracle 11g 监听很慢,由于监听日志文件太大引起的问题(Windows 下)
    Hibernate 自动更新表出错 建表或添加列,提示标识符无效
    Hibernate 自动更新表出错 More than one table found in namespace
  • 原文地址:https://www.cnblogs.com/tallrain/p/Common_MES_1.html
Copyright © 2011-2022 走看看