2017年7月11日

MES风筝




1.       PLM
PLM管理产品主数据和结构,解决了产品是什么的问题。
除了向MES/ERP/WMS发送MBOM(物料BOM)外,还向MES发送EBOM(工程BOM)PBOM(工艺BOM)
EBOM通常包含软件版本信息、图纸等文档附件。
PBOM包含了细化到工位的工艺配置信息,如同一种螺栓要在多个工位进行装配作业,MBOM只关心总数,而PBOM关心每个工位的数量。

2.       ERP
ERP管理工单,解决的是什么时间、在哪个车间、由谁、生产多少件产品
通常离散行业的MES由工单驱动。
关键工位的作业完成后,MES会把过站记录发给ERP,用于物料回冲。

3.       WMS
WMS管理零件库存和物流配送。
关键工位的作业完成后,MES会把过站记录发给WMS,用于物料拉动处理。

4.       PLC
MES配合PLC,解决的是用什么设备、在哪个工位、怎样生产产品
MES把工单、序列号、型号、配方、作业指令等发给PLC,指导PLC自动作业。

作业完成后,PLC会把关键生产数据和设备信息发给MES,用于追溯分析。

2017年7月9日

PLC编程再思考之4 - 面向对象

PLC编程有诸多限制,如:
  1. 传统的西门子PLC单个DB的存储容量为64KB。
  2. 每次DB结构变更时,都需要编译并重新下载覆盖原DB。
  3. 每次DB结构变更时,OPC变量需要重新映射地址。

但有时候我们希望把DB设计得灵活一些,当给PLC增加一些小的元素时,我们不希望覆盖大量的DB。
有时我们希望PLC程序设计得模块化、产品化、基于配置。
在这些应用场景中,我们可以参考面向对象的方法进行PLC编程。

本文以质量安灯实例说明了面向对象的PLC编程方法。
业务需求为:
  1. 每个工位配置1条拉绳。
  2. 当拉绳拉下时,灯亮,喇叭播放配置好的音乐。
  3. 当拉绳复位时,灯灭,喇叭静音。
  4. 工位配置在线上。
  5. 线的总数为10。
  6. 工位/拉绳/灯/喇叭的总数为200。

下表列出了所有对象,及对应的属性/事件/方法:
 

为了让对象更加灵活,我们为每个属性分配1个DB,除了ID,这是因为我们使用数组ARRAY存储数量,每个对象的所有属性DB使用了同样长度的数组,而数组的序号就是对象的ID:
 

 

因此当我们需要给拉绳增加一个新的属性时,我们只要建立一个新的DB,基本结构为长度为200的数组,并以数组序号的形式建立了与其它拉绳DB的联系。

PLC程序调用结构非常简洁:
 

由于使用了数组,我们可以很方便地利用SCL的循环语句进行遍历调用:
 

寻找外部引用ID也很简单,因为我们可以直接使用数组序号进行符号寻址:
 

对于I/Q设备的位&字节地址,我们可以用STRUCT进行定义:
 

这样,就可以很方便地利用SCL的PEEK_BOOL/POKE_BOOL函数进行动态调用:
 

FC_PEEK_BOOL针对SCL的PEEK_BOOL进行封装:
 

Set事件:
 

Reset事件:
 

下面列出几条PLC面向对象编程的参考建议:
  1. 每个DB定义1个属性。
  2. 使用数组存储数据。
  3. 使用SCL循环语句遍历数组。
  4. 为每个方法编写通用FC函数。


TIA V13源代码:

2017年7月4日

2 Typical Methods of bridging IT Network and Control Network


While implementing MES projects, I always spent lots of time discussing how to bridge IT Network and Control Network.
Practically, Network team will isolated Control Network from IT Network, such as using VLAN to separate them.
MES works in IT Network, and PLC works in Control Network, and they need to exchange data, so we need to bridge these 2 networks.
Here I list out 2 typical methods based on my practice.

Method 1: Using Communication Panel
 
From above diagram, we can see that each PLC works inside Vendor’s private Control Network via CPU port.
The additional CP(Communication Panel) provides an IP address working inside IT Network.
With this method, we add CP for each PLC which needs to talk to IT applications.
Actually some advanced PLC(such as Siemens 317/319/1516/1518) has 2+ PN/IE ports, which means we can use 1 port for Control Network and 1 port for IT Network.
But in practice, we might still use Communication Panels, because CP provides better PLC functions and better communication capacity.

Method 2: NAT
NAT = Network Address Translation
 
From above diagram, we can see that an NAT Router is added between Control Network Switch and IT Core Switch, so each device’s IP address which matches Route Table will be translated into IT IP address.
Normally route table is defined for a range of IP address, so not only PLC, but also HMI and Robot and other devices will be translated into IT Network.

Comparison:
Method
Advantage
Disadvantage
CP
Data secure
Network isolated
More hardware investment
More Cabling work
NAT
Cheap
Less cabling work
Less data secure
Network crossed

