2 motor control via joystick in an underwater ROV

I have a term project.I am doing an underwater ROV with labjack U3 using Labview.I do not know how to control 2 motors with one joystick.It is too complicated.I need help.??

I'm wondering a bit how you would use a USB data acquisition device for motion control, but as long as long as you don't use this for closed loop control it could be ok.
But anyway. Here are some links to example that might help you. As you could imagine NI doesn't provide examples for labjack products, but you should be able to adapt the examples to your hardware:
Joystick Inputs with DAQ Card Outputs
Motion Control with USB Joystick
For more example code and tutorials please search ni.com for "joystick LabVIEW"
Kind regards,
Jochen

Similar Messages

  • Steppper motor control via RS232

    hii
    i am new to this stepper motor controlss section.
    i am using vaccum compatible stepper motor .. the whole manual of this is ayyached alongwith..and the program made by
    me is also attached along with..i had run the other stepper motor with the same code..i do not know where is the problem..
    please help me..
    thanks
    do not hesitate to give kudos

    Hey Sahil,
    Thanks for posting on the forums. Hopefully this was the thread you were referring to in the Engineer Awesome ni.com/community group discussion. Sorry that you did not receive any feedback from your issue, that is fairly rare.
    Anyway, in regards to the issue at hand. The fact that you are using a stepper motor is not as significant as the fact that you are communicating to your instrument (in this case I would image that it is your motor controller/drive) via RS232. I hate to point you to another resource, but the instrument control forum may be the most appropriate location for your query.
    In the Engineer Awesome discussion, you mentioned that you were able to control the device through a third party application but you were having trouble doing so in LabVIEW. My first reaction after looking at your code is termination characters. Does your controller expect any sort of termination character? Also, are you sure that you are sending the same commands via LabVIEW as you are in the third party application? If you use a port sniffer application to monitor the traffic over your RS 232 connection when your third party application is running and compare that to when your LabVIEW code is running (you could use NI SPY for this when you are using NI VISA), how do the two situations compare.
    If I had to guess, I would think that you are not sending commands/termination characters to your instrument that it is expecting.
    Lastly, a more detailed description of what your issue is, what you have tried, and what is and isn't working would really help everyone understand what is going on and how to help. As it is, it is unclear what the issue is or what you are trying to accomplish.
    Hope this helps.
    -Ben
    WaterlooLabs

  • DC motor control via ctr1/ctr0 pwm output stops outputting after one loop through.

    Working on this project to control an H-bridge controlled
    motor using pwm output from ctr0/ctr1 for ccw and cw on the motor. A sensor detects where it is at and each cycle goes from black to white. For some reason, the motor only turns on once and then nothing comes out of the ctr outputs after that. Anytime the program is stopped and restarted it works for one cycle. Or if just the program is run at the skipcolor sub-vi. this can be run multiple time to control it properly. During the actual run it doesn't work. Any implementation device would be great. I am using the PCI-MIO-16E controller.
    Programs attached for reference.
    Attachments:
    SkipColor1.vi ‏111 KB
    MotorControl2.vi ‏99 KB
    PROJECT 2a2.vi ‏18 KB

    Hey suspencefull,
    You are probably going to have to think about re-designing your code. Your pulse train is not continually generating because you do not have it in a loop. When you use the DAQ Assistant to create a continuous pulse train, LabVIEW will prompt you if you want it to automatically add the loop. You must have deleted it or chosen not to add the loop.
    There will, however, be problems though when you add the loop back in. The SkipColor sub VI will not finishing executing until the loop is finished and therefore you will never move out of the first frame of your sequence. I would suggest redesigning your code so that these thing can occur in parallel.
    Please let me know if you have further questions.
    Regards,
    Chris Delvizis
    National Instruments

  • Can I modify the Arduino sketch 'LIFA_Base​.pde' to include some motor control

    Hi there,
    I am new to Labview and Arduino. I have two Inertial Measurement Unit sensors and I wish to send the readings to a PC via Bluetooth. I read that I can perform this using the LIFA. Can I modify the Arduino sketch ‘LIFA_Base.pde’ to include some motor control? I wish to use the readings earlier to control the motor to move different directions. At the same time, I wish the readings can be sent continuously to the PC wirelessly?

    The newest LIFA_Base.pde has motor controls. The issue that I see is that the VIs are designed to be connected to the Arduino through serial.
    You could have an Arduino connected to the computer and another Arduino connected to the motors. Each Arduino is equipped with Bluetooth to create the wireless connection.
    Alternatively, and probably easier... create your own case in the LabVIEWInterface.pde to handle Bluetooth commands from the computer. In this case, you would only need one Arduino with Bluetooth (connected to the motors). *Assuming your computer has Bluetooth and you can send Bluetooth commands.
    It is hard to give suggestions without knowing the whole system. Hope this helps.
    Edit: Also, you should upload your Arduino (LIFA) related questions to the LIFA Board: https://decibel.ni.com/content/groups/labview-inte​rface-for-arduino
    CLD Certified 2014

  • Function returning control via CType. Is this risk-free?

    I want an easy way to get a TabPage's child (user)control without writing CType() functions everywhere.
    For this I created a function that returns the control via CType:
    Private Function ChildIRCControl() As IRCControl
    Return CType(Me.TabControl1.TabPages(Me.TabControl1.SelectedIndex).Controls(1), IRCControl)
    End Function
    Now, is this risk-free to do or are there any chances that it will bug or don't work in some cases?
    Thanks
    //Visual Vincent
    EDIT:
    Now to rephrase and explain my badly written question:
    The user is able to create new tabs, and for each new tab a IRCControl (which is a UserControl) is added to the tab's controlcollection.
    Now there's no problem doing the above. BUT since the tabs are created programmatically, I cannot get the control inside the tabpage without some kind of cast function.
    Example of creating a new tab:
    Private Sub CreateNewTab()
    Dim IRCc As New IRCControl 'This is a normal UserControl.
    Me.TabControl1.TabPages.Add("New Tab")
    Me.TabControl1.TabPages(Me.TabControl1.SelectedIndex).Controls.Add(<a control that has nothing to do with this question>)
    Me.TabControl1.TabPages(Me.TabControl1.SelectedIndex).Controls.Add(IRCc)
    End Sub
    Now to access the UserControl in the currently selected tab I need some kind of Cast function. I use CType for this:
    CType(Me.TabControl1.TabPages(Me.TabControl1.SelectedIndex).Controls(1), IRCControl)
    But typing this long CType function in every If statement needed and every Loop used takes time, and is horrible to read.
    Now, will it work just like the normal CType if I access it like this instead?
    Private Function ChildIRCControl() As IRCControl 'The UserControl
    Return CType(Me.TabControl1.TabPages(Me.TabControl1.SelectedIndex).Controls(1), IRCControl)
    End Function
    Private Sub ModifyTextBox() 'Example
    ChildIRCControl().TextBox1.Text = "Hello World!"
    End Sub
    Hope this explanation is better for you guys, and sorry for not bringing all this up before.
    I hope your day has been better than yesterday, but that it's worse than tomorrow...
    Please mark as answer if I solved your problem. :)

    Now, is this risk-free to do or are there any chances that it will bug or don't work in some cases?
    To make it safe you would subclass the Tab and TabPage controls and make this method a function of the new Tab.  Then, that class would include code to ensure that only your custom tab pages were added, and that for each added tab page the first
    control was the correct type - presumably creating it automatically or from a value passed to it in the constructor.  That control is then a property of the tab page, and there is no need to use the Controls collection or do any type conversion.
    The problem is that you actually have no control over the order of items added into the Controls array if you are using the designer.   Even if you are sure that each tab page has one of the controls, it might not be at index 1.  
    You could scan the tab page Controls collection, but if there are several of that control type then you also need a way to know which one you really want.  That's what your code should be checking.   If you correctly identify the control in
    the collection there is no need for CType - it's already the correct type.   You can check the type without trying to do the conversion by using TypeOf.  See
    https://msdn.microsoft.com/en-us/library/0ec5kw18.aspx
    Thanks for the answer.
    I guess I could have added this to my initial question too: I'm creating the TabPages and UserControls programmatically and that's why I need to use some kind of Cast function. There are two controls in each tabpage, and they're added in this order:
    Private Sub <Some kind of sub>()
    Dim IRCc As New IRCControl 'The UserControl
    <The new TabPage>.Controls.Add(<The other control>)
    <The new TabPage>.Controls.Add(IRCc)
    End Sub
    So the only thing I wanted to know was if I could do this:
    If ChildIRCControl().TextBox1.Text = "blahablaha"
    ChildIRCControl().RichTextBox1.Text = "blabla"
    End If
    Instead of writing the long CType, or any other cast function all the time,
    If CType(Me.TabControl1.TabPages(Me.TabControl1.SelectedIndex).Controls(1), IRCControl).TextBox1.Text = "blahablaha" Then
    CType(Me.TabControl1.TabPages(Me.TabControl1.SelectedIndex).Controls(1), IRCControl).RichTextBox1.Text = " "blabla"
    End If
    as it's both a readability and writability nightmare.
    And at last I apologize for the badly explaining question that I wrote.
    I hope your day has been better than yesterday, but that it's worse than tomorrow...
    Please mark as answer if I solved your problem. :)

  • DAQ and motor control in the same VI

    Hello,
    I am a beginner in labview and I am trying to control a maxon motor and run a NIDAQ at the same time. Basically, I need to measure the pressures and the angles at the same time and record these.
    The problem that I am facing is that when I execute the VI, the motor runs first and this is followed by the measurement. I have twiddled around with it a lot getting a lot of help from this community but I can't figure it out. No matter what I do the motor starts running first and after the motor has completed its movement then the DAQ takes the measurements.
    Is there any way to run the motor and the sensors together? I can run the motor seperately and I can run the sensors separately in their own VIs but can't seem to run them sequentially.
    Any help would be appreciated.
    Aman
    Attachments:
    VI.jpg ‏64 KB

    In LabVIEW, your wires between VIs (and structures like While Loops) determine the order in which things happen.
    There are several approaches that you can take to de-couple the motor and DAQ processes.  The most obvious would be to put the motor control in one while loop, and the DAQ in another.  Yes, you can do this in LabVIEW.  Just don't get too carried away.  Each loop usually will go to a separate core to run.
    If there is data that has to be shared between the loops, you can use local variables, or the Value property nodes of the controls and indicators of your VI.
    Machine Vision, Robotics, Embedded Systems, Surveillance
    www.movimed.com - Custom Imaging Solutions

  • How to create user credit control via customization

    Hi !
    I have to create user credit control via Transaction :
    SPRO.
    path:
    Sales and Distribution->Basic Functions->Credit Management/Risk Management->Credit Management->Define Automatic Credit Control.
    I want to check the user checkbox, and create my logic
    of credit control.
    In the help of credit control screen, it says that i have
    to use user exits LVKMPTZZ and LVKMPFZ1.
    However when i looked for that user exits at SMOD
    that user exit don't exist !!!
    How do i use those user exits ? Why can't i find those user exit ?
    Can you give me please  a code example of how to use
    the user checkbox to change the logic of credit control ? or any material about the issue.
    thanks
    moshe

    Hi,
      You dont find the programs LVKMPTZZ and LVKMPFZ1 in SMOD transaction, check in SE38 by typing the program names, there you have the provision to write your custom code,
      As user exits are specific to the business, it would be difficult to send the sample code to cater the functionality expected by your business,
    Hope this helps,
    Rgds,

  • Maxon Motor Control and NI UMI7774

    Hello,
    I am using maxon motor control PWM servoamplifier ADS 50/10 for my application.I am currently working on a project that requires me to get the precise position (mesure) with an incremental encoder with 2 channels A and B. I am Using NI Motion, NI UMI-7774,NI PCI 7550, and Labview 10
    I try to connect my maxon direct with the Labview Hardware NI UMI 7774 and i don t know how to do this.
    anyone have any idea?

    Hello,
    can you please give me some more informations about the problems you see with the connection?
    Generally you have to at least connect the "Analog Output", the "Ground" and the "Enable" from the NI-7350 with the Maxon ADS 50/10.
    You can find an overview about the pins of the NI UMI-7774 here on page 16/17:
    http://www.ni.com/pdf/manuals/373359c.pdf
    The connector for the Maxon you can find here:
    http://www.farnell.com/datasheets/6244.pdf
    Please tell me, what informations you are looking for.
    Johannes

  • Quanser DC Motor Control Trainer Missing Some VI's

    Hi, my name is Ansel. I am working on a project to set up an NI ELVIS with the Quanser DC Motor Control Trainer board and create a few very simple experiments demonstrating basic mechatronic functions.
    I've been unable to utilize the VI's that came with the Quanser DC Motor Control Trainer board. The disc that was included must have been faulty because not a single file (not even simple html files) would open. I contacted Quanser about this and was directed to a website (http://www.meqtronics.com/public/requests/QCI_TEMP/QNETCDv1.20forLabVIEW8_5/) from which I was able to download the content of the disc. The files I downloaded seem not to be broken, however when I attempt to run one of the VI's, such as "04-QNET_DCMCT_Speed_Control," all but four of the sub-VI's necessary are found. The four missing VI's are "Intergrator.VI," "Integrator (DBL).VI," "Transfer Function.VI," "and "Transfer Function (DBL).VI." I have all the necessary components installed, as far as I know, and a search of my computer's hard drive returns no results for any of these VI's. I am running the full version of LabVIEW 8.5.
    I would appreciate advice from anyone concerning this issue, but I'd also like to know if the Quanser Trainer VI's are the best way to learn how to create my own very simple VI's. All of the documentation I have found on the internet has referenced the trainer VI's that were supplied, so without them I haven't made much progress. I am only interested in a very simple open-loop system for controlling motor velocity as well as a slightly more complex closed-loop system. Is it worthwhile to get the Quanser Trainer VI's working or could I build these experiments from scratch?
    Thank you for your time.
    Ansel
    Message Edited by Ansel on 04-29-2008 04:50 PM

    Ansel,
    Just to clarify, the version of the NI-ELVIS software that you may have is not the reason for the missing VIs in the Quanser program you downloaded.  The VIs in question are included as part of the LabVIEW PID Toolkit, which I'm assuming is not installed on your machine. However, these particular VIs (Integrator, Transfer Function, etc) are fairly out of date, and they are only included in the PID Toolkit to support legacy code.  I'm not sure if you have access to the PID Toolkit (it is also included as part of the LabVIEW Real-Time Module), but I would not suggest purchasing it just to get this Quanser code working.
    If you are going to be focusing on simple open-loop control of the Quanser DC Motor, you could start by looking at some of the basic DAQmx examples.  Driving the motor at a certain velocity would just require supplying a constant voltage through a DAQ output.  If you want to do more advanced closed-loop control, the LabVIEW Control Design & Simulation Module might be worth taking a look at.  Take a look at the 3-hour Control Design & Simulation course here.  It is written specifically with the Quanser DC Motor board in mind.
    Chris M.

  • Can Wireless Home Audio products be controlled via IP with any other devices?

    I'm interested in knowing if the Wireless Home Audio Director, Conductor or Player can be controlled via IP with alternative controllers?  Specifically, I'm interested in integrating the products into a universal remote control or home control system and still have 2 way communications with feedback.  IP and RS232 are the most commons ways of accomplishing this.

    Hi,
    Maybe for basic functions like (play, stop, next) using the IR remote, a third party IR based universal remote may work but that's a big gamble to take, anyway what would be the purpose then of the Linksys DMRW1000 (IP based remote control) remote that Linksys is selling if its compatible with third party remotes.
    Wireless Home Audio remote
    Well that's my thoughts on this, I hope you'll find the device your looking for.

  • Error 1082 when setting Strings[] property of a menu ring control via property node.

    I've attached a VI in which I attempt to set the Strings[] property of a menu ring control via a property node.  Can anybody figure out what I'm doing wrong here?  I'm using LabView version 7.1.
    Thanks,
    Mark Moss
    Attachments:
    Bug Test.llb ‏69 KB

    Open up your Stations Parameters Control.ctl file and change it from a Strict Type Def. to just an ordinary Type Def. (the pull down menu is located next to the font selector).

  • New to Motor Control, Seeking best approach

    Hi...  I have an upcoming task where we want to have a LabVIEW based motor control applied to a round, rotatable table inside a coating chamber.  The table will be on the order of 20 inches in diameter, made of aluminum and I will guess that it might weigh around 10 pounds.  We will have four equally spaced quadrants where a silicon wafer will sit in each quadrant.  On command we want the table to move to one of four locations where it will hold for quite some time (minutes to hours) while that one wafer is exposed to coating material.  Then we will want it to move to the other three positions in a similar way.  We want to have feedback that the table is where we think it is and we want to be able to define and return to a "home" position when desired...   There is a possibility that we might also want small motors on each of the four individual stations, meaning we would add some planetary rotation capability for each quadrant while still having overall motion control of the larger 20" round platform..   I'm not yet sure of the desired rotation speed of the small planetary components. but let me guess at say from once per second to once per minute...  On the other side I can imagine a case where they might want these to truly "spin" at say 1000 rpm.  For the larger 20" table I would say that needs only to be able to move one quarter of a revolution in say 10 seconds but when it stops it needs to hold accurately...    
    We will have a PC running LabVIEW controlling this and other features of the process...  Certainly a PCI backplane will be available but we have budget to also buy other interface chassis if that's what is recommended... It's a one time deal so we only need to build one system.  
    I am seeking feedback on what's the best motor type, controller, interface, etc for this kind of application...  Your thoughts???   Any feedback will be much appreciated...  thanks.. bob...

    Hi Bob,
    Here are a couple of links to get you started:
    Configuring a Motion Control System
    This is a good general intro to motion control and breaks down what NI provides in the way of Motion drives and controllers as well as the pros and cons of the different types of motors we support. 
    NI Motion Hardware
    This is a break down of all the hardware we sell.
    http://www.ni.com/motion/
    Please let me know if you have questions after looking through these links.
    Message Edited by Michelle_B on 10-20-2008 02:35 PM
    --Michelle
    Instrument Control R&D
    National Instruments
    Instrument Control
    Machine Vision

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

  • FPGA programming for motor control using free downloadable IP cores for PWM and Quadrature encoder interfacing

    Hi,
    I have a cRIO-9014 with a NI9505 DC brushed servo drive module, and I would like to program the FPGA for PWM and Quadrature encoder interfacing using the intellectual property IP functions mentioned in the "CompactRIO Motor Control Basics Tutorial":
    Quadrature Encoder dX Method (FPGA, Use in SCTL).vi
    Pulse Width Modulation (FPGA, Use in SCTL).vi
    I made a search at ni.com/ipnet but I couldn't find them.
    Where can I find free downloadable IP cores for PWM and encoder blocks to include them in my FPGA interface program?
    Thanking you in advance,
    Manuel
    Solved!
    Go to Solution.

    Found by myself (google search!) at:
    https://lumen.ni.com/nicif/us/codepowelecguide/content.xhtml

  • CRIO motor control using AMC Drive

    Hi
    I am trying to setup a simple DC motor control system with cRIO-9081, NI 9401 and AMC PWM servo drive 12A8.  Can someone please tell me if this AMC drive is compatible with my other NI products?  Do I need anything else to setup a simple closed loop speed control for a small DC motor?  Any advice or example is very much appreciated.
    Thanks

    Hi SunnyX,
    It seems like your servo drive is expecting an input of +/-10V analog.  Are you able to confirm this in the device manual?  If that is correct, you will not be able to generate the necessary signal with the 9401.  You will need another module that you can program to output this signal such as the 9263.  
    You could also consider using the modules designed specifically for motion control and the SoftMotion Module to simplify the motion control programming.  Please let me know if you have any additional questions or comments!  Thanks.
    Regards,
    Kira T

Maybe you are looking for