I’m interested in advice on how I might approach a problem:
An assembly machine has 20 stations. Parts move on pallets through the stations, and at each station a component may be added (depending on the BOM/Recipe) and then a test is conducted. If the part fails at any point then no more components are added to the pallet and all the parts on the pallet are scrapped at the last station.
A recipe for the final assembly can call for components to be added at all of the stations or just some of the stations. And, the component added at each station can be one of hundreds of different available components.
If a pallet is marked “bad”, it travels to the last station and all the components are sucked off into a scrap bin.
So for example, If stations 1-5 add components A-E respectively, a test failure at station 1 makes one scrap unit of “A”, but a failure at station 4 will scrap out one each of A,B,C,D.
The question at the end of the shift is “how much scrap of each component did we have and what station did it come from?” The cycle time is about 3 seconds and the entire finished assembly will fit in the palm of your hand, so there are little parts flying around pretty fast. Manually tabulation is impossible.
I know that all parts start at station 1 and they all finish at station 20, and I know which stations are running and what component they are adding, and I know if they pass or fail the test at each station.
I’m a PLC/Automation guy with limited experience in developing solutions in Ignition. I’m curious if anyone has a high-level suggestion of how they might approach this. I’m thinking about using the PLC to dynamically build an array of components at each station, and then when there’s a failed test I’d use that array to load a FIFO and use the SQL Bridge to unload that FIFO into a db table whenever I detect that it’s not empty, but I’m curious if you ppl who are more familiar with Ignition have some suggestions for an approach that is less focused on the PLC……something that I might not see. Would you have gateway scripts for each different station and do something in scripting?