S7 300 measuring machine capacity

Werner

Member
Join Date
Apr 2005
Location
IJsselstein
Posts
336
I need to measure the capacity in a machine. I have a block that does this by measure the time between products. From this we derive the capacity. This block uses an OB of 100ms and is therefor not very accurate.

Does anybody have a block that does this function more accurate? (I need to accurately monitor the capacity of around 67 to 100 cuts/min)

Thanks!
 
100.0 cuts/min = 100/60 = 1.666 cuts/sec, so 1 cut = 600ms
100.5 cuts/min = 100.5/60 = 1.675 cuts/sec, so 1 cut = 597ms
99.5 cuts/min = 99.5/60 = 1.658 cuts/sec, so 1 cut = 603ms
Some more details of your system would be helpful - what exactly are you measuring - a proxy ?
 
I have several servo drives that are started by an encoder which is connected on the transport. The nominal machine capacity is 67 cuts/min. I can use the start puls of these servo's to measure the interval time between the cuts.

I use a S7 300 plc with a program cycle time of approx 6ms. (So the +/- 0.5 cuts/min is not possible).

What I'm looking for is a block that can measure the real time (in ms or so) between two pulses. From this time I can calculate the capacity. (600ms equals 100 cuts/min equals 30.000 products per hour).

I can then use this numbers in a trend for display on HMI.
 
If you only need an accuracy of +/- 0.5 cuts/min as you mentioned earlier, then the OB100 set to 100ms is more than adequate. Assuming LD's 603ms/cut is accurate (and I'm sure it is, without bothering to check! :) ), then 100 ms = 1/6 th of a cut, i.e. ~ 0.17 cut.

Or are you lookiing for +/- 0.5 cuts/sec? If so, then you'll probably need to go the FM route.
 
I must be a bit rusty at the moment, it took me a little while to work out what you meant! That was basically what I had at the back of my mind, of course. Am I right to assume you mean he wants to calculate the rate/min by scaling up from the time between two cuts?

If that's the case, then one possibility (assuming the input is directly on the backplane and not via DP) would be simply to scatter a load of direct (PIW) reads through the program and use the system clock to time them. If his cycle time is only 6 ms, then it shouldn't need too many readings to get a useable result (carefully spread through the program, of course - which might require a bit of trial and error). Certainly cheaper and probably easier than an FM.
 
Simply set up a cuts counter in an FC called by a cyclic interrupt every 20 mS (or even 10 mS). Read and clear the counter in another FC called from a Time of Day interrupt every minute.

Set the OB interrupt priorities with the 20 mS higher than the Minute so that no cuts pulses will ever be missed.

This gives you cuts per minute with accuracy of +/- 1 cuts per minute.

Average last two cuts per minute and the accuracy is +/- 0.5 cuts per minute.

The only problem you might have is if your cuts pulse is too short.
Ideally you want a mark space ratio of 1:1.
 
Last edited:

Similar Topics

Hi, i am beginner with a PLC Systems and i have a couple of questions about flow measuring with a Siemens S7-300 PLC. I need to measure flow in...
Replies
11
Views
10,489
Hey all, first time poster here. I am wondering if anyone has tried using a Keyence SR-X300 barcode scanner to a Micrologix 1400. Keyence sent...
Replies
0
Views
32
Hi Siemens guys! I am experiencing SF fault on our S7-300 (6ES7 315-2AH14-0AB0) CPU from time to time. I've checked the diagnostic buffer and...
Replies
13
Views
174
Have a system that has been running for over a year and all of a sudden getting a ExcessiveVelocityFault on one of the drives when the MSO command...
Replies
2
Views
144
Hello PLCS.Net Forum, First time posting. Let's assume I am a novice. BASIC PROBLEM: My servo/linear piston is no longer zeroed to the...
Replies
9
Views
218
Back
Top Bottom