Asphalt mixing plant - Batching control

grnick50

Lifetime Supporting Member
Join Date
Nov 2010
Location
Ptolemaida
Posts
332
Hello all,

I am doing the control system of an asphalt mixing plant. The aggregates is a mix of 5 diffirent ingridients.

My question is about the calculation of the tail weight and proper control of the scale.

I need to determine based on the Setpoint and flow of the material, the point in time I need to close the door. If I wait to close the door when I reach the SP then it is too late as there is a huge overshoot of the SP. So what I did, is to program a timed interupt and calculate the rate of change of weight every 100ms. I then multiply this by 10 and I get the flow in kg/s. I know the time it takes the bin door to close, so I guess multiplying this time by the flow (kg/s) I have the tail weight calculated. Note that as the kg/s changes constantly I take its value when I reach 0.5*SP using a rising edge.

Therefore I am closing the door at SP-((kg/s)*T_door_close)).

That is the theory. In practice it did not work.
The reason was that kg/s changed erraticaly. There was no stable reading, taking into account that the flow is very fast. At first I had the filter setting of the AI of the scale at 0 (PLC: Modicon M340). I then used a filter of 2 and it somehow stablilized.
I am thinking of using a moving average function to the kg/s value to smooth it.
Then It is the filter set in the weight transmitter itself. I left that at the default setting of 850ms or 12.5Hz.
All this is running in a fast task inside the PLC.

Can anyone comment on the above strategy or propose his own way of doing it?

Regards.


Has anyone a
 
A few observations, if I may.
If you are calculating the weight every 100ms then it would be pointless doing it in a fast task.
What you are trying to achieve is called 'Inflight Compensation'
To achieve accurate weighing you need to have a consistent material flow
to enable it to be measured accurately. The flow rate should be such that the bin door is allowed to open fully while feeding. If the door cannot open fully then the feed rate is too fast. The door closing time should be constant, so do not worry about factoring that into your calculations.
You need to set up a variable for this inflight compensation. While the feeder is running the shut of value is your Target weight minus the Inflight compensation.At the end of feeding allow a settling time, and then read the delivered weight. Calculate the error and add 1/2 of this value to the Inflight Compensation. You will of course have cumulative weighing set up to feed from multiple feeders.
 
Thanx Liam

Can you please confirm that I understand correctly:
1. Start the feeder and let it overrun the setpoint.
2. Take the overrun quantiy divide it by two and store it in tne inflight comp variable
3. In the next batch close the bin door at SP-inflight comp var.

Do I need to do it in every cycle or just make some test runs, observe the results and conclude to an inflight compensation variable?

How does that take into account the fill level of the silo? If the silo is full then the flow is greater thus another inflight compensation value should apply? Is that correct?
 
Thanx Liam

Can you please confirm that I understand correctly:
1. Start the feeder and let it overrun the setpoint.
2. Take the overrun quantiy divide it by two and store it in tne inflight comp variable
3. In the next batch close the bin door at SP-inflight comp var.

Do I need to do it in every cycle or just make some test runs, observe the results and conclude to an inflight compensation variable?

How does that take into account the fill level of the silo? If the silo is full then the flow is greater thus another inflight compensation value should apply? Is that correct?

In your HMI provide a variable field that you can edit to put in an initial value, for example 20.0 KG
If your formula calls for say 500Kg from the bin
then the shut off will be 500.0 - 20.0, which is 480.0Kg
When the feeder is done, and if the weight reads say 525.0 kg
which is 25.0 Kg over, then add 12.5Kg to the inflight you already have, 20Kg so the new inflight becomes 32.5Kg.
Next time round you halve this error again and add it to the inflight. If you get underweight, then the error will be negative, so if added to the inflight this will be subtracted.
The silo discharge should be designed in such a way at there is little difference in flowrate regardless of silo level.
 
Another method I have seen work with bulk material feeders is when the fed material reaches about 80% of the Setpoint, close the gate down to reduce the feed rate so that you only have a small amount going in. Hopefully this will provide a more controllable rate that is slow enough that you can hit the target much easier.

