施耐德电气(中国)有限公司,北京 100000
摘要:MES系统作为智能制造的核心系统之一,在离散制造业领域开始广泛应用。在MES系统中使用Data PLC,可以更好地实现订单下发、自动报工、作业指导和联动控制等,达到设备高效交互和生产稳定运行的目的。本文探讨了MES系统中的Data PLC的作用,对Data PLC的典型应用设计可靠的通讯接口和控制算法,并给出异常情况的处理措施。
关键词:智能制造;MES;Data PLC;订单下发;自动报工
1 Data PLC在MES系统中的作用
以汽车行业的焊装车间为例,可根据划分的生产区域设置多套Data PLC。在Data PLC中可存储一定数量的生产订单或过点申报信息,当MES服务器瘫痪或车间网络发生故障时,Data PLC还能够下发生产订单给工艺PLC,从而能够保证几个小时的生产。如果没有Data PLC,则车间网络或MES服务器有问题时,工艺PLC可能没有订单进行生产,从而造成巨大的停产损失。
Data PLC功能:1)生产订单的接收、存储、下发;2)过点申报数据的采集、存储、上报;3)来件识别和在线队列生成;4)ANDON信号的采集、声光报警控制、与机运设备的联动;5)工艺设备的作业指导和数据采集等。
2 Data PLC中生产订单接收和下发
为了实现生产订单数据的完整准确接收,建议在MES信息系统和Data PLC之间、在Data PLC和工艺PLC之间采用报文交互的方式进行订单数据的传递。同时,为了确保数据传递过程订单不丢失,建议采用双向握手的交互流程进行订单的请求、下发、接收、校验等。
为了确保对同一个订单的所有信息能够一次下发给PLC,避免PLC在不同扫描周期接收到不同内容,可在MES信息系统中把生产订单的各种信息组装成一个完整的String变量,MES信息系统通过OPC方式把这个数据变量写入到PLC中,从而实现生产订单信息的同时完整下发。在Data PLC中,编写订单请求下发的程序,并对接收的订单信息进行解析,然后在HMI上显示下发的订单信息的内容。MES信息系统和Data PLC程序之间通过标志变量和数据变量完成数据交互,通讯变量包括PLCFlag(BOOL类型)、PLCData(String类型)、SYSFlag(BOOL类型)、SYSData(String类型)。
当Data PLC检测到Data PLC的生产订单队列中订单数量不足时,则开始请求订单,把请求信息写入PLCData,然后把PLCFlag写为1,当信息系统读取到PLCFlag为1时,则再读取PLCData,对请求信息解析后得知请求订单的生产线号,则从信息系统中提取排序后的订单序列中的下一条要下发的订单,把订单内容组装后写入SYSData,然后把SYSFlag写为1,PLC读取到SYSFlag为1后,则把订单内容提取出来保存到PLC中的订单队列中,然后把PLCFlag写为0,信息系统读取到PLCFlag为0时则把SYSFlag也写为0,完成一次订单下发的流程。如果信息系统没有订单或连接数据库出错等,则把NOK的数据写入SYSData,同时通过Error Code(EC)告知PLC具体的错误原因,Data PLC过一段时间重新请求订单。
3 Data PLC中生产订单的队列管理
为了确保MES信息系统发生故障时现场还能维持生产,需要在Data PLC中缓存2小时或更多时间的生产订单。以60JPH的生产节拍为例,需要PLC中缓存的订单数量约为120个。生产订单队列的最大存储长度可为Max_size=200,在PLC中采用数组的方式进行存储。
订单队列采用循环队列的方式进行管理,采用先入先出的原则进行入队和出队,并可进行插单、删单、清空等操作。
对于循环队列,初始化建空队列时,令front=rear=0,每当插入新的队列尾元素时,尾rear指针增1;每当删除队列头front元素时,头指针增1。因此,在非空队列中,头指针始终指向队列头元素,而尾指针始终指向队列尾元素的下一个位置。判断队列空的条件为:if front=rear。判断队列满的条件为:if front=(rear+1)MOD Max_size。示意图如下:
图(a)是队列空的情况,图(b)是J1、J2、J3依次入队后的情况,图(c)是J2、J3删除后的情况,图(d)是J5、J6依次入队和J4删除后的情况。
在HMI的画面上,可以监控每个订单队列内的具体清单情况。可人工录入某个订单的具体信息,并插入到订单队列中,进行临时生产。可对选择订单队列中的某个订单进行删除操作。
采用循环队列,可以减少PLC程序中数据迁移的计算,降低PLC程序的扫描时间,提高队列管理的效率。
4 异常情况处理
4.1 Data PLC与MES通讯故障时处理措施
当Data PLC与MES服务器出现通讯故障时,Data PLC将根据存储在CPU数据内存中的2小时生产序列,继续安排生产。生产结果申报信息将存储在Data PLC的CPU数据内存中,最多支持200个过点申报事件。当通讯恢复后,Data PLC即向MES服务器请求新的生产序列,并上报需要申报的信息。在Data PLC的HMI上,可以监视将要执行的生产序列、已经下发的生产序列等。当Data PLC中的生产订单全部下发后,可以采用降级模式在Data PLC的HMI上人工添加生产订单,保持现场继续生产。
4.2 Data PLC与工艺PLC通讯故障时处理措施
当Data PLC不工作或者Data PLC与工艺PLC通讯故障时,工艺PLC可以采用降级模式生产,可人工在工艺PLC的HMI上添加订单,以维持现场的生产。过点申报信息可以人工记录后在MES信息系统或Data PLC中补录。
4.3 Data PLC的CPU模块更换后处理措施
当Data PLC的CPU模块需要维修更换或者PLC程序需要重新初始化下载时,则Data PLC中储存的生产订单数据可能丢失,这时可以通过MES信息系统与Data PLC之间的订单队列同步的接口进行生产订单的重新下发。当人工在Data PLC的HMI上点击同步按钮时,Data PLC会向MES信息系统发送订单同步请求,MES信息系统会根据工艺PLC提供的上线过点申报信息,把还没有上线生产的订单依次下发到Data PLC。用户也可在HMI上指定某个订单号后点击同步按钮,Data PLC会向MES信息系统发送订单同步请求,MES把该订单之后的生产订单依次下发到Data PLC。同理,如果发生因人为操作导致Data PLC中生产订单数据混乱的情况,也可先在Data PLC的HMI上进行订单队列清空操作,然后通过生产订单的同步功能实现MES信息系统与Data PLC的生产订单信息的一致性。
5 结语
Data PLC不但打通了工厂IT层到OT层的业务数据传递,而且为MES系统的稳定可靠运行发挥了非常重要的作用。通过采用带握手的交互报文的通讯方式,可以保证在任意底层通讯协议下的生产订单、过点申报等信息的传输的可靠性。通过采用循环队列进行生产订单和过点申报信息的处理,为基于PLC的生产订单的储存管理提供了科学高效的方法。针对各种异常情况的处理措施,也为MES系统的不间断运行提供了良好的运维手段。
参考文献:
[1]神龙汽车组织信息部.工业应用系统与PLC的接口规范.神龙汽车企业标准,2015(7).