作者:张毅
在自动化控制过程中,PLC由于具有可靠性高、运行稳定、功能齐全、并且程序编写相对简单等优点而被广泛应用。本文在分析了生产需求和现场条件后,开发了基于PLC的多工艺调度方法,降低了控制系统的成本,实现了较高程度的自动化生产。
1 多工艺调度需求分析
1.1 现场设备及工艺简介
根据阳极氧化工艺流程及对该企业产品的需求,现场生产设备共有28个槽位,1个挂件位,1个卸件位,共30个工位。在生产过程中,工件的移载是由两个行车完成,行车上装有吊钩负责工件的起降运动,行车的前后运动和吊钩的升降运动分别由两个电机拖动。行车的行程范围及现场槽位的布置如图1所示。
由于产品的多样性,该生产线可实现4套工艺:硬质氧化1、硬质氧化2、普通氧化和铬酸氧化。各工艺所经过的工位号各不相同,但是各工位所需处理时间确定,各工艺流程如表1所示。其中,括号前的数字代表工位号,括号里的数字代表该工位的处理时间,单位为min。1#工位和30#工位是手工操作位,时间不计入自动控制系统。
1.2 自动控制系统硬件结构
该自动控制系统选用PLC作为现场控制设备,上位机作为中央控制系统实现工艺参数的输入、数据采集和现场监控。根据工艺参数的复杂性、行车的工艺流程、多工艺并行的要求,对PLC的现场控制设备采用PROFIBUS-DP通信建立主从站结构,PLC S7-300作为主站,两个PLC S7- 200作为从站,分布于两个行车上。
2调度方法设计
2.1 调度流程
多工艺调度是依靠PLC程序实现的,调度流程可描述为:通过上位机选择工艺并输入工艺参数,工艺开始后,上位机将工艺指令下达给主站PLC S7-300,由主站PLC作出工艺调度运算,再将指令下发到相应的从站PLC S7-200.执行工艺生产。
主站PLC的调度运算包括现场资源抢占分析、多工艺指令存储和调取等关键问题。
2.2 资源抢占分析
依据阳极氧化生产线的现场设备和工艺特点,多工艺同时运行时须确保各工艺相互不冲突。由于各工艺运行时行车和处理槽为共用设备,因此在多工艺生产时将有可能出现公共资源抢占的问题,如两工艺同时调用同一个行车,或者两工艺同时占用同一个工位,这必将造成工艺冲突,使生产无法正常进行,这是多工艺调度所要解决的关键问题。
为解决资源抢占问题,需要在工艺开始之前进行资源抢占分析,做好预判,防止在多工艺运行中发生冲突。
2.2.1 行车资源抢占分析
行车作为工件的移载工具,是整个系统中调用最为频繁的,当新指令下发后,需要行车将工件调往相应的指令工位;工件开始处理时,行车闲置,此时其他工艺可以调用行车。为实现预判,将行车资源以时间轴上延拓展开的方式进行算法设计,该算法设计包括时间轴的建立、时间轴的推移和时间轴与运算。
(1)时间轴的建立。每个工艺都将调用两个行车,而两个行车的调用是相对独立的,因此在进行行车资源分析时需将这两个行车分别分析,即要建立对应行车1和行车2的两条时间轴。时间轴是一条连续的资源占用时间节点轴,因此在PLC S7-300的位存储区(M区)开辟了连续的存储区域,各工艺时间轴存储区域如表2所示。
时间轴采用了0和1变量用以区别行车的占用与闲置状态,设计方法如下:各工艺的时间单位均为min,行车每次调用时间为1min,那么在相应的时间轴M区域内,以1个位代表1min,该位的状态为1,则表示这1 min行车被占用;该位的状态为O,则表示这1 min行车闲置。
时间轴的建立过程:当上位机完成参数设定、选定工艺并开始该工艺后,该工艺的参数将下发到主站PLC S7-300,自动生成时间轴。以硬质氧化1为例,当参数下发,以12#工位为界,12#工位前的时间参数建立行车1时间轴,12#工位后的时间参数建立行车2的时间轴。行车1的时间轴输入是按11#工位至2#工位的顺序,先把M300.O置l,再采用右移指令输入,如11#工位时间为n,则时间轴向右移动n+1位,移出的空位用O补充,再次将M300.0置1,以此循环,直至将2#工位时间参数输入。那么行车1的时间轴就为:
行车2的时间轴输入顺序是从29#工位到13#工位,前12个工位时间全部输入为o。那么行车2的时间轴为:
(2)时间轴移动。随着该工艺的执行,时间轴应该跟随实际情况动态变化。以硬质氧化1为例,当行车1被调用时,行车1和行车2时间轴即向左移动一位,当工件进入指令工位后,在PLC程序中设置一个计时器,每过1 min,行车1和行车2时间轴向左移动一位,移出的空位用O补充,当工件进入12#工位,行车1自动回到挂件位,行车1的时间轴就全部为0。行车1调用时,行车2时间轴的移动过程与行车1-样,行车2调用时,行车l的时间轴已经为0,不再左移,只有行车2时间轴移动。该工艺执行完成,行车1和行车2的时间轴均为0。
(3)时间轴与运算。时间轴作为行车资源抢占分析是通过与运算实现的,即当新工艺开始时,如果已有工艺正在执行,那么就将该工艺的时间轴与已在执行工艺的时间轴逐位进行与运算,若结果全为0,则行车资源不冲突,可以开始新工艺;若结果存在1,则行车资源冲突,不能开始新工艺。
2.2.2工位资源抢占分析
工位的抢占情况即为两个工艺需要使用该工位的时间有重叠部分,为解决这一问题,则每个工位需要两个整数型数据(4个字节)记录该工艺各工位占用的起止时间,为留有一定的裕度,在PLC S7-300 M区各工艺的时间节点存储区域为:硬质氧化1,MW900~MW10 56;硬质氧化2,MW1100~MW1256;普通氧化,MW1300~MW1456;铬酸氧化,MW1500~MW1656。
以硬质氧化1为例,各工艺工位起止时间存储方式如下:2#工位为第一个自动处理工位,处理时间为1min,则其开始时间为0,存储于MW900,结束时间为1,存储于MW902;3#工位的处理时间为1min,则其起止时间为1和2,分别存储于MW904和MW906;若该工位处理时间为O,则其起止时间都存为O,以此类推。与时间轴一样,起止时间也是随时间变化的,当工件进入某一工位开始处理时,每过1min,该工艺所有工位起止时间均减1,直至为O。
工位资源抢占分析就是用各工位起止时间作交集运算实现的,当新工艺开始时,若已有工艺正在执行,就将各工位对应起止时间求交运算,若全为空集,则没有工位冲突,可以开始新工艺;若存在交集,则有工位冲突,不能开始新工艺。
2.3 多工艺指令存储和调取
2.3.1指令存储
在上位机上设定指令参数并下载到主站PLC中,必须确保各工艺指令相互独立,因此,应用堆栈的数据结构特性存储多工艺指令。堆和栈是两种数据结构,但都是数据项按序排列的数据结构。在该运算中所应用的并非原本意义的堆栈,而只是堆栈按序排列的数据特性,即在PLC S7-300 M区开辟连续的存储区域按序存储各工艺指令:硬质氧化1,MW500~MW579;硬质氧化2,MW600~MW679;普通氧化,MW700~MW779;铬酸氧化,MW800~MW879。将各工艺从2#到29#工位时间参数指令按顺序分别存储于各自的存储区域,该方式的优点是各工艺指令互不影响并且各自连续,在多工艺并行时,既不会造成误操作其他工艺指令,也保证了该工艺指令执行的连续性,避免发生遗漏指令的错误。
2.3.2指令调取
在多工艺并行时,各工艺指令的调取也应该相互独立,当满足工艺指令调取条件时,则调取该工艺相应的指令,并记录该指令位置,再次调取该工艺指令时能准确调取下一指令,而其他工艺指令不被调取,保持记录状态。
在各工艺执行程序中各设置一个指针变量,工艺开始时,指针变量指向该工艺初始指令地址,当调取条件满足时,就把地址中的指令下发,指针变量通过运算,自动指向下一指令地址,并保持记录,直到该工艺调取指令条件再次满足,以此循环。当该工艺执行完毕后,指针变量又重新指向初始指令。这个过程的PLC程序段如下:
3结束语
全面分析了生产系统的现有资源和生产需求情况,开发了基于PLC的多工艺调度方法,降低了控制系统的成本,且实现了较高程度的自动化生产。基于该调度方法的生产控制系统已投入使用,极大地提高了生产效率。
4摘要:为了提高生产效率,提出了基于PLC的多工艺调度实现方法。结合工艺参数,建立各工艺时间轴模型用以调度分析,针对多工艺并行过程中指令复杂的问题,在程序开发过程中应用了堆栈按序排列的数据结构特性,有效地实现了指令的连续性,并应用指针变量作为取指令的方式,解决了各工艺之间独立性的问题。应用结果表明,该方法有效地解决了多工艺调度的问题。