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