汽车发动机装配线监控系统的设计与实现
2011-10-18王德权
王德权 吴 盼 黄 鹏
(大连工业大学机械工程与自动化学院,辽宁大连116034)
汽车发动机厂发动机装配线数据管理系统的数据采集是发动机生产的重要环节。质量数据的采集、查询直接影响发动机质量的改进、维护和追溯。针对这个要求,本文介绍利用OPC技术[1]和数据库技术为上海某公司开发的一套发动机装配线监控系统。本系统运用Visual C#编程语言编写[2],采用SQL Server 2000作为后台数据库[3]。
1 系统结构
如图1所示,该系统PLC采用SIEMENS公司的S7-300,所有PLC通过CP343-1T工业以太网中的交换机连接至OPC服务器[4]。OPC服务器上本监控系统以OPC技术实现PLC与PC的通讯,将PLC中的数据采集出来存储到OPC服务器中的SQL Server中。当每一台发动机下线时,数据从PLC中采集至OPC服务器,打印机自动打印该发动机号,双面LED屏幕即时更新日产量及年产量。采集到的数据随即被传给实时服务器。实时服务器和备份服务器装有SQL Server数据库,对数据进行存储。IIS服务器装有数据后处理的SPC软件,用于对实时服务器数据的查询、分析。当实时服务器中的数据量太大以至于影响到正常的数据存储以及查询功能时,可以将数据上传给备份服务器。SPC软件可以对实时服务器的数据进行查询分析,按日期查询合格和不合格数据,以工位查询发动机加工数据,质量数据图谱分析,各工位历史加工状态和报警频率等。本文侧重讨论监控系统如何采集数据并保存至实时服务器。
2 数据库的设计
本系统数据库主要设计如表1所示。
表1 数据库功能说明表
BaseData_tagTable是数据库中最主要的数据模板表,包含变量的所有信息,如变量标识、变量名称、变量长度、地址、工位号、数据类型、是否显示等。
“测量数据合格”表中存储发动机加工中产生的合格数据。当每台发动机下线时,把数据全部存储在测量数据表中,并且在索引表中增加一条该发动机数据的索引,以备后续SPC分析软件从索引表中进行查询。根据实际测量数据流程,先将数据存放在索引表中,然后从对应的索引表中将测量数据提取出来。因此,建立如图2的主外键关系,即合格数据来自合格数据索引,这样的设计既保证数据关系的正确,又避免数据冗余。
3 监控系统的实现
3.1 实时监控模块
该监控系统主要实现对生产线现场设备的实时监控、生产数据的采集及显示、报警的采集及显示。实时监控模块如图3所示。实时监控模块主要显示整个发动机装配主线的所有工位,并显示部分工位的状态。界面中工位的状态均有机床通电、下料堵塞、上料无件、工位生产、技术中断和循环开始状态;另外,若总成装配线上某个工位的状态为下料堵塞、上料无件或技术中断,则相应工位的工位状态显示闪烁。
程序设计中,定义一个自定义控件,即图3中小圈,或红或绿或者无颜色。此控件有以下重要属性:ColorNoSet一般为背景色,ColorSet为状态被激活时显示的颜色,ColorTagNameID为变量标识,ColorTagBit为该工位机床状态序号,从0到6共7个状态。比如工位OP020的机床状态变量标识为102010001,采集到的数据为4,然后将4和OP020的ColorTagBit分别作逻辑与运算,如果大于零,则重绘该控件。部分代码如下:
于是,各机床状态的颜色会被分别重绘,如图3。机床状态存储于MachineStatusView表中。
3.2 生产数据的采集及显示
总成装配线从机体上线到装配完成后下线共有从OP010到OP770的77个工位(Operation Panel,缩写OP),有手动、半自动和自动3种不同状态。自动和半自动状态的工位有机床状态和机床报警。有些工位有质量数据。每台发动机经过每个工位的时候,质量数据存储于该发动机下托盘中的Moby中,最后在下线工位通过OPC的接口读出,被一起传给实时服务器,经过拆分送入各表中。拆分功能主要由数据库存储过程来完成,主要有 PLC_InsertFromCoordinationFlag-VariableToWorksData等。
调试时可以用SimatiC.NET的OpcScout进行测试。在OPC Server上执行存储过程“创建变量测试文件OpcScout”,生成一个带有数据变量一切信息的数据表OpcScout_Item,将其导入记事本。然后将其文件类型改为OPP,打开此文件,可以查看监控系统与PLC的实际通讯状态以及PLC中的数据内容等[5]。
3.3 报警数据的采集及显示
每个工位有若干报警变量,如表1变量为工位OP090的140900001变量。每个变量由8条报警文本,如表2所示。采集到的报警变量数据和2的MSGBT次幂进行逻辑与运算,如果结果大于零,如报警变量140900001采集到数据64,64&(26)>0,则序号为1409000016的报警变量显示,背景为红色。如果64&(26)=0,报警解除显示,该报警背景为黄色,如图3下部。部分程序如下:
表2 报警文本表
对报警数据的存储由数据库PLC_AlarmInsert存储过程进行拆分并分别置放。对报警进行查询时需要对报警文本表和变量表BaseData_tagTable综合查询。依据NR和工位可以查询各个工位或者总线体的报警内容,并进行报警频率分析以及追溯,从而改进生产效率,提高生产质量。
3.4 上传数据到服务器
该模块处理生产现场中的突发事件,保证了加工数据不会丢失。OPC服务器用于采集质量数据并将之即时上传到实时服务器。但是当采集系统与实时服务器断开连接,采集到的数据会保存在OPC服务器本地临时数据库中,采集系统与实时服务器重新连接时可以将先前的数据手动上传至实时服务器。
3.5 按发动机类型生成报表
发动机生产线能够装配5种类型的发动机,因此要求按类型生成该发动机数据报表。本系统实现该目标方案如下:系统采集每个被定义地址内的数据,而不考虑该发动机是否有该加工数据。定义各发动机为1,2,4……16五个类型。GangTiType为能够产生该加工数据的发动机类型之和。数据模板表BaseData_tag-Table中每一条需采集数据位置的GangTiType需各自计算。定义发动机类型为“零件类型”,对“GangTiType&零件类型“与“零件类型”比较。如果相等,则输出该条数据,否则不输出。比如(1+4+8+16)&2不等于2,于是不输出该数据。
4 结语
该系统现在已实际应用于上海某汽车发动机厂。装配线发动机日产量达到每日380台以上。没有质量数据采集串位以及报警错误。并且经过10万台发动机的质量数据模拟测试,完全不影响对数据的后续的查询分析。该系统以OPC技术为基础,采集PLC中的数据并对其进行显示和存储,为后续SPC分析软件的查询提供数据支持。系统描述了该监控系统的总体结构及数据流程;机床加工状态数据的采集并且显示在界面上;加工数据的采集方法以及调试注意事项;报警数据的采集、显示原理和存储等内容。
[1]肖宏伟,肖健.OPC接口技术在工业控制中的应用[J].炼油与化工,2006(2).
[2]Simon Robinson Ollie Comes,等.c#高级编程[M].北京:清华大学出版社,2002.
[3]Michael Otey,Paul Conte.SQL Server 2000开发指南[M].北京:清华大学出版社,2002.
[4]刘晓阳.基于模板结构和数据库技术定制发动机装配线监控系统[J].组合机床与自动化加工技术,2008(1).
[5]刘丽,罗德凌.利用SQL Server实现数据导入和导出[J].长沙航空职业技术学院学报,2004(3):37-38.