Labview using a stepper motor

Could really do with some help I am a 4th year student doing my final year project. The project has a conveyor belt which is driven by a stepper motor, along the conveyor belt there is 5 sensor I want to be able to stop the motor at theses sensors for a certain time and then restart. I have attached the program I have come up with but I have one slight problem the motor will not reactivate without the sensor been made again is there any way around this.
Any help would be greatly appreciated.
Regards
Billy
Attachments:
24.02.14.vi ‏146 KB

Hi Bilbo,
The case structures in your code go 'True' when the voltage values you are acquiring is greater than / equal to 0.5 V (this is how dynamic data type behaves when converted to boolean). I don't know what sensors you are using and also I could not see a stop command being sent to your motor anywhere in the code.  It is worth considering the state machine architecture as mentioned in the previous reply. you can find a white paper telling more about the state machine  here:
http://digital.ni.com/public.nsf/allkb/5CD79190713D2B558625765F007FCC99
If you have to rely on voltage values to detect whether your sensor is activated or not, you will have to continuously monitor your sensors in one state (sensor monitor state) of your state machine and based on the value decide whether you need to move to 'sensor activated'/ sensor deactivated' state. In these states you need to take the appropriate action on your motor (i.e. turn off (in sensor activated state) and turn on (in sensor deactivated state)) and return to your 'sensor monitor' state to monitor your sensor. This will be more clear once you read the article and understand the state machine architecture and how to implement it in LabVIEW.
I hope that helps.
Thanks and Regards,
Supreeth.K
Applications Engineer
NIUK

