这是第一届西门子智能制造挑战赛 软件研发赛项 的比赛,不幸的是这也是最后一届。。。本来在比赛完后,应老师的要求草草的写了一篇。不过当时的总结也是很片面的,时隔一年才发现当时的自己是那么的“年轻”。不过今天再仔细看看当时写的解决方案和录制的作品视频,又感觉当时我们团队还是蛮厉害的!

这篇文章主要讲了讲经历,不是具体的解决方案

赛题要求

赛题分为两个方向,一个是工业安全(设计数字签名一类的)另一个是管理调度(设计实现一些ERP与MES系统整合应用的场景)。根据自身团队技术能力自由选择赛题方向。不过比较坑的是,这两种赛题的比赛方案最后是拿到一起评比划分名次的。

虽然当时我们对于这两个方向一点了解都没有,但是经过考虑最后还是选择了管理调度方向。分析后感觉工业安全是一个有深度的题目,鉴于我们的技术水平还是选择了一个有广度的赛题(管理调度)。

管理调度方向

ERP和MES整合系统开发

通过在ERP和MES之间共享数据,进而将计划和生产相关的业务流程进行梳理、衔接和优化,把ERP和MES的流程也整合到一起,设计和优化ERP和MES系统间的接口。MES自动接受来自ERP层的生产计划、订单信息、人力资源、物料清单(BOM)、库存及采购等信息,作为MES自动排产、物料和生产流程管理的基础数据。MES向上层ERP提交生产计划完成信息、生产能力、物料消耗、劳动力和生产线运行性能、实际定单执行等涉及生产运行的实时数据,向ERP采购、库存等模块提出产生采购订单或入库单的需求。

场景示例

“给了五个相关的场景”略

技术要求:

选择2-3个典型的ERP和MES系统整合场景(不限于以上例子),分析需求,设计软件架构并实现,测试并演示。
鼓励参赛队伍根据特定行业特定企业ERP和MES整合的真实需求,分析和抽象需求,设计并实现软件解决方案。
软件设计应考虑跨企业、跨行业的可复用性,支持工业数字化相关国际标准和行业标准。
可选用第三方的商用或免费的ERP和MES系统平台,需求分析和设计中需考虑适配不同厂商的ERP,MES。
软件架构需支持应用的灵活部署,如企业内部的分布式部署、基于公有云的部署,以及混合部署。可考虑使用面向服务的架构(SOA,SaaS等)。
考虑由于企业规模的增大、应用部署的复杂(见第5点)所带来的性能压力和可靠性风险,并以适当的设计和技术予以解决。
如有需要,可选用企业服务总线、工作流等平台,JEE、.NET等通用中间件,Oracle、MySQL等数据库,以及其它第三方软件平台。
支持异构的数据存储,以及不同第三方ERP和MES系统和不同部署所带来的数据存储形式的变化,为数据分析和挖掘提供方便接口。
用户界面简洁实用美观。
考虑最后交付的系统的可验证性,提供验证系统功能和性能的测试用例。

准备工作

在看完赛题后,还是一脸的懵B。各种名词迎面而来,刚开始时都不知道ERP、MES是个什么东西!!!更别提BOM了。虽然各种物料库存,订单这些名词知道什么意思,对于其流程也是一知半解。无奈只好跑到图书馆去借相关的书籍。在看了 两天后,对于这个东西就有了个大致的了解。

讨论方案

毕竟三个臭皮匠顶一个诸葛亮,我们刚开始的时候就两个人!应该可以顶半个诸葛亮吧。经过两个人的集思广益,我们决定采用最简单的一种集成方式——中间对象集成模式(听起来厉害吧!就是使用同一个数据库服务器… …)。因为我们当时在学C#,并且拖拉控件比较快。然后就决定使用C#来写PC端的ERP系统。
我们考虑的是,在ERP系统这里处理生产订单之前的所有事情,及其接到生产完成通知后的所有事情。

MES系统只负责接收生产单数据,查看原料是否充足,分解生产单自动生成一个一个的生成通知单。

