iws Posted March 18, 2014 Share Posted March 18, 2014 Hi, I have a Geo Brick LV and a 12V Brush DC motor (Midwest Motion Products MMP D22-490D-12V). This is just a simple DC motor, not a servo or stepper motor. The Geo Brick LV is not commutating. I have set up the Geo Brick LV such that I can run the motor successfully. For example "J=1000" moves the motor 1000 counts of the encoder. Motions work as expected. As part of my design, I'd like to be able to monitor the amount of current being supplied to the motor. However, I have been unable to do this. I have the following M variables set up: M160->X:$B8,24,S M165->Y:$B8,24,S M177->X:$B9,8,16,S M178->Y:$B9,8,16,S These M variables always have a value of 0, even when the motor is turning at full speed. How can I read the motor current? Link to comment Share on other sites More sharing options...
curtwilson Posted March 19, 2014 Share Posted March 19, 2014 You say the Brick is not commutating. If you really have the commutation for the motor turned off (I101 = 0), then none of these commutation registers is updated. I presume you are writing the output of the position/velocity servo loop directly to the PWM register in the ASIC at $78002. In this setup, you should still be able to read the measured current in the hardware register in the ASIC at Y:$78005, with real data in the high 12 bits of the 24-bit register. Most people who run DC brush motors using the amplifier use our recommended technique of enabling the commutation and current loop, but defeating the AC nature of the commutation by setting key parameters to 0. In this case, the commutation/current-loop algorithms automatically read the hardware ADC registers and store them in memory registers like the ones you have been checking. There are explicit instructions for this in the Brick LV manual. You should also get superior and safer performance. Link to comment Share on other sites More sharing options...
Recommended Posts