Jump to content

scls19fr

Members
  • Posts

    45
  • Joined

  • Last visited

    Never

Posts posted by scls19fr

  1. Hello,

    I'm using an express VI to fill a table.

    In my example I have 2 float values in a signal.

    I set the express VI to add timestamp in the table...

    but the default behaviour of this VI is quite surprising.

    Timestamp appear in the first two columns (instead of being

    only on the first column)

    Is there an easy way to modify this default behaviour ?

    If my signal is composed of 10 values... the timestamp appear 10 times...

    but it's the same !!! I don't understand why they (NI) do it like that !

    I think that one solution could be to convert this express VI in a classic VI.

    Kind regards

  2. CITATION(Mark Yedinak @ May 5 2009, 08:25 PM)

    Here is the block diagram from the VI I use to set the scroll bar position for a table. The only missing piece that you don't get to see is the subVI to count the number of lines in a string. However this is pretty easy to do.

    Thanks but could you send me the .vi file because I need to know what property node you use

    (because I use french version of LV not english version... so it's quite difficult without the .vi file)

  3. Hello,

    I'm using the LabVIEW table express VI to show differents values (signal) as column.

    First values are placed on top of the table. Latest values (at t) are stored on the line after

    t-delta_t values.

    The problem with this is that the vertical scrolling bar should be always at bottom to

    show the latest values.

    Is there a way to do this (probably using property node ?)

    An other idea could be to show latest values on top of the table.

    Kind regards

  4. I'm running LV 8.5.

    Do you have a LV 8.5 sample that use this kind of wrapper around the enqueue ?

    but I can get 8.6 because we own it at work...

    maybe you have some samples to demonstrate this.

    I never use queue in LabVIEW before... what is, in your mind, the first document I should read first.

    I also wonder if a queue can contain a cluster

    But in my mind queue and circular buffer are a little bit different

    because in a queue each element in a sort of structure that contain 3 things :

    value

    pointer to the next value

    pointer to the previous value

    so a circular buffer made with queue is not in a contiguous memory area...

    I wonder if it doesn't decrease performances.

    A "real" circular buffer is a contiguous memory area for storing values and

    an integer area storing the position where the next value will be stored.

    Kind regards

    Sebastien

  5. Hello,

    You are right jdunham... the size would be about 26MB... but I don't like to know that size is increasing too much so I thought the idea of using circular buffer interessting...

    Moreover circular buffer are used inside LabVIEW itself for storing data with diffent size (see for example strip charts... you can set the number of stored points).

    So I thought using a circular buffer inside LabVIEW much more easier.

    I know the C++/STL an I was looking for a similar container in LabVIEW...

    maybe as suggested Aristos Queue, I should have a look at queue. I never used them before.

    Kind regards

    PS : sorry for being so late in replying but email notification still doesn't works

  6. Thanks for this idea of changing window width in order to hide a part of the UI.

    But my application runs in full screen mode (maximized) so this is not a solution for me.

    About using tab... I've tryied two ideas

    1) Use a tab control with only 1 page. I set this tab control in order to hide page(s) name(s).

    This works fine.

    2) I'm trying to put all the UI that need to be hidden in the second page of a tab control.

    I'd like to hide the whole page of the tab control (not the tab control itself)... but

    I succeed in doing this using this http://wiki.lavag.org/TAB_Control

    About md5... I've found what I was looking for at OpenG.

    I'll do it later.

    About user interface... I'm also wondering if LabVIEW can use the same concept of layouts to automatically

    modify the size and position of controls (like in Java or C++/Qt)

  7. Hello,

    I've made a VI for my students.

    This VI contains data, graph and calculate some values.

    I'd like to hide the calculated values but when I click on a button a modal window

    would appear in which I could enter a password to make the whole user interface available.

    Is there an easy way to do this.

    I've ever user property node (to hide some part of the user interface)

    an other idea could be to have two forms (a limited form and a full form)

    does anyone here has ever try to do something like the two ideas above ?

    How can I open a modal window ?

    Kind regards

  8. Thanks jcarmody for this very explicit answer... Google it yourself !

    Maybe you don't understand difference between storing in memory and storing in a file

    If you know the difference maybe a better link should be

    http://www.google.fr/search?q=circular+file+buffer+labview

    or a better link

    http://zone.ni.com/devzone/cda/epd/p/id/5040

    If I'm asking this question here it's to have some feedback of developers about

    using such data structure. In my mind ragglefrock answers much better to my question

    even he doesn't use the NI implementation of a circular file buffer.

    I would be interressed in knowing the limits of the NI implementation.

    Can I use 3 or 4 data structure like this one without any problem ?

    Why doesn't they provide thiss "out of the box" in LabVIEW ?

  9. Hello,

    I'm measuring temperature using LabVIEW.

    I see how temperature is changing versus time in a "rolling plot" (sorry it's

    probably not the good word for this... but I haven't any idea about its translation)

    I'd like to print this plot. I'd like to get a very clean printing.

    (I don't want for example getting just a screen capture)

    I would like to be able to define scale because some hand writting need to

    be done on the sheet of paper.

    What should I do to achieve this ?

    Is NI DIAdem the solution for my problem ? (I never used it before because

    I never had to make a report)

    What should I read first to understand how it works ?

    Is there a way to do it with DIAdem ? (I'd prefer not using DIAdem)

    Kind regards

  10. Hello,

    I would like to control a weather station using serial com.

    I will get wind speed, temperature, pressure and I will put it in a cluster (I know how to do it).

    I would like to store for the current day every minutes all data.

    I will also store every hour the average values.

    The problem with this is that my program will run every day, 24 h !

    So the amount of data will increase too much.

    So I wonder if there is a way to store my data in a circular buffer.

    (like the C++/Boost circular buffer http://www.boost.org/doc/libs/1_38_0/libs/...lar_buffer.html )

    but not in memory but in a file... or a database.

    I don't want to use the LabVIEW DSC (Datalogging and Supervisory Control).

    Kind regards

  11. Hello,

    I need to hide the general STOP button which is present on the LabVIEW toolbar at runtime (beside the RUN icon)

    when running a VI inside LabVIEW.

    I know there is a way to hide all this toolbar because I've ever found a vi that had such a feature.

    Unfortunately, I haven't the fineast idea how to achieve this.

    I really need it because I want that my vi's user press a STOP button on my vi... but not press the general STOP button because

    pressing my VI STOP button also close connection to my data acquisition card. If a user uses the general STOP button

    the connection with the hardware is not correctly closed and it fails when I want to run my VI again.

    There is probably a way to do it using exe deployment with LV runtime but I don't want such a solution because

    I want to deploy LV source code... not binary !

    Kind regards

    Sorry for noise...

    I think the solution is here

    http://zone.ni.com/reference/en-XX/help/37..._appearance_db/

    Select FileĀ»VI Properties, select Window Appearance from the Category pull-down menu, and click the Customize button to display this dialog box. By default, the settings take effect when the VI runs.

  12. CITATION(jgcode @ Jun 4 2008, 02:07 PM)

    Thanks guys

    I ever found the sample on NI Forum

    http://forums.ni.com/ni/board/message?boar...d=56852#M209743

    ...

    but I didn't found the good keywords to get it again !

    I see the sample you provide to me in the previous links

    Unfortunately noone make something that could be easily be changed to fit to

    any number of colours (for the ramp)

    I think a good sub-vi for this should provide 3 inputs and one output

    1 input for array of colors

    1 input for array of stop values (same size as the previous array)

    1 input for value (between 0 and 1 as float)

    1 output for the resulting colour

    I think a good starting point for this could be the vi of Ben.

    I post it here.

  13. Hello,

    I would like to change the color of a tank according the value of a slider.

    If slider value is 0 the color should be blue.

    If slider value is 100 the color should be red.

    If slider value is between 0 et 100 the R G B values should be between

    the RGB values of blue and red

    I don't know how to do this...

    I know how to set a red color to my tank using property node and color constant box

    but I don't know of to make a linear colormap.

    I'm also interessed in adding more colors to my colormap.

    For example

    0= blue

    20=green

    60=yellow

    100= red

    Thanks

    Best regards

  14. All right ! it works better for generating the lvm file.

    I can change to "Erase file" (instead of append to file) and as you can see I get all values !

    Time is well increasing !

    But there is still a problem with sample number...

    It is always equal to 1 for each channel....

    So when I use the VI Express / Input / Generate an arbitrary signal and I want to import

    the generated signal... only one point (the first one) is imported...

    I can manualy fix it by changing samples number but that's a (very) dirty hack !

    LabVIEW Measurement

    Writer_Version 0.92

    Reader_Version 1

    Separator Tab

    Multi_Headings No

    X_Columns One

    Time_Pref Absolute

    Operator scls

    Date 2008/04/12

    Time 10:16:24,330057

    ***End_of_Header***

    Channels 2

    Samples 1 1

    Date 2008/04/12 2008/04/12

    Time 10:16:24,331058 10:16:24,331058

    X_Dimension Time Time

    X0 0.0000000000000000E+0 0.0000000000000000E+0

    Delta_X 1.000000 1.000000

    ***End_of_Header***

    X_Value Untitled Untitled 1 Comment

    0.000000 0.000000 20.000000

    0.041000 10.000000 20.000000

    0.141000 10.000000 25.000000

    0.241000 20.000000 25.000000

    0.341000 20.000000 30.000000

    0.441000 30.000000 30.000000

    0.541000 30.000000 35.000000

    0.641000 40.000000 35.000000

    0.741000 40.000000 40.000000

    0.841000 50.000000 40.000000

    0.941000 50.000000 45.000000

    1.041000 60.000000 45.000000

    1.216000 60.000000 50.000000

    1.241000 70.000000 50.000000

    1.341000 70.000000 55.000000

    1.441000 80.000000 55.000000

    1.541000 80.000000 60.000000

    1.641000 90.000000 60.000000

    1.741000 90.000000 65.000000

    1.841000 100.000000 65.000000

    1.941000 100.000000 70.000000

    2.041000 110.000000 70.000000

    2.141000 110.000000 75.000000

    2.241000 120.000000 75.000000

    2.341000 120.000000 80.000000

    2.441000 130.000000 80.000000

    2.541000 130.000000 85.000000

    2.641000 140.000000 85.000000

    2.741000 140.000000 90.000000

    2.841000 150.000000 90.000000

    2.941000 150.000000 95.000000

    3.041000 160.000000 95.000000

    3.141000 160.000000 100.000000

    3.241000 170.000000 100.000000

    Download File:post-11213-1207988553.vi

    About the problem with my VI Express "Write To Measurement File"

    it was probably because I was loking inside the VI Express (using contextual menu Open Front)

    but I don't save it... I just Undo... to get again the VI Express (instead of a sub vi)

    So it shouldn't break anything... but it break it ;-(

    See also

    http://forums.ni.com/ni/board/message?boar...hread.id=315785

    Solution is here :

    CITATION

    you can place place the Write to Measurement File outside your loop and do a single write. Wire the data through the while loop and on the exit tunnel, select Enable Indexing. This will create an array of values. Now, when you use the Write to Measurement File, your number of samples will be correct and you will have a single segment that can be read by the Generate Arbitrary Signal function

    Download File:post-11213-1208026347.vi

  15. The problem is same !

    Download File:post-11213-1207943541.vi

    I send on activate pin the constant "true"

    I send on reinitialize pin the constant "false"

    LabVIEW Measurement

    Writer_Version 0.92

    Reader_Version 1

    Separator Tab

    Multi_Headings Yes

    X_Columns Multi

    Time_Pref Absolute

    Operator scls

    Date 2008/04/11

    Time 21:49:53,620999

    ***End_of_Header***

    Channels 2

    Samples 1 1

    Date 2008/04/11 2008/04/11

    Time 21:49:55,382999 21:49:55,382999

    X_Dimension Time Time

    X0 0.0000000000000000E+0 0.0000000000000000E+0

    Delta_X 1.000000 1.000000

    ***End_of_Header***

    X_Value Untitled X_Value Untitled 1 Comment

    0.000000 180.000000 0.000000 105.000000

    0.000000 0.000000 0.000000 20.000000

    0.000000 10.000000 0.000000 20.000000

    0.000000 10.000000 0.000000 25.000000

    0.000000 20.000000 0.000000 25.000000

    0.000000 20.000000 0.000000 30.000000

    0.000000 30.000000 0.000000 30.000000

    0.000000 30.000000 0.000000 35.000000

    0.000000 40.000000 0.000000 35.000000

    0.000000 40.000000 0.000000 40.000000

    0.000000 50.000000 0.000000 40.000000

    0.000000 50.000000 0.000000 45.000000

    0.000000 60.000000 0.000000 45.000000

    0.000000 60.000000 0.000000 50.000000

    0.000000 70.000000 0.000000 50.000000

    0.000000 70.000000 0.000000 55.000000

    0.000000 80.000000 0.000000 55.000000

    0.000000 80.000000 0.000000 60.000000

    0.000000 90.000000 0.000000 60.000000

    0.000000 90.000000 0.000000 65.000000

    0.000000 100.000000 0.000000 65.000000

    0.000000 100.000000 0.000000 70.000000

    0.000000 110.000000 0.000000 70.000000

    0.000000 110.000000 0.000000 75.000000

    0.000000 120.000000 0.000000 75.000000

    0.000000 120.000000 0.000000 80.000000

    0.000000 130.000000 0.000000 80.000000

    0.000000 130.000000 0.000000 85.000000

    0.000000 140.000000 0.000000 85.000000

    0.000000 140.000000 0.000000 90.000000

    0.000000 150.000000 0.000000 90.000000

    0.000000 150.000000 0.000000 95.000000

    0.000000 160.000000 0.000000 95.000000

    0.000000 160.000000 0.000000 100.000000

    0.000000 170.000000 0.000000 100.000000

    0.000000 170.000000 0.000000 105.000000

    0.000000 180.000000 0.000000 105.000000

  16. Look at the first column you will see that time is always equal to 0.

    This is not the standard behaviour of this VI Express.

    I ever use it... and time was increasing (in this column)

    See

    LabVIEW Measurement

    Writer_Version 0.92

    Reader_Version 1

    Separator Tab

    Multi_Headings Yes

    X_Columns Multi

    Time_Pref Absolute

    Operator scls

    Date 2008/04/11

    Time 19:41:37,412999

    ***End_of_Header***

    Channels 2

    Samples 1 1

    Date 2008/04/11 2008/04/11

    Time 19:41:37,414999 19:41:37,414999

    X_Dimension Time Time

    X0 0.0000000000000000E+0 0.0000000000000000E+0

    Delta_X 1.000000 1.000000

    ***End_of_Header***

    X_Value Untitled X_Value Untitled 1 Comment

    0.000000 0.000000 0.000000 20.000000

    0.000000 10.000000 0.000000 20.000000

    0.000000 10.000000 0.000000 25.000000

    0.000000 20.000000 0.000000 25.000000

    0.000000 20.000000 0.000000 30.000000

    0.000000 30.000000 0.000000 30.000000

    0.000000 30.000000 0.000000 35.000000

    0.000000 40.000000 0.000000 35.000000

    0.000000 40.000000 0.000000 40.000000

    0.000000 50.000000 0.000000 40.000000

    0.000000 50.000000 0.000000 45.000000

    0.000000 60.000000 0.000000 45.000000

    0.000000 60.000000 0.000000 50.000000

    0.000000 70.000000 0.000000 50.000000

    0.000000 70.000000 0.000000 55.000000

    0.000000 80.000000 0.000000 55.000000

    0.000000 80.000000 0.000000 60.000000

    0.000000 90.000000 0.000000 60.000000

    0.000000 90.000000 0.000000 65.000000

    0.000000 100.000000 0.000000 65.000000

    0.000000 100.000000 0.000000 70.000000

    0.000000 110.000000 0.000000 70.000000

    0.000000 110.000000 0.000000 75.000000

    0.000000 120.000000 0.000000 75.000000

    0.000000 120.000000 0.000000 80.000000

    0.000000 130.000000 0.000000 80.000000

    0.000000 130.000000 0.000000 85.000000

    0.000000 140.000000 0.000000 85.000000

    0.000000 140.000000 0.000000 90.000000

    0.000000 150.000000 0.000000 90.000000

    0.000000 150.000000 0.000000 95.000000

    0.000000 160.000000 0.000000 95.000000

    0.000000 160.000000 0.000000 100.000000

    0.000000 170.000000 0.000000 100.000000

    0.000000 170.000000 0.000000 105.000000

    0.000000 180.000000 0.000000 105.000000

  17. CITATION(tcplomp @ Apr 11 2008, 03:43 PM)

    I select "append"

    X columns : only one

    I get

    LabVIEW Measurement

    Writer_Version 0.92

    Reader_Version 1

    Separator Tab

    Multi_Headings Yes

    X_Columns One

    Time_Pref Absolute

    Operator scls

    Date 2008/04/11

    Time 16:10:58,639664

    ***End_of_Header***

    Channels 2

    Samples 1 1

    Date 2008/04/11 2008/04/11

    Time 16:10:58,641664 16:10:58,641664

    X_Dimension Time Time

    X0 0.0000000000000000E+0 0.0000000000000000E+0

    Delta_X 1.000000 1.000000

    ***End_of_Header***

    X_Value Untitled Untitled 1 Comment

    0.000000 0.000000 20.000000

    0.000000 10.000000 20.000000

    0.000000 10.000000 25.000000

    0.000000 20.000000 25.000000

    0.000000 20.000000 30.000000

    0.000000 30.000000 30.000000

    0.000000 30.000000 35.000000

    0.000000 40.000000 35.000000

    0.000000 40.000000 40.000000

    0.000000 50.000000 40.000000

    0.000000 50.000000 45.000000

    0.000000 60.000000 45.000000

    0.000000 60.000000 50.000000

    0.000000 70.000000 50.000000

    0.000000 70.000000 55.000000

    0.000000 80.000000 55.000000

    0.000000 80.000000 60.000000

    0.000000 90.000000 60.000000

    0.000000 90.000000 65.000000

    0.000000 100.000000 65.000000

    0.000000 100.000000 70.000000

    0.000000 110.000000 70.000000

    0.000000 110.000000 75.000000

    0.000000 120.000000 75.000000

    0.000000 120.000000 80.000000

    0.000000 130.000000 80.000000

    0.000000 130.000000 85.000000

    0.000000 140.000000 85.000000

    0.000000 140.000000 90.000000

    0.000000 150.000000 90.000000

    0.000000 150.000000 95.000000

    0.000000 160.000000 95.000000

    0.000000 160.000000 100.000000

    0.000000 170.000000 100.000000

    I don't like what the first column ! (it doesn't means that I want to erase it

    It means that the value should increase from 50ms)

    You can also notice that "Samples" contain 1 1

    but this is not the number of samples !!!!

    So when I need to read this LVM file (into for example VI Express Generate Abitrary signal... it fails

    ... in fact it imports only one line !!!)

    I also tryed to put this code inside a loop...

    http://lavag.org/old_files/post-11213-1207924771.vi'>Download File:post-11213-1207924771.vi

    but the problem is same !

  18. CITATION(tcplomp @ Apr 11 2008, 02:41 PM)

    You should change this to 'Append to file'

    Thanks... but I know this ;-(

    The problem is for example with time column... why 0 ?

    It should increase by 50ms step... but it doesn't !

    I guess that the .lvm file is open for writting each time

    the measure is put in the file

    the lvm file is closed

    next point

    the lvm file is open (again) for writing ...

    ...

    It seams that each time the file is open for writing, time is set to zero

    That's why I found it very strange !

  19. Thanks for your reply.

    I see that you put the VISA Write inside the event struct...

    Is it really a good idea ? since I hear that the code inside an event struct must

    be minimal... (because it can freeze the GUI)

    About the data reiceveid... there is no terminaison characters.

    String is send by the ECU byte after byte... not as a string

    so I need to make a little hack (reading only one byte) in order to synchronize data received

    with 252 253 (first two bytes)

    Here is the protocol http://www.espiell.com/fadprot.pdf for received data (coming from the ECU)

    And the protocol for sending key pressed

    2 first bytes (222 et 223), adress (112 for commands), value, checksum (adress+value)

    Menu up 222,223,112,67,179

    Menu down 222,223,112,68,180

    Data up 222,223,112,65,177

    Data down 222,223,112,66,178

    Orko (an other LAVA member) said me to use queues

    CITATION

    That is when queues are useful. Enqueuing an item in an event strucure is very fast, and another loop can dequeue the item and take all the time it needs to complete the task (producer/consumer).

    Did you ever use them ?

    Best regards

    Sebastien

×
×
  • Create New...

Important Information

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