4 AXIS MOVE VI

I want to blend the motion of 4 axis, the axis have to read the target position from a .txt file. I have initialized two vector spaces one has three axis and the other has one axis only. When I run the VI I get an error message which says illegal time error at blend function. How Do I remove this error. I am sending the VI as an attachment, Please download the VI and help me fix the error.
Attachments:
barc_trial1.vi ‏193 KB

Hi Tommi,
This issue has been addressed on two other discussion forums (which follow each other in sequential order):
Blending 4+ axis using flex motion 6C card and software
4 AXIS MOVE VI
Hope this helps,
Irene Chow
National Instruments
Applications Engineer

Similar Messages

  • Camera Z-Axis Movement Shutters

    Hello,
    I've encountered this issue before and was hoping somebody could help me solve this most frustrating quirk.
    When I do a slow Z-Axis move with a camera, either pushing in or pulling out, near the end of the movement on the easy-ease, the image shutters as it is coming to a stop - as if I am on a bumpy road and not a dolly track.
    I am using Illustrator graphics with rasterize on.
    Any help much appreciated as it renders some moves not usable.  I don't understand why the movement isn't smooth like a track left/right is.
    Thanks!
    Comp: 1920x1080
    23.976 FPS
    Square Pixels
    Full Resolution
    Classic 3D Renderer
    180 shutter, -90 shutter phase
    16 samples per frame, 256 adaptive space limit

    This problem is usually referred to as a critical panning speed.
    Here is a link to an article that I wrote on the subject.
    http://kb2.adobe.com/community/publishing/908/cpsid_90843.html
    While less likely to happen on a push in or out from the space, the edges may still judder or strobe. Make sure that motion blur is turned on, and then try changing the speed a little bit here or there. Also, make sure that you are getting smooth playback. Depending on the codec you used to render your final product, this may be just a playback issue. I can't tell anything though, without seeing more details about your project.

  • [NI-Motion] two axis movement

    Hallo!
    I've just got my Flexmotion together with two translation stages equipped
    with stepping motors. I looked at some examples regarding two axis movements
    and saw that there are different ways to control two axis.
    What I want to do?
    I will manually set the two translation stages to a starting position.
    Start
    1 axes movent with a constant velocity
    Then there will come a section where I need the two axis movement.
    The movement will be a s-bend either consisting of two arc section
    or cosine sections.
    1 axes movent with a constant velocity
    Now the s-bend back.
    1 axes movent with a constant velocity
    End the end back to a new starting position.
    This is a short sketch.
    Start ------ --------- To the new starting position
    New starting position
    and so on
    So, what's the best way to do this?
    Labview5.1 and NI-Motion 5.1 (I'm not sure about the version of NI-Motion)
    Ciao , Frank .

    Frank,
    It sounds like you already have a good idea of what you are looking for, and the examples are a good way to start. If you are going to use arcs and you know hte radius, the Sequence of Blended Lines and Arcs would be the best method. I have attched a simple example that I created that I believe does what you are asking for. Also, if you want to reset the position back to zero, you can use the Reset Position and Reset Encoder Position vi's that should will set it to a given value.
    Best Regards,
    Chris D
    NI Applications Engineer
    Attachments:
    My_Sequence_of_Blended_Lines_and_Arcs.vi ‏181 KB

  • Synchronizing 2D axis movement with indepedent velocity and position

    I am coding a motion control system using an NI-73xx motion control board and 2 stepper motor linear slides.  The requirement is for both slides to move at the same time (synchronously) yet each slide must have its own velocity and travel distance.  I coded the two axis successfully so they both will run one at a time within a state machine.  Then I created a state where the two axis ran in parallel.  This worked but the 2 axis were out of sync.... duh, I should've known that!
    Anyway, I rewrote the state machine "Run Both" instance using the Start Motion.flx set with Axis\VS Map configured to run axis 1 and axis 2 along with the Resource input set to Axis Control (0).  I'm still having problems. The x axis only runs 1 time.  the y axis runs too many times?  I'm not sure whats going on.  Can someone look through the block diagram and tell me what I am missing.  I have been staring at it too long and I know I am overlooking something(s).
    Thanks,
    Christian
    Attachments:
    2D axis synch - front.JPG ‏85 KB
    2D axis synch - block.JPG ‏228 KB

    Because of the specific VI's used in this program, I am not able to save it for previous version.  However, I have taken a screen shot of the block diagram so that you can build it yourself.  It is a very simple program and most of the VI's should still have the same name in 2011 as in 8.6.  One thing I will point out is that the synchronization occurs in the flat sequence structure.  By having the smart motion VI's within the sequence structure, the motors will not be updated until both VI's receive data.  This is still software timed synchronization, and so it will be dependent on Windows OS jitter which can be as much as 500ms depending on how many processes are running.  Depending on your application though this might be a sufficient amount of synchronization.  Please let me know if you have any questions about this program or the VI's I used.
    Regards,
    Chris L
    Applications Engineer
    National Instruments
    Certified LabVIEW Associate Developer
    Attachments:
    Control 2 Axes BLOCK DIAGRAM.png ‏22 KB

  • Contouring wrong axis moves

    I am trying to use the Contouring with the Motion Assistant generating my moves.
    When I used the stand alone examples - it works fine, but when I configure a straight line move where the X-Axis is supposed to move, but the Y axis is supposed to stay the same the Start motion shows the Y axis trying to move.  I have not changes the code generation technique between the correctly working 1st move that moves the Y axis first (trying to do a square, making the sides using contoured moves where one axis stays put while the other traverses).
    The data arrays I am feeding to the Buffer VIs have X,Y interleaved properly.  I am using the same code to generate the Vector Space in the move that runs properly vs the one that tried to move improperly.  When I plot the data it appears to be generated correctly.
    I don't know why the system keeps trying to move the Y axis on subsequent moves when the value for Y is its current position and the X axis is the one with the channging targets over time (per the contouring output).  I get no generation errors from the Motion Assistant VIs, or the Vector Space setting VI.
    Ryan Vallieu
    Automation System Architect

    I was mis-interpreting ABSOLUTE in the set-up for ABSOLUTE CONTOURING - it doesn't mean the absolute position from the home setting - every move is considered starting at 0,0 from your CURRENT location regardless of it NOT being true absolute 0,0....
    ugh
    "All contour moves are relative, meaning that the move starts from the current position of the axis or axes. In absolute contouring mode, positions are interpreted with respect to the starting position of the contouring move. In relative contouring mode, positions are interpreted with respect to the previous position in the contouring data array."
    Ryan Vallieu
    Automation System Architect

  • During a single axis move, why do my other axes offset their position?

    When I move any one of the axes on my PCI-7344 card I get a positional offset on the other three. when I stop the move, the other three axes return to their approximate starting position after a couple of seconds. I am measuring this offset with an electronic indicator. This error occurs in MAX and in Labview. I have isolated the motor cables and verified shield and ground connections. Do you have any other suggestions on what to look for?

    Thank you Evan, I already solved this problem. My analog ground had actually been tied to the digital ground through the Trust servo amps. Once I isolated these two grounds the symtoms disapeared.

  • Static Type doesn't allow axis movement?

    Hi all, hoping someone can help me here. I have a problem, found a solution but I don't really understand it - hoping someone can explain and help me make sure I'm really solving this in the best way (or if there is a better way)
    I'm trying to use value() on a parent item and I get the error
    XQuery [value()]: Cannot implicitly atomize or apply 'fn:data()' to complex content elements, found type 'xs:anyType' within inferred type 'element(at{http://blah/log/Action_Touch.xsd}:Id,xs:anyType) ?'.
    My repro code is below 
    CREATE XML SCHEMA COLLECTION dbo.[Action_Touch]
    AS N'<?xml version="1.0" encoding="utf-16"?>
    <xs:schema id="Action_Touch"
    targetNamespace="http://blah/log/Action_Touch.xsd"
    elementFormDefault="qualified"
    xmlns="http://blah/log/Action_Touch.xsd"
    xmlns:mstns="http://blah/log/Action_Touch.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    >
    <xs:element name="Action_Touch">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="Action" type="mstns:Action"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:complexType name="Action">
    <xs:sequence>
    <xs:element name="Id" type="xs:int" minOccurs="1" maxOccurs="1"/>
    <xs:element name="ActionItem" type="mstns:ActionItem" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ActionItem">
    <xs:sequence>
    <xs:element name="Id" type="xs:int" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    </xs:complexType>
    </xs:schema>
    GO
    create procedure dbo.test
    as
    declare @_Action_Touch_Xml xml (document dbo.Action_Touch)
    select @_Action_Touch_Xml = N'<?xml version="1.0" encoding="utf-16"?>
    <at:Action_Touch xmlns:at="http://blah/log/Action_Touch.xsd">
    <at:Action>
    <at:Id>15</at:Id>
    <at:ActionItem>
    <at:Ordinal>1</at:Ordinal>
    <at:Id>28</at:Id>
    </at:ActionItem>
    </at:Action>
    </at:Action_Touch>'
    ;with xmlnamespaces('http://blah/log/Action_Touch.xsd' as at
    select
    ai.c.value('at:Id[1]' , 'int') as Id
    , ai.c.value('../at:Id[1]' , 'int') as Action_Id
    from @_Action_Touch_Xml.nodes('/at:Action_Touch/at:Action/at:ActionItem') ai(c)
    go
    If I replace the parent referencing line with
    , ai.c.value('string(../at:Id[1])' , 'int') as Action_Id
    Then it is ok, but is there no better way? This seems like a hacky work around to me..
    Appreciate any pointers on this. Thanks

    Generally I avoid parent-axis (..) due to severe performance problems particularly with larger pieces of xml.  This is described in detail
    here.
    As is happens, parent-axis also has an issue around inferring xs:anyType, which is described in this MSDN article,
    XQuery and Static Typing:
    "Some operations lose type information during inference. For example, if the type of a node cannot be determined, it becomes anyType. This is not implicitly cast to any other type. These conversions occur most notably during navigation by using the parent
    axis. You should avoid using such operations and rewrite the query, if the expression will create a static type error."
    The solution is to rewrite the query, using CROSS|OUTER apply to drill into the xml left to right, eg
    ;WITH XMLNAMESPACES('http://blah/log/Action_Touch.xsd' AS at )
    SELECT
    ai.c.value('at:Id[1]', 'INT') AS ActionItem_Id
    , a.c.value('at:Id[1]', 'INT') AS Action_Id
    FROM @_Action_Touch_Xml.nodes('/at:Action_Touch/at:Action') a(c)
    CROSS APPLY a.c.nodes('at:ActionItem') ai(c)

  • Importing a velocity vector when blending moves on one axis

    I have altered the template of 'Sequence of Blended One-Axis Moves' such that it imports a vector of moves, but am trying to also import a vector of varying velocity values to accompany each position value that is input into the program. I have tried moving the velocity input into the loop as well with no success. Any suggestions?

    Dear Iaf3g,
    Have you tried creating an array of Velocities corresponding to the Target Position Array and then auto-indexing it into the while loop much the same way as the Target position array? Then you could input a different velocity to the Load Velocity VI each iteration of the loop. You also need to make sure that both the Load Position and Load Velocity VIs execute before the Start Motion VI, and you can ensure this by the way you route the error wires. It sounds like you tried something similar to this. Why didn't it work? What errors were you getting when trying to load velocities in this way?
    Best Regards,
    ~Nate

  • Halt causes jerk movement

    Using PCI-7344 and MID-7604 and FLEXMOTION.
    3-Axis control, stepper motors, closed loop with optical linear encoders.
    1) When I am stationary and command a Halt, there is a resulting jerk movement, sometimes up to a few 1000 servo steps. Why?
    2) The MAX PID Tune does not work at all. Is there a way to use the LabView PID VIs, including the Auto-Tune VI to tune the PID parameters? Do you have an example or documentation on how to do this?
    3) I am having trouble with getting the move complete to complete. I realize one factor is the PID parameters. I have attempted to tune them manually with the Capture and Read Trajectory data (this is a very cool tool) but so far am not very successful at finding the correct PID parameters. Can I get more documentation on what factors are included in the move complete.
    4) The pull-in moves at the end of the move do not appear to be limited by the commanded velocity and acceleration. Using the high rate data, I am often seeing velocities 4-5X the defined velocities, which then would throw-off the PID controller. Is this a design flaw? Why is this? The pull-in moves are usually completely un-successful at correcting the endpoint.
    5) I am using a 3-D contour move to perform a curve. To define the geometery of the move, I need about 170 points. I would like the speed of this move to be approx 6000 steps/second. Due to the definition of the speed of a contour move to be dependant on the following parameters:
    1) Distance between points
    2) Time delay between points, limited to intervals
    of PID rate which can be btwn 10-45 msec for the
    fastest PID rate, or btwn 10-90 msec for slowest
    This requies me to have a contour defined as 3500 points. This is a big drain on the system due to this restriction.
    1) Why is this restriction here? Is there an work around?
    2) When you change the PID update rate, what does that effect? High speed capture rate? All card processing?
    3) There does not appear to be a way in LabView to change the PID rate? Am I missing it?

    http://forums.ni.com/t5/Motion-Control-and-Motor-Drives/4-AXIS-MOVE-VI/td-p/58560

  • How can i control the motor movement of stepper motor using a NI PXI 7330

    Good day to all,
    i'm a newbie in programming in motion control of NI. I just want to ask if how can i control the clockwise and counter-clockwise rotation of a stepper motor using NI PXI 7330 module. all i can do is the counter-clockwise rotation using the example vi (Simple one-axis move.vi) found in the examples of LabView 2009.
    Thanks

    what type of limit switch sensor are you using and how did you wire itß What are your MAX settings regarding the limit switches?
    Good day SIr Jochen,
    I am using two reed switch for the reverse and forward limit. I wired the signal wire of the reed switch to the limit ports(forward and reverse Limit) and its ground to the digital ground of the UMI-7764.
    the attachment below is the my max configuration about limit switches
    Attachments:
    max configuration.JPG ‏155 KB

  • Multiple velocity inputs in a sequence of blended moves

    I used the template 'Sequence of Blended Vector Moves' in order to synchronize two different motions on two different axes. I am trying, however, to input two different velocity vectors (one for each axis move) and can't seem to find a good way to input both of them as the velocity input only accepts a single input.
    Thanks!
    Lauren

    Hello laf3g,
    Have a look at the attached LabVIEW VI. I duped the “Load
    Velocity in RPM” VI and allowed for the velocity specification of each axis.
    Give this a shot and modify accordingly. I hope this helps
    Message Edited by DjDaveNI on 07-28-2008 06:56 PM
    David G
    Sales Engineer - SE Michigan & N Ohio
    National Instruments
    Attachments:
    Sequence of Blended Vector Moves.vi ‏69 KB

  • Vertically sync time position for two or more 2D axis systems?

    In DIAdem: VIEW,
    Is it possible to vertically sync the time position for two or more 2D axis system charts placed above each other?
    I have displayed several channels on one 2D chart, and one channel of particular interest on a separate chart above, which was very easy to do. It would be really useful to sync the time position on both charts, such that scrolling one chart also scrolls the second chart, or zooming one chart also zooms the second chart to the same area, which seems like a fairly basic thing to want to do, but I haven't found a way to do it yet.
    Any help greatly appreciated!
    Solved!
    Go to Solution.

    Hi Brad,
    Yes, I have been using that method, which works fine up to a point.
    But, say you have several curves displayed on the bottom chart, with the Y-Axis set to "n Y-axes", then the start of the x-axis will be further across to the right than the top chart which has only one curve displayed.
    It is possible to add an empty area to the left of the top chart, to push the start of the x-axis across into alignment (see attached), but every time you add or remove a curve on the bottom chart, or the scale changes enough to add a digit, the start of the x-axis moves and the top chart needs aligning again.
    I'm really after a method to lock both ends of both x-axes to the same vertical screen position, so everything stays aligned automatically?
    Attachments:
    chart - full.JPG ‏152 KB
    chart - detail.JPG ‏145 KB

  • Axis fault using 9514 module. How do I remove it?

    Hello,
    I have a 9074 cRIO controller, and i made a project with a simple VI for a single axis move. I set up a new axis on Module1 (9514) and i just moved it up in the project file tree under "My System" from the "Remote System". Than, I called it as a resource in my VI, but there was no motion on the servo motor. When I looked in the controller, the red LED was light on which indicates "axis fault", but I couldn't find in the manuals what does it actually mean, and how do I remove the axis fault? I tried rebooting the controller, but the LED was still on after it initialized back.
    I would really appreciate any help from anyone.
    Thank you, Marko

    Hello Markopp,
    In your VI, do you have Initialize Controller VI implemented? With that VI, it will call Clear Faults VI which clears all modal errors and drive faults on all axes.
    Andy Chang
    National Instruments
    LabVIEW Control Design and Simulation

  • Read per axis status / run-stop don't work at low speed

    Hello,
    This is my fisrt motion program. I don't understand why the "read per axis status" don't send me the correct status for "run/stop" (only this status) when I run a low speed. The other status are all right. Impultions are still generated (In realyty motor run...)
    I put a simple example to illustrate. Perhaps is it a wrong configuration in MAX but this seems unlikely. I can't join my Max config because ".nce" are not accepted in attached files.
    Thank you wery much
    Attachments:
    One-Axis Move (Accel - Max Velocity - Decel) with read status.vi ‏26 KB

    I realize this is an old post but wanted to post the solution in case others run across it.  The reason the indicator is not working at low speeds is because it operates on a threshold.  The default setting is for it to display false when running under 4000 steps or counts per second.  Refer to KnowledgeBase 4XHD6DZY: Why does my Run/Stop bit not appear active while my motor is running?
    Alex Person
    NI-RIO Product Support Engineer
    National Instruments

  • How to make the servo motor to move in steps of set degrees and stop

    how to make the servo motor to move in steps of set degrees and stop

    Hi,
    I think the following document would be a good starting place: NI Developer Zone Tutorial: Single Axis Moves It includes links to several example programs that you may find useful for your application. Keep in mind that there are many motion examples that ship with LabVIEW as well.
    I strongly recommend that you check out the following documents as well:
    NI Developer Zone Tutorial: Simple Point to Point Motion
    NI Dev
    eloper Zone Tutorial: Hands-On Motion
    NI Developer Zone Tutorial: Axis Settings for Motion Controllers
    These tutorials will help give you a good foundation for understanding motion control systems.
    Best wishes!
    Dawna P.
    Applications Engineer
    National Instruments

Maybe you are looking for