2017年5月24日

宋鉴



近段时间看了几本穿越回宋朝的小说,杂想连篇,遂成此文。
我们知道,宋朝在经济、文化、科技上都成就了古代中国的高峰,特别是科技,比如活字印刷术的发明、指南针的应用,还有火药造船技术都达到当时的世界先进水平。
宋朝的科技大发展被蒙元入侵打断了。
但是假设一下,如果蒙元没有入侵,大宋的技术发展会走上西方科技的发展道路吗?我觉得非常值得怀疑。
在独尊儒术的传统下,只有儒学是道,其它杂学都是术。
儒家有它的理论体系,并随着改朝换代不断发展。
而古代中国科技的发展是零散的,缺乏理论体系的支撑,如《梦溪笔谈》是笔记体记录,而欧几里德《几何》、牛顿《原理》则由严格的定理和证明组成。
没有理论的技术会中断、会失传,美丽但是脆弱。
今人看今朝,亦如宋人视宋朝,山顶的风景很美,但走着走着很可能就走向了下坡路。
目前中国的经济技术可谓前所未有的强大,但底子其实并没有足够地结实。
据说现在要工业4.0了,但是从机械化、电气化、自动化、网络化这4个维度方面,我们都有着大量明显的短板:缺乏精密制造设备,缺乏电气基础理论研究,缺乏精细控制器,缺乏网络底层协议的贡献。
以网络化为例,现在阿里巴巴和腾讯的体量都非常大了,但是我们在操作系统、芯片、数据库等基础设施的贡献在哪里?大量中国的公司在运用开源工具,而又有几个中国工程师贡献了开源代码?
这几年来,随着中国制造2025的提出,MES领域也是浮夸风一片,不象西门子集成了CAD/CAM/CAE/PLM/MES,不象罗克威尔集成了传感器/PLC/SCADA/MES,中国的随便一个小小厂商,利用开源工具和盗版软件搭建一个MES应用环境,就可以叫板西门子、罗克威尔,大言不惭。
实体经济的焦虑、工程师的职业焦虑、父母对子女的教育焦虑,也许这后面藏着千丝万缕的关系吧。



2017年5月10日

MES的任督二脉



1.       任脉:系统集成
关键词:制造、系统
MES作为一个IT系统,与ERP/PLM/WMS等其它系统有着高度集成。
这是因为,制造不是一个孤立的生产活动。
首先,从产品生命周期来看,立项、研发、制造、销售、售后组成完整的产品生命周期,而产品的特性需要在整个产品周期的各个环节中进行传递,这其中最重要的特性就是来自于PLM的产品BOM,因为BOM决定了产品的成本、加工流程、工艺设备等生产因素。
其次,从一次制造活动来看,典型的生产过程由订单触发,完整的制造流程包括:销售订单à采购订单à生产工单à发运单。这些单据对应于ERP中的现金流动和物料流动,而对于MES来说,来自于ERP的生产工单成为关键的生产因素。
因此,MES非常重要的两个集成需求是:与PLM集成BOM,与ERP集成工单。
下面我们举一个例子予以说明。
汽车行业,通常通过配置和颜色区分车型,如白色低配、红色高配等。汽车制造厂为每个颜色+配置组合分配一个总成件物料号,然后将对应的零件、配置件挂在总成件下面,形成制造BOM。工厂按照标准的配置制造产品,然后发往4S店。但是4S店通常会额外储备一些配置件,并在交付给用户时安装一些额外的配置件。
比如说某款车,低配版没有全景影像,只有高配版有。那么通常的做法是:制造厂按照低配版造车,然后发给4S店;4S店安装全景影像并刷软件。这是因为制造厂的BOM里面没有低配+全景影像的结构,因为无法按照这种订制方式进行生产。而4S店做了一些额外的工作,相当于在原BOM的结构上额外增加了一层选配件,因而可以更加灵活。4S店等同于一个虚拟的辅件装配车间,作业内容对应于选配件材料的虚拟BOM。因此这种模式,在某种程度上对4S店形成了依赖。
这是因为传统的做法,把物料BOM、工程BOM、工艺BOM都挂在总成件下面。
这种制造模式对应的物料BOM结构形式类似下表:
层级
物料号
消耗工位
物料描述
1
Z10010010

XX运动型低配红色手动版轿车
2
C40010011
T050
仪表盘
2
C40010016
T080
中控屏
2
C40020021
T120
左前座椅
2
C40030021
T250
1.8T发动机
2
C40040021
T340
ECU软件,版本V1.01

4S选装件对应的BOM为:
层级
物料号
物料描述
1
C40010018
全景影像
1
C40040021
ECU软件,版本V1.02

4S店下订单时,根据车型、颜色等信息锁定了车辆的总成件号,并作为订单的属性予以绑定。
ERP把订单传递给MES时,同时也把车辆总成件料号传给MES
由于MES中的物料BOM和工艺都是定义在总成件料号下的,因此订单下发的时候已经决定了车辆的生产工艺。

