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

 

原文地址:https://www.cnblogs.com/tallrain/p/Common_MES_1.html