Sign in to follow this  
Followers 0
Guest Wouter

Measuring rpm with PLC

8 posts in this topic

Hello, I'm looking for an easy way to count the number of rotations/minute with an incremental encoder and a PLC (A series). Can I do this without expensive input-modules? I also need the measurement to be as accurate as possible. Does anybody know an easy way that will do the job? Thanks Wouter

Share this post


Link to post
Share on other sites
The easy way is to throw in an encoder, high speed counter card and configure it to do what you want. If you don't want to use high speed counter card you are probably in for some trouble: Without high speed inputs you have to see if the "standard" inputs would do the job and if the scan time would allow it. Standard inputs have certain timing that makes them unsuitable for high speed application. I repeat - they can work but only for VERY SLOW signals: Typical rising and falling edge lasts ca 5-10mS (each of them). So your signal would look more or less like this (I hope it comes out all right - can we have some fixed width fonts here please?):    ________________                  _________________                       ___/                     \_____________/                     \________   | |                    | |                     | |                  | |  10mS              10mS                 10mS              10mS       Note that timing of the EDGES ALONE is slow enough (10mS in our example for both rising and falling edge). If you want to detect signal reliably, you would need some time for signal to settle ( horizontal part of the curve) and sample fast enough (the theory says that you must sample at least twice as fast as fastest signal). Even without settling 10+10 is 20mS which means that fastest possible signal would be 1/0.02sec=50Hz or 50 pulses per second. If you have encoder with 100 pulses that would mean max. 30RPM (1minute=60 second so 60second*50Hz/100ppr=30RPM). Do the math about precision (one revolution is 360degree and you have 100ppr encoder). Obviously 100 count encoder is not exactly the screamer. \ If you use something like 4096ppr your encoder would have to turn MUCH slower or to be exact 60*50/4096=0.73RPM (isn't this some speed huh?) If you just put piece of reflective tape on the shaft and use photo eye (or proxy or beam through or whatever) to get ONE pulse per revolution with the same timing as above you could measure up to 60*30/1=3000RPM (assuming your PLC scan time is low enough. Alternatively, you can put some gears to get one pulse every second revoultion (or every third etc.) I hope this helps... Edited by panic mode

Share this post


Link to post
Share on other sites
Thanks for the information Panic Mode. Do you know if those high-speed inputs are expensive? It's just that I would like to build a very-low cost application, just for fun so I don't want to spend alot of money Thx Wouter

Share this post


Link to post
Share on other sites
If you plan on buying the plc specifically for this project then use an FX series. They have high-speed inputs built in as well as a SPD function. Another possibility is to use the CHZ line from the encoder. Most encoders have at least 3 outputs. CHA, CHB and CHZ. CHZ (channel zero) is the zero pulse. It occurs once per revolution. You could make good use of that in your application. Connect it to a counter and then use a timer to check the total in the counter at regular intervals. Clear the counter after each read. A little math and you have an rpm value. Jim

Share this post


Link to post
Share on other sites
True but - Z channel is only one pulse long. So if you still have 100ppr encoder Z pulse is only 3.6deg "wide" or 1% of the single revolution. You will have to run your encoder REALLY slow to see this with regular input. You are much better off by using proxy or photoeye with flag that is 50% wide (180 deg). If you want high speed inputs and cheap, your best bet is FX series PLC. FX1S is nice little thing but not modular. Check your budget and I/O requirement, maybe it will be enough. For more money you can get the FX1N or FX2N. Or look into different brand (maybe Koyo will do what you want, they are robust and inexpencive but a bit awkward to program).

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
Hi guys, Can the plc input counter the pulse width with length lower than 1.45 second. Any idea?

Share this post


Link to post
Share on other sites
Sure it can. If you use standard timer such as 0.1s that would give you count of 14-15 but usually you can do better than that Even little FX1S PLC has timer with 1mS resolution.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0