Fill by weight

I wanted to say something but I let it pass. I was once asked "Why would you do that in the motion controller when you can do it in the PLC" I get along fine with S7 but I don't get to advanced. Have you looked at the S7-1200? It's their new low end controller but I think it will replace the 300 & 400 in a few years. It is only ladder now but they do have blocks for working with arrays.

Yes the 150 is in my demo machine and I have a scale connected and working. If I can find something for a feeder I will give it a test.


We have built several weighing systems using the S7-200 PLC with a MS module. It will do everything that is required of this job.

Anyway...using an axis controller seems like overkill to me. You have multiple manufactors that deal strickly with weight control and AB or Siemens or Unitronics for that manner have onboard weight controllers.

When you use an exisiting weight controller, things like Rate of Change, Preact, Auto preact, tare tolerances, zero tolerances..etc.. etc are already built in... so you do not have to create your own.


Maybe stupid remark, isn't the vibrating feeder a slow stopping something?

Short answer: Yes

Vibration feed can be very tricky depending on how the vibration is made. You can get irratic behavior at various speeds. Usually if I have a system that uses vibration feed I will pick a VFD where I have lots of "skip" frequencies or if I am driving the drive with a PLC I will skip those in my program.

Best system when using vibration feed is to have some sort of valve so you can shut feed off before vibration stops and use vibration for rate.
 
At the company I used to work for, we did this kind of thing all the time. I used an LC controller and we used 3 setpoints: fast, slow, and final. When the slow target was met, we stopped and checked to see if the final was met in a given timeframe. If not, we "burst" at the slow rate for a small period of time and then check again. The company has been using vibrators for years in just this manner.
 
you are on the right track. i've done programming on practically same thing (with 3 or 4 filling heads on same machine and control system). target weight was 7-20kg, +/-30g, fill time was 5-6 sec for each filling head. measurement was done with loadcells, everything was controlled by small PLC. Due short cycle time, and vibrations, challenge was to get accurate weight reading (I wish I had 30 seconds).
Can you please show example of that code
 
you are on the right track. i've done programming on practically same thing (with 3 or 4 filling heads on same machine and control system). target weight was 7-20kg, +/-30g, fill time was 5-6 sec for each filling head. measurement was done with loadcells, everything was controlled by small PLC. Due short cycle time, and vibrations, challenge was to get accurate weight reading (I wish I had 30 seconds).
Can you please show example of that code,i am new at this and want to try programing
 
It is very simple in most cases, just run at full speed until the weight is greater or equal to the slow down setpoint then move a lower setpoint into the analog drive, no need to use PID it can in some circumstances run away & cause overfill.
The code below is a simplistic model, only one slow setpoint but could add more.
 

Attachments

  • Weigher control.png
    Weigher control.png
    109.9 KB · Views: 14
It is very simple in most cases, just run at full speed until the weight is greater or equal to the slow down setpoint then move a lower setpoint into the analog drive, no need to use PID it can in some circumstances run away & cause overfill.
The code below is a simplistic model, only one slow setpoint but could add more.
Thank you for help, also how to use multiple linear weighing head, how to program that, which first is full its open to drop?
 
It depends on what you mean in multiple head weighing, the only ones I have been involved in are where there is only one fill at a time but 2,3 or 4 intermediate pre-hoppers are used, the pre-hoppers are filled with a potion of the required weight & the program calculates which of these hoppers make up the closest required weight these are then dropped into a combining chute into the package. this sort of weighing requires high speed weighing cells & program.
I suppose you mean more than one linear feed weighers but the program selects the first one to reach the required drop weight. then this should be pretty easy just a matter of building a queue of the linear weighers, in other words a loop through the number of weighers, put them into a shift register however, the shift register should move down when the queue output is empty in other words rather than shift the queue only on first to reach weight but also shift down the queue if the next but one position is empty. this can be done quite simply assume the system has 4 weighers, then make the queue 5, when a feeder has the required weight move it into the queue, if the next position is empty, shift it down, until all but the first register is zero, when a fill is requested, the product is dropped into the pack then the value of that register is set to 0, thus allowing the positions to be shifted down the queue.
lets assume at start, the queue shift register is 0, & the linear feeders are filling with weight, when one gets to the required weight, move it into position 0 of the shift register, the program checks every scan if the value in shift position 1 is 0 & moves the value in position 0 into position 1, if the value in position 2 is 0 move from position 2 & so on until any positions in the shift register are filled with the weights, this requires a two dimentional shift register as you need to know the feeder number.
like this
Shift queue (2 dim shift register)
....Weight, Feeder No.
0 30kg, 2
1 0,0
2 0,0
3 0,0
4 0,0
5 0,0
It moves the value in register 0 down until it is in position 5 like so
0 0,0
1 0,0
2 0,0
3 0,0
4 0,0
5 30, 2 (this register is then used as the information for the fill
When another feeder reaches the required weight shift it down the queue.
so you could end up with the following:
1 0,0
2 30,4
3 30,3
4 30,1
5 30,2
This is just to show how if it could not fill the container so you end up with a full queue of all the feeders, then as the containers are filled the register location 5 is set to 0 & the others are shifted down.
As you probably only have a limited number of positions due to the number of feeders there is probably no need to use a shift register function you could just use simple logic perhaps in a loop i.e. if pos 5 is 0, shift position 4 to 5, position 3, 4 & so on
 

Similar Topics

Hi folks, I have an application which needs some improvements.... Current app: An Auger type Filler with Servo and PLC controls is used to...
Replies
11
Views
7,961
testsubject
T
Dear colleagues, hope you can help on that matter. We have a project where we need to control 3 servomotors to move a auger feeder system...
Replies
38
Views
1,178
So this is my attempt at collecting and displaying data on a Cmore panel With a DL06. Each pair in my logic is the "Time total" or the TA15 and...
Replies
4
Views
481
I have a machine that fills 12 bottles of oil. The bottles are normally filled using mass meters which are set by operators from HMI. Lately we...
Replies
13
Views
1,401
Good Evening , In my hometown we have a Manufacturing Group that gets together once every 2 months to discuss labor issues , the economy ...
Replies
23
Views
7,913
Back
Top Bottom