Case conveyor into the palletizer, 12 accumulation zones, 1769 L33ER on v31. Every zone has a photoeye and a PowerFlex 525, and the program has 12 identical rung sets, Zone01_Run, Zone01_Eye, Zone01_Release and so on down the line.
Last week I bumped the release delay on zone 5 from 500ms to 800ms because cases were catching, forgot zone 6, and zone 6 pushed a case straight into the back of zone 5. I copied one zone and ran find and replace on the number to get the twelve sets, which I think is how they got out of step in the first place.
Is there a way to write the zone logic once so a change is one edit, without turning it into something the night shift can't read? And would you maybe do that with twelve calls to one block, because the night shift still has to be able to find zone 6 in it at 3am?
Seen this on every case line I've touched. Before the code though, is zone 5 catching because of the delay or because the transfer plate's worn? Run your hand along the edge.
plate's got a lip on it, a good sixteenth. Getting it dressed Friday. Still want one copy of the logic though, the delay isn't the only thing that's different between the zones any more.
One AOI for the zone, an array of zone UDTs, called twelve times. The rule "run if the next zone is clear" lives in the AOI once and the delay lives in each zone's UDT member so it stays per zone. Same thing in ST as a FOR over the array if you'd rather, but for a case line I'd keep it ladder. Not sure ST is what you want the night shift opening at 3am. One thing to check tomorrow: whether every zone really has the same rule, or whether zone 12 into the palletizer is different.
What mikko said, I'll fill in the shape. UDT Zone: Eye, Run, Release_Delay, Next_Clear, a timer. Zones[12]. AOI Zone_Ctrl with the rule in it, run if own eye clear, or next zone clear after the delay. Twelve rungs in ladder, Zone_Ctrl Zones[0] Zones[1], Zone_Ctrl Zones[1] Zones[2], and the last one takes the palletizer ready bit as its next zone. Night shift opens the AOI and sees the same rung they see now, once. Release delay per zone on the screen, no download to change it. There's a writeup on zone logic here: https://plctr.com/utilizing-plc-in-material-handling-and-conveyor-systems/
AOI and Zones[12] went in over the weekend stop. Twelve rungs in the routine instead of twelve rung sets, and the delay's a number on the screen per zone. Plate dressed Friday, zone 5 back to 500ms, no catching. Two shifts clean.
What bit us was twelve copies of one piece of logic and me editing a single copy of it. The AOI keeps the rule in one place and the per zone settings live in the array now, so there's nothing left to get out of step.
Zone 12 is different, mikko was right about that. Its next zone is the palletizer infeed on its own PLC, so Next_Clear comes over a MSG and there's about 100ms of lag on it I can't see a way round. Thanks carlh and mikko.
Figured zone 12 would be the odd one. 100ms over a MSG sounds right.