Jump to content

Measuring rpm with PLC


Recommended Posts

Posted
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

Posted (edited)
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
Posted
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
Posted
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
Posted
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).
Posted
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
Posted
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.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...