Skip to main content

Kollmorgen Support Network

To better serve our Kollmorgen users with questions too complex to be addressed in this space, we made the painful decision to close this Community forum.

Please submit your question using the contact us form to reach our application engineering team.

For the immediate future, you can still access and read past posts.

Thank you for understanding and for participating in the community over the years.

Speed Sensor Programming Help | 23 Sep 2015 | |

Speed Sensor Programming Help

We are having trouble programming the AKD Basic drive to read a pulse from a speed sensor.  We have a clutch coupled to motor and we want the motor to turn on when clutch reads a certain speed.  The speed sensor is power by 24 VDC supply and the signal is connected to Digital input 1, pin 10 on X7 connector.  The sensor is reading pulses from a gear tooth that has 36 teeth. The sensor has an operating frequency from 0 to 20 kHz.  Rise fall time is <2 micro seconds. What would be the proper way to program the AKD to read the sensor?

Comments & Answers

jcoleman02 | Wed, 09/23/2015 - 21:04
If you have the sensor wired to Digital Input 1, then your program will be looking for a change in the value of DIN1.STATE.  You can put it in an "IF" statement or a "While" statement, etc.  If or when the input turns on, then do something.

jcoleman02 | Wed, 09/23/2015 - 21:12
Maybe I didn't understand....Is your sensor going to output a pulse to Digital Input 1 every time it senses a gear tooth?  

jcoleman02 | Wed, 09/23/2015 - 21:24
Is the sensor's output signal also 24VDC?

SCOTT WINSLOW | Thu, 09/24/2015 - 11:21
The sensor has a 0-5 vdc output which would trigger a "high" or "low" state to DIN1 which is the high speed digital in. The clutch that is attached to motor will be spinning 5700 rpm that the AKD Basic is going to have to read.  When the clutch speed comes down to 300 rpm, motor will kick on and ramp up to speed and match with clutch, then clutch will kick in, motor/clutch will torque the load of what it is attached to it and bring it down to 180 rpm, then slowly rotate it for up to 4 hrs.

Joerg Muslewski | Thu, 09/24/2015 - 11:57
The highest count frequency you can realize by interrupt is < 4 kHz, but the execution time of one command in the program is 1ms or higher. The AKD Basic program operates in a background task without a defined cycle time.

I would suggest to count the pulses by the 2nd feedback input (FB2.SOURCE = 2, FB2.MODE=2, FB2.ENCRES = 36?) and read out the velocity by parameter <EXTENCODER.FREQ> in the program.

SCOTT WINSLOW | Tue, 09/29/2015 - 19:58

In reply to by Joerg Muslewski

Thanks Joerg!  We tried it and we are reading rpm, however, the rpm is under by approx. 200 rpm. and it is jumpy, although the sensor signal is nice and crisp when reading on a separate oscope.  I may try backing the speed sensor out and opening up the gap. Right now I am about .010 away from target.  We tried using the FB2.POFFSET, but that did not change the value.  Other than that we successfully are engaging and dis-engaging the clutch appropriately.  Just have to dial the speed sensor in.  Any thought on how to adjust and calibrate the speed?

SCOTT WINSLOW | Thu, 09/24/2015 - 12:04
That was along the lines I was thinking using Feedback 2.  Thank You, We will give it a try.

SCOTT WINSLOW | Wed, 09/30/2015 - 13:33
Need Help!  When clutch is spinning at 1000 rpm, AKD Basic <EXTENCODER.FREQ> parameter reads speed at 620.  My settings for Feedback 2 are FB2.SOURCE=2; FB2.MODE=2; FB2.ENCRES=36.   What I find strange is when I change FB2.ENCRES value, speed readout remains the same no matter what I change pulse count per rev at.  I understand why FB2.POFFSET didn't work due to its' dependency on Feedback 1. We haven't tried this yet, but is it possible to create a new parameter and give that parameter a multiplication factor to the <EXTENCODER.FREQ> parameter and use that to scale the speed to correct correlation?

About this Question