Similar Messages

  • How do I establish serial communicat​ion using LabView to two stepper motors using a motor controller​?

    I currently use an off the shelf motor controller to run my two stepper motors. It already has integrated a firmware software that sends commands to operate each motor. I would like to create an interface where I can send these commands using LabView. If someone can point me in the right direction I would appreciate it.

    Look at the examples for the serial VISA vi.  Something like Basic serial write and read.vi is a good starting point.
    Have you searched for a LabVIEW driver  at the NI LV driver network?   Asked the vendor?
    If you write your own driver with the serial VISA vis remember to open and configure the port only once at the beginning and close it at the end of your program. 
    Message Edited by Henrik Volkers on 07-13-2009 04:21 PM
    Greetings from Germany
    Henrik
    LV since v3.1
    “ground” is a convenient fantasy
    '˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'

  • Using LabView, Arduino, and Easy-Driver to control a Stepper Motor

    Hello fair folks of the LabView forums!
    I am a humble engineering student in need of some advice and input on a project I am working on.
    I’ve also done a fair amount of reading on the LabView forums with people trying to use LabView and Arduino to control stepper motors, and I’ve used as much information from each as I could. However the problem I'm encountering now is one which is unique to my VI Configuration.
    So, here is what has been done thus far:
    -Installed LabView Interface for Arduino [LIFA]
    -Installed necessary VISA drivers for LabView to communicate with arduino
    -Uploaded firmware to Arduino to allow it to communicate with LabView
    -Properly wired Stepper Motor with Easy Driver and Power Supply; I have verified this by first using the Arduino independently of LabView, using example code found here.
    -I have created a VI, and have just recently got it to run without reporting back any errors. While I suspect the behavior I’m encountering has to do with something inside the VI, it is difficult to determine as there are no errors being reported!
    But here is general problem I am encountering:
    -Connect Joystick to USB Port, connect Arduino to USB Port.
    -Plug in outlet for Power Supply
    -Open LabView VI
    -Run LabView VI
    -LabView successfully detects Joystick, and Arduino.
    -Tilt Joystick; Stepper Motor moves in proper direction, but it only takes a single step. If held, it does not move further. If returned to zero, and then tilted, it again only takes a single step.
    I know that in the example code, the Arduino issued the step command by writing the signal from LOW to HIGH, and varied the speed by how often it did this.
    I assumed that the Write-PWM feature would do this same thing, but perhaps my assumption is wrong. I will continue to tinker with this myself, but I would be extremely grateful for any insight you might be able to lend.
    I’m thinking, if not the Arduino Write-PMW feature perhaps a simple timing-sequence that could be used to alternate between writing 0 and 1, with the timescale of the sequence being scaled to the X-Axis from the Joystick. But, I am open to suggestions, and certainly appreciate any thoughts you may have to offer!
    Attached to this is the VI used in this setup, a picture of said VI, as well as a rough sketch of the hardware configuration.
    Thank you!
    Attachments:
    Arduino Stepper Control.vi ‏1224 KB
    VI Picture.png ‏82 KB
    Configuration Sketch.png ‏522 KB

    Hi danjifraga,
    I am not so familiar with the Arduino toolkit functions, but you may have better luck looking at the Arduino page at:
    www.ni.com/arduino
    I'll ask around on Monday to see if anyone is more familiar with the toolkit.
    Good luck,
    Brian
    Brian G.

  • Running 2 stepper motors with LabVIEW using RMV ST400-NT controller and driver

    Hello, I am new to programming as well as motors in general so please bare with me in my attempt to explain myself. I have a project involving laser therapy and I am attempting to control two stepper motors from Falhauber, Type AM2224-R3-AV-4.8. I will be using a RMV ST400-NT controller and driver. Original plan was to use 3 stepper motors for control in 3 axis but realized 2 axis is complicated enough. My power source is an Agilent E3630A. I am new to this whole thing and from what I have read form examples and other posts is that NI drivers seem to work best for these applications. I've written simple programs from examples, reading and watching videos. I want to know whether it's possible for these to work together using LabVIEW and also a nudge to help me get started would be much appreciated. Can someone please help guide me in the right direction, I feel a bit lost when it comes to all this. Thank you for your time and consideration.  Also, I will be using Windows 8 laptop with Labview 8.5. I have attached pics of components I will be using.
    Justo T.
    Attachments:
    photo 1.JPG ‏1150 KB
    photo 2.JPG ‏987 KB
    photo 3.JPG ‏1085 KB

    Hi jtarula,
    I want to preface this response by saying that I am mre familiar with NI controller and driver rather than the one that you have. I am assuming that you are using the dll provided by the manufacturer here:
    http://www.rmv.com/download.htm
    With these, you should be able to interface with LabVIEW using the call library function node. What the controller is capable I am uncertain of. I am certain that you should be able to since another user has commented on the use in LabVIEW before in another forum post.
    I also want to let you know that LabVIEW 8.5 is not supported on Windows 8, which means that you may run into some compatibility issues. Here is the compatibility chart.
    Paolo F.
    National Instruments
    Applications Engineer

  • Stepper Motor with Linear Stage (Position Control and Data Acquisition)

    Hey All,
    So.. I've attached a stepper motor to a linear stage and so far it's working pretty well.  Using a stepper motor driver from Pololu, I've simplified the control of the motor by just using output pulses from the counter output of a PXI-6143.  I've tested the motor using the Pulse Train examples in LabVIEW and all is working well.  
    My goal now is to allow the user to collect data from a pressure sensor, attached to the linear stage, every X number of steps.  From what I can tell so far, and please correct me if I'm wrong, the motor step movement is synchronised with the pulse train input.  That is to say, if I give the motor a 200 step pulse train, the pulse train ouput is completed at the exact time the motor has moved 200 steps.  From this, I've created a VI that moves the motor X steps, aquires the data point, and then repeats this process for the required amount of data points.  The problem with this is that the motor movement is not continuous; it stops for a split second to take the data point.
    How can I have labview ouput a pulse train of say 1000 steps and record a data point every 50 steps?
    Two ideas that came to mind were:
    1. Use the counter input port on the card to count the pulses being sent to the motor.  
    2. Use an encoder connected to the motor shaft.
    I wanted to stay away from theses ideas though since they require resources from the DAQ card.  
    Thanks,
    Ryan

    Hi Ryan,
    Just to cover all the bases, what version of LabVIEW are you using and can you attach your VI? Initially your ideas sound like they should work, do you expect to be nearly maxing out the DAQ?
    Thank you,
    Deborah Y.
    LabVIEW Real-Time Product Marketing Manager
    Certified LabVIEW Architect
    National Instruments

  • Anaheim Automation stepper motor with PCI-7330 and UMI-7764

    Hi, I'm fairly new to LabView 2010 and stepper motors in general. I've been trying to get an Anaheim Automation stepper motor and encoder to work with LabView with some success but it isn't quite right. My main problem is when the home switch is activated the whole thing is killed and I cannot get it to respond unless I manually turn the motor so that it is not on the home switch anymore. After that it will run ok, unless it hits the home switch again (btw if it hits the forward limit switch it will stop but it will accept a command to move away from it).
    Could someone please take a look at my wiring diagram in the link below and let me know if there is anything obviously wrong with how I wired it up or if you have any suggestions on where my settings might be going wrong I'd really like to hear from you. 
    Thanks,
    Rob
    Wiring diagram: https://docs.google.com/present/edit?id=0AW08JmeQD7nyZHBzejljOF82OWc4NHg4Z2M4&hl=en_GB&authkey=CPbsv...
    Tech sheets:-
    Stepper motor: http://www.anaheimautomation.com/manuals/stepper/L010130%20-%2023MD%20Series%20Users%20Guide.pdf
    Encoder: http://www.anaheimautomation.com/manuals/encoder/L010723%20-%20ENC-A2N%20Single-Ended%20Encoder%20wi...

    Thanks for the reply, I am trying to run any of the find reference example VIs from NI. I've not edited the code in any way.
    The motors will run with the wiring I've posted, it'll move to the forward limit switch then come back again but it will then hit the home switch, the motor stops and cannot be started again until it is manually moved off the home switch. It has never made it all the way to the reverse limit switch meaning I cannot use home (it stops) or the centre (can't find the reverse limit) as a reference point.
    It was suggested to me I might have the grounds miswired, the manuels were not all that clear so I'm unsure.

  • I need a stepper motor to run a metal sheet

    1.i am doing a project in labview .i need a stepper motor to run a metalsheet and i need to interface it with labview.specification of stepper motor is
    torque: 2n
    load  : 4-5kg
    arm   : 4 
    2. I am using a vision assistant in labview . If i store the script file in my desktop i cannot retrieve it, there is some win32 application error. How can i store my script file like a labview file  

    You are asking two different questions here.
    For question 1: Please stick to the original thread. You've already received numerous responses. If they are not adequate, please indicate what is not adequate in that thread, rather than making people rehash the same answers. 
    For question 2: This makes no sense. What script file are you talking about, and why would you want to store it "like a labview (sic) file"?

  • Position drift during the stepper motor controlled back and forth motion

    Hi everyone there,
    I get a headache position drift problem during the stepper motor controlled back and forth motion. I have been wroking on the problem for the last two weeks, and still can not figure it out. So I write down here my problem in hope of getting some clues from those have some experiences in stepper motor motion control.
    My goal is to use a stepper motor to drive a beam flage fixed onto the shaft to go back and forth for a certain angle, and this back and forth motion needs to be stable and reproducible within hours. With the SMD1 stepper motor driver, I only need to send in a pulse train to control the number of steps(the pulse frequency defines the stepping rate), and another pulse to controle the direction (i.e., cw or ccw). To do this, in LabView, I used the counter of the DAQ board to produce a finite pulse train to step the motor, and used one digital line to produce a pulse to switch the direction every 500ms, the timing is contolled by the software.(I used the oscilloscope to monitor these two pulses, the pulse train produced by the counter looks very stable, and delay between the pulse edges of the direction pulse and the pulse train is also very stable within 500ms. There seems no software timing problems at such a long delay.)  And this labview controlled motor appears to work perfectly as I required, the motor steps a defined number of steps at one direction, and then steps back at the origin position. But after running for a few minutes, the back position shifts gradually(I can not observe a obvious shift at the first few minutes) with repect to the origin position(the position I start running). I looked it up at the manual and also the website, I got a clue that this might because the motor steps at the resonace frequency of the motor and hence misses or takes extral steps sometimes. So I changed the steping rate from 1Hz to 1000Hz to see if the shift disappears or gets smaller at certain frequency range, but the shift always exists.
    I did observe the shift got smaller within the same running time when change the step model from full step (1.8degree/step)to half and quarter step model. According to this, the motor did miss steps (or pulses) during running, the quarter step model has smaller shift due to the smaller steps.  But I also noticed that the motor always shift at one direction, no matter I started with clockwise or counter-clockwise, this seems really strange to me. Because the motor should shift at each direction with the same probability if we assume the motor missis steps randomly.
    There is something must be wrong, either the labveiw program or the motor, but I don't even know a clue of this weird shift problem. And because of this, I haven't made any progress in my lab for the last three weeks. So any suggestions could be very helpful for solving this headache and will be really appreciated.
    Thanks a million in advance and Merry Christmas!
    Li

    Hey, Brian Beal,
    Thanks for your quick response. "accel" and "decel" mean acceleration and deceleration, am I understanding right?
    If yes, then I don't have these in my LabView program, I just generate one TTL pulse train and one TTL pulse with LabView and send them into the SMD1 stepper motor driver.
    The pulse train steps the shaft, and the other switchs the direction.
    Yesterday, I confirmed that if the motor steer always at one direction either CW or CCW, then the stepping were very stable, no missing or extra steps happen for hours.
    And I also observed that the motor took one extra step  from time to time when the direction changes. And this only happens when the direction switch from CW to CCW. (bizarre!)
    I guess this indicates that some pulse noise happens when the motor switch the direction too often.  But I just don't have any clue for irregular extra steps.

  • Stepper motor positioning control system

    hello
    Iam building positioning control system using a stepper motor, and I need to know what are some position sensors available to feedback the position of the stepper motor.. Also I need to know how can use a C code in the labview...For example, if I have an algorithm developed in C; How can I use that code in the labview..
    Thanks
    Shaham

    Shaham,
    Below is a link to several encoders that NI provides specifically for stepper motors.
    Quadrature Encoder:
    http://sine.ni.com/nips/cds/view/p/lang/en/nid/205321
    As far as the C code is concerned, this can be accomplished in two different ways, provided that the code is first placed in a dll file.  
    First, you can import the dll into a project library, by selecting Tools»Import»Shared Library.  This option is good for code that will be used often, as it creates wrapper VIs for each function that can be reused.
    Secondly, a "Call Library Function" node can be used to call a C function from a dll.  This procedure is shown in the following tutorial, and is useful when code only needs to be called a few times.
    http://decibel.ni.com/content/docs/DOC-9069
    I hope this helps!
    Drew
    Drew T.
    NIC AE Specialist

  • Stepper motor vi

    Hi,
    I am relatively new to the labview codes for stepper motor control.
    Let me start by writing what I am trying to achieve. I am trying to control a valve with a stepper motor. I have a bipolar stepper motor from Oriental motor co. mounted on the valve. I dont have the driver/ controller for the motor. I am thinking of buying a third party low cost controller that will drive the motor and use the labview to talk to the controller.
    I am using labview 6.0 and I guess but I am not sure if one can write a simple stepper vi. that will allow one to get around. I already have 6024E data aquisition card running on the computer.
    Can anyone suggest how should I go with in achieving this?
    Thanks
    SAL  

    Hi Sal -
    Most motion applications involve a controller, a drive, and a
    motor.  The controller runs a deterministic feedback-control loop
    and sends updated commands to the drive.  A separate drive unit is
    necessary because the PCI/PXI bus is incapable of sourcing the current
    required by the motor.  The drive also takes commands from the
    controller to handle error situations and shut down the motor
    appropriately.
    NI offers a line of motion controllers (PCI/PXI-733x, 734x. 7350) and
    motor drives (MID-760x, 765x) that fit most stepper and servo
    systems.  The controllers have a driver call NI-Motion and an
    associated API.  This API lets you program your controller in
    LabVIEW, LabWindows/CVI, MSVB, etc.  If you choose to use a
    third-party controller, it will have its own API (VIs and function
    calls) provided by the vendor.
    If you would like to program your own control loop to handle custom
    inputs and algorithms, you can use the NI SoftMotion module.  This
    module allows you to create a custom controller from your LabVIEW
    Real-Time system.
    NI motion controllers and drives can be found here: NI Motion Hardware
    The SoftMotion module is described here: NI SoftMotion Development Module
    David Staab, CLA
    Staff Systems Engineer
    National Instruments

  • Control two stepper motors with PCI 7332 for sinusoidal movements

    Hello,
    I am now using two stepper motors of RK566BAE (Oriental motor). I connected those two motors with UMI-7764 and PCI-7332. I designed to have independent sinusoidal movement of each motor. The first motor is wired to Axis 1 and the second to Axis 2 (of UMI-7764).
    I want to use Ni-Motion to create  a single VI in LabVIEW which helps to control both motors. But I have not figured-out how to obtain the movement I desired.
    Could you please advise me.
    Thank you so much.

    There are two ways to do elliptical arc moves:
    Use contouring two download target position arrays to the onboard buffer
    Use arc moves in combination with gearing (shipping example). This requires three axes.
    The 7332 doesn't support contouring and gearing and it doesn't provide a third axis, so there is no way to use this board for this type of moves. The cheapest NI board that supports elliptical moves in contouring mode is the PCI-7342. As the second option requires three axes, at least a PCI-7344 is required for this method.
    Here is a link to a feature comparison table for all NI 73xx motion control devices.
    Kind regards,
    Jochen Klier
    National Instruments

  • 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]

  • Configure stepper motor with MAX

    Hi,
    After wiring VI, I don't know what must I do to control my stepper motor?
    Can anyone give general information what must to do.
    How to configure stepper motor with MAX? I'm using PCI6036E.
    Thank you

    The answer to your question is dependent on your motor/motor controller and the inputs that it needs. Are you using a stepper motor controller? The PCI-6036E probably won't be able to supply enough current to power your motor (max 5mA) by itself, so you will probably need a stepper motor controller. With the 6036E, you do have 2 analog outputs, 8 digital I/O, and 2 counters (can be used for pulse train generation). Have you considered an NI Motion Control Board? ni.com/motion
    -Alan A.

  • Calibration of stepper motors

    Hello all, 
                Am using two stepper motors for XY motion ,but since I do not have an encoder for positon reading , how should I do the calibration part. Is their any particular procedure for calibration or is it has to be done using hit and trial
    Thanks in advance.
    Akshay

    If you do not have any feedback signals from your motion system you will never know about the exact position of your drive. 
    You will not necessarily need an encoder. If you do a plain movement, often it is enough to generate a feedback signal when the drive reaches a certain position. Usually a mechanical switch or a an opto switch is used for this application. The output signal (provided it is TTL level) can be connected to the HOME input of the axis in question on the NI board or the UMI box respectively. Mechanical switches suffer from contact bouncing which might be mis-interpreted by the "find home" routine of the NI boards. If possible, use an opto switch but take care that the switch does not get "confused" by ambient light. 

  • What is the data throughput in labview. I want to use the parallel as acheap digital i/o to drive a stepper motor.

    I am trying to use the parallel port on a win xp machine to send data a@ up to a 3k rate. This is for the the purpose of driving a stepper motor. I have tried the port.out vi and placed this vi in a loop and it on a scope it looks like I am limited to a a 200hz rate. What am I doing wrong??? Can labview do this or is it too slow ???
    Thanks

    snook wrote:
    > what is the data throughput in labview. I want to use the parallel as
    > acheap digital i/o to drive a stepper motor.
    >
    > I am trying to use the parallel port on a win xp machine to send data
    > a@ up to a 3k rate. This is for the the purpose of driving a stepper
    > motor. I have tried the port.out vi and placed this vi in a loop and
    > it on a scope it looks like I am limited to a a 200hz rate. What am I
    > doing wrong??? Can labview do this or is it too slow ???
    Basically the way the Port I/O VIs are implemented they call through a
    device driver for each port access. This slows down the maximum port
    accesses to something like 1000 times per second depending on the speed
    of your CPU.
    There is a way to do it faster but that is a little more trick
    y. The
    idea is to use a device driver to enable particular port addresses to be
    accessed directly from the application level instead of always going
    through the kernel.
    I have written such a VI library and accompagning DLL and device driver
    and made it available on OpenG. It is not yet part of the standard
    binary distribution packets so you will have to get it from the CVS
    repository.
    Go to:
    http://cvs.sourceforge.net/viewcvs.py/opengtoolkit/portIO/built/portio/
    and download all the files in there including the ones in the
    subdirectory "ogportio.llb" and if you like "docs"
    If you want the nitty gritty technical details you can also look at
    http://cvs.sourceforge.net/viewcvs.py/*checkout*/opengtoolkit/portIO/c_source/Description.htm?rev=1.5
    On my 866 MHz Pentium mobile I can increase the number of port accesses
    in this way from 440 ms for 4000 read byte port accesses (100us ms per
    access) to 20 ms for the same number of read accesses (5 us per access).
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

Maybe you are looking for