Jump to content

Mellroth

Members
  • Posts

    602
  • Joined

  • Last visited

  • Days Won

    16

Posts posted by Mellroth

  1. When unflattening a string that is wired to a shiftregister, the remaining string output (from unflatten function) might contain garbage when it leaves the loop.

    The result of the operation depends of the size of the remaining string, small strings are OK, but large strings contains garbage.

    To test this: flatten a cluster containing a boolean and a numeric, then add some additional data (U8-array converted to string).

    The combined string is then fed to an Unflatten function within a while loop (only running one iteration).

    Unflattening is done in two ways, one where the string is passed through a shift register, and one where data is passed through a loop tunnel.

    In the case of a loop tunnel, the remaining string and the resulting U8-array is OK, but with the shiftregister, data in the U8 array is corrupted.

    To summarize; when using large strings the remaining string output is OK within the loop, but right after the loop it has changed.

    See attached VI for details.

    http://forums.lavag.org/index.php?act=attach&type=post&id=5413

    This has been reported to NI, but I have not gotten a CAR for this one yet.

    /J

    http://forums.lavag.org/index.php?act=attach&type=post&id=5412

  2. QUOTE(spacetoon34 @ Apr 5 2007, 05:08 AM)

    Hello,

    I tried to control Hs-311 servo motor for position control, but it dosen't work.

    The servo is applied by 50 Hz pulses(20 ms), every pulse contain on/off duty, the on duty determine the position of the servo and our servo is deal with ( 0.9ms - 2.1 ms ) on duty to cover the rang (0-180 degree). so i want to generate a train of pulses with 50Hz and 0.1 ms resolution at minimum, and i can control the duty by a knob and output at parallel port 0x378.

    Hi,

    as Mikkel said, check that other thread for answers.

    The VI you supplied won't work in any LabVIEW environment, due to that you are trying to Wait 0.1 ms.

    The DBL value (generated from 1/10000), is coerced to a U32 value and is interpreted as 0 (zero), so the wait for next multiple waits for 0 ms.

    /J

  3. QUOTE(superslug @ Apr 4 2007, 07:38 AM)

    I have linked a shared variable directly to an xy graph to communicate between 2 vi's. When the XY graph updates it flashes the data up then it disappears until the next update. Has anyone encountered this sort of problem before. Is it some sort of setting that I have wrong?

    Hi,

    As REM1 is saying you should probably use a Chart instead of a Graph. However, I don't think that this is your problem, because you say that data "disappears until the next update". If the graph goes blank you are probably getting false updates, meaning that you either update the graph or the shared variable with invalid data.

    Regarding settings, it is very hard to say anything without looking at your code.

    /J

  4. QUOTE(karim @ Apr 3 2007, 01:10 PM)

    Have you tried googling for "LabVIEW parallel port"?

    If not please try the link below:

    http://www.google.com/search?q=LabVIEW+parallel+port&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:sv-SE:official&client=firefox-a' target="_blank">http://www.google.com/search?q=LabVIEW+par...lient=firefox-a

    I doubt you get any member to email you with an answer, since this would expose the members email address.

    Give google a shot, then try to do your assignment. If you still have questions about why your program does not work, please post your VI and the question in this thread.

    Maybe someone will then help you. The more effort you show, the higher the chance of help.

    Sincerely

    /J

  5. QUOTE(Eugen Graf @ Apr 2 2007, 11:40 AM)

    Hello LAVAs,

    until debugging I unintentionally clicked on while loop and an breakpoint inside the while loop was created. Now I dont know how to remove it. Here my screenshot. No selection for removing by right klicking on the loop appears.

    Eugen

    Use the break point tool from the Tools-Palette.

    When the break point tool is black, it will add a breakpoint, when it is white it will remove a previously added breakpoint.

    In your case use the tool and click within the loop.

    /J

  6. QUOTE(Nullllll @ Mar 24 2007, 03:53 PM)

    Hi all,

    I want to ask if I have VI , and I want the user to full his name first , I mean menu , how can I do that??

    Second if I want steps of questions to be done ,i.e first ask the user do u want addition or multiplication? if he chooses addition then the VI appear!!

    Please Nullllll, put some effort in trying to make the VI first, then ask questions why it does not work. Apart from proving that you have actually tried something, it is often easier for us to get what you intend to do, if you include an example.

    That said, create a subVI that acts as a dialog with the inputs you need, just display and use that dialog where you need it, this sub VI can then output any data type you need. Simple questions that can be answered by selecting a buttons (like OK, No, Yes, Cancel), can be implemented with the LabVIEW dialog VIs.

    /J

  7. I read Chris post, and realized that I was a bit unclear in my previous post, thanks for the clarification Chris :thumbup: .

    I was trying to examplify that you could get the error 1003 ,when trying to call a dynamic VIs without a proper development distribution, i.e without necessary supportfiles.

    QUOTE(chrisdavis @ Mar 22 2007, 01:49 PM)

    ...You'll have to package your plugin's as LLB files using either the OpenG Builder (what I reccommend, particularly since you will probably need "name mangeling") or the NI application builder

    You don't have to use an LLB, it will work by selecting single destination in the Distibution settings as well. If the dynamic VIs calls a DLL or any other external files this might be a better (the only?) option IMHO.

    If the dynamic VI uses any functional global to share data with the main application, be careful with the "name mangeling".

    /J

  8. QUOTE(BenD @ Mar 22 2007, 12:14 PM)

    Thanks for the quick replies! As far as the paths go, they're relative to the location of the exe. What I'm seeing is that it looks like the exe finds the plugin VIs just fine, but for some reason the VIs are not seeing some/all of their subVIs and controls. This is strange to me, because if I run the VIs on their own without the exe they work just fine. I'll take up your suggestion of using the debug feature - I saw this during the build but have yet to look into it more. Thanks again!

    Have you tried making a developer distribution of the VI you want to call dynamically?

    I've seen error 1003 when the dynamic VI hierarchy contains VI.lib/user.lib files not compiled to the exe, e.g. if the exe does not contain any timed loops, but the dynamic hierarchy do.

    /J

  9. QUOTE(Aristos Queue @ Mar 20 2007, 02:45 AM)

    ...But I opened it up... seems that, yes, the functionality is the same as that requested, but it's a pretty inefficient implementation...

    The dark side... :rolleyes:

    I have spoken to NI about this issue several times.

    It seems like almost all the Pt by Pt functions uses the build array until the buffer is filled, then they switch to a mode where data is rotated at each call, making them more or less useless in an RT environment.

    /J

  10. QUOTE(frentzen @ Mar 14 2007, 12:28 PM)

    i put the path now into the vi, but i still got the same failure notice. the german ni support told me, it runs without problems.

    has anybody a solution?

    I tried your VI, and it gave an error (you should really check the error outputs) stating that temproot was NULL.

    To make your VI run without this error, I had to fix the file name from "Mean[1].20061013_123043.xml" to "Mean.20061013_123043.xml".

    Hope this helps.

    /J

  11. QUOTE(thomas2609 @ Mar 13 2007, 11:26 AM)

    hello,

    i just wonder why only one of these 2 Math scripts workes.

    1.) x= 0:0.1:1 does not work in LabVIEW 8.0 but In MATLAB

    2.) x= 0:1e-1:1 workes in LabVIEW 8.0 and in MATLAB

    ad 1 error message "Error in function range at line 1. You cannot specify a step size of zero for a range."

    aha, well 0.1 is not zero in my eyes. can anyone tell me whey my LabVIEW 8.0 does that?

    my guess whould be that it is a bug. :-)

    cheers thomas

    Have you tried with comma (,) instead of period (.) as decimal character?

    /J

  12. QUOTE(ruelvt @ Mar 11 2007, 04:32 AM)

    what is the correct method for using UDP communications in RT? i have deployed a simple test program to my CompactRIO, the Communications loops for a time-critical application using both the FPGA and the RT processor... the communications loops alone take 45% CPU and 60% memory, leaving little headroom for the actual time-critical decision-making code. here are what i've tried:

    Hi,

    To get more help, could you please specify;

    * cRIO model? (the IP performance is really boosted in cRIO 9012, mainly due to change of chipset)

    * LabVIEW version?

    * It would also be easier to help you, if you could upload an example to show what you have tried so far.

    We have, however, used cRIO 9012 units to act as distibuted I/O.

    In this case the cRIO units received user commands through UDP, and also used UDP to synchronize Data buffers with the Master RT target.

    If no data was received (UDP timeout set to 1000ms), the load of the cRIO was around 5%, and when doing performance measurements (i.e. sending commands that were just looped back), the processor load was about 40-50%. I haven't really checked the memory usage, but what I have seen is that about 50% of the available memory is allready taken by the OS, leaving us with around 30MB for our applications.

    Another issue we have encountered in the cRIO systems is that using Queues/RT-FIFOs/Notifiers/LV2-globals to transfer data between processes, takes in average 270us for a transfer to complete, i.e. time from adding data until it is read by the receiver. This is probably not relevant for your current problem, but it might be good to have that in mind when you are using a cRIO.

    /J

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.