rpoet
Member
Hi All,
I've also posted this at the AutomationDirect forum. I'm casting for as wide an audience as possible.
I am attempting to operate a stepper motor using the DL-06's built-in "motion controller" feature. I am attempting to use the "Automatic Trapezoidal Profile Without Ending Velocity" and I'm having three maddening problems. For reference, I've been referencing the DL-06 manual, Appendix E: HSIO Features.
Problem the First:
I can't for the life of me figure out how to enter a "number of pulses" greater than 9999, even though I'm using a Load Double command. If I LDD anything bigger into V3631/V3632, I get either strange behavior, or nothing. This number format thing in the AD PLCs is getting me I think, but I have no idea where to go from here. I kind of understand that it's looking for a HEX number, but isn't that the same as a BCD number? How do I convert, if I have to? The manual is not clear as to what format is needed.
Problem the Second:
I want to be able to change the Target Velocity from my HMI which are bits 0-11 of V3630, but I don't to change bits 12-15, which are configured as "Hex C" I'm not really sure what I need to do here; would it have been so hard for "Profile Type" and "Target Velocity" to be two SEPARATE Vmem locations? I need some guidance as to how to keep my setting of "Automatic Trapezoidal Profile Without Ending Velocity, relative w/o interrupt" but be able to change my target velocity from my HMI. I think I need to manipulate individual bits, but I'm not really sure how to do this.
Problem the Third:
This may be related to Problem the First. How do I get the motor to turn the other direction? I've made it turn the other way by accident by entering large numbers into V3631/3632, but it's not repeatable and I'm very confused. The manual (not very clear) states that the PLC will figure out the direction automatically based on the value placed in the Target Position (Vmem 3631/3632).
Is there a way around this, and do I need a way around this? What I want is the motor to spin a "Desired Number of Rotations (a value from my HMI) and stop at an absolute degree mark, as measured by an absolute encoder. I want the operator to pick the direction of rotation.
Example:
Assume 2,000 pulses for one full revolution of the stepper motor.
Shaft is at 0deg, as measured by the absolute encoder.
I want to rotate (3) full revolutions, and stop at 90deg.
If I want to rotate Clockwise, I need to rotate 6,000 + 500 = 6,500 pulses.
If I want to rotate CCW, I need 6,000 + 1500 = 7,500 pulses.
The above math is boggling me a little, and the idiosyncrasies of the motion controller are not helping. I'm not sure how to attack the math without knowing exactly how the PLC is thinking.
An I-Box that handles all this motion controller setup stuff would sure be nice, but I'm guessing it's probably not likely, as most people probably don't often use the AD PLCs for stepper motors.
I'd be grateful for any light anyone can shed on this. I'll keep plugging away, and I'll call Tech Support on Monday for guidance as well. Please ask me if I haven't been clear on what I'm asking. I'll try to answer any questions.
Thanks!
rpoet
I've also posted this at the AutomationDirect forum. I'm casting for as wide an audience as possible.
I am attempting to operate a stepper motor using the DL-06's built-in "motion controller" feature. I am attempting to use the "Automatic Trapezoidal Profile Without Ending Velocity" and I'm having three maddening problems. For reference, I've been referencing the DL-06 manual, Appendix E: HSIO Features.
Problem the First:
I can't for the life of me figure out how to enter a "number of pulses" greater than 9999, even though I'm using a Load Double command. If I LDD anything bigger into V3631/V3632, I get either strange behavior, or nothing. This number format thing in the AD PLCs is getting me I think, but I have no idea where to go from here. I kind of understand that it's looking for a HEX number, but isn't that the same as a BCD number? How do I convert, if I have to? The manual is not clear as to what format is needed.
Problem the Second:
I want to be able to change the Target Velocity from my HMI which are bits 0-11 of V3630, but I don't to change bits 12-15, which are configured as "Hex C" I'm not really sure what I need to do here; would it have been so hard for "Profile Type" and "Target Velocity" to be two SEPARATE Vmem locations? I need some guidance as to how to keep my setting of "Automatic Trapezoidal Profile Without Ending Velocity, relative w/o interrupt" but be able to change my target velocity from my HMI. I think I need to manipulate individual bits, but I'm not really sure how to do this.
Problem the Third:
This may be related to Problem the First. How do I get the motor to turn the other direction? I've made it turn the other way by accident by entering large numbers into V3631/3632, but it's not repeatable and I'm very confused. The manual (not very clear) states that the PLC will figure out the direction automatically based on the value placed in the Target Position (Vmem 3631/3632).
Is there a way around this, and do I need a way around this? What I want is the motor to spin a "Desired Number of Rotations (a value from my HMI) and stop at an absolute degree mark, as measured by an absolute encoder. I want the operator to pick the direction of rotation.
Example:
Assume 2,000 pulses for one full revolution of the stepper motor.
Shaft is at 0deg, as measured by the absolute encoder.
I want to rotate (3) full revolutions, and stop at 90deg.
If I want to rotate Clockwise, I need to rotate 6,000 + 500 = 6,500 pulses.
If I want to rotate CCW, I need 6,000 + 1500 = 7,500 pulses.
The above math is boggling me a little, and the idiosyncrasies of the motion controller are not helping. I'm not sure how to attack the math without knowing exactly how the PLC is thinking.
An I-Box that handles all this motion controller setup stuff would sure be nice, but I'm guessing it's probably not likely, as most people probably don't often use the AD PLCs for stepper motors.
I'd be grateful for any light anyone can shed on this. I'll keep plugging away, and I'll call Tech Support on Monday for guidance as well. Please ask me if I haven't been clear on what I'm asking. I'll try to answer any questions.
Thanks!
rpoet