Bhima Posted December 29, 2007 Report Share Posted December 29, 2007 Hi, I am very new to Labview and my first assignment is to maintain an existing Labview 7.1 application. This application is quite large, poorly built, and violates every single style rule presented in The Labview Style Guide. In any event I am trying to fix a bug regarding interval timing of calibrations and have concluded that there is no way to make the existing code work. I have found the Bloomy Controls and the interval vi has exactly the functionality I need. However I have a few questions. When I open the vi I get this error: "Interval uses data range coercion, which now only applies to data entry; values will not be coerced when passed to subVIs. To coerce passed values, use the In Range and Coerce function." Is this something I need to fix before proceeding? If so, how do I fix this? Next I am unsure how to integrate this vi into the existing application. Currently this functionality is attempted by a wildly desperate parts spread over a block diagram which is approximately 1 Meter x 2.5 meters in size. It uses global variables, strings, a myriad of local variables, seemingly random separate mathematic functions. Is my best avenue to wrap this into a non-reentrant sub-vi and create a small cadre of global & local variables, and then use these variables to replace the old ones all over the place? Or is there some more palatable solution I'm missing? If it would be helpful I could post snippet jpegs of the old code in question. Thanks! Bhima Quote Link to comment
Ton Plomp Posted December 29, 2007 Report Share Posted December 29, 2007 QUOTE(Bhima @ Dec 28 2007, 12:34 PM) Hi, I am very new to Labview and my first assignment is to maintain an existing Labview 7.1 application. That's always tough. QUOTE When I open the vi I get this error: "Interval uses data range coercion, which now only applies to data entry; values will not be coerced when passed to subVIs. To coerce passed values, use the In Range and Coerce function." Is this something I need to fix before proceeding? If so, how do I fix this? The VI you mention uses 'data range coercion' on one of it's front panel controls. This means a user can't set the value to an invalid (unwanted) value. However if you use the VI as a subVI the data is not coerced and an invalid value may be feed to the function. So you should use some data validation. A solution is to use the mentioned 'In Range and Coerce'. QUOTE Next I am unsure how to integrate this vi into the existing application. Currently this functionality is attempted by a wildly desperate parts spread over a block diagram which is approximately 1 Meter x 2.5 meters in size. It uses global variables, strings, a myriad of local variables, seemingly random separate mathematic functions. Is my best avenue to wrap this into a non-reentrant sub-vi and create a small cadre of global & local variables, and then use these variables to replace the old ones all over the place? Or is there some more palatable solution I'm missing? I advise you to use a State Machine architecture. A good book on this topic is 'Software engineering approach for LabVIEW' (esp. the first half of the book) QUOTE If it would be helpful I could post snippet jpegs of the old code in question. If you're going to I advice you to use the Code Capture Tool. Just remember the two golden rules: KISS (keep it simply stupid) If it ain't broken, don't fix it. Ton Quote Link to comment
Bhima Posted December 29, 2007 Author Report Share Posted December 29, 2007 QUOTE(tcplomp @ Dec 28 2007, 12:53 PM) Just remember the two golden rules:KISS (keep it simply stupid) If it ain't broken, don't fix it. Unfortunately this is neither ‘simple’ nor ‘not broken’! I have a *stack* of Labview books and I’m really having troubles actually using what’s presented in the books. The existing code is such a disaster and I am so new at this that I’m completely lost. I don’t have the book you recommend though, so I’ll order it. Now as for your advice to use a state machine. Are you saying that I should wrap the bloomy interval timer vi a new sub vi using the standard state machine template? Then everywhere where there is interval time functionality that needs to be replaced, I put this new sub vi, set the state I want, and then add the input or get the output. Is that an accurate recounting? Quote Link to comment
Ton Plomp Posted December 31, 2007 Report Share Posted December 31, 2007 QUOTE(Bhima @ Dec 28 2007, 01:35 PM) Unfortunately this is neither 'simple' nor 'not broken'! I have a *stack* of Labview books and I'm really having troubles actually using what's presented in the books. The existing code is such a disaster and I am so new at this that I'm completely lost. I don't have the book you recommend though, so I'll order it. If you already have a stack of books, this will only make you get more lost, just absorb wha't in the books, follow the example and try to find your own programming style. QUOTE Now as for your advice to use a state machine. Are you saying that I should wrap the bloomy interval timer vi a new sub vi using the standard state machine template? Then everywhere where there is interval time functionality that needs to be replaced, I put this new sub vi, set the state I want, and then add the input or get the output. Is that an accurate recounting? No, I wasn't focusing on the bloomy interval timer (which I don't know) just a general hint. Ton Quote Link to comment
Gabi1 Posted January 2, 2008 Report Share Posted January 2, 2008 hello Bhima, if it is not too problematic, i would propose you to post your code, and we can try to help you implement an interval timer. on the other hand, if you have read and fully understood the lv style book, and have a little programming experience, i think you have all the tools necessary to rewrite the code yourself. it depends of course how much time you have, but it seems to be the best option when dealing with messy codes. i think you will learn quite a bit doing so, and will have the opportunity to implement yourself an architecture that you will like. begin by creating suvis, each performing a specific function. higher level functions should be built of several low level subvis. when you have the whole bunch of them, not only you will have a full overview of the functionality of the program, but the typical architecture necessary will probalby appear spontaneously. this bottom up approach might be the easiest for you to rewrite this code. in any case, if you post your code we could try to help. Quote Link to comment
Norm Kirchner Posted January 3, 2008 Report Share Posted January 3, 2008 as far as easily posting code pictures and EVEN VIDEO!! Check out www.JingProject.com This will allow you to easily caputre screen shots, or portions of the screen and have them posted to the the web immediately for sharing or to your HD or many other services. I really love the video feature, because you can walk someone through how messed up it is, w/ voice comments too! Quote Link to comment
TobyD Posted January 3, 2008 Report Share Posted January 3, 2008 QUOTE(Norm Kirchner @ Jan 2 2008, 11:37 AM) Check out www.JingProject.com Looks like a cool program. The site says it will eventualy become something else...any idea what? I'll have to play with it some more to decide if it's worth keeping. Quote Link to comment
Ton Plomp Posted January 4, 2008 Report Share Posted January 4, 2008 QUOTE(Norm Kirchner @ Jan 2 2008, 08:37 PM) as far as easily posting code pictures and EVEN VIDEO!!Check out www.JingProject.com This will allow you to easily caputre screen shots, or portions of the screen and have them posted to the the web immediately for sharing or to your HD or many other services. I really love the video feature, because you can walk someone through how messed up it is, w/ voice comments too! Yes I like the Jing video as well, I've used it for the instruction video of the http://forums.lavag.org/downloads-file121.html' target="_blank">Code Capture Tool. (it's the big black square at the bottom) Only restriction is the time size of 4 minutes. [plug]For LabVIEW code, I use the Code Capture Tool.[/plug] Ton Quote Link to comment
Gabi1 Posted January 4, 2008 Report Share Posted January 4, 2008 QUOTE(Norm Kirchner @ Jan 2 2008, 08:37 PM) as far as easily posting code pictures and EVEN VIDEO!!Check out www.JingProject.comThis will allow you to easily caputre screen shots, or portions of the screen and have them posted to the the web immediately for sharing or to your HD or many other services. I really love the video feature, because you can walk someone through how messed up it is, w/ voice comments too! i meant 'problematic' from the proprietary issues point of vue.that sais, theis Jing project seems neatQUOTE(tcplomp @ Jan 3 2008, 06:42 AM) Yes I like the Jing video as well, I've used it for the instruction video of the Code Capture Tool. (it's the big black square at the bottom)Only restriction is the time size of 4 minutes.[plug]For LabVIEW code, I use the Code Capture Tool.[/plug]Ton Code capture tool great indeed :worship: thanks! Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.