Jump to content

Eugen Graf

Members
  • Posts

    432
  • Joined

  • Last visited

Posts posted by Eugen Graf

  1. QUOTE(frentzen @ May 29 2007, 12:28 PM)

    Hi,

    i need to read data from a .xls file (i can not attach the file) and i want to show the data as a graph.

    If somebody can help, would be great.

    Thanx for your support.

    1) Look Excel ActiveX examples from LV Example Finder. It should be not difficult.

    2) Try to open this XLS-file with a Text-Editor. May be its only a spreadsheet file and you can read it as a text file.

    Eugen

  2. Actually I use mixed form to communicate between tasks. I have some Queue, Notifier and User Event Tasks. All of them have advantages and disadvantages. Here the snipped of my Open Refnums VI.

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

    For communication I use Flatten/Unflatten binary String VI, it's seems to be better than Variant, because I can parse the remainig string after parsing the command.

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

    Generally is my construction like queued state machine in each task. Every state in every task can be set by own task AND by other tasks if it's allowed by program. Here snippets of my reading task.

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

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

    And this one shows the state if I get new settings in my reading task if I get any from the main task. As you can see, I switch my reding task to the state "read data" after I got new settings.

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

    Any comments?

    Thank to all replyers.

    Eugen

  3. QUOTE(tcplomp @ May 19 2007, 10:53 AM)

    Hi Eugen,

    you can do event driven data acquisition. Register for the DAQmx event 'number of samples' acquired!

    Ton

    Sorry, I don't understand you. How is my application related to DAQmx(I have never used it)?

    I want to make a template for my projects.

    My read-task should be universal, undependent from interface. And as I know DAQmx is created for analogue data aquisition and it doesn't support interfaces like serial, CAN or TCP/IP with NI-unknown protocolls.

    Eugen

  4. QUOTE(Michael_Aivaliotis @ Apr 18 2007, 06:40 PM)

    Are your devices, serial? I think only serial devices really need to be closed to release the port for others to use. GPIB devices don't have to be opened or closed. At least not anymore. Other than Visa Open or Visa Close, I'm not sure what kind of instrument command you want to send.

    Regardless. If this is still the case, you can do this with queues as well. Keep in mind that you will need different queues for different types of tasks. The example shown assumes that you are working with the instrument task queue. Also, I haven't used any subvi's to keep the example simple but I would suggest encapsulating the enqueue functionality into subvi's.

    http://forums.lavag.org/index.php?act=attach&type=post&id=5546 (LabVIEW 8.0)

    There are many solutions to your problem. User events can be used as well. However, I would even argue that you don't need parallel tasks anyway. Why can't you just do everything in the main state machine? I'm not sure of the benefit in your case. Perhaps data saving would be better off in parallel if you have lot's of data. What is the speed of the overall system?

    Like I mentioned, there are others who will suggest solutions different to mine. I have also used user events and various GOOP frameworks, however this is all I have for now.

    Dear Michael (or anybody else),

    could you say me how I can implement your mechanism for read-tasks? Sorry, I can't guess it right. Your solution is really good, but fits IMHO only for write-tasks. The difference is: a write-task waits on commands from main, but a read-task shoud wait for data from interface AND for commands from main. How can I implement it.

    Thank you. Eugen

  5. QUOTE(robijn @ May 9 2007, 11:20 PM)

    You could try my Time scan/format functions (http://robijn.net/labview/''>http://robijn.net/labview/' target="_blank">http://robijn.net/labview/). They still use the DBL time format, but work fine. I have not updated much lately, I do have a "modern timestamp" version laying around but I yet have to finish the Excel conversion function yet.

    You could use a modulus 100 twice as well.

    Joris

    Wow, some time ago I so needed the julian <-> gregorian convertion and didn't know that it exists(I implemented is by myself).

    To my problem: I will try your VI tomorrow.

    And thank you.

    Eugen

  6. P.S. It's really a big problem for me now. Can anybody help?

    QUOTE(JFM @ May 9 2007, 06:57 PM)

    I'm sorry I didn't realize you were on LV8.01, in LV8.2 this issue seems to be resolved (except in that %3u does not work with comma).

    How do you want the string "155529.00" to be interpreted, as 15:55:29.00?

    /J

    Yes, it's a UTC time stamp from GPS receiver.

    155529.00 should be 15:55:29.00

    P.S. NMEA sequence GPGGA

    P.P.S. I know, I can split the string by hand, than bundle it to cluster and convert it to a timestamp, but should I really do it?

  7. QUOTE(JFM @ May 9 2007, 06:26 PM)

    I don't think the original code and the workaround produces the same result.

    According to the probe in the picture, the input string is "155529.00".

    The workaround converts the string to a DBL value, i.e. 155529.00, and then to a Timestamp equal to "1904-01-02, 20:07:39.000", i.e. the value contained in the string is interpreted as seconds since "12:00 a.m., Friday, January 1, 1904, Universal Time"

    The original code, where you used the format string "%.;%<%H:%M:%S%3u>T", indicating that you expect the string to be parsed as 15:55:29.000 which is completely different from the result of the workaround.

    The solution therefore depends on what kind of time value you have in the input string:

    • If you want it to be interpreted as 15:55:29.000, use the format string "%.;%<%H%M%S%3u>T", i.e. remove the colons (there might still be an issue with the localization).
    • If you want it to be interpreted as seconds, use your workaround or use "%.;%t" as format string and convert to TimeStamp afterwards.

    Hope this make sense.

    /J

    Thank you, you have right and the problem is not solved yet. And your solution don't realy help. See the attached screenshot. Any more?

    Eugen

  8. QUOTE(crelf @ May 9 2007, 05:41 PM)

    I don't have time to answer all your questions right now, but here's a few comments:
    • Yes, Endevo's GOOP costs extra $, but if you need the extra functionality it's worth it
    • There are several other GOOP implementations out there that are free or very cheap, including (but not limited to) dqGOOP and OpenGOOP
    • As for understanding LVOOP Vs GOOP, I don't agree: I think it's what you're first introduced to. For example: do you use the config file VIs on the palette? If so, then you're using GOOP. LV-OOP certainly is an excellent step in the world of LabVIEW, but for those of us who learned by-reference first, it's tricky to change our habits, as it's a different underlying paradigm.

    Sorry for my briefness...

    Thank you,

    arriving a class by reference or by value makes me no difficulties.

    Eugen

  9. QUOTE(Aristos Queue @ May 9 2007, 03:56 PM)

    I would prefer LVOOP for GOOP, because I automatically get updates and upgrades, because it's implemented in LV and supported by NI. Endevo's GOOP should cost extra money and NI's LV I just have. LVOOP has indeed any disadvantages to GOOP, but I hope in future versions of LV new OOP features will be implemented. And I think it's easier to understand LVOOP as GOOP.

    Why I should use GOOP instead of LVOOP for this issue(project described in this topic)?

    Eugen

  10. Hello, I have a problem scanning a timestamp from string on a german PC. Look attached snippet. If "use localized decimal point" is set in the environment than I get this error, if not it runs without errors. It's a bug?

    Eugen

    Now I replaced Scan From String with String To Float and then convert To Timestamp. No more errors. But where was the problem?

    Eugen

×
×
  • Create New...

Important Information

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