【举个栗子:比如ERP下达生产50台电脑,那么根据BOM可以知道电脑是由主机、显示器等组成的。MES总不能直接显示这一条生产单的数据就完了啊,那么就需要根据库存数量计算出所需生产出多少台主机、显示器等。然后接着以此类推,主机是由哪些原料组成,需要多少数量!就是一个树结构的遍历,一直到要生产的东西在BOM中没有子件。最后统计所以的原料的数量,如果库存不够的话则无法进行生产,可以根据所需填写申购订单。这时ERP会接到消息,相关人员进行处理。当一切都做好之后,开始倒序生产,即从粒度最小的零件开始生产(我构建了一个表,生成生产通知单的时候按顺序存进去,生产的时候按ID来取单子的数据)。总不能主机还没生产的时候,直接生产电脑吧。(这块代码是我写的哟,在解决方案中还“大言不惭”的注明了“智能算法“)】

任务分配

我负责产品定位与设计(哈哈哈!笑死我了)和智能算法设计,业务代码编程,解决方案的撰写,说起来挺好听,其实没有什么规范,只是凭着感觉来。
李同学负责实现ERP与MES通信和大部分MES业务代码+ERP业务代码编写。

后来加入了位周同学,他负责了一些ERP业务代码的编写和编写测试用例。

项目实施

大部分东西都定了下来,但是心里确实还没底。毕竟没有做过… …
因为在技术要求中说可以采用第三方商用或免费的ERP和MES系统平台。那我们想着找一个半成品的ERP系统接着开发会不会快的多。然后很巧,找到了一个“很烂”但是还有一些功能的源码。我们花了两天的时间看各自负责功能的代码,然后各自提出改进意见。接下来我们重构了这个软件。
(然后这个时候,由于技术能力不够只能限定一个MES系统负责一个生产车间的事务。现在看来,其实这里也是我们做的不好的地方。当时没有深刻的去理解MES发挥的作用和功能。为了实现两个应用场景,只能这么应付的做了。)

图1-不同车间对应不同的IP地址

图2-一次完整的业务流程图

项目展示

图3-ERP采购页面

图4-MES系统生成生产通知单

图5-库存不足情况

图6-库存不足却执意生产的情况

比赛结果

开发的时间其实比较长,我们开始时候思路其实并没有准备工作中那么清楚。也是确定了大概之后一点点调整的。牺牲了接近两个半月的周六周末的时间,包括平常时间的晚上!也体会到了只写代码是多么幸福。

最后我们获得是初赛一等奖,说实话有点不甘心!因为最后大赛组委会临时改了初赛特等奖和一等奖全部进决赛的规定,只选取了前几名的一等奖。还有就是因为放在一起评比,工业安全方向占了大部分!其实这两个方向从具体方面来看没有可比性的,侧重点都不同。好了,总之各种原因吧,也导致了只办了一届就凉了。不过通过做这一个比赛,还是极大的提高了我的抗压能力和团队协作的能力。
另外吐槽一下我们的队名 IE … … 当初我是怎么同意使用这个名字的!!!这个名字是很可能会得罪某个痛恨IE浏览器的的老师的。

图7-获奖名单

图8-获奖证书

项目演示

链接: https://pan.baidu.com/s/15vuzaGdgaucSTYMZuqUWWg 密码: 7vrm

