Motion Control and Motor Drives

cancel
Showing results for 
Search instead for 
Did you mean: 

Torque control and the dac function

Hi,
 
I would like to send a +- 10 V signal to a Parker servo drive. the drive is setup for torque control with +10 = 2800mA.
 
I'm using Viusual C++ with the flexMotn library. How do I set up my application to to communicate my torque value in counts (+-32767) to the +- 10 Volt analogue signal required by the drive. I'm trying to acive this using the following commands:
 
err =  flex_set_op_mode (boardID, axis, NIMC_ABSOLUTE_POSITION);
 CheckError;

 err = flex_load_torque_lim(boardID, axis,16383, -16383, 16383,-16383, 0xFF);
 CheckError;
 err = flex_load_dac(boardID, 0x31, 3280, 0xFF);
 CheckError;
 // Start the move
 err = flex_start(boardID, axis, 0);
 
CheckError;
 Sleep(2000);
 
The code compliles fine and excutes, but the motor doesnot move.
 
I have also tried to perform a position move and read the DAC values during the move this also failed.
 
err = flex_load_target_pos (boardID, axis, -10000, 0xFF); 
...
err = flex_read_dac_rtn(boardID, 0x31, DACValue);
  CheckError;
Does anybody have any ideas?
 
Thanx
Thivash
0 Kudos
Message 1 of 4
(4,142 Views)

Have you verified with a voltmeter that the expected voltage and polarity is actually being outputted by the DAQ card?

Is there a drive or motor enable input on the Parker drive that has to be at the correct logic level to allow the motor to move? Any drive error or fault lights that are on?

Is an encoder required to be connected to the drive?

Not familiar with C++ commands for Flexmotion, but the above tips may be useful from a hardware standpoint

~~~~~~~~~~~~~~~~~~~~~~~~~~
"It’s the questions that drive us.”
~~~~~~~~~~~~~~~~~~~~~~~~~~
0 Kudos
Message 2 of 4
(4,138 Views)

The drive and controller work fine when using position and velocity control. No hardware proplems.

I want to be able to control the +-10 volt signal directly from my code. I have a dac mapped to each channel as a default setting in macs. When I perform a position or velocity move I can read the DAC channels. However, I would like to control the +-10 volt signal directly (as a target torque (current) )from my code and read the position and velocity fedback as a result of the target current sent.

Any ideas?

Thivash 

0 Kudos
Message 3 of 4
(4,126 Views)

Hello Thivash,

Thank you for contacting National Instruments.  One thing to check for is if the DAC channel that you are trying to control programmatically isn't already reserved for a servo axis.  You can check for this in MAX by going to the axis number of the DAC channel that you wish to control, i.e. axis 1 for DAC channel 1, and check to see if it is set to servo as shown in the attached image.  If it is, switch the type to Stepper, save the settings, and re-initialize the motion card.  You should now be able to programmatically control the DAC channel.

Regards,

Mike T

National Instruments

0 Kudos
Message 4 of 4
(4,092 Views)