Jump to content

BobHamburger

Members
  • Content Count

    123
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by BobHamburger

  1. I feel that all this stuff about ethics and culpability, while certainly interesting, only obfuscate the subject. I have a completely different and much simpler perspective on this issue...

    Much of the traditional software world does not consider LabVIEW to be a "real" programming language, for a variety of reasons. Paramount in many of the arguments that I've heard is this simple test: can you write LabVIEW in LabVIEW? Well, if you include scripting and other related features in all their gory, er, I mean, glory, then the answer is yes. If you exclude them, the answer is no. Scripting etc. completes the language, plain and simple. To continue to withold these from general distribution is to deny allowing the language to fully mature.

  2. QUOTE (crelf @ Feb 20 2009, 01:46 PM)

    I can't seem to find a way to make the text in a table's column headers go vertical - does anyone know who to do this (I'm not sure it's even possible)? I'd be happy to switch to a similar control if that capability exists somewhere else...

    About the only thing that I could find quickly that allows programmatic creation of vertical text is a picture control. That would be an ugly solution... unless, of course, you completely recreated your table in the picture. Create a whole abstraction layer to emulate the behavior of the table in the picture control. While we're at it, add all the other controls and indicators. Make it so that you can drag and drop them. Then you've got a completely dynamically-creatable user interface. Hey, now that we're really deep into the muck, let's just finish the job and write all of LabVIEW within LabVIEW.

    (Mopping off brow, catching my breath, and backing away from the precipice.) Sorry, I got a little carried away there.

  3. I have a hairy, complex issue that I'll try to distill down to its basics.

    The system that I'm working with has three (3) cFP-1808's being controlled from a PXI-8106, running RT, via Modbus through Ethernet. I've taken the NI Modbus Library and written some nice wrappers around it to realize the basic FP functions like read and write, along with some configuration and scaling functions (this is a nice feature exposed through the Modbus interface). At the very bottom of the comm heirarchy are the familiar TCP primitives. I've constructed a cFP Polling Engine VI, which handles opening the TCP session and doing the cyclical reading and writing. The polling engine is set to take a tag list, and read from/write to a complete cFP stack every 100 mSec. It's been benchmarked to do everything it needs to do in about 55 mSec, so there's some headroom in the system. It's designed to handle any errors (56, 64, 66 and the like) by simply closing the reference and re-initiating a new comm session. The three 1808 stacks are serviced by three re-entrant copies of the Polling Engine; all of their respective subVIs are similarly re-entrant, so that everything can run in parallel. That's the intention, but in practice there are problems...

    1. When running under RT, about every hour or two, the system will show an Error 56 timeout (To=50 mSec) and perform a disconnect-reconnect cycle as designed. This works perfectly, with the reconnection cycle taking 10-12 mSec. The timeouts seem to be pretty evenly distributed between the three 1808 stacks. All well and good, BUT:

    2. After exactly 62 reconnections (which at the failure rates noted take 2-3 days of continuous operation) no more reconnections will occur. Neither can I connect to the 8106 RT controller via FTP. It's as if we've completely run out of TCP sockets. And yes, I've checked the very obvious: the old connection refnum is indeed closed before a new one is opened.

    3. Variation #1: if I take the parallel, asynchronous operation described above and run it from my PC host under Windows, none of the random disconnect-reconnect cycling occurs. The system is rock-solid.

    4. Variation #2: if I restructure the TCP Polling Engines so that they run serially rather than in parallel, and run this under RT, none of the random disconnect-reconnect cycling occurs. The system is rock-solid.

    Here's the ugly conclusion that I've arrived at: the TCP API cannot reliably support multiple, parallel, asynchronous calls in RT. Moreover, the TIMED_WAIT operation for holding and releasing ports/sockets doesn not seem to be reliably operating.

    Has anyone else in the community observed this kind of behavior in TCP comms under PXI-RT? Are we asking too much from RT that it works as well as Windows? Other than completely serializing the calls to the TCP API, so that we're only doing one at a time, are there any other methods for making multi-device TCP communications under RT reliable?

  4. QUOTE (Gary Rubin @ Jan 6 2009, 06:04 PM)

    I think that question would be more clear and would be testing more pertinent knowledge if it was turned around: "Which plot type is the only one that plots data points that are not uniformly space on the x-axis?".

    Well, now you're getting into the other half of my exasperation with NI exams: the questions are exceedingly poorly written. Their ambiguity is legendary, and over the years, the ambiguity has put on weight.

  5. I've ranted about the CLAD questions in the past myself. Bottom line: they largely don't ask relevant questions, and are full of pretty much pointless minutia that does not truly establish the test-takers LabVIEW expertise or lack thereof. It's clear that the questions have been written by Customer Education folks who themselves are not working LV professionals, and so they can't distinguish the important topics from the trivial.

  6. I think that we've all misunderstood this poor poster's dilemma. He said that he "need(s) ur help plz." Since this is the only part of his post that I understand clearly, I assume that he's looking for information about an ancient Sumerian city. There's a nice writeup about Ur here.

  7. QUOTE (Maca @ Dec 21 2008, 05:59 AM)

    I don't think that I agree with these approaches, as they are a little too Draconian and would impose quite a load on the moderators. What I had in mind was to make some parts of the Forum Guidelines (i.e. Section 4, http://wiki.lavag.org/Forum_Guidelines#Homework_hustlers' rel='nofollow' target="_blank">Homework hustlers) more explicit and/or visible during the new account registration process. It's all too common when installing new software or setting up a site membership to have to scroll down through a Terms of Use agreement and click that you agree; the problem is that nobody actually reads these things. What we need is a simple way to convey the most important Guidelines in a manner which improves the chances that people actually understand and follow them.

    "What we have here is a failure to communicate."

  8. <sarcastic rant>

    Hi everybody I a newbie to LABview I have class asignment and I been skiping class the last for weeks now the assingment is do tommorow can anybodie hellp me? I hav'nt even tried or cracked a book or asked a tudor hear at school for hellp but I no that you guys will give me the answer to my simpleass class assignmeant. Tnx.

    </sarcasm>

    Sorry comrades, I just hit my saturation point reading posts along the lines of the above. I know that we're here to share knowledge and offer the benefits of our insights to those with less experience, but sometimes the obvious HH posts make me want to scream. I understand that occasionally the college work load can be oppressive, and sometimes life intrudes on our best plans, but when I see posts like this I have to ask myself if some of these students have lost sight of the fact that they're supposed to at least try to learn when they're in school... not just hand in the assignments.

    Thank you for letting me vent. I feel much better now. :beer:

  9. I've been using a dual monitor arrangement for at least the past 4 years. Everybody in the software group where I work also has the same setup... it boils down to needing more horizontal real estate than is available in a single monitor. Maybe the folks who manufacture displays should make something with a 3:1 aspect ratio, along the lines of 3000 x 1000, because that's in effect what we're all working with now.

  10. QUOTE (labviewRTS @ Oct 28 2008, 09:42 PM)

    Ah. I can see that this model is prone to race conditions. If it's a very busy street, a lot of people will want to use it simultaneously

    when you say that, what do you mean? Do you mean it is not recommend to use race conditions. By the way, may I know whether race condition can use in VISA and serial links?

    What do the previous posters mean? They're ridiculing you. Why? Because it's obvious that the problem you posted is a school assignment, and you are trying to get other people to solve the problem for you. That's called cheating. On this forum, posters like this are called Homework Hustlers (HH for short), and this is strongly frowned upon.

    If you want to get help on this assignment, you need to demonstrate that you have made a significant effort towards solving the problem. Ask limited, well defined questions that address specific issues. Post examples of your work to show that you're really trying. Don't just ask "for the implementation."

  11. QUOTE (crelf @ Oct 28 2008, 07:56 PM)

    Read all about it Here.

    Some of the better quotes in the article:

    The laboratory report by the Federal Government's National Measurement Institute confirms that the matter served to the Whyte family - and partly consumed by Mr Whyte's wife, Jessica - "has an offensive odour and physical properties similar to human excreta ... and to contain fragments of a variety of plant matter typical of excreta".

    Mrs Whyte said the whole episode would have a lasting effect on her. She said she now struggled when wiping her youngest son's bottom and was anxious about eating out.

    The Whytes say they are outraged that someone would serve human waste to children.

  12. QUOTE (Karissap @ Oct 26 2008, 10:36 PM)

    Try going into VI properties, go into the execution category and tick the box "Reentrant execution", this will mean each instance of the sub VI will run in its own memory space.

    This will work if there is something in your subVI that is holding data in between calls. The most likely culprit for what you're observing is that you have one or more uninitialized shift registers. What you need to ask yourself is "do I need the subVI to keep data or state information from one call to the next?" If the answer is no, then initialize your shift registers appropriately, and you won't require reentrant execution. This will save memory use. If the answer is yes, then follow Karrisap's advice and go for reentrant execution.

×
×
  • Create New...

Important Information

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