Sometimes this is called "trickle feed" or "dribble mode". For feeders that are either 100% OPEN or 100% CLOSED, sometimes you have to time-pulse the gate Open/Closed for the last bit, and check the weight after each pulse.
 
Liam,

It looks like this will work.
Another requirment is the following:
If there is an overshoot in one dose of a material, say 50kg, then in the next cycle I should reduce the SP by that overshoot quantity. That is for keeping the total batch as demanded by the recipe. I have that already programmed but disabled so that to test the inflight compensation is tested.

I am wondering though if that autocorrection facility I talk about, will mess up the inflight compensation.
 
My take on this would be that there are too many variables to be able to create a "set" inflight value. If the silo is quite tall then there will be a great difference in the inflight values from when the silo is full to when it's empty, as grnick mentioned.

My approach would be to pursue the avenue of averaging your flow rate. You may need to measure it over a comparatively long period to get a good stable reading, and you may find that at the end of it you need to apply a small fudge factor. But hopefully the fudge factor will end up being pretty consistent.

And the trickle feed concept that Lancie mentioned would help immensely if it can be implemented. I use that method quite regularly when difficult materials are concerned.
 
hi grnick50, i am a newbie in programming Schneider M340, i have never been programming this kind of PLC before, i just want to know if your program has been done? and if its possible for me to learn from your program,cause we are programming the same thing Asphalt Mixing Plant. Thanks
 
you didn't say if you are weighting as a batch system or and flow type system
I have in The past always controlled the feeders with a VFD then lower the speed of the vfd and the actual weight gets closer to the desired weight. I compare the scale weight to the desired and use the difference for control.
establish a Min and MAX exceptable tolerance then create the code to meet that
I usually end up with a very slow "Dribble" feed at the end then close the feeder gate when the Min exceptable weight is met . No under weight and the dribble should always be within the Min - Max
hope it helps.
 
Dear Blackhawk done,

The program works ok. What is the PLC you chose, what load cell transmitters you use and what SCADA?
What exactly do you need to know. Be aware the scales on these machines are tricky.
 
I would stay with a Rockwell control Logix
the faster you can read and process the better

I saw many applications where a high end CPU was used unnecessarily.
If the process requires it then yes a fast CPU or PLC family is the way to go.
However a large portion of applications only requires a medium capacity CPU.
Why spend money if there is no need to do so.
 
hi grnick,

we are currently using
- Power Supply BMX CPU 2000
- CPU Modicon M340-1000
- DDI 3202k Input Module
- DDO 3202k Output Module
- AMI 4104 for Analog Module (This module is used to read the temperature for heating the asphalt)

We are also adding HMI Magellis for Human Monitor Interface.

I am currently searching for a reference program since i didnt have any experience on this. Hope you can help me. hehe thanks
 
If I remember correctly the M340-1000 CPU is the low end CPU of the M340 series.
Maybe you could go with a faster CPU.
The Magelis HMI is good but you will have issues handling the following:
-Recipes
-Clients
-Consumption reports
-Batch reports

There is no Database facility in the Magelis HMI and it is hard to implement the above without database. For that reason we use Ignition SCADA with MySQL DB or WinCC with Industrial data bridge and MySQL DB.

Regards
 

Similar Topics

Hi all, I have a project in the planning phase yet. It is to install modern controls on a 70s asphalt plant. It is fairly simple but there is a...
Replies
6
Views
2,660
We have a system using a Omron G5 Servo. The motor has failed and Omron has advised the delivery time 4 months for a new motor! I'm not overly...
Replies
3
Views
1,631
HI, In a mixing vessel tank, it was maintained with a product temperature of 70 degree. When vacuum applied to the tank, the product and jacket...
Replies
27
Views
5,283
Hi all, about to set up a flow loop in our garage that will be mixing oil and water for some water cut testing. In the past we've basically put a...
Replies
5
Views
1,485
Hello This is my first post on this forum, so bear with me. I'm working with a DeviceNet system where there needs to be a transition on the trunk...
Replies
5
Views
2,506
Back
Top Bottom