摘要:为了解决企业ERP与MES之间的数据交互,减少作业时间和人为误差,提高录入的效率和数据准确性,最大限度的保持数据的同步,提出了一种基于Web Service技术来实现静态数据的时时更新和动态数据的同步更新的中间件设计方案,并完成中间件的设计。该中间件采用VisualStudio2010进行编程,能够实现ERP与MES之间的数据交互。实际应用表明,该系统具有操作简便、调用灵活的特点,达到了设计要求。
随着十二五制造业信息化建设的步伐加快,各工业企业大多通过ERP来提升企业的竞争力及提高企业的管理水平。可随着市场竞争的日趋激烈,处于上层的企业资源计划管理(ERP)受市场波动的影响越来越大,系统的适应性问题逐渐展现出来,与底层的过程控制系统(PCS)之间数据不共享的矛盾也显现出来。ERP系统得不到实时生产信息的支持、PCS缺乏合理的调度与协调,两个系统数据独立、无法进行良好的双向数据交互与共享,大量的数据需要二次或多次重复录入,生产数据的实时性得不到保证,最终导致企业的工作效率降低。
由于各行业都有其自身的特点,不像财务软件那样有统一的标准,所以无法将工业制造执行系统(MES)做标准化处理,但ERP系统与MES系统之间或多或少又存在某些必然联系。针对MES系统多样性、ERP系统标准性的特点,我们必须通过与两者都有紧密联系的纽带中间件来自动解决两大系统间的数据交互问题,避免人为操作带来的失误,最终保证ERP系统和MES的系统之间的数据同步。
1 需求分析
最大程度的减少人为操作导致的数据录入错误,提高数据录入效率和准确性;最大程度的保持数据的同步,提高计划的可行性、为生产提供实时而准确的数据。
要完成以上目标,需要先了解ERP、MES各自的功能及两者之间的关系。ERP系统的主要功能有系统管理、基础资料、销售管理、采购管理、生产管理、制造管理、发票管理、仓库管理、统计报表等;MES的主要功能有订单管理、工序管理、库存管理、数据采集、产线跟踪、统计报表等。
数据交互中间件的设计首先基于MES系统接收ERP系统销售管理模块的订单数据,订单设计抓取ERP系统生产管理模块数据,以ERP系统产品出库信息为发货指示,并从ERP系统抓取订单分解信息、物料搬运单的处理信息、发票信息;其次ERP系统抓取MES系统的工序计划、生产所消耗的物料信息,抓取产品数据存入ERP系统的成品库、抓取半成品数据存入ERP系统的半成品库。
数据交互中间件的应用,在执行层与企业层之间搭起了两个系统沟通的桥梁,保证了ERP系统与MES系统数据交互的畅通,实现了信息流、物流、资金流的统一,为企业的精细化、高效化管理提供了可能。随着客户对产品个性化的需求,企业的业务方向正朝着小订单、多品种、个性化定制的方向发展,ERP系统与MES系统之间的数据交互将更加频繁,实现二者连接关系的数据交互中间件,在满足客户需求、提高客户满意度、增强企业竞争力等方面将起到更加重要的作用。
2 总体设计
该系统总体结构如图1所示,通过个性化定制方式实现ERP数据和MES数据之间的交互,保持二者数据时时同步,MES系统可以为ERP系统提供与生产现场相关的很多关键数据,这些数据可以改进ERP的采购、生产、销售等模块的功能,提高ERP系统中数据的精确性与完整性,ERP系统可以为MES提供生产排产数据,根据用户订单、销售合同、产品库存这些数据可以更加准确的将生产信息传达到MES中去,更加自动化、高效率、准确、实时的完成生产任务目标。
ERP系统与MES系统数据交互中间件的设计重点主要是基于对两个系统所使用的数据库数据的抓取,当两者使用的数据库相同时(SQL Server或者Oracle),可以通过数据库自带的自定义函数、存储过程或者视图等方式使用SQL语句找出两个系统物资编码表的对应关系以建立两个系统对应表的方式来建立二者的基础数据交互关系,通过在ERP系统销售订单表建立触发器的方法来实现当该表中有数据新增、修改或者删除时,根据条件设定将订单信息自动更新到MES系统的指定数据表中;两个系统使用相同数据库时,两个系统之间的数据抓取交互相对容易,在后台数据库即可实现。
而当两个系统使用的数据库不同时,则需要考虑不同数据库之间SQL语句的差异,在后台数据库实现抓取难度较大,但可以通过Web Service技术实现,Web Service使用SOAP协议通讯,用XML封装数据实现跨平台,任何客户端只要按照Web Service发布的格式发送数据就都可以得到结果,同时使用目前比较成熟的三层架构技术,利用表现层、业务逻辑层和数据层之间相互分离的特性,在改变数据层结构时不影响其它两层的结构,
当ERP系统使用SQL Server数据库而MES系统使用Oracle数据库时,Web Service分别调用现有成熟的SQL Helper类库实现访问SQL Server数据库数据的目的,调用ORA Helper类库实现访问Oracle数据库数据的目的,再通过编写代码来逐一实现两者数据交互的各个功能函数,经过处理后对外提供标准的对外访问接口,从两个系统抓取到的数据信息以XML(Extensible Markup Language可扩展标记语言)格式保存,并提供XML数据读取接口函数来实现ERP系统访问MES系统的XML数据或者MES系统访问ERP系统XML数据的功能,
Web Service实现的接口调用函数除了需要提供读取XML功能同时还需要提供增加、删除、修改两个系统XML数据的访问接口来实现ERP系统与MES系统的数据交互功能;其数据处理的细节部分包括数据库表字段数据类型定义的差别消除、数字型字段长度的统一等,业务逻辑处理的细节部分是需要分别对ERP系统与MES系统的业务流程非常熟悉,对利用中间件接口通过改变对方XML数据而最终修改两个系统数据库数据信息的各种可能发生的情形均加以考虑。
3 业务流程
该软件设计的流程图如图2所示,MES抓取ERP的BOM表单、生产排产订单数据,对订单、工序计划进行设计,并按ERP的要求格式返回生产任务信息,由ERP作导入生产管理模块处理,生成ERP的生产任务单信息。生产完工后,完工实绩、投料信息、副产品信息应返回ERP系统,能源消耗数据信息也应一并返回。MES接到ERP的出库指示后,进行产品出库操作,MES出库后将实际出库信息返回ERP系统,ERP进行订单的分解,库存的冲减,发票的生成处理等相关业务。
4 ERP与MES中间件接口分析
ERP与MES在进行数据交互的过程中主要涉及如下接口:
4.1从MES到ERP的接口
1)产量:将MES系统实时采集到的生产线中产品与半成品数据信息及时反馈到ERP系统仓库管理模块的产品库及半成品库中,以产品、半成品编码作为两者数据交互的纽带。
2)原料消耗:将MES系统实时采集到的生产过程中各种原料的实际实时使用量及时反馈到ERP系统仓库管理模块的原料库中,以原料编码作为两者数据交互的纽带。
4.2从ERP到MES的接口
1)物资编码:对于ERP系统和MES系统来说,物资编码(原料、物料、BOM)是最重要最根本的基础数据,只有在确保两个系统中物资编码一致性的基础上,才有可能进行两个系统之间的数据交互,物资编码发挥着维系两个系统数据交互的纽带作用。首先将ERP系统中现有的物资编码数据导人MES系统中,再将ERP系统中新增的物资编码数据同步到MES系统中相对应的物资编码表中。
2)工单信息:与客户签订的销售合同通过手动录入到ERP系统中,根据用户所需产品库存情况以及根据所需产品BOM单所需原料情况经过计算形成销售订单信息,销售订单信息首先在ERP系统中被转换成工单计划或者生产任务单,然后通过Web Service接口功能将数据传递到MES系统中,MES系统由此生成工序详细调度信息,详细的工单信息可通过将ERP系统中在制品所包含的生产日期、时间、生产线、产品、工艺路线等数据信息导入MES系统完成。
5 ERP与MES中间件的应用
随着制造业竞争的日益激烈,新疆某生产电工绝缘材料的企业在已有ERP系统[7]的基础上根据企业MES系统的实际情况,在MES系统端根据所需数据及ERP系统所定义数据接口设计了数据导入程序,该程序实现了ERP系统定期自动将数据导入到MES系统中的功能。该程序通过数据的及时交互较好地解决了ERP系统与MES系统无法进行良好的双向数据交互的问题,同时提升了企业效率、提高了企业的管理水平和企业的实时反应能力。
6 结论
ERP与MES数据交互对于信息集成和制造业信息化的发展来说是一个必不可少的阶段,提高生产计划调度的实时性已成为制造型企业信息化管理过程中核心关注的问题,将销售目标转化成生产目标,通过不断调整、优化、整合和反馈信息,形成一个周期性的从销售到生产运行和过程控制的高效循环系统。该数据交互中间件通过二者之间实时数据交互完全可以实现企业信息的全方位、高效率、高精度的集成。