Batch Correction with Discrete (on/off) valve

I think your method might be better i.e subtract final total count from valve-off counts to get the offset to use.

The attached PDF has my method (count pulses after valve off until stop to estimate in-flight); I had to add a fudge factor of 1 count when using that estimate. Also, this seems way to complex.

LAD 3 models a flowmeter pulse for a (Cv)-fast-opening valve that takes about 4s (4k scan cycles) to go between full open to full closed in either direction.

I'll take a look at this in the meantime and let me do some tinkering. Thank you!

(feeling the knowledge grow!)
 
I'll take a look at this in the meantime and let me do some tinkering. Thank you!

(feeling the knowledge grow!)
Sorry about the lack of comments.
  • N7:0 is the target number of pulses (50), including in-flight
  • Counter C5:1's .ACCumulator will be the in-flight pulse count estimate
  • Counter C5:0's .PREset is the number of flowmeter pulses at which to command the valve closed
    • So it will be (N7:0 target) - (C5:1.ACCccumlator in-flight)
  • Rung 0002 is a duplicate of Rung 0004 and should be ignored
  • Rung 0003 is the Start/Stop Circuit pattern that commands the valve open until counter C5:0 hits its .PREset (which will be less than the N7:0 target once the first in-flight estimate is made)
  • Rung 0004 initializes everything when the one-shot start button is pressed
  • Rung 0005 counts the in-flight pulses after the valve is commanded to be closed
  • Rung 0006 counts all pulses.
  • LAD 3 simulates the valve and flowmeter pulses; it's a very rough, simple-minded model that uses a scan cycle as its clock. There is almost certainly some roundoff error from the 32-bit REALs, but it's probably good enough for a simulation.
 
Do you also have the flow rate? If you do, you can use the flowrate to determine a pre-act value, and close the valve before the quantity is complete. This method takes system wear into account, and as the pump wears over time, will still deliver on target. We used this for batch charging materials and would get 0.01 percent deviation or better.
((meter_total + (flowrate * k))= calced_total
***(k =1.0 or less , adjust k to get closer to target)
 
Do you also have the flow rate? If you do, you can use the flowrate to determine a pre-act value, and close the valve before the quantity is complete. This method takes system wear into account, and as the pump wears over time, will still deliver on target. We used this for batch charging materials and would get 0.01 percent deviation or better.
((meter_total + (flowrate * k))= calced_total
***(k =1.0 or less , adjust k to get closer to target)

The flowrate will be about 100GPM depending on system conditions. It will be a centrifugal pump being used so it will differ when it starts up and when the quantity is met. Is your method using a variable process valve? Looks like a PID loop value.
 
You can any variable name you like. Those are the ones I used in the example. This is for a discrete on/off system. It only works if you have a measured flow rate.
Zero total;
Open Valve;
Start pump;
Wait until calced_total => desired total;
Close Valve, Stop Pump;

If your measured flow rate is about 100 gpm. I would start with k=.0833
 
Do you also have the flow rate? If you do, you can use the flowrate to determine a pre-act value, and close the valve before the quantity is complete. This method takes system wear into account, and as the pump wears over time, will still deliver on target. We used this for batch charging materials and would get 0.01 percent deviation or better.
((meter_total + (flowrate * k))= calced_total
***(k =1.0 or less , adjust k to get closer to target)

Just curious.....are you talking about a measured flow rate through a sensor, or a predicted flow rate from pump curve or a time trial? I do alot of batch systems and use pre-acts, but if I have a measured flow, I ignore the scale weight and determine batch add with just the meter...has proven to be far more accurate.
 
Sensor.
We routinely charged 30,000 lbs. +/- 30 lbs. Measured with a Coriolis mass meter.

Same....we use micromotion coriolis for charging blow stills, and standard turbine or ultrasonic flow meters for adding the catalyst.
 
Do you also have the flow rate? If you do, you can use the flowrate to determine a pre-act value, and close the valve before the quantity is complete. This method takes system wear into account, and as the pump wears over time, will still deliver on target. We used this for batch charging materials and would get 0.01 percent deviation or better.
((meter_total + (flowrate * k))= calced_total
***(k =1.0 or less , adjust k to get closer to target)
This intrigued me more as I was reading over it and running some numbers. That is amazing you are able to get that type of deviation. Do you have material on how this was derived? Or what I could look up?

It seems the pre-act method is a preferred option. Lastly, is there a 'recalibrate' mode in the event a technician replaces the actuated valve with something different? Or, is it one of those they call you if the system is not being accurate.
 
Sorry about the lack of comments.
  • N7:0 is the target number of pulses (50), including in-flight
  • Counter C5:1's .ACCumulator will be the in-flight pulse count estimate
  • Counter C5:0's .PREset is the number of flowmeter pulses at which to command the valve closed
    • So it will be (N7:0 target) - (C5:1.ACCccumlator in-flight)
  • Rung 0002 is a duplicate of Rung 0004 and should be ignored
  • Rung 0003 is the Start/Stop Circuit pattern that commands the valve open until counter C5:0 hits its .PREset (which will be less than the N7:0 target once the first in-flight estimate is made)
  • Rung 0004 initializes everything when the one-shot start button is pressed
  • Rung 0005 counts the in-flight pulses after the valve is commanded to be closed
  • Rung 0006 counts all pulses.
  • LAD 3 simulates the valve and flowmeter pulses; it's a very rough, simple-minded model that uses a scan cycle as its clock. There is almost certainly some roundoff error from the 32-bit REALs, but it's probably good enough for a simulation.
I see the pre-act is so popular among batching. I'm going to run both cases of what you have (seems similar to the others) and get some results.
From your experience is this a favored method for batching for discrete type valves? It makes sense to do so with the limitation of it only being discrete. Thanks for the background knowledge as well. I did more digging over the weekend.
 

Similar Topics

Does anyone have expereince creating a custom API to build a campaign management system for FactoryTalk Batch? Stuck between using a REST API or...
Replies
0
Views
470
https://literature.rockwellautomation.com/idc/groups/literature/documents/qs/iasimp-qs042_-en-p.pdf The video links in this pdf are not working...
Replies
1
Views
1,127
Can someone shed some light on what the connector is that allows Batch to connect to Historian and create historical trends based on batch...
Replies
0
Views
693
Complete novice trying to integrate an industrial fluid filling process into MES using an anybus communicator Hardware: Anybus Communicator...
Replies
3
Views
1,588
Has anyone ever used the S88 batch standard in aWastewater treatment plant? References?
Replies
11
Views
2,788
Back
Top Bottom