假如某汽车厂想要抛开4S店系统,希望客户直接在网上下单、选择配置,然后在制造完成后直接从汽车厂发给客户,那么传统的BOM结构和加工流程就不适用了。
新的流程,要求为每个订单生成一个总成件号,其对应的物料BOM、工程BOM、工艺BOM是基于订单的临时组合,其结构类似下表:
层级
物料号
消耗工位
物料描述
1
S1008601

订单号S1008601XX运动型轿车
2
P401207

低配手动仪表盘选配件
3
C40010011
T050
运动型仪表盘
2
P402402

低配手动中控屏选配件
3
C40010016
T080
中控10’高清屏
2
P410201

低配运动型座椅选配件
3
C40020021
T120
左前座椅无纺布
2
P420103

1.8T L4发动机
3
C40030021
T250
1.8T发动机
3
C40030021
T280
1.8T涡轮增压器
2
P430320

低配运动型含全影影像ECU
3
C40040021
T340
ECU软件,版本V1.02

当客户下达订单时,ERP把订单及选配件清单发给MES
MES的工艺基于选配件定义,因此MES在接收到订单的时候,也知道了工艺过程也就是所有选配件的加工的组合。
这种BOM结构可以允许工厂完全按照客户的订制进行生产,而无须4S店的额外订制作业。

2.       督脉:控制集成
关键词:执行
MES与其它IT应用系统的一个重大区别是,MES与现场设备关系紧密。
根据ISA95的定义,MES介于ERP等企业业务系统与现场作业层之间:
级别
典型系统/设备
核心业务
作业范围
响应时间
4
ERP
现金流、物流
集团/工厂/车间
//
3
MES
工艺流
工厂/车间/工位
/班次/小时//
0/1/2
电机/机器人/PLC
机械、电气、逻辑控制
区域/工位/设备
//毫秒



近几年来随着智能设备和工业物联网的兴起,似乎设备和IT系统联网是轻而易举的事情,但仔细分析的话,其实和工业现场的需求还是有很大距离。
象大家所熟悉的智能家电设备,采用安卓、树莓派等轻量型操作系统,通过互联网协议进行数据传输,但是这种方式的最大缺点是:速度慢(响应时间在秒级)、数据安全无法保证。
而象无人驾驶汽车的激光雷达等设备,由于算法都封装在芯片,采用专有数据传输协议,因此稳定可靠,但是价格昂贵,因此没有被广泛使用。
在车间现场,多年来被广泛应用的形式是采用PLC作为设备的逻辑控制中间层,然后通过OPC实现与MES的数据交换。
有了PLC/OPC的逻辑通道,MES能够向车间现场设备下发工单、BOM、工艺指令、防错指令等,此外也能够从设备收集状态信息、异常信息、操作结果、过程数据等。
这样一来,能够使工艺的执行更加灵活,同时也能够更快地对问题进行响应处理。
举例来说,一个较传统的汽车工厂,MES与设备没有深入集成,这样的话,工厂通常会按照车型进行小批量生产,每次换车型时,则需要集中在设备上进行相应的切换操作。
这种方式的工单顺序类似下表:
工单序号
车型
1
XX运动型低配红色手动版轿车
2
XX运动型低配红色手动版轿车
3
XX运动型低配红色手动版轿车
4
XX运动型低配红色手动版轿车

21
XX运动型高配银色自动版轿车
22
XX运动型高配银色自动版轿车
23
XX运动型高配银色自动版轿车


而如果MES实现了与设备的深入集成,则可以将工单混排,当车辆到达工位时,设备会根据车型信息自动进行运动、取料、加工、测量。
这种方式允许计划员尽可能按照客户订单的顺序安排生产,工单顺序类似下表:
工单序号
车型
1
XX运动型低配红色手动版轿车
2
XX运动型高配银色自动版轿车
3
XX舒适型中配灰色自动版轿车
4
XX精英型高配黑色自动版轿车
5
XX运动型高配红色自动版轿车
6
XX舒适型高配蓝色自动版轿车
7
XX运动型中配蓝色自动版轿车
8
XX运动型中配红色自动版轿车

前文描述了MES2个关键集成点:应用系统集成,与控制系统集成。
其实从一流MES供应商的分布,我们也可以看出这一点。
比如达索公司开始的核心业务是CAD设计,产品主要是应用于汽车和航空业的CATIA/SOLIDWORKS,后来从IBM收购了PLM产品,又从APRISO收购了MES产品,从而实现了CAD/CAM/CAE/PLM/MES的系统整合。
而象西门子/洛克威尔/GE是做电气产品(PLC/传感器/伺服系统)起家的,后来又从HMI/SCADA开始慢慢与应用系统集成,再辅以收购,实现较全面的MES方案,再通过PLM实现与CAD/ERP的集成。
简单地总结一下,MESERP/PLM/WMS等应用系统中起到承前启后的作用,并在应用系统与现场设备之间起到承上启下的作用。