MartB
Lifetime Supporting Member
Product tracking based on time and position.
I'll be using a 1769-L16ER-BB1B processor. There will also be an HMI involved, but it will be for display purposes only (data will also be fed into our plant metrics system).
The scenario:
Products are loaded into a curing oven (thermal) which is essentially a continuous conveyor. An encoder tracks movement and speed of the oven. The oven conveyor can stop/start several times during the curing process.
The oven has 4 thermal zones which are individually controlled (by separate controllers external to the PLC).
The oven can accommodate approximately 1500 products. Potentially they could all be different product ID's (ID's are supplied by loading robot in the form of a string).
The requirements:
Track the position of each product in the oven.
Record the time each product spends in each zone.
Warn if the product is approaching max time in a zone.
Alarm if the product exceeds max time in zone.
During the unload process, pass the product ID and time spent in each zone to the next machine.
Initially I was thinking of just loading a FIFO for each Zone which would simply move the product through the oven.
However, I've also learned that the oven does not have a continuous supply of product and there may be gaps in the system.
So would it better to have a time based FIFO? probably not as the oven can stop or start many times during the curing process (due to downstream equipment).
So would it be better to do either or?
i.e. If product is loaded, and the encoder has moved on 'one product space' then index the FIFO
OR
If no product is loaded, and 'some' time has elapsed and the encoder has moved on 'one product space' then index the FIFO
?
Then there is the problem of tracking the time per product. I've never done anything using time comparison before. Can I just time stamp the product somehow as it enters the system and load that into a FIFO?
How can I compare current time in the system to see if I'm approaching max time?
I'm still spitballing ideas here, but I'm willing to bet someone has already done
something similar and can help guide me in the right direction.
I'm just having trouble deciding which is the best way to achieve a clean and dynamic solution. And by dynamic I mean will work regardless of oven loading (there could be several gaps in the oven, or several stops in the cycle).
Any ideas or suggestions would be most welcome.
Thanks.
I'll be using a 1769-L16ER-BB1B processor. There will also be an HMI involved, but it will be for display purposes only (data will also be fed into our plant metrics system).
The scenario:
Products are loaded into a curing oven (thermal) which is essentially a continuous conveyor. An encoder tracks movement and speed of the oven. The oven conveyor can stop/start several times during the curing process.
The oven has 4 thermal zones which are individually controlled (by separate controllers external to the PLC).
The oven can accommodate approximately 1500 products. Potentially they could all be different product ID's (ID's are supplied by loading robot in the form of a string).
The requirements:
Track the position of each product in the oven.
Record the time each product spends in each zone.
Warn if the product is approaching max time in a zone.
Alarm if the product exceeds max time in zone.
During the unload process, pass the product ID and time spent in each zone to the next machine.
Initially I was thinking of just loading a FIFO for each Zone which would simply move the product through the oven.
However, I've also learned that the oven does not have a continuous supply of product and there may be gaps in the system.
So would it better to have a time based FIFO? probably not as the oven can stop or start many times during the curing process (due to downstream equipment).
So would it be better to do either or?
i.e. If product is loaded, and the encoder has moved on 'one product space' then index the FIFO
OR
If no product is loaded, and 'some' time has elapsed and the encoder has moved on 'one product space' then index the FIFO
?
Then there is the problem of tracking the time per product. I've never done anything using time comparison before. Can I just time stamp the product somehow as it enters the system and load that into a FIFO?
How can I compare current time in the system to see if I'm approaching max time?
I'm still spitballing ideas here, but I'm willing to bet someone has already done
something similar and can help guide me in the right direction.
I'm just having trouble deciding which is the best way to achieve a clean and dynamic solution. And by dynamic I mean will work regardless of oven loading (there could be several gaps in the oven, or several stops in the cycle).
Any ideas or suggestions would be most welcome.
Thanks.