Hi all,
I'm trying to implement a VI for NI motion controllers which enables the user to run motors in the jog mode. I thought it would be great if I get some help from all you experienced people working with NI motion controllers. Once the VI is made, then we can make it available in NI website for the users, as an aditional feature. First of all I would like to tell what is "JOG MODE". In this mode user moves the motors manually by pressing a button. There will be six controls on the front panel, namely X+, X-, Y+, Y-, Z+ and Z- indicating the direction of movement of the motors connected to three axes i.e. Axis 1,2 and 3 of NI's 4-axis motion controller. The user is given four options namely "0.001 mm, 0.01 mm, 0.1 mm and 1mm" which is the minimum movement of an axis on pressing any of the six jog buttons once. Eg. if the current position of the axis1 is 20mm and the 0.01 option is selected, then on pressing X+ button once, the axis1 motor should move to position 20.01mm. Similarly pressing X- now will make the motor move back to 20mm i.e 20.01-0.01 = 20mm. Now, for those who are wondering that the when the controller accepts commands in terms of encoder counts then how does the unit mm come into picture there is conversion formula ,
ball screw pitch
---------------------------------------- * counts moved = linear distance moved in mm
encoder counts per revolution
I wrote a VI which,
1.) Reads the current value in counts
2.) Converts it into mm
3.) Increments \ Decrements the value "0.001, 0.01, 0.1 or 1 as selected" by the press of the button X+,X-,Y+......etc.
4.) Converts the new position obtained, into counts and loads the position to the axis.
But because the moves are so small, practically, the motor jerks and the jerk is even better visible when you connect the motors to linear slides. So I feel that the acceleration, velocity etc. should be properly adjusted. Also I think may be it would work better in velocity mode. But you cant maintain the position in velocity mode. So, the labview program should monitor the position and accordingly stop the motors at the write time according to the no. of presses of the button. Lets try and do this project together. Hope to get a good response from all you guys.
Regards,
Giridhar Rajan
Automation Engineer, Design
Cruiser Controls
Mumbai, India