作者:Tom1物料跟踪一、什么是物料跟踪MTR...............................................31.1、物料跟踪功能的简要描述...................................31.2、示意图...................................................................4二、物料跟踪的详细描述.................................................42.1、跟踪区的定义.........................................................42.2、头尾位置的定义.....................................................52.3、零点的定义.............................................................52.4、同步.........................................................................52.5、物料输入.................................................................52.6、移出物料.................................................................6三、如何在PLC中实现物料跟踪...................................63.1、数据的存储.............................................................63.1.1、为每一块跟踪的物料建立一个数据存储区。....................................................................................63.1.2、为每一块跟踪的物料建立一个虚拟辊道数据存储区。.....................................................................73.1.3、为每一个辊道建立一个数据存储区。.........73.1.4、为全线建立一个跟踪命令状态存储区。.....73.1.5、为所有的光栅或HMD建立数据存储区。..73.2、数据的计算和管理.................................................73.2.1、数据接收.........................................................7作者:Tom23.2.2、数据移动.........................................................83.2.3、数据排序.........................................................83.2.4、跟踪区管理.....................................................93.2.5、物料头尾索引.................................................93.2.6、物料数据是否接收并且正确.......................103.2.7、管理虚拟辊道数据.......................................103.2.8、物料位置计算...............................................113.2.9、同步物料位置...............................................123.2.10、固定数据.....................................................12四、问题讨论...................................................................13作者:Tom3一、什么是物料跟踪MTR物料跟踪是一个对板坯(slab)/钢板(plate)的登记、注销和跟踪同步的过程。它的主要作用就是为自动化程序提供当前和下一步动作的依据。有了它,相当于给程序加上了眼睛,使程序能够“看到”正在发生和事和将要发生的事,从而能够作出相应的动作。在西门子公司的SIROLL技术(专门针对冶金轧制自动化,它由多个LFE逻辑功能单元组成)中,物料跟踪是其中最重要的LFE之一。1.1、物料跟踪功能的简要描述物料跟踪功能的核心任务就是跟踪生产线上的物料。它有下列任务:跟踪并显示物料的ID和位置处理和计算可往复轧制区的道次触发其它逻辑功能的设定值申请为所有的逻辑功能提供物料的头尾位置触发新物料的设定值计算为HMI提供物料的显示信号允许物料仿真物料跟踪同步为过程自动化提供物料跟踪数据作者:Tom1.2、示意图二、物料跟踪的详细描述2.1、跟踪区的定义将一条生产线分成若干个跟踪区是十分必要的。每个跟踪区都有自己的特性,这样可以根据每个跟踪区的特性进行个别处理。4作者:Tom52.2、头尾位置的定义一个物料的头尾不依赖于轧制方向和传送方向,而是固定不变的。但是物料的移动和头尾位置是靠物料跟踪程序根据HMD、轧制力、速度、脉冲编码器等信号计算出来的。2.3、零点的定义一个生产线应该定义一个唯一的零点。而物料的位置都是相对于这个零点来说的。这个零点同时也是所有设备的零点。2.4、同步物料的移动和头尾位置是靠物料跟踪程序根据速度、脉冲编码器等信号计算出来的,但是这个计算还是有偏差的。怎样消除偏差,这里就需要同步计算。所谓同步就是根据生产线上的特殊设备或者信号来重新定位物料位置。这些特殊的信号包含HMD、轧机轧制力、光栅等。它们具备同样的特性,就是位置固定。这样,一旦物料进入这些特殊的信号所在的位置范围内(可定义),那么就可以根据这些特殊信号的上升/下降沿来更正物料的头尾位置。如果需要,还可以根据这些信号重新计算物料的长度。2.5、物料输入当新的物料进入生产线,L2会将该物料的信息发过来,跟踪程序作者:Tom6接收这些信息并检查其正确与否。如果正确将其存储起来,否则发信息告诉L2信息有误。操作员也可以在L2有问题时自己手动输入新物料的信息。2.6、移出物料当物料移出生产线时,程序会自动将其移出。操作员还可以根据实际自己动手移出某些物料。三、如何在PLC中实现物料跟踪通过上面的介绍我们知道,其实物料跟踪主要的任务就是对数据进行计算和存储,它所涉及的逻辑部分并不多。因此,如何在PLC中实现物料跟踪就变成如何在PLC中进行大量的数据计算和存储上。在SIEMENS的STEP7中,SCL编程语言恰好满足这种要求。所以,我们主要的编程都集中在SCL中。下面就如何使用SCL实现物料跟踪进行简要介绍。3.1、数据的存储3.1.1、为每一块跟踪的物料建立一个数据存储区。它应该包括一块物料的所有相关信息。例如:物料ID(唯一的);物料调入\输出时间;物料的长、宽、厚;物料的X\Y方向头尾位置;从二级接收的信息和发送给二级的信息等。因此建立一个以UDT定义的数据类型为单元的数组数据块是比较合适的。可以在UDT中定义上面所介绍的信息,而数据块中单元的数目取决于整作者:Tom7个生产线上能够存储的最大物料数。3.1.2、为每一块跟踪的物料建立一个虚拟辊道数据存储区。它应该包括该物料所占用的辊道的开始、结束位置,长度和第一个和最后一个电机。这样,对物料的控制与管理就转化为对该物料占用的辊道区域内的辊道的控制和管理。建立数据存储区的方法同上。3.1.3、为每一个辊道建立一个数据存储区。它应该包括辊道所有的命令、设定和状态。例如:启动、停止、速度设定、手动、自动等。这样,就可以实现对每个辊道的控制。数据存储区的建立方法同上。3.1.4、为全线建立一个跟踪命令状态存储区。它的作用就是管理全线所有的物料。例如:某个跟踪区中有那些物料,那些物料应该进行什么动作等。3.1.5、为所有的光栅或HMD建立数据存储区。他应该包括全线所有的光栅或HMD的状态,为以后的同步做准备。例如:某个光栅的True和False状态,上升沿或下降沿等。3.2、数据的计算和管理数据的计算和管理应该包括以下功能。3.2.1、数据接收它应该能接收来自L2或者其它跟踪区的物料数据,并将其存储起来。IF(Fnc_PDT[31].Plate_ID0)THEN接收到新的物料作者:Tom8Fnc_PDT[31].Plate_Length:=Fnc_PDT[31].PDI.Plate_Length;PDI来自L2的数据IFFnc_PDT[31].Plate_Length4.0THENFnc_PDT[31].Plate_Length:=4.0;END_IF;Fnc_PDT[31].X_Pos:=Fnc_PDT[31].Plate_Length+0.5;Fnc_PDT[31].Tail:=Fnc_PDT[31].X_Pos-Fnc_PDT[31].Plate_Length;Fnc_PDT[31].X_Final_SP:=198.0;Fnc_PDT[31].Treat_Speed_SP:=0.0;Fnc_PDT[31].X_Pos_Rest:=0.0;END_IF;当有新的物料来时,它总是被存储到31号索引区中。3.2.2、数据移动当有数据删除时,需要将被删除数据的空白区填入新的数据。党有新的数据加入时,需要将新的数据填入数据存储区内。FORIDX:=1TO30DOIF(Fnc_PDT[IDX+1].Plate_ID0)AND(Fnc_PDT[IDX].Plate_ID=0)THENSource_Data:=Fnc_PDT[IDX+1];Dest_Data:=Fnc_PDT[IDX];Temp_INT:=BLKMOV(SRCBLK:=Source_Data,DSTBLK:=Dest_Data);Fnc_PDT[IDX+1].Plate_ID:=0;Fnc_PDT[IDX+1].Plate_Length:=0.0;Fnc_PDT[IDX+1].X_Pos:=0.0;Fnc_PDT[IDX+1].Tail:=0.0;Fnc_PDT[IDX+1].Speed_SP:=0.0;Fnc_PDT[IDX+1].X_Pos_Rest:=0.0;EXIT;END_IF;END_FOR;3.2.3、数据排序应当将存储区内数据按照位置进行排序,永远保证物料位置靠前的数据存储也靠前。这样可以方便以后的数据管理。例如,数据存储区中1到30存储着30块物料的数据,那么1号区域中的数据就是位置最靠前的物料的数据。FORIDX:=30TO2BY-1DOIF(Fnc_PDT[IDX].Plate_ID0)AND(Fnc_PDT[IDX-1].Plate_ID0)AND(Fnc_PDT[IDX].X_PosFnc_PDT[IDX-1].X_Pos)THEN相邻数据为不为空,而且后面物料的位置比前面物料的位置更靠前作者:Tom9GCP:=1;FORIL:=(IDX-1)TO1BY-1DOIF(Fnc_PDT[IDX].X_PosFnc_PDT[IL].X_Pos)THENGCP:=IL;EXIT;END_IF;END_FOR;//GoodpositionforchangeSource_Data:=Fnc_PDT[IDX];Dest_Data:=Fnc_PDT[40];Temp_INT:=BLKMOV(SRCBLK:=