王磊 孙兰芳
摘要:介绍了汽车发动机生产企业智能化系统中动力总成制造执行系统(Power Train Manufacturing Execution System,PTMES)应用于发动机装配生产的工作原理,分析了发动机数据信息统计存在错传、漏传等问题的原因,针对性地在西门子S7-300系列PLC中建立了缓存程序,有效解决了数据信息错漏的问题,同时建立报警提醒,降低了发动机追溯数据无法查询的风险,极大地改善了数据信息的稳定性。
关键词:PTMES;PLC;数据漏传;缓存
中图分类号:TP274;U466 文献标志码:A 文章编号:1671-0797(2023)17-0009-04
DOI:10.19514/j.cnki.cn32-1628/tm.2023.17.003
1 PTMES简介
1.1 PTMES概念
PTMES是动力总成制造执行系统Power Train Manufacturing Execution System的简称,是一套面向制造企业车间执行层的生产信息化管理系统。它建立了上层的计划管理系统与底层的工业控制系统之间的联系,可为操作人员与管理人员提供计划的执行、跟踪功能,并显示所有资源(人、设备、物料、客户需求等)的当前状态。
PTMES可以为企业提供包括制造数据管理、计划排产管理、生产调度管理、质量管理、库存管理、人力资源管理、工具工装管理、工作中心/设备管理、成本管理、项目看板管理、生产过程控制、底层数据集成分析、上层数据集成分解等在內的管理模块[1],为企业打造一个可靠、全面、可行的制造协同管理平台。
汽车发动机生产制造过程中,PTMES的数据采集传送主要包括以下几个方面:
1)发动机生产线自动化数据:生产线上的各个工位通过设备和传感器等自动采集数据,包括零部件装配情况、产品性能参数等,这些数据通过自动采集系统传送到生产管理中心进行实时监测和分析。
2)质检数据:质检部门针对汽车发动机进行检测和测试,通过数据采集仪器记录检测结果,实时传送到生产管理中心进行分析和处理。
3)物流数据:物流部门通过RFID等物流管理系统对生产过程中的各个环节进行追踪和记录,包括原材料采购、仓储和运输等环节的数据采集和传送。
4)工人作业数据:对生产线上的人工进行工时、操作记录等数据采集,通过工业互联网将其及时传送到生产管理中心进行分析和优化。
通过以上数据采集传送,企业可以建立智能化生产管理系统,从而实现生产过程数据信息的可追溯和产品质量控制,提高生产效率和产品质量。
1.2 PTMES的生产线自动化数据采集
PTMES采集NSE发动机(小型高功率发动机)装配线的生产数据信息包括:发动机的追溯号、精确子零件号(目前同追溯号)、钢印号、在每个工位的生产时间、上线时间、下线时间等。NSE发动机装配线从发动机上线工位OP10到最后一个工位OP1670(托盘清洗工位),共计167个加工工位,本文介绍的是PTMES在发动机生产线的自动化数据采集。
PTMES与西门子PLC[2]的通信主要是由OPC Server[3]这个应用软件执行,在计算机上通过配置应用软件参数与PLC进行数据交换。在这个项目中,PTMES主要采集PLC程序中数据块DB270中的数据,共计68字节。
PTMES会对每一台新装配的发动机在OP10上线工位建立一个单独的文件夹(文件夹的命名是发动机追溯号、钢印号等),发动机在整条装配线装配时,每个工位的数据信息都填充到这个文件夹中。如果PTMES在OP10工位没有采集到相关的数据信息,则无法建立文件夹,后续工位的数据信息也就没有存放的位置,从而将导致发动机数据信息采集不完善。而发动机下线工位OP1650主要是发动机下线时的装配数据信息的汇总。
2 发动机装配数据信息采集中的故障描述及分析
发动机装配线在统计发动机数据信息时,偶尔会发现PTMES记录的发动机号缺失,导致装配线统计只能以人工记录为准。
为了确保发动机每天上、下线信息的准确,必须确保OP10发动机上线工位与OP1650下线工位信息100%传输到PTMES中。通过对缺失数据信息状况的分析,图1所示三种情况可能存在发动机数据信息漏传。
1)在OP10与OP1650发动机上、下线工位,PTMES没有成功采集到当台发动机的数据信息,系统中无法查询发动机信息(以下简称“无信息”),判断为此台发动机信息已丢失,此时发动机整个上、下线的信息就会少一台。
2)OP10无信息,OP1650有信息。在经过OP1650工位后,PTMES会自动把OP10的信息补上去,但是上线时间和下线时间是一样的,如果当天上线装配的发动机在第二天下线,则当天上线的发动机会少统计一台,第二天上线的发动机会多统计一台的产量。
3)OP10有信息,OP1650无信息。在发动机成品报交时,系统会自动检测补上数据信息。
根据以上数据信息采集中的故障描述,首先要保证OP10上线工位的数据信息成功上传,即在本工位的PLC中建立一个数据缓存程序,避免发动机数据在本工位因网络延时等原因而发生错传、漏传等现象。
3 发动机数据信息上传故障的解决方案
发动机数据信息缺失原因分析:发动机数据信息没有成功上传到PTMES主要是发动机数据信息在西门子PLC中保持的时间过短、网络故障等通信不正常,导致公司的PTMES没有采集到数据信息。
理想方案是解决网络通信卡顿、延时等问题,使其始终保持网络畅通[4],但导致网络通信不正常的原因众多,要完全解决该问题可能需耗费大量的人力、物力。根据目前出现的故障分析,解决上述问题的另一个有效方法是在PLC程序中建立数据缓存程序,发动机数据信息经过缓存区域,再依次上传到PTMES中。
4 PLC程序中增加数据缓存功能
在西门子S7-300系列PLC程序中添加新的功能FC11、FC12、FC222、FC230及数据块DB111(缓存数据块)。PLC中编写的缓存程序的主要功能:把发动机数据信息(共68字节)依次传送到PLC程序中的一个固定存储区域DB111(容量设为存50条)进行数据信息保存。PTMES与PLC网络通信正常时,缓存区域的数据信息会被迅速传送到PTMES中;在通信不正常时,PLC缓存区域中的发动机数据信息会不断逐条累加,当信息缓存数量达到20条时,会触发PLC报警,提示设备维修人员对网络通信接口信号Data Receive By Host及其他影响网络通信的故障进行处理;待网络通信正常后,PLC程序将之前缓存的发动机数据信息按照先进先出的原则逐个发送到数据接收位(DB270数据块)中,供PTMES进行数据采集,如图2所示。
4.1 功能FC11为数据缓存的主控制程序
1)利用PLC与PTMES上层网络的I/O通信接口信号Data Receive By Host(DB270.DBX1.7)与Data Ready(DB270.DBX2.0),并根据通信功能,使每台发动机信息在上传时都要进行一次“0”到“1”的跳变。
(1)PTMES的数据接收信号(现在PLC可以把发动机数据信息写入PTMES):
Data Receive By Host置“1”,Data Ready置“0”。
(2)PLC通过OPC协议把发动机数据信息写入PTMES时:
Data Receive By Host置“0”,Data Ready置“1”。
(3)信息写完后,PTMES反馈信号给PLC:
Data Receive By Host置“1”,Data Ready置“0”。
2)在PLC程序中,当前数据信息传送到内部缓存区域,与缓存数据传送到PTMES,两个执行动作互锁,不在同一时间进行传送,避免传送干扰。
3)在PLC程序中,发动机数据信息先集中到数据DB110中,再通过功能FC12把DB110中的数据传送到DB111中。
4)通过功能FC230把DB111中的数据传送到DB270中,供PTMES采集。
5)在PLC程序中,设定缓存超过20条时,启动报警提醒人工故障检修;缓存超过50条后,信息有溢出并丢失风险。
4.2 功能FC12为数据传送程序
发动机在当前工位装配合格放行时,依靠功能FC222每次位移两个字节的数据,功能FC12会把DB110中68个字节的信息顺序位移到缓存数据块DB111中。例如,第一组发动机数据从DB110中位移到DB111數据块的0~67字节(此时缓存数据的指针指向DB111.DBB68处)中:
1)PLC与PTMES网络通信正常时,发动机数据信息正常被采集,此时缓存数据的指针将减去68字节,指向DB111.DBB0处,则下一台发动机的数据将继续传送到DB111数据块的0~67字节中。
2)网络通信不正常时,发动机数据信息无法被采集,此时缓存数据的指针将从DB111.DBB68开始向下68字节,作为第二台发动机的缓存数据,依次类推,最多可存储50台份的发动机数据信息。
4.3 功能FC222为数据位移子程序
数据传送控制功能FC222的参数说明:
Source_DB_ID:源数据块;
Source_R pointer:源数据块内部的指针;
Target_DB_ID:目标数据块;
Target_W pointer:缓存数据的指针;
ERROR_ID:检测数据块的异常报警。
每个扫描周期中,源数据块中指针指向的数据(2个字节),位移到目标数据块中指针指向的位置。
4.4 功能FC230为数据传送程序
1)把缓存数据块DB111中的前68字节数据传送到数据块DB270中,供PTMES进行数据信息采集。
2)PLC与PTMES通信不正常时,缓存数据块DB111累积存储多台发动机的信息,当通信正常后,缓存中的发动机信息按先进先出的原则逐个位移到DB270中,供PTMES采集。缓存在位移出第一台发动机信息后,之后的发动机信息会依次向上位移68字节,直到所有数据信息被PTMES采集完。
4.5 设备运行调试及验证
1)在OP10发动机上线工位中进行测试,当通信正常时,发动机信息经过缓存区域后直接被PTMES采集;当通信不正常时,发动机信息会依次存储到数据缓存区域中,同时缓存区域内存储50台份发动机信息后,缓存数据指针指向DB111.DBB3400,将不再存储发动机信息,之后的发动机信息直接丢失;当网络通信再次恢复正常后,缓存中的发动机数据信息会按照先进先出的原则,依次发送到DB270中,供PTMES采集。
2)建立缓存50台发动机信息的缓存区域并实测,PLC的扫描周期稳定在6~202 ms,PLC运行正常。
3)NSE发动机装配线OP10和OP1650两个工位的PLC程序改造后,经过半年的实测,设备运行正常,因数据信息丢失发动机原始数据信息追溯不到的风险得到了有效控制,保证了发动机生产信息的精确追溯。
5 结束语
西门子PLC缓存程序在发动机装配生产中的应用能够有效解决工业产品在生产中由于网络通信不稳定造成的数据信息丢失问题,具有较高的使用价值和推广潜力。
[参考文献]
[1] 李崇,倪晓光,李蒙蒙.汽车装配制造执行系统(MES)的功能设计与描述[J].制造自动化,2011,33(23):155-156.
[2] 李道霖.电气控制与PLC原理及应用[M].北京:电子工业出版社,2005.
[3] 李建阳.西门子PLC与上位机通信的多种解决方案[J].工业控制计算机,2018,31(1):151-152.
[4] 彭晓明.基于计算机网络通信的技术故障成因及处理对策分析[J].电子技术与软件工程,2014(1):50.
收稿日期:2023-02-15
作者简介:王磊(1984—),男,江苏沛县人,工程师,主要从事电气技术支持工作。