2017年12月25日

MES在汽车制造中的应用之架构篇(5) -- Kepware OPC产品介绍



本章介绍在业内应用最广泛的OPC产品:Kepware OPC Server及其插件。

1.    什么是OPC

OPCOLE for Process Control,用于过程控制的OLE
OLEObject Linking and Embedding,对象链接与嵌入。
比如WORD中插入一个EXCEL表格,就利用了OLE技术。


3.5-1 OPC的作用

如图3.5-1所示,OPC的作用是将PLC数据块(Data Block)转换成MES(通过OPC客户端)能够直接读写的内存变量(Tag)
一般来说,如果PLC要和上位系统通信,通常会把数据存储在专用的接口数据块中,并且为每个数据块规划好专有结构,如:

 但是这些数据块的地址是无法被MES直接访问的。
而经过OPC映射后,这些PLC变量和一般的IT服务器内存变量在形式上已经没有了区别,OPC服务器能够直接对这些PLC变量进行读写操作。
而我们可以在MES上部署OPC客户端,对这些变量进行访问和读写。
目前OPC协议主要有两种:OPC DAOPC UA
OPC DAOPC Data Access,这个协议基于微软的DCOM技术实现,已经用了很多年,非常成熟,但是只能部署在WINDOWS平台。由于DCOM的限制,OPC DA的安全性不高,配置也较繁琐。
OPC UAOPC Unified Architecture,是跨平台的,可以部署在LINUX+JAVA环境下,但是目前应用还不是很广泛。

2.    DataLogger

DataLoggerKepware的一个插件,能够将OPC变量的值自动记录到数据库中。
对于一般的PLC数据采集需求来说,这个插件已经足以满足了,它只需要一些简单的配置,不需要任何的代码开发。
数据存到数据库里以后,可以通过编写数据库存储过程或者应用层逻辑,来对数据进行业务处理。
比如我们要对一个旧工厂的冲压车间实施PMC,采集设备状态信息,那么我们可以利用OPC DA + DataLogger来采集数据,然后在数据库里编写触发器和存储过程来对数据进一步处理。

3.    ODBC Driver

DataLogger只能对数据库进行写操作,不能进行读操作,因此数据只能从PLCMES上行传输。
但某些时候,我们需要读数据库。
比如我们要对焊装车间增加订单下发和时间同步功能,那么我们可以利用ODBC Driver插件来实现。
ODBC Driver把数据库作为一个设备进行管理,调用ODBC引擎实现数据库连接和读写操作。
我们可以建立两个接口表,一个用于存储当天工单,一个用于存储时间同步信号。
OPC服务器通过这两个表来读取信息,然后将数据通过OPC DA写到PLC中。

4.    Advanced Tags

Advanced Tags是一组插件,这里介绍应用较多的Link Tag
Link Tag能够将一个变量的值自动写入另一个Tag
这里介绍两个应用案例。
案例1PLC通信。如区域A进行装配,区域B执行检查。当区域B检查出现问题时,通过ANDON系统通知到区域A PLC。由于区域A和区域B之间距离较远,且工艺上没有数据交互。因此,我们可以在不增加硬件设备(如耦合器)的情况下,通过OPC DA + LINK TAG来实现2个区域PLC之间的通信。
案例2PLC数据上传到MESDataLogger尽管能够写数据库,但是它有一个很大的限制:只能增加行记录(INSERT)。而ODBC DRIVER能够更新接口表(UPDATE)。因此我们可以通过OPC DA来监控PLC变量,再通过LINK TAGPLC TAG映射到ODBC DRIVER对应的接口表。详细实现,可参考我的文章《通过KEPWARE ODBC DRIVERADVANCED TAG 实现数据库和PLC的双向通信》。

5.    IoT Gateway

IoT GatewayInternet of Things Gateway物联网网关。
Kepware以插件的形式提供了4种网关:
-          MQTT客户端
-          REST客户端
-          REST服务器
-          ThingWorx网关
3种都可以很方便地配置使用。
MQTTMessage Queuing Telemetry Transport,是一种专门用于远程窄带网络的消息队列服务协议。比如在一些机加车间,网络信号不稳定,那么我们可以在不改造网络的情况下,利用此客户端来采集PLC数据。
RESTRepresentational State Transfer可重新表达的状态迁移,是一种应用较广泛的实时可靠的IT信息传递方式,目前在很多场合取代了Web Service进行部署。
REST客户端能够侦测PLC变量,一旦发生变化,则自动调用MES REST服务器,将数据上传给MES。比如AVI系统的车辆过站记录,能够通过REST客户端实时上传。
REST服务器提供了一个监听器,将PLC变量暴露出来,MES可通过REST客户端来执行特定的指令。如MES要冻结某个工单,则可通过REST调用将信息实时写入PLC


