reading RPM

jeff benson

Member
Join Date
May 2003
Location
Smithfield Ut
Posts
10
I have a keyence KV-16AR and I was hoping someone out there in PLC land could give me a hand. I am trying to write a program that will allow me to read pulses from a motor and convert them into RPM.
I would appreciate any help I could get

Thanx
 
Just an Idea

(#Pulses/amount of time)*(60sec/1 min.)*(1 rev/how many pulses for one reveloution)

Example:

36 tooth sproket (36 pulses = 1 rev.)
you count 14 pulses in 3 sec.
Then
(14 pulses/3 sec.)*(60 sec/1 min.)*(1 rev/36 pulses) = 7.77 rpm

Or you coould time how long it takes to count 36 pulses in the above example and use the same equation.
 
You may know this already but to figure the RPM it is often better to time between pulses and figure RPM from that with each rotation rather than counting pulses for a time.

Example:
Pulse
...2 sec...
Pulse RPM = 30
...1 sec...
Pulse RPM = 60
...3/4sec...
Pulse RPM = 90
 
I think the above equation can be used either way. Its one of those days so I am prob. wrong.

Thanks,
Bob
 
It's basically a question of the frequency of the incoming pulses. If high number of pulses then you can count them for a fixed time period to get a direct relationship (higher the number of pulses per time period = higher rpm). Otherwise if the pulse frequency is very low then use the time between pulses for an inverse relationship (a greater time between pulses = lower rpm).
 
Thanks...Can you give me an example of how to lay this out in ladder logic. I managed to write a program that will read input pulses but it dosen't seem accrate.
 
THIS IS WHAT I CAME UP WITH THE HELP OF THE KEYENCE TECH SUPPORT. WE WERE BOTH GUESSING AT THIS SO I'M NOT SURE IF I'M EVEN HEADING IN THE RIGHT DIRECTION.



2002 CTH0
---| |-------------------------------------------------|0004|----

2008 1000
---| |-------------------------------------------------( SET )---

1000 #00001 T000 1000 1001
---| |------|ts000|---| |-----------------(RES)--(SET)----------

1001 #00999 T001 1001 1000
---| |------|ts001|---| |-----------------(RES)--(SET)----------

1000 3000
---| |------|DIFU|-----------------------------------------------
| 3001
---|DIFD|-----------------------------------------------

3000 CTH0 DM0000
---| |--------------------------------------(LDA)--(STA)---------

3001 CTH0
---| |------(RES)------------------------------------------------

2002 HSP
---| |--------------------------------------------|0004|---------

2002 DM0000 #00060 DM0001
---| |----(LDA)-------(MUL)-------(STA)--------------------------

--------------------------------------------------------------|END|

-------------------------------------------------------------|ENDH|
 
   Pulse                     One Shot
----| |------------------------(^)

One Shot
----| |------------(Divide 600 by Timer Value)

------------|-----|--
| TMR |
One Shot | 0.1S|
----| |-----|Reset|
|_____|



This will find the current RPM and reset the timer with the leading edge of the pulse. Accuracy can be adjusted by moving the decimal And/Or creating multiple pulses per revolition and adjusting the math accordingly.
 
Does this motor have multiple pulses/rev or just one pulse/rev. If it is one pulse then DeserDog will work but if it has multiple pulse/rev I don't think it will. Again, it is one of them darn days. Fire at will. Time for a cold one.

Thanks,
Bob
 
Bob O said:
Does this motor have multiple pulses/rev or just one pulse/rev. If it is one pulse then DeserDog will work but if it has multiple pulse/rev I don't think it will. Again, it is one of them darn days. Fire at will. Time for a cold one.

Thanks,
Bob

If it has 2 pulses per rev divide by half as much that's all. Have one for me!
 
One important point that you need to consider is whether a standard PLC input can keep up with the frequency an duration of the pulses. If your sensor is detecting a 'once-per-revolution' target on a shaft rotating at 1800 RPM, you get one pulse every 33.333 milliseconds. That shouldn't be a problem for most PLCs currently on the market. Just make sure that your target is in front of the sensor for a long enough time to be detected by the PLC.

However, you'd have a bit of a problem detecting that 36 tooth sprocket that BobO mentioned if it is rotating at 1800 RPM unless you use a high speed counter input.
 
Hello.

This program for only Keyence KV-**.

-- Frequency counter --

2002 HSP
---| |----------------------|0004|----
2008 #1000 DM1404 2305
---| |-------(LDA)--(STA)--( SET )----
2002 DM1405 DM0000
---| |----------------(LDA)--(STA)----

0004 --- Input Signal(Max 30kHz)
DM0000 --- Measurement Freq ( Hz )
Measure period --- DM1404 (#1000msec = 1sec)

RPM = multiply Hz by 60.

Hiro
 
Last edited:

Similar Topics

What would be the best way to bring a magnetic sensor for a RPM reading into a PLC? The PLC that is installed is a AB1769 - L33R. Is there a...
Replies
4
Views
2,401
Hi all, Anyone can tutor me that how to write the formula for encoder to read the motor RPM(Omron PLC). Thanks in advance
Replies
5
Views
2,714
Hello I have a s7-1200 and I would like to read the tags present in this controller with my controllogix controller. The two controllers don't use...
Replies
5
Views
134
Hi all, i have 8 CJ2m plc units that show different numbers on the plc display and i am stuck on reading the info. my unit has an ip address of...
Replies
3
Views
96
Hi Everyone, I am not proficient in RSLogix 500 so I have a question regarding the evaluation of N7:0 data as an input. So as I understand in...
Replies
1
Views
85
Back
Top Bottom