Calculate step Angle from Stepper Motor Counter

Hi,
I am looking for a formula to calculate the Stepper Motor Angle from the Stepper Motor Counter. The Stepper Motor has 1.8 Degree/200 Steps Resolution. As it rotates more than 200 Steps, I want the Angle to reset to 0 and start calculating again from 0 to 360 Degrees. As I am a beginner I am confused to use some sort of While or For Loop. Any suggestions?
Solved!
Go to Solution.

Hi rkamat,
FOR loops are used when you know the iteration count before starting the loop.
When iteration count depends on a condition you should use a WHILE loop instead…
Best regards,
GerdW
CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
Kudos are welcome

Similar Messages

  • Repeatable different steps of a stepper motor

    Hello everyone,
    I am working on a project where i have a stepper motor moving a plate and a signal sensor who measures a distance. I managed to initialize the signal so my initial position is the position where the sensor gives me the minimum value (Voltage).Each time the stepper motor moves, i define it from the front panel. My question is, how can my stepper motor moves automatically for e.g. 8000steps then without define it again for another 5000 steps or whatever i want with a time delay. The definition of the steps now is being done from DAQmx Timing>Samples per channel. I want to run the program and the steps to be already defined wihtout change them again and again from the front panel. I attach my current VI.
    Thank you in advance
    Attachments:
    (2nd version (a-D).vi ‏73 KB

    Hi Chris,
    not a problem, we all were new at some point. In case you don't know there are boatloads of classes you can access online with your License or even without one:
    Here's a small collection (courtesy of crossrulz):
    3 Hour Introduction
    6 Hour Introduction
    LabVEW Basics
    Self Paced training for students
    Self Paced training beginner to advanced, SSP Required
    LabVIEW Wiki on Training
    Learning NI
    Getting Started with NI Products
    And if you are a student you can take a real class with NI for a ridiculously small amount of money (say, 93%) discount).
    With start twice I mean that I was wrong in believing you did so, when I fact you started two different tasks, so: nevermind.
    PFI stands for Programmable Function Input, which is confusing because it is probably assigned to an I/O line. I just asked to find out what section of your code I have to look at. I'm still not quite sure about this, butI understood you want to move the motor, when you push a button. The only part of your code, where you even read a button within a while loop is for the Direction Line. Apart from that you just write the inputs once and then forget about the tasks (not even stopping them sometimes). I suggest moving the button that should move the motor into a while loop. 

  • Stepper motors to move antenna

    Hello !
    My name is Paul, I am from Romania.
    I need some ideas on how to make a project.
    I need to control a fake antenna (I am saying fake because it won't be attached to anything, just for display purposes) using LabView.
    The antenna will be very small (about 15cm in diameter and made from light materials) so I won't need powerfull motors. I was thinking about hooking up 2 stepper motors (maybe from a printer) to some sort of controll board and to a PC with LabView. The antenna needs to move 360 degrees on a round base and 180 degrees of elevation.
    I found a video on youtube that is a lot more complicated and a lot heavier than what I need, but should give you a better perspective of what I am talking about.
    http://www.youtube.com/watch?v=vihdaseWNQw
    I need the cheapest way possible (because I am on my own budget).
    Thank you !
    Solved!
    Go to Solution.
    Attachments:
    antenna_base.jpg ‏201 KB

    I drew a quick sketch hoping you will understand better what I'm trying to do. I only connected one stepper motor for a test run. I opened the "Arduino Stepper Motor.vi" in LabView and tested on stepper motor 1. It didn't move (but maybe I didn't set it up correctly in labview). The setup was made exactly as the picture I attached.
    The stepper motor 1 (which controls elevation) has to move the antenna 90 degrees. So I'm guesing I have to divide the 90 degrees to 1.8 degrees (the motors deg/step) to find out how many steps I need in total. And the same for stepper motor 2 (360 / 1.8).
    So I need a .vi that automaticaly transforms the degrees which you set the elevation and azimuth to steps for the stepper motors. And when I press "Start" the two motors move to the desired position. I also need a "Reset" button to automaticaly come back to the original position (which will be 0 degrees azimuth and 0 degrees elevation - let's say the magnetic north) each time I run the program.
    Attachments:
    setup.jpg ‏1120 KB
    setup_drawing.jpg ‏1102 KB
    EasyDriver-Stepper-Motor-Driver2.png ‏50 KB

  • Using BNC2110 DAQ In Order to Control Stepper Motor

    So basically my goal here is to use LabView to control the direction and the steps of the stepper motor.
    I have BNC 2110 (connected to PC), Lin Engineering's 4218M-54P-04 Stepper Motor, and Lin Engineering's R701 Stepper Motor Driver.
    The specification documentations are attached.
    I know that the driver and the stepper motor are compatible.
    Is it possible to control the motor through Labview(PC) < - -> BNC2110 < - -> R701 Driver < - -> Stepper Motor, without the motor's own controller?
    An example of a controller for this particular motor would be on this website.
    I would much appreciate your support.
    Thank you.
    Attachments:
    4LeadBipolarSteppingDriver-linengineering--4218m-54p-04.pdf ‏652 KB
    DriverR701.pdf ‏379 KB

    Hi jhprks,
    It would appear that the stepper motor controller that you list communicates via RS-232 or RS-485.  You can make serial calls in LabVIEW using the Serial or VISA commands.  It could be something to look into.
    Further, we do have a multitude of ways to accomplish this with our hardware; here are a few resources to take a look at, with the first being an example of how to do this with a multifunction DAQ device:
    Using Software Timed Digital IO to control a stepper motor with DAQmx:
    http://decibel.ni.com/content/docs/DOC-6385
    Stepper motor control via Parallel port:
    http://zone.ni.com/devzone/cda/epd/p/id/3611
    High Performance Stepper/Servo control:
    http://sine.ni.com/nips/cds/view/p/lang/en/nid/10026
    Stepper Motor Theory of Operation:
    http://zone.ni.com/devzone/cda/ph/p/id/248
    Stepper motor Drives:
    http://sine.ni.com/nips/cds/view/p/lang/en/nid/3308
    Adam
    Academic Product Manager
    National Intruments

  • Stepper motor pulses per step measurement (Step Angle)

    Hi everybody,
    Recently I have one project to do step angle measurement for a stepper motor. The motor will couple with A,B phase encoder, and PXI-6602 card is used to count the pulse from encoder.
    Well, the test will make the motor to rotate 1 revolutuion (360 degree) i.e. 200 steps are required. The software must able to measure and record the pulses per stepper's step i.e. 1.8 degree until 1 revolution is reached. But now the PXI-6602 will only present the accumulative counts per revolution, Any idea can split the accumulative count into small per step count with high speed and accurate method.
    Thanks & Best regard. 

    What is it you need to characterize?  For what purpose?  Using an external sampling clock can help make the test run much more quickly, but is not absolutely necessary.
    One of my first counter-based apps was to characterize a stepper motor with a microstepping drive.  1 counter measured the step and direction signals going from the motor controller to the microstepping drive.  1 counter measured a quadrature encoder.  Only the encoder measurement used a sampling clock, and it was internal.
    My technique included considerations such as:
    1. I did not move in single steps.  It may be a little less crucial to you with a 200 step/rev motor & drive.  I had something like 3200 step/rev as I recall.  Friction alone could have prevented any motion from occurring on single steps. 
    2. Each motion moved some small-ish prime number of steps so I could move around many many revs and be sure to land on each stopping position an equal # of times.  A simpler method would be to move 1 rev + 1 step.  In your case, that's 201 steps.  The downside is that you extend testing time.  With a 200 step/rev motor, this shouldn't be such a burden though.
    3. After all step pulses were issued, I started monitoring the encoder data.  I looped around evaluating chunks of position data to determine when I had a dataset that looked "settled."  The main criteria I used were slope and standard deviation.  When the criteria were met, I would store the median value.  You could consider using a mean or an RMS as well.
    4. Repeat enough times that you land on each stopping position a statistically significant # of times.  Rule of thumb seems to be about 30.  That would give you 6000 actuations of 201 steps each.  Seems feasible that test time might be in the 1-2 hour realm.
    -Kevin P.

  • Trouble positioning a stepper motor accurately (to one step)

    I'm using a PCI-7344 with an MD7506 motor driver from RS. I'm testing angle sensors whose voltage output is proportional to (you've guessed it...) angle.
    I'm stepping the motor round by one step, checking that it's got there by reading the encoder, measuring the sensor voltage and repeating.
    My problem is that the motor sometimes 'hunts' around the target position. In closed loop (with an encoder associated with a motor) this results in sometimes not being able to reach the target exactly with the pull-in moves.
    Using open-loop and reading the encoder directly I get better results because I can loop more times, but the motor will still 'hunt' around a target point, changing direction a few times as it over
    shoots by a step.
    As there are a million MAX settings for this I won't list them all here, but I'm checking for a move complete when the InPos flag is set and I have a deadband of 0 steps too. I'm only rotating at 120 step/sec with a 10ms pause between steps.
    Do I have to accept that stepper motors are only accurate to +/- 1 step or am I doing something wrong?
    Thanks,
    Mike
    Mike Evans
    TRW Conekt
    N.I. Alliance Member, UK
    http://www.Conekt.net

    Mike,
    Maybe other people will have better suggestions, but in my case I can advise to either:
    1. increase the number of pull-in moves,
    2. increase the microstepping of your drive,
    2a... together with a higher precision encoder...
    Other than that, the accuracy is advertised to +/- 1 step, so maybe you would like to consider a stepper with more steps/rev.
    Good luck!, I hope other people will give other suggestions.
    Nestor.
    Nestor
    National Instruments

  • How to eliminate the noise from the stepper motor

    I’m using stepper motors to move a traverse on which a hot-wire anemometer probe is mounted. When the stepper motors are turned on, they induce noise on the analog signal of the hotwire anemometer, or of any other transducer, at multiples of 120Hz.
    The stepper drives are P41 Series made by American Precision Inc. The P41 Series contains a power supply, a motor drive and a logic controller. The logic controller inputs are optically isolated and utilize the 5 VDC supplied internally by the drive.
    An NI 6251 or NI 6024E DAQ card is used with LabVIEW to send digital output signal to the logic controller in order to step the motors.  
    The AI input channels of either NI 6251 or NI 6024E DAQ cards and LabVIEW are used to acquire the signal of the hot-wire anemometer. Different DAQ cards are used for the data acquisition and the stepper motor control and the noise is transferred through the laptop to the data acquisition card (analog signal).
    All cables are shielded and the noise was confirmed to be conductive and not radiative.
    There was no difference when measuring the analog signal with Differential or RSE.
    As a test, the leads from to the drive’s logic controller were connected to the AI input channels in order to check the magnitude and frequency of the noise flowing to the DAQ card and were found to be 5 V peak-to-peak at 60 Hz.
    Please let me know if you have an idea on how to eliminate this noise.

    It sounds like you have a ground loop issue.  If possible, try totally isolating the stepper controller from the data acquistion AI more than you already have.  This could include any of the following:
    Ensure the optoisolation on the control lines fully separates the power and ground of the digital output and stepper input.
    Use different grounds for the stepper power supply and the DAQ power supply/computer.  Isolation transformers can help here.
    Use lower inductance lines for the stepper controller.  This will reduce the movement of the ground.
    I suspect you have probably been over the above, so you are left with filtering the noise out of the signal.  Since it has high harmonic content, a simple low-pass is unlikely to work well.  Your best bet is probably to characterize it and use some sort of Fourier filtering.  If the relative sizes of the harmonics are always the same, you can take the Fourier transform, find the height of the fundamental, use this to calculate the sizes of the harmonics, delete them from the Fourier transform, and do an inverse Fourier transform to recover your signal.  Alternately, you can use a series of narrowband filters to remove the noise, although this will also remove any signal at the same frequencies.  It is better if you can improve your circuitry to remove the noise.
    Good luck.  Let us know if we can help you more.
    This account is no longer active. Contact ShadesOfGray for current posts and information.

  • How can I control 3 stepper motors w/ amplifier by sending TTL pulses from DIO96

    We have NI PCI-DIO-96 board and we have 3 stepper motors with amplifier and encoders. We want to control the motors by sending TTL pulses directly from the DIO-96 board to the amplifiers. Is this possible? What would you recommend if this is not a good approach? Thanks in advance.
    Roman Zeylikovich

    Roman,
    Thank you for contacting National Instruments. While using a motion controller would be the recommended approach for any type of motion application, you may be able to use your DIO board to generate a TTL pulse train to control the step and direction inputs of your drive and motor. You will need to make sure that the current sinking and sourcing specification for the DIO-96 fits your stepper motor. That board is not designed to source very much current at all so this is one issue you will need to verify. Also, this board does not have any counter/timer logic that can handle quadrature encoder inputs.
    Again, this digital device is probably not the best solution to control a stepper motor, but, depending on your hardware, could be configured to work proper
    ly. The PCI-7334 is a low-cost stepper motion controller that can control up to 4 axes and is designed to easily accommodate these types of applications. You can browse through more information on our Motion controller boards at the following website:
    http://sine.ni.com/apps/we/nioc.vp?cid=3809〈=US
    Let us know if you have any more questions or comments.
    Regards,
    Michael
    Applications Engineer
    National Instruments

  • What are the pin connections from 7764 to stepper motor drive

    what are the pin connections from UMI 7764 to stepper motor drive? I use PCI 7340 controller. Third party driver  is not branded, but assembled.  It has 3 inputs, one for (A,A/) one for (b,b/) one for enable, apart from ground pin.

    Dear enigmata,
    Here is a link to the UMI Manual that describes the signal connections:
    http://www.ni.com/pdf/manuals/321941b.pdf
    What you really need is the documentation for the input of the "translator" mentioned on the left side of the last diagram you posted. It is still not possible to tell which of you drive inputs correspond to step and direction (or CW, CCW) because in the circuit that you posted, these signals have already been converted by other circuitry in the drive to the A, A/, B, B/ output signals for the stepper motor.
    I agree with Jochen: Without the documentation you will need to test it out as he described in his last post.
    Best Regards,
    Nate Holmes
    National Instruments

  • Using "One Step DVD from Movie" on my IMac 10.8.6 using Verbatim DVD-R ("Life Series") 4.7 GB 16X 120, I get a wide angle version of my two minute story rather than the 3X4 standard aspect ratio that I normally get and want.  Help!

    While using "One Step DVD from Movie"  using DVD-R Verbatim ("Life Series" 4.7  16 X  120 min) on my IMac 10.6.8 I get a wide angle aspect ratio on the DVD not the standard 3X4 aspect ratio.  The Quicktime Movie is is standard 3X4 aspect ratio and the video video footage is standard 3X4 aspect ratio?  Advice will be greatly appreciated.

    Try this basic troubleshooting fix :
    1 - delete the IDVD preference file, com.apple.iDVD.plist, that resides in your
         User/Home()/Library/ Preferences folder.
    2 - delete IDVD'S cache file, Cache.db, that is located in your
         User/Home()/Library/Caches/com.apple.iDVD folder. 
    Click to view full size
    3 -  reboot.
    4 - launch IDVD and try again.
    Personally I would not the the one step method but create the iDVD project  from scratch so you can make sure the widescreen option is not selected in the preferences and you can follow this workflow:
    Once you have the project as you want it save it as a disk image via the  File ➙ Save as Disk Image  menu option.  This will separate the encoding process from the burn process. 
    To check the encoding mount the disk image and launch DVD Player and play it.  If it plays OK with DVD Player the encoding was good.
    Then burn to disk with Disk Utility or Toast at the slowest speed available (2x-4x) to assure the best burn quality.  Always use top quality media:  Verbatim, Maxell or Taiyo Yuden DVD-R are the most recommended in these forums.
    OT

  • How do you control LED lights on the front panel to identify the number of steps a stepper motor has taken?

    I am controlling a stepper motor that is coupled with a valve with four outlets (using an Arduino).  I've got a general understanding of how to control the motor, but I want LED lights on the front panel to light up that indicate which outlet the valve is currently at after the steps are taken.  The method I'm thinking about involves a lot of repetitive code.  I'm not that experienced with LabVIEW, I'm assuming I need some sort of loop structure but I don't know how to set it up in order to control the sequence of the LEDs.  I've attached my current block diagram for a visual aid if needed.
    Attachments:
    Capture.JPG ‏33 KB

    I was thinking about using the Stepper To Go and Stepper Write functions four separate times, using the same constants for the steps each time since the distance between each outlet is equivalent.  The only difference would be what's connected to the "steps remaining" node, which would be the function that activates one of the four LEDs (if that makes sense).  I was thinking that doing it this way would be a little counterintuitive since the only thing that needs to be changed is the LED indicator.

  • Running two stepper motors at the same time from one port

    Hello,
    I have to run two motors at the same time - one used to move a linear ball screw and one to turn a grip. I am doing tension and torsion testing on small wires, but tension and torsion have to be done at the same time. I also have to build in the ability for each motor to take multiple steps, ie. have a motor take x number steps at y velocity and then move x number of steps at z velocity. Both motors need to be able to do this. However, I am having problems getting the motors to run at the same time and to take all the steps. The motors are connected to two RMS Technologies R356 controllers. Both of the controllers are then connected to one RS485 to USB converter card, and that card is connected to one of the USB ports in the computer. Currently, I pass an array of commands to two for loops each containing VISA read and writes. I've attached the vi to look at. All of the timing stuff in the code is because a new command cannot be sent to the controller before the motor is done executing the previous command. If commands are sent right after one another, the controller will only execute the first command and then return with an error. 
    Does anyone have a suggestion as to what I am doing wrong?
    Thanks in advance for any help. 
    Solved!
    Go to Solution.
    Attachments:
    Motor Controller (Sub VI 3).vi ‏41 KB

    I'm not too clear on exactly what you are trying to accomplish or some of the details.
    Are there equal number of torsion and tension steps?
    Is there a pairing between a torsion and tension?  For example, you want to tension and torsion simultaneously, but those two together make a complete step?
    Do you want to wait until both the torsion and tension have completed before moving on to the next torsion/tension pair?
    Is there any time delay you want to hold at before moving on to the next step.
    When working with state machines, it is important not only to define the states, but also the logical stepping from one state to the next, or alternatives based on conditions.  It could be flowchard, but sometimes people call them state charts.
    Right now your latest posting has goes to "Write to Motor" event though and will wait there forever because there is nothing in the queue to write out through the VISA port.
    Let's assume your first state would happen to be Enqueue Tension (in order to get something in the queue), you will actually queue up all your tension commands at once with the For loop.  Then i will be 1 less than the size of the array it always will be because for an array size n, i will go from 0 to n-1 on each iteration.  So your false case will run and you will go to "Write to Motor".  Write to Motor will run and dequeue the first command then go to Waiting for Response.  Waiting for response will iterate through the while loop until 66 or 67 comes back.  I assume only 66 will come back for tension since you have yet to write a torsion command.  Once that comes back, it will go to Enqueue Tension again and insert a whole other series of commands.  Then go back to write Motor and will take out the 2nd queue element from the first set of commands your wrote.  It will stay in a Tension mode and the Queue will grow endlessly putting in a whole new series for each element that you dequeue.
    A state machine is the way to go, but I can't really sketch one out for you because I'm not sure exactly how your applications is supposed to work.  If a tension and torsion command are paired together,  perhaps you should just queue them together and write them out at once.   But the key thing is to sketch out on paper your application and flowchart exactly how the program should progress from step to step.
    PS:  One other thing, make sure you wire the queue reference wire through all states.

  • Is a stepper motor the most accurate way of turning an object a predetermined angle?

    Hi guys,
    I am starting a project in which I need to rotate a small object (about the size of a calculator), on a stage, in increments of ~2-5 degrees a number of times. 
    I have used LabView software previously  and it seems the right choice to carry out this part of the project. 
    Would a stepper motor be the most accurate option for this? What are the other options?
    Apologies if I have posted this on the wrong 'board',
    Thanks!

    A stepper motor is probably the way you will have to go if you need to continously rotate the object without returning to an origin position. Like if you need to step it 2 degrees clockwise a thousand times, you need to use a stepper motor. A regular motor with an encoder can be used but you wont have the precise control you are probably looking for. This where a pulsed width modulated motor control unit is typically put into the system. I believe NI has some modules that do this but I have never used them.
    [will work for kudos]

  • Relationship between angle (Stepper motor) and distance (Kinect)?

    Hi I am doing a project consisting of a stepper motor and Kinect. I want the stepper motor to rotate according to the distance of a
    body joint recognised by Kinect. I wan to cast a laser pointer on the left hand of a person all the time. If the person goes further away from the camera, the stepper motor moves in a way that the laser dot is at the hand.

    Kinect will have no knowledge of your external system, you have to develop how that would work. The Kinect Skeleton tracking api's will provide you the joint distances from the sensor in "world space" in meters. Each skeleton object has a position
    property that will give you the center of the person(up to 6). If you want to know specific joint detail, you can get full joint information on up to 2. See the skeleton tracking samples in the SDK Toolkit browser(Skeleton Basics, Kinect Explorer, etc)
    https://msdn.microsoft.com/en-us/library/hh973074.aspx
    Carmine Sirignano - MSFT

  • How can I send commands to a stepper motor to move in steps?

    How can I controll a stepper motor by using labview.7?
    what do I need?

    This will depend on what hardware you are using to send the commands to the stepper motor. NI offers motion controllers and drives that come with all the functions you will need to operate the motors. Depending on the size and number of motors, you will have different hardware requirements. Take a look at the motion products available here: http://sine.ni.com/apps/we/nioc.vp?cid=1506〈=US
    If you have more questions, you can always contact NI at www.ni.com/contact to help spec out the system.
    If you are using third party products, you will have to call their dll from LabVIEW using a Call Library Node function. This gives you access to all the functions in a dll.
    Hope this helps.
    Regards-
    Julie S.
    Applications Engineer
    National Instruments

Maybe you are looking for