2017年12月12日

MES在汽车制造中的应用之架构篇(1) -- 基础架构


MES是大型的应用系统,其特点是:
1)       实时性高,通常客户端的响应时间在1~5秒内,和PLC通信的响应时间在1~2秒。
2)       功能复杂,包含了计划、生产、工艺、质量、设备等诸多业务模块,逻辑较复杂。
3)       稳定性高,通常会要求达到99.5%以上的在线率,不然会影响现场生产。
4)       和外部系统(ERP/PLM/WMS)有较多数据交互。
因此,为了保证MES系统稳定、可靠运行,需要通过系统架构设计予以保障。
2.3-1显示了MES系统的典型架构关系。


3.1-1 MES系统基础架构

应用服务器是MES的核心,其功能包括:
1)       业务模型的定义。
2)       工艺路线的定义。
3)       业务逻辑的处理。
4)       对于输入、输出数据的处理。
5)       数据的类型转换、格式转换。
6)       计划任务的处理。
7)       OPC客户端,用于和OPC服务器通信。
8)       MQ客户端,用于和MQ服务器通信。
9)       DB客户端,用于执行数据库读写。
通常应用服务器会采用Cluster机制进行冗余处理,以提供高可用性。

数据库用于存储和备份数据,通常采用Oracle/MSSQL等大型成熟关系型数据库。
数据库通常会划分成生产数据库和历史数据库。
生产库用于实时业务处理,通常只存储较近一段时间如3个月以内的数据。生产库采用DataGuard等技术提供冗余支持。
历史数据库会存储所有的历史数据,数据量大,通常用于报表输出。
因此我们可以在应用服务器上执行实时数据查询,而通过报表服务器执行历史数据统计分析。

网络服务器主要用于处理客户端的输入输出,主要功能有:
1)       图形界面展示。
2)       采集用户输入数据。
3)       对用户键盘、鼠标操作的响应。
4)       本地脚本处理。
5)       本地DLL调用,如.NET框架支持调用本地OPC客户端,从而实现分布式OPC通信。
通常网络服务器会采用Network Load Balance实现负载均衡,以支撑客户端高并发。

由于MES系统中注册的打印机主要以网络打印机为主,因此还需要部署专用打印机服务器以驱动所有的网络打印机。

MESPLC的通信,目前还是以OPC作为主流的形式。
OPC是一个中间件平台,安装对应的驱动后,OPC服务器能够将PLC数据块中存储的数据映射成内存变量,OPC变量在形式上和普通的IT变量没有区别。
目前应用较广泛的是Kepware OPC Server,其价格较低,提供了几乎所有主流PLC的驱动,此外还有一些功能强大的插件,如IoT Gateway能够将OPC变量封装成Web Service进行调用。
MESPLC通信的耦合性、实时性都较强,如PLC的扫描周期一般为50~100ms,而OPC的扫描周期通常设置为250~1000ms

MESERP/PLM/WMS有较多的数据交互,但对实时性的要求较低。此外,为了减少系统间的耦合性,通常会采用消息队列的机制在系统间传输数据。
例如ERP部署在集团公司,PLM部署在研究院,而MES部署在工厂,那么通常会在集团公司部署消息队列服务器,然后在集团、工厂、研究院部署MQ客户端,从而实现三地之间的数据交互。



2017年12月8日

MES在汽车制造中的应用之业务篇(13) -- 安灯呼叫


安灯,又叫按灯、暗灯、ANDON,是一种在汽车厂广泛应用的系统,当生产现场出现异常时,能够通过拉绳、按钮等方式及时进行干预,并通过声、光、屏等方式及时通知责任人员予以解决。
安灯体现了2个管理思想:
1)       质量优先,不惜以急停为代价,暴露并及时解决生产现场问题。
2)       装配作业优先,质量工程师、设备工程师、工艺工程师、物流配送人员都是辅助人员,因为装配线的效率决定了工厂的整体效率。
下文介绍安灯系统的几个关键要素。

