NI Home > Community > NI Discussion Forums

Certification

Reply
Member
K.Waris
Posts: 125
0 Kudos

Boiler Controller CLD Preparation

First I thank everybody for providing feedback on Sprinkler Controller Example I posted recently. I have attempted now Boiler Controller example and posting it now for your feedback. The only thing I know I haven't done this time is adding vi documentation for Main.vi. This is because I wanted to take exactly four hours and see how much I could finish. So my apologies and I will definitely be adding more documentation in future.

 

This time I am only struggling generating events at certain values of sliders and knobs. Consequently, failing to finish full functionality in allocated time. Will really appreciate comments!

 

Thx

Austin

Proven Zealot
Jeff·Þ·Bohrer
Posts: 7,656

Re: Boiler Controller CLD Preparation

Austin,  I attached the results of the vi analizer (the exam graders will run this too!)  Essentially you've got some issues and I'll walk through 1 sub vi with you. Lets Take Controller_File IO.vi

 

First the name- Decorating your names with scope is kind of silly when using projects "File IO.vi on Boiler Controller.lvproj" is sufficient wouldn't you say?

 

It looks like you tried to make an action engine- where is the USR? Personally I'd populate a USR with File Name in the initialize case (and since you'll call Initialize directly from Main- Pass in Main.vi's path- to meet the relative to main location requirement without all the stripping)

 

Error handleing- WWYT? pass error though with error in =error! that error you just through out might have been important

 

Init.png

A couple things here- Check if File or Folder exists is right on the advanced file function pallate and may have been a better choice to drive your case selector.  Watch your wire bends and- if the file open worked you left the referance open! This is a memory leak.  Why did you unbundle the error status rather than driver the case with the cluster? (of course using Check if File or Folder exists would never return an error)

 

In the Write case you have some sloppy wiring too but What is with the clear errors vi that has no error in wired to it:smileyfrustrated: Now if you passed the error wired to the outside case into the guts you'ld have a much cleaner AE:smileysurprised:

 

The FP:  Chosing the Arial 12 pt font was unwise as you'll see when you load the VI Analizer results and read this "Some part of the display of the control labeled "Consumer Datatype" does not use a specified font.  If you are using a font other than Application, System, or Dialog font, this could cause problems when porting this VI to another system that does not have the proper font(s) installed."

Size your enums so that all selections display in the window I read "Initializ" in the Initialize case (1 too many i's by the way) and no-sir I don't think the decorations or labels on them aid the vi at all.

 

On the Plus side- your-VI documentation is clear and you mentioned you intend to come back to the FP obejects to add tips and discriptions.

 

Overall about a C-   Go back through LabVIEW design patterns and Ben's Nugget on AEs and learn to use the VI analizer ( it'll help improve your style and documentation points on the test)

8-Ball Consulting advertising banner

Certified LabVIEW Consultant. The partner you can bank on when you're behind the 8-ball.
Member
K.Waris
Posts: 125
0 Kudos

Re: Boiler Controller CLD Preparation

Hello Jeff

Thanks a million for reading and providing feedback. I am working further to improve documentation and will be using system font in future.

What is a USR? I could not find it through block diagram search? 

 

 

Member
K.Waris
Posts: 125
0 Kudos

Re: Boiler Controller CLD Preparation

I learnt to use now vi analyzer. Corrected most of the errors such as "font size, wire bends" and now they are removed from vi analyzer results. Good Start!

 

I am however struggling a little bit to remove following errors:

 

1) Dialog Control: The control labelled "source" is not a dialog-style control. Because of this, its appearance will not be palform-specific.

 

Source in this case is the string control in error in and error out cluster dragged on to the front panel from functions pallete. Do I really need to worry about this? VI analyzer returns same error for code and status controls of the error clusters.

 

2) Control Alignment: The control on this VI's front panel are not arranged in a manner similar to their location on the connector pane.

 

I had tried my best to arrange them in a manner similar to their location on the connector pane in the attached vi. Am I missing something here? ( I haven't used the top left terminal on the connector pane for this vi, but even if I had done, I would still get the same error)

 

Thx

Austin

 

Trusted Enthusiast
SteveChandler
Posts: 2,250
0 Kudos

Re: Boiler Controller CLD Preparation

I wouldn't worry too much about those two warnings, especially the first. As long as your controls are not randomly scattered all over the front panel and logically placed it should be fine. In your file io vi it looks perfect. VI Analyzer is much more finicky about things than any reasonable person would be. It is configurable so you can turn off warnings about things that you don't care about such as the non-system controls. Although NI graders probably run VI analyzer as part of the grading process I am sure they do not use the default settings and have most types of warnings turned off. They will probably look for overlapping objects, VIs with no documentation property, default icons, no comments on the block diagram, etc. Even if they see warnings they will use their own judgement.

 

My advice simplified as much as I can simplify it - If you write neat, documented and readable code using standard design patterns and it mostly works you will pass.

=====================
LabVIEW 2012


Proven Zealot
Jeff·Þ·Bohrer
Posts: 7,656
0 Kudos

Re: Boiler Controller CLD Preparation


AustinCann wrote:

Hello Jeff

Thanks a million for reading and providing feedback. I am working further to improve documentation and will be using system font in future.

What is a USR? I could not find it through block diagram search? 

 

 


Glad to help a borther-in-wire out:smileyhappy:

USR is "Uninitialized Shift Register" This becomes the storage element for the Action Engine's Private data.  Seriously, review Bens nugget and see how you could improve that sub-vi

8-Ball Consulting advertising banner

Certified LabVIEW Consultant. The partner you can bank on when you're behind the 8-ball.