记一次大(la)型(ji)项(zuo)目(pin)比赛作品开发经历(ERP 和 MES 集成系统)相关推荐

  1. 大数据分析经典案例,无缝整合OA、ERP、MES等系统

    ​随着工业化和信息化的发展,传统企业公司的规模和体量都在迅速扩张,逐渐接触到运营和管理的天花板,粗放型管理带来了许多问题,精细化运营势在必行. 那么如果提高企业的运营管理效率.实现精细化运营呢?答案就 ...

  2. 大数据产业链结构_【数据结构 | 大整型】

    创建一个无长度限制的大整型,并实现加减乘除等功能 参考: https://blog.csdn.net/qq_36894136/article/details/79074728 https://blog ...

  3. error C3859: 超过了PCH的虚拟内存范围;请使用“-Zm137”或更大的命令行选项重新编译

    error C3859: 超过了 PCH 的虚拟内存范围:请使用"-Zm137"或更大的命令行选项重新编译 产生的原因: 为了加快boost的编译,使用的预编译头.而且加的boos ...

  4. 网易云易盾朱星星:最容易被驳回的10大APP过检项

    欢迎访问网易云社区,了解更多网易技术产品运营经验. "走进网易:移动测试与安全实践"公开活动在杭州西湖区颐高创业大厦4F楼友会创业咖啡厅举行.本次活动的议题聚焦在如何实现应用的高效 ...

  5. 考研高数 专题5:泰勒公式及其应用(皮亚诺型余项/局部)(拉格朗日余项/整体)

    文章目录: 1.皮亚诺型余项泰勒公式(特殊的_麦克劳林公式)--n阶可导 (点)[局部泰勒公式]

  6. 阿里云服务器实时计算Flink/Blink首选大数据型d2c、d2s实例

    阿里云服务器Flink或Blink实时计算应用,如何选择云服务器配置?阿里云百科认为CPU内存比1:4,可优先考虑通用型如g6.g5实例,或者大数据型d2c或d2s实例. 实时计算服务器配置选择 实时 ...

  7. 农分期 java_农分期现行业务大揭密,8项业务为农户提供全方向服务

    原标题:农分期现行业务大揭密,8项业务为农户提供全方向服务 "农分期,怎么办?"兄弟,农分期业务太多了,你问我怎么办,我该怎么回答你呢? 所以今天我得帮大家把农分期能替你解决的问题 ...

  8. Usdt到底靠谱吗?——记美国与大B网的恩怨情仇

    Usdt到底靠谱吗?--记美国与大B网的恩怨情仇 在介绍之前,首先为小白科普几个Usdt的问题,方便大家阅读. Usdt是什么? Usdt是Tether公司的发行的一个基于区块链技术的代币,发行之时对 ...

  9. 超过了 PCH 的虚拟内存范围;请使用“-Zm120”或更大的命令行选项重新编译

    超过了 PCH 的虚拟内存范围:请使用"-Zm120"或更大的命令行选项重新编译 该错误是因为虚拟内存范围不够造成的,点击项目属性->配置属性->c/c++->命 ...

最新文章

  1. Android开发环境的搭建
  2. centos7 安装 xfce桌面
  3. PYQT5 多选下拉列表框
  4. 计算机上机模拟试题答案,2016计算机二级上机模拟试题及答案
  5. spring4.x aop拦截spring mvc controller
  6. oracle sequrnce_Oracle Sqlldr简单用法
  7. MyBatis中or和and的使用问题
  8. php的数组key删除,php删除数组的key
  9. FileUpload上传图片提示 “GDI+中发生一般性错误”
  10. python截图模块_pyscreenshot
  11. 快看,我们的分布式缓存就是这样把注册中心搞崩塌的!
  12. 《为何爱会伤人》-读书笔记
  13. [pytorch] 深度学习分割网络U-net的pytorch模型实现 原创 2017年03月08日 21:48:21 标签: python / 深度学习 / 生物图
  14. Linux 镜像文件
  15. eNSP 配置OSPF
  16. FFmpeg学习(四)-- libavformat 代码组成
  17. iOS打包ipa无签名打包企业签
  18. linux常用网站(不定期更新)
  19. 服务器终端性能测试之MBW内存测试
  20. 公寓宽带服务器无响应,学生宿舍公寓网络建设项目需求分析报告文档(8页)-原创力文档...

热门文章

  1. 掌握内网穿透,家里废弃的手机也可以变成服务器
  2. [虚幻4] 手雷抛物线预测(c++代码实现)
  3. 大学计算机基础教学大纲,《大学计算机基础》教学大纲(锦城-2010下-修改)
  4. 用代谢组学解密纳米颗粒缓解烟草重金属中毒机制
  5. 微型计算机原理小闹钟8253,微机原理课程设计-电子钟的设计.doc
  6. 计算机接口信息获取实验,《计算机接口技术》实验指导资料.doc
  7. artical weekly181205
  8. WordPress Auto Post 3.7 无限制版本
  9. 轻轻松松提高js代码质量,
  10. c语言 t自己设置跳跃位置,[总结] C语言的位操作技巧