1.  呼叫

安灯按照呼叫类型区分,可分为质量呼叫、物料呼叫、设备呼叫、线体呼叫。
质量呼叫是指当现场出现质量问题,或者工人面临无法解决的问题时,工人通过拉绳或按钮人工触发的呼叫。呼叫的发起方为装配工人,接收方为班组长和质量工程师。
物料呼叫是指工人发现物料短缺时,通过物料按钮发起的呼叫。呼叫的发起方为装配工人,接收方为物流配送人员。通常每个按钮对应一个物料,并且呼叫信息和物流执行系统集成。
设备呼叫是指设备出现报警或故障时,通过设备控制器自动触发的呼叫。呼叫的发起方为设备PLC,接收方为设备工程师。
线体呼叫是指输送线出现异常时(如急停、故障、缺车、阻塞),通过线体控制器自动触发的呼叫。呼叫的发起方是线体PLC,接收方为班组长和设备工程师。

2.  通知

安灯提供声、光、屏等多种形式的通知。
通常我们会在生产线的作业工位上安装单色或三色的柱状信号灯。单色灯通常为黄色,当出现呼叫时,输出闪烁信号进行通知。三色灯通常为红、黄、绿色,常用于关键工位如防错工位,绿色代表正常,黄色代表报警,红色代表故障。信号灯通常集成到PLC中,响应时间在100ms以内。
由于汽车装配车间设备较多、人员混杂,而设备工程师等通常采用巡线的机制,因此相关人员有时不能及时看到工位上的信号灯。因此,工厂会安装声音系统进行广播通知。为了保障音质和音量,通常采用播放器+功放+音箱的形式组建声音系统。而播放器也是集成到PLC的,响应时间在数秒以内,播放的声音可以事先录制成MP3
此外,车间还通常悬挂LCD/LED大屏,以图文的形式进行通知。大屏尺寸可以从55寸到100多寸,以外接显示器的形式连接到小型PC中。在小型PC安装WINCC/FTVIEW/CIMPLICITYSCADA软件,可以显示呼叫状态、设备状态、计划产量、实际产量、缓存数量、车间布局等多种形式的信息。

3.  升级机制

呼叫有通知、报警、故障等级别。
通知级别如换班,呼叫时现场并无异常。
报警级别如物料呼叫、设备报警、线体缺车、线体阻塞,呼叫时线体还在工作,不会马上发生停线。
故障级别如设备故障、线体故障、线体急停,呼叫时需要立即处理,否则线体马上停止。
而通见的拉绳呼叫,既可能是报警级别,也可能是故障级别,这里有一个升级机制。
如在焊装,拉绳拉下时呼叫是报警级别,如果10秒内没有响应则升级为故障级别。
而在总装,由于采用输送线,同一条线各个工位联动,且各工位等距,因此会为每个工位定义70%停止位、90%停止位、100%停止位。拉绳拉下时,如果车辆还未到70%停止位,则呼叫是报警级别;如果车辆到达70%停止位时,呼叫还没有响应则升级为故障级别;当车辆到达90%停止位时呼叫还没有复位,输送线开始停止。
当呼叫升级时,声、光、屏的通知形式也发生相应的变化。如三色灯在报警时闪黄灯,在故障时闪红灯。

4.  停线管理

在总装车间,由于采用输送线的形式,各个工位是相互关联的。
因此,如果某个工位的呼叫不能及时处理的话,业务上会要求停止整条生产线,这就要求安灯系统和输送线PLC之间做集成。
通常安灯系统会向输送线PLC传送停线指令和0%/70%/90%停止位信号。
安灯系统有专用PLC,和输送线PLC之间通过网络耦合器或硬接线的形式进行通信。
输送线PLC接收到安灯PLC的信号后,会结合线体的状态信号、安全信号,判断在某个时刻是否应该让线体停线,如果条件符合,则执行停线逻辑。

5.  班次管理

通常我们会在安灯系统里配置班次进行管理,即使只有一个班次也是如此。
这是因为每个班次都有很多关键指标,如计划产量、实际产量、停线时间、呼叫时间等,这些指标是分配到班次上的,而且在每个班次开始时必须清零。而很多指标是从线体PLC中采集的,因此安灯系统必须将换班信号输出给线体PLC
此外,当换班时,安灯系统还可以通过闪烁柱灯、播放音乐等方式提醒工人和生产管理人员。