I need an example vi about stepper motor control

Hi.
My system is consist of pc-tio-10 controller, SLOSYN SS2000D6 driver, NEMA 17 stepper motor,and labview5.1.
I'm trying to give a pulse to the motor, take a pulse from the motor and control the nmotor. But I don't know what to do. So I want to see the example vi.
Please let me know where I can get appropriate example for this case. Thanks.
Jee

Here is an older example from LV 3.X, but the concept is still valid.
Attachments:
STEPPER.TXT ‏2 KB
STEPPER.LLB ‏197 KB

Similar Messages

  • 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 control - missing MG17Motor ActiveX object

    Hello,
    I am trying to contrl Thorlabs TDC 001 using LabView 9 SP1. Whe I follow the tutorial to create an ActiveX control(http://www.thorlabs.com/images/TabImages/GuideToLabVIEWandAPT.pdf), I can't find the MG17Motor option even though I have installed Thorlabs APT.
    Does aanyone kknow how to solve this?
    Cheers!

    Hello,
    I used attached Labview code to manage stepper motor control (TDC001 Thorlabs) to translate a sample in my setup, but since some time I obtain an error constantly (attached log). This translation system still works properly with thorlabs software, it also worked with this code, therefore I am really confused why such an error occurs. I just got started with Labview and programme wasn't created by me, so maybe someone explain what is wrong.
    Thank you in advance, Vasili

  • Basic LabVIEW example or tutorial for motor control beginner?

    Hello,
    I'd like to control two brushless servo motors using LabVIEW. I've got a PXI7358 controller card and a Copley amplifier. I've read the Getting Started tutorial but otherwise I am new to LabVIEW. I'm looking for a good basic VI and/or a tutorial about how to get started programming the motion of these motors with LabVIEW.
    Thanks,
    Matthew

    Hi, I'm not sure whether this is the right place for asking this question or not and if not, then please guide me to the right place for asking such question. Thanks.
    I have a stepper motor with the Vector Network Analyzer Anritsu MS4623B. I got it up and running with the LabWindows/CVI. I need to sync the motion of the stepper motor with my data acquisition. Basically, I have to acquire the data in a way that in the start the motor will come back to home position wherever it was and then I want to move it to the specific position to do the measurements (For Example, I want to measure the 40 GHz channel between 1m to 3m movement of a stepper motor on a linear positioning system (ball-screw)). I've interfaced the VNA with the PC using LabWindows/CVI and I've controlled the clockwise and anti-clockwise movements of the stepper motor using LabWindows/CVI but I'm unable to sync the system in a way that whenever I run the code, the motor will run back to the home position and then move to a specific measurement start position and move till the end position and in between do the increment and stop and acquire the data. Is there any one to help me please? It's really urgent please and I'm doing this thing first time so please guide me in a proper way. I shall really apprecaite that and will be highly obliged with you. Thanks for your time and concern.
    Thanks and Regards.
    Attachments:
    VNA & Motor Control User Interface.jpg ‏199 KB

  • Best way to make this stepper motor control system

    The goal of my project is to have real-time data collected by a Dataq 158u utlimately controller a stepper motor.  I orignially planned on running this whole thing with basic stamp, but I'm realizing that this may not be possible.  I have a stepper motor and a L293DNE driver.  I will continuously be recording data with the dataq, in the form of volts, and want these values to determine how the motor works.  For example, if the voltage is 0-3 volts, I want it to rotate clockwise, 3-5 volts not rotate, and 5-8 volts rotate counter clockwise.
    I've been trying to figure this out the past week, looking through threads with basic stamp, matlab, and now labview.
    Is there an easy way to do this? or easier way that I am currently trying to figure out?
    Any help would be greatly appreciated!!
    Thanks in advance.
    -Nick
    Solved!
    Go to Solution.

    Nick,
    What I was describing is how you would need to configure the motor controller to accept PWM from LabVIEW and operate in a Locked Antiphase mode so you could control motor direction. A lot of the LabVIEW part depends on the DAQ you use. For instance does your DAQ have a Counter that can generate PWM? I did some checking just now and your DAQ is not manufactured by National Instruments and I could not locate any native LabVIEW drivers. I did however go to the Dataq 158u MFG website and found they do have LabVIEW drivers BUT their Software (SW) must be running in the back ground. The Dataq 158u web site also has a help forum, I suggest you start their to understand the capability of the Dataq 158u. Also it appears you are not familiar at all with LabVIEW , before you can take on a project like this you need to start with the basics of LabVIEW, learn how to handle arrays so you can store your ADC results and how to use loops and timing and shift registers.  NI has some FREE basic training like the 6 HR intrudction to LabVIEW I would start their. Oh and in your OP (original post) you doubted the Basic Stamp could do this, I do this type of control using Atmel micro controllers all the time, I am sure the Stamp could eaisily do this. Just get on one of their forums for more info. Oh and to answer your question an Inverter is an IC that inverts the input signal, what you would end up with at the direction pins of you motor controller is PWM on one pin and 180Deg out of phase PWM on the other.
    Alan

  • Need some info about Brushless Motor control

    Hi
       I am new to motion control and I am planning to control a Brushless Servo Motor. What I understand from  the motion control tutorials is that I need to use a high performance controller with a third party drive to control a brushless servo motor. Can anyone let me know if thats right and also help me out in finding some more information about Brushless Servo motors and how to control its motion.
    Thanks,
    Sada

    Sada,
    "Do u know where I can find some detailed information about controlling a brushless motor so that I can decide which of the two options to follow?"
    Servomotors
    The NI-Motion users manual has a section on brushless servo motors...
    NI-Motion User Manual
    The 7350 help file (the only Motion boards that can provide internal commutation) has a section on brushless servo motors.
    NI 7350 User Manual
    In almost everycase I am aware of, you will need to buy a UMI to interface with a brushless motor drive (the only case in which this wouldn't be true is if the Drive manufacturer created a drive specifically to cable directly to an NI Motion board).
    Feel free to ask more questions,
    Lorne Hengst
    Application Engineer
    National Instruments

  • Need help with LabVIEW code for motor control.

    Hi,
    My name is Sasi. I am a BME grad student working on my thesis topic of evaluating spine implants for low back pain. For this I am building a test machine that would apply pure moments to a spine specimen. I am using LabVIEW 8.5 to implement control of a brushless AC servo motor. My requirement is,
    Step 1: Initialize the motor.
    Step 2: Start moving it at a uniform RPM to the right (This RPM value too user can enter).
    Step
    3: While doin Step 2; simultaneously read torque cell data (Using DAQ
    asst.). DAQ o/p is from 0 V to 10 V; 0 V being -10 Nm n
                10 V being  +10 Nm
    Step 4: When Torque value reaches +10 Nm, i.e 10 V, the motor stops.
    Step
    5: From the position where motor stopped (i.e no need to reset to
    initial position) Start moving in the opposite direction at the same
                uniform RPM as in Step 2 while reading torque cell data.
    Step 6: Once again when torque reaches -10 Nm, i.e. 0 V, the motor should stop.
    Step 7: Repeat 'Step 2' to 'Step 6' 3 times.
    Step 8: Reset motor postion.
    Till now I have managed to get the motor to move forward n backward @ a desired vel, accl, n deceleration for 3 cycles. I am attaching my code. I am having problem inserting the code for reading DAQmx amidst all this. Can anyone help me out.
    Thnks,
    Sasi.
    Solved!
    Go to Solution.
    Attachments:
    Test_012609.vi ‏35 KB

    Hi Sasidhar,
    I took a look at your problem and I think I have a workable solution for you.  I definitely agree with Lynn's suggestion of using parallel loops.  This will allow the DAQmx portion to run uninhibited by the motion portion, and vice versa.  Plus, you only need to iterate the motion loop whenever the voltage level crosses a threshold.  So, by iterating on the motion code in the same loop that you are iterating on DAQmx code, you are essentially wasting processor.
    I created a VI that should do what you are wanting.  I tested it out myself and it works great.  You might have a tweak a few things to apply to your system (like motion board ID and DAQmx physical channel, etc.).  I used two parallel loops and event-based programming.  Basically the motion loop starts the motor spinning at the specified velocity.  Once the motor is spinning, it waits for the DAQmx loop to tell it that the voltage value has crossed the threshold.  When the voltage value exceeds the maximum threshold (which I set to a value slightly less than 10 to allow for jitter and saturation), the DAQmx loop signals the motion loop that it can finish its iteration.  The motion loop stops the motion, reverses the direction, and starts the motion again.  Once motion has started, it again waits for the DAQmx loop to tell it that a threshold has occurred, but this time, it is looking for a minimum threshold.  I used "Occurrences" to implement the event-based programming in LabVIEW.
    I have commented the code rather thouroughly, so hopefully the comments will answer any remaining questions.  The benefit of using event-based programming for this is that you save processor time, and your motion is more closely synchonized with the DAQmx.  Instead of iterating the motion loop as fast as you can, checking for updates each time, you just pause it, and wait for the other loop to tell you when to start up again.  In the mean time, the processor doesn't have to worry about iterating that loop over and over again.  Also, when the occurrence does occur, you catch it immediately, instead of having to wait until the next iteration.  Thus, you are more closely synchronized with the DAQmx portion of the code.
    I hope this will help you.  Please post back if you have any questions about the code or its implementation.  Good Luck!
    Message Edited by Wes P on 02-03-2009 05:18 PM
    Wes P
    Certified LabVIEW Developer
    Attachments:
    Motion and DAQ.vi ‏59 KB
    DAQmx Loop.png ‏24 KB
    Motion Loop.png ‏17 KB

  • Help me in my mini project about dc motor control using labview

    hi,
       actually the idea is that  using pid controller in labview.. controlling motor.i.e giving a setpoint to pid... n checking whether motor is running accordinly using a sensor.. i.e feedback n/w...  i dnt knw hw to proceed.. can u help me with the circuit diagram

    Hi swats,
    "i dnt knw hw to proceed.."
    I suppose you mean "I don't know how to proceed..", something is wrong with your "o" key
    I would suggest going to the library of your school or university and get a book on basics of electric devices. There you will find a lot of hints on how to measure speed of motors and how they work. In fact your question covers several seminar hours in "Electrical Measurements" course at university...
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • Stepper motor and loacell PID control - waveform motion.

    Hi, 
    Hardware :  cRio9073, C series module 9403 for stepper motor control and 9215 for load cell data acquisition. 
    I am trying to control a stepper motor in a closed feedback loop system with a load cell. The user would have to input two things : the maximum load applied and the frequency of the motion. At the moment I have it working in open loop controlling how many steps forwards or backwards it does and at what rate, with a display showing the load being applied.
    I am now looking to include the "PID.vi" built into labview into my existing code. I am using the load cell output as the 'process variable' and the 'output' of the PID will control the wait time between an ON and OFF signal to the motor (since I have to do the PWM in software as the 9403 module doesn't do it in hardware. Is this the right way to do it? ) 
    I wish to make the motor do a sinewave motion, thus the 'setpoint' of the PID would be dynamic. I have therefore linked the "Sinewave form.vi" (also built into labview) to the setpoint and the frequency of the "Sinewave form.vi" will be the user input for the frequency of the motor. However my problem lies with the 'Sampling info' of the "Sinewave form.vi" : Previously that is what controlled my number of steps, defining the maximum displacement of the motor. Now I need the peak of the generated sinewave to coincide with the maximum load applied defined by the user. How can I make it do that? 
    I have attached my existing code with how I have attached the PID.vi at the moment. 
    Many thanks for your help
    Lawrence 
    Attachments:
    PIDControl.vi ‏23 KB
    BIOGROWTH.lvproj ‏46 KB

    Hi Lawrence,
    Here is an example PID VI.
    Regards
    Rico P
    Attachments:
    General PID Simulator.vi ‏22 KB

  • Robotics-Running two stepper motors

    Hi
    I am working with LIFA (labview interface for arduino) to run two stepper motors to create a special (simple) path on XY plane. The example code (Arduino Stepper Motor.vi) works fine with one motor, but I don't know how I can modify it so that two motors can move with one time pushing the button, one after another while taking turns. Any Ideas? 
    The motion plan is as follows: 1. Motor 2 is stationary and motor 1 moves the load for 100 steps in X direction, then it stops and motor 2 starts to move the load for 70 steps in Y direction. 
                                                           2. The same as 1, only the direction of motor 1 motion is reversed, and motor 2 moves 85 steps instead of 70 in the same direction.
                                                           3. Repetition of 1 and 2 for 4 times with different number of steps at each level.
    I have twe big easy drivers, and one Arduino Uno.
    I truly appreciate your help,
    Best,
    Ashkan

    You could create a state machine.
    You could create a movement recipe where you enter in each sequential movement, and the code steps through the recipe one movement at a time.
    You could create some combination of 1 and 2.
    How do you want it to work? Are these steps going to remain constant, or do you want to be able to change them from one run to the next? How much do you know about LV? Have you any code that you wrote? What is the long term goal -- are you building towards something specific or just learning for the sake of learning?
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

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

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

  • Step motor control

    I would like to buy a hardware and a step motor  for control with labview. Could you please offer any configuration . I have to push with this motor a load equal to 1 kg.
    Regards 

    I'm going to assume that you are familiar with National Instruments Offerings for Motion, and that it is not what you are looking for.
    Here is a link, just in case: http://www.ni.com/motion/
    The most basic stepper motor control system will look something like this:
    LabVIEW-compatible DAQ with Digital Outputs, and Counters.  These provide the Step and Direction signals.
    A Stepper motor.  NEMA 23 and NEMA 17 are common choices.  Larger (NEMA 34) and smaller (NEMA 11, NEMA 8) choices are also avaliable.
    A stepper driver with support for step and direction signals in the voltage range that your DAQ can supply.  This is typically going to be 24 VDC.
    The torque capability will depend on the driver, the motor, and the speed that you need to run at.
    Machine Vision, Robotics, Embedded Systems, Surveillance
    www.movimed.com - Custom Imaging Solutions

  • About at new  control statement

    hello everybody
                                I need a small information about  at new control ..like when i'm using this control to get every new vendor  details ...in the out put its coming the related data like ********** .why its comin like this .can i know .please help me out .
    thanks&regards
    Lavanya

    AT for group change
    Change of group when processing loops of extracts and internal tables.
    Syntax
    AT NEW <f>.
    AT END OF <f>.
    AT FIRST.
    AT LAST.
    AT <fg>.
    The statements are used to process group levels within a loop using an extract dataset or an internal table. They introduce statement blocks that must be closed with ENDAT. The statements between AT and ENDAT are only executed if the corresponding group change occurred.
    When ever you use the control events and display the data you get some scrapped values.
    So, to avoid it use <b>READ TABLE <table name> INTO <WA></b>. and then print the values.
    Regards,
    Pavan P.

Maybe you are looking for

  • Can I use a flash drive to run a virucide on a HP Notebook Mini 110?

    My niece's HP Mini 119 1025DX notebook got infected with a false virucide program emulating MS Safety Essentials. As soon as the WinXP loads it displays itself. It has hijacked the computer and there is no access to the web or to restore the computer

  • Language files for non-official Skype languages av...

    Skype bundles a number of languages with the standard installation file but there are more languages available for the interface. Some of these are really hard to find on the forum or web so to make life easier, some translators have opened a project

  • PO's With Deleted Line and GR's

    I have several PO's that have Goods Receipts posted to them, but also have the PO line Deleted/Locked. There are no invoices for the receipts. I'm not sure how the lines got deleted with outstanding goods receipts on them. These are PO's with text PO

  • JAXB Unmarshall Validation Error Handling

    Hello, During unmarshalling, if say a required element is missing, a ValidationEvent is created and passed to the handleEvent(ValidationEvent e) method of a custom class implementing the ValidationEventHandler interface. From the ValidationEvent, one

  • Is a storage unit and back up unit two different entities?

    wondering if i need a cloud storage and a seperate back up storage unit for my computer.  I was told the timemachine backs up to a storage unit, but I still need something other than the icloud for my movies i download since they are taking away from