《武汉工程大学学报》  2018年02期 219-223   出版日期:2018-05-17   ISSN:1674-2869   CN:42-1779/TQ
汽车零部件装配车间MES数据采集功能的开发


制造执行系统(manufacturing execution system, MES)是面向车间的信息管理系统,向上衔接企业资源计划(enterprise resource planning,ERP)系统,向下连接生产线设备,是实现管理者和生产车间信息传递的重要载体[1]。MES系统包含从原材料采购到成品入库的生产过程进行实时数据采集、控制和监控的全过程,实现对生产控制、产品追踪追溯、生产实时数据传输与处理等功能[2]。自动化生产线中与生产有关的工艺数据及设备状态数据大多存储在可编程逻辑控制器(programmable logic controller, PLC)及其关联的上位机中,要将这些与产品信息相关的数据获取并集中存入MES系统中,就需要将MES系统数据库与生产设备联网,实现生产数据的实时存储和更新[3]。本文基于以太网开发了C/S结构的MES系统中上位机与多种PLC的通讯及用于过程控制的对象连接和嵌入技术[object linking and embedding(OLE)for process contrd,OPC]服务技术,满足了多协议条件下生产设备与MES系统的集成,实现了实时数据的采集与存储。1 PLC数据采集系统由于该汽车零部件装配车间的数据采集和控制为集散式控制结构,每个工位单独配备的PLC类型不同,给远程数据采集带来一定的困难。因此需要以远程主控PC为上位机,通过以太网对所有分散的下位PLC进行统一控制和调度[4]。通过物理接口(RS232、RS485、Ethernet接口)将上位机和设备中的PLC组成以太网。整个数据采集系统的拓扑结构如图1所示。系统中的生产单元为汽车零部件的组装件。在生产时,第一个工序为激光打标,为每个零部件附加一个唯一的二维码。该二维码可以被每个工位配备的扫码枪识别并把识别结果存入数据库服务器。在后续的工序中,每个部件的装配工艺及检测结果均与这个唯一的二维码对应,保证产品数据的唯一性。 生产设备中大部分工艺数据和检测数据及设备状态均存储在设备的PLC中,MES系统的生产数据及设备状态需要从PLC中实时去获取,当生产出现故障或者产品检验不合格时,MES系统会远程锁定当前故障设备或工序。 1.1 欧姆龙PLC的数据采集采用上位机采集欧姆龙PLC的数据需要遵循欧姆龙公司开发的工厂接口网络服务(factory interface network service, FINS) 通信协议,使用FINS指令作为通讯的核心支持Ethernet 、Controller Link 或串口连接 。FINS指令包括报文头、命令帧和响应帧[5],指令格式如图2所示。 FINS指令主要包括:数据区读/写;参数区读/写;程序区读/写;强制置位/复位;运行停止控制;时钟读/写和文件读/写[6]。指令的报文格式为:SB = ICF + RSV + GCT + DNA + DA1 + DA2 + SNA + SA1 + SA2 + SID + MRC + SRC + 数据类型 + 数据地址 + 通道号。当发送符合FINS格式的指令给PLC后,就可以实现与PLC的正常读写操作。读取点位的值时,要首先了解点位的数据区域(CIO,DM,WR等),数据类型(BIT,WORD等),通道数(欧姆龙PLC一个通道表示16位长的数据)。不同的数据区域和不同的数据类型会对应不同的指令代码。值的写入和读取类似,在发送报文的内容中加入要写入的值即可。程序设计流程如图3所示。1.2 三菱Q系列PLC的数据采集三菱Q系列PLC采用MESLSEC通讯协议,与欧姆龙FINS协议相比,MESLSEC通讯协议中减少了握手的交互,更简洁高效。该协议具有两种报文类型,分为二进制和ASCII两种格式[7]。本文主要采用ASCII格式,报文形式如图4所示。在与上位机进行通讯时,通讯报文中头部、副头部、网络编号/可编程控制器编号、请求目标模块I/O编号及请求目标站号均为默认值。需要考虑的是请求数据长度、指令/子指令和请求数据的内容(包括软元件代码,起始地址,个数等)[8]。其中读取元件值的子指令为“0401”;写元件值的子指令为“1401”,在报文尾部增加写入的数据部分即可[9]。1.3 西门子PLC的数据采集西门子S7-300/400系列PLC主要使用MPI协议和Profibus协议,但是协议内容不公开。可以利用OPC技术实现与PLC的通讯[10-11]。OPC技术无需关注具体的协议内容,硬件厂家会提供相应的OPC Server,这里只需开发实现OPC接口标准的客户端即可。OPC的接口原理如图5所示。西门子公司为S7300/S7400系列PLC提供的OPC Server接口集成在SIMATIC NET软件包中。安装好该软件后使用PC Station进行组态,建立OPC Server和CPU(PLC)的连接。将PLC中的程序下载,设置好访问点、属性、IP等连接参数后便可被客户端访问。OPC Server的数据结构从上到下依次为Server、Group、Items、Item。使用时首先要获取上位机运行的OPC Server,并连接Server,再添加要监控的Item,即可实现对数据的读写操作[12]。对Item项的监控采用异步监控方式[13],每一个Item在本地客户端和Server中都会有一个句柄用以标识,当PLC中对应的Item的值发生变化时,Server服务器就会将变化的各种数据参数传递给OPC Client,客户端会自动触发订阅该事件的方法函数进行传递[14],通过对参数的解析便可获得Item项的数据。OPC客户端的软件流程如图6所示。2 接口集成虽然生产线现场PLC种类繁多,通讯的方式也各不相同,但主要使用的功能均包括连接PLC和OPC Sever、读取数据、修改数据和关闭连接。因此可以通过定义一个公共接口,将各种通讯方式的具体实现方法封装为接口类,把这些功能都继承于该接口[15]。在具体使用时,根据条件实例化不同的接口,即可实现通讯的要求,通讯接口类的关系结构如图7所示。欧姆龙FINS、三菱MC以及西门子OPC技术的具体实现方法都封装与一个具体的类,每个类都继承于ICommunication接口,该接口具有Connect,Close,Read,Write四种方法。当要进行数据操作时,在PLCManager类中首先根据参数ID实例具体的接口,即可以实现数据操作。3 数据采集实例 在某汽车零部件装配车间,数据采集的第一步由扫码器扫描各个部件的二维码,上位机获取该二维码信息,并缓存。后续各工序的生产状态和检测结果由本文所开发的数据采集服务在后台完成,同时将采集到的数据与该二维码关联形成产品信息,最终存储在系统数据库中。后台服务的数据采集界面如图8所示。后台服务中同时也设计了PLC报警的逻辑点位和数据合格性判断条件,可以自动或者手动根据报警位置及产品是否合格实现设备的锁定和解锁,达到防止不合格品在生产线上流动的目的。4 结 语基于某汽车零部件厂家MES系统开发,本文开发了基于以太网的C/S结构后台数据采集服务功能模块。该系统在某汽车零部件装配车间实际使用,以峰值800 Kbps的速度同时采集10台自动化设备的PLC寄存器缓存数据,运行一个月状态稳定,无故障。表明该系统满足了生产线对生产数据实时采集、存储的需要,同时也实现了对生产线设备状态的监控。