Boiler Controller CLD Preparatio​n

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
Attachments:
Controller Software.zip ‏336 KB

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
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 Now if you passed the error wired to the outside case into the guts you'ld have a much cleaner AE
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)
Jeff
Attachments:
AnalyzerResults12-30-11-12-10-11.txt ‏36 KB

Similar Messages

  • Sample CLD (Boiler Controller) Solution for Review

    Hi,
    I have solved the Boiler Control example, as part of my CLD practice.
    Can you guys please review it?
    I couldn't meet the timing deadline but I think I can do it with some practice.
    Also please excuse the documentation part. I hav done almost nothing on that as of now.
    I would like to see comments on architecture, functionality, code readability, etc.
    Thanks in advance.
    Moni
    **If necessity is the mother of invention, I bet laziness is the father.**
    Solved!
    Go to Solution.
    Attachments:
    MySolution_BoilerControl.zip ‏111 KB

    I'm studying for the CLD myself and haven't passed it, so take my comments with a grain of salt.
    A few suggestions. They're all very minor.
    1) For your next practice, take the last 10 minutes of the 4 hours and do documentation. Those are fast, easy points. It's even better if you document as you go - just type a quick description of what you're doing in each frame, and add documentation to your VI Properties (especially your main one).
    2) This is very minor, but I noticed a lot of coercion dots. A Quick Drop and Ctrl+I will clear those out quickly.
    3) I think you should hide your debug indicators for State Q. At least move them off to the side, away from the desired front panel.
    4) Shift cluster should definitely be a typedef.
    5) Is there a reason you used a "File Directory/Info" instead of a "Check if File Exists" function? This is more a curiosity question than anything; the way you coded is functional, but sort of indirect.
    6) I'm not sure if the exact right values are writing for the log file, I see "6/27/2012::10:29 PM,Pilot Proved,29.59" as a line, and I would expect the Pilot value to be >30?
    I think barring a slight lack of documentation, it looks great. It's very organized and it's clear in every state what you're doing.
    I hope you pass! Good luck on your exam!
    http://linkd.in/mikele

  • Boiler Controller Mock CLD Exam

    I have my CLD exams soon.
    I would appreciate it if someone can sort psuedo-mark my exam and give me any feedback.

    Front panel set to full screen and does not have an icon
    While this is not applicable at all to the exam you should include a copy of the requirements document in the project for people on the forums for easy reference. I did the ATM and Car Wash samples so I was familiar with them. I did not do the boiler sample.
    Only one of three subvis is documented. Do the documentation and icon FIRST when creating a subvi.
    No time to look much further at this at the moment.
    Attached image is self explanitory
    =====================
    LabVIEW 2012

  • Planning during CLD

    I recently failed my CLD exam with a lousy 45%.
    The paper I took was most similar to the Boiler Controller practice paper except it was unfortunately a lot more complex. Mine had an extra page of requirements and the front panel had a lot more controls/indicators. None the less it was similar in that it was very procedural (the design responded to a string of user interaction which, when followed, produced a result).
    I think my failure was due to lack of planning and understanding of the requirements before beginning implementation. I read the paper once and although I did not completely understand what I was trying to achieve I began coding.
    What is the best way of planning? I would say state transition diagram but what if the requirements are so complex with a large number of inputs/outputs like that one I was presented with? How can a state transition diagram remain readable in this situation?
    Ideally I want to be able to plan within 30 minutes and understand exactly what I am trying to achieve before coding. I want to be able to continue to complete the implementation by referring to my plan only (i.e. not the spec).
    Some examples of a plan would be good.
    Many Thanks.

    I passed the CLD exam and would advise the following.
    1) Read the requirements
    2) Build the interface and document - this will give you documentation points plus increase you understanding of the requirements
    3) Implement a simple producer consumer architecture with events documenting as you go - implement the simple stuff first (initialise GUI, stop loop) and document as you go. This will tick the boxes for style and give extra points for documentation.
    4) Only now start to code main functionality. You should have a good understanding of the requirements by now and you should already be set up to implement a good style. Start at the beginning of the requirements and add one functional requirement a time testing and documenting as you go.
    You do not need to finish all requirements to get a good mark - if the style is there and it is well documented then you should do well. If you don't get the style right then you will struggle with the functionality anyway.
    Hope this helps
    David
    David
    www.controlsoftwaresolutions.com

  • Sprinkler Controller-Solution for CLD

    Hi all,
    I have solved the sprinkler controller sample problem of CLD.
    Request you all to provide the valuable comments on it.
    Attachments:
    Sprinkler.zip ‏88 KB

    Looks pretty clean, but I have not looked at it in detail.
    Here are a few notes:
    Isn't this supposed to be inside a project?
    I hate it when diagrams are maximized to the screen (main VI and file I/O vi)
    You have an existing log file and if I run the VI, new data gets appended. The problem is that the existing entries have a comma as decimal seperators, while the new entries (run in the US) have a decimal point. This could confuse a program that later might analyze the logs. You should decide on a wordwide format.
    To blink the pilot, you can create a direct property node for the button inside the cluster (right-click button on the front panel...create....property node. see image below). No need to get all control references and index out one. (even if you get all the boiler control references, that only needs to be done once outside the loop and not every time it is needed.
    As has been said by jeff above, terminals of subVIs should be on the toplevel diagram, and not buried inside case structures.
    In the file I/O subVI (open file case), you only handle error 7. Shouldn't you handle all errors somehow? For example if the file is "read only", you would get error 8.
    It would seem more easy to format "event" and "event data" into a single string in the main VI. Now you only need one feedback node to see if anything changed. The combination of strings and numerics can easily be done with single formatting statements.
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    pilotproperty.png ‏5 KB

  • CLD Preparation Example Exams ATM and Boiler

    Hello all,
    I am preparing for the CLD exam and would appreciate somebody's feedback regarding my CLD test readyness. Before I move on to the other two examples, I would like to know where I stand and required areas of improvement.
    I would greatly appreciate your time and help reviewing the two attached sample exams (ATM and Boiler) and providing feedback. Thank very much.
    Best regards,
    Peter
    Solved!
    Go to Solution.
    Attachments:
    Boiler Example Test.zip ‏103 KB
    ATM Sample Exam.zip ‏83 KB

    Thank you, Allen, for your feedback. I appreciate it.
    Sorry about the missing main vi in the ATM zip file. I attach it again to this message.
    I see your point regarding the Boiler Simulation Controls being outside the loop and event structure. This was an oversight on my part and clearly this would not work as intended.
    I have a question regarding your comment on the lock up, and considering the fact that one may not be able to complete the application in the allotted time. Would you consider it more important spending time on debugging and documenting the existing fragment and ensuring that what is there works as intended and is properly documented, or try to finish the application as much as possible knowing that it will require debugging. I was given other advice that I should not loose myself in debugging at the expense of not finishing the application.
    Thank you again for taking a quick look at my boiler solution earlier despite your limited availability. I appreciate it.
    Peter
    Attachments:
    ATM Sample Exam.zip ‏131 KB

  • My solution for boiler example -for CLD

    Hi all,
    I am currently preapring for the CLD and so attempting the sample examples. I have given a try for the boiler example.
    I request all the champs here to provide me the comments on the coding. As coding was done in working time documentation is not done in very good way. But i would like to know the overall comments on it.
    Thanks in advance!!!
    Attachments:
    Boiler.zip ‏70 KB

    I hate to be the bearer of bad news but I doubt this would pass. There are lots of things that need improvement. Below is a quick list of things you need to look at.
    Document all controls, indicators and VIs.
    DO NOT leave the front panels and block diagrams maximized. You should try to fit things on a single screen. Also, the main front panel must look like the requirements including the basic size.
    Keep your wires straight. Avoid unnecessary bends. Something that is definitely not done in your code.
    Label wires that pass through your state machine. This adds to the documentation and readability of the code.
    Don't place items on top of each other.
    Make better use of subVIs.
    Document your code better. Referring to block diagram comments.
    You have an issue with your state machine. You effectively queue things up in an array but it is possible that you will not execute all the states.
    I didn't try running it so I can't comment on the functionality. As soon as I opened it I knew you had more to concentrate and practice than the basic functionality at this point.
    Mark Yedinak
    "Does anyone know where the love of God goes when the waves turn the minutes to hours?"
    Wreck of the Edmund Fitzgerald - Gordon Lightfoot

  • CLD Boiler Exam Advice

    Hi all, 
    I've just completed the Boiler sample exam and was wondering if i could get some feedback on the code i've written. Note i stuck to the 4hour limit and therefore haven't got as much documentation as I would like. 
    Any advice would be great. 
    Cheers, 
    Rory
    Attachments:
    Boiler.zip ‏96 KB

    overall not bad.  Nicely documented but, you have picked up some bad habits.:
    avoid placing terminals inside case structures.  Terminals belong on the root diagram panel whenever possible to lower the sub-vi call overhead.  a quick forum search will explain why.
    hiden objects.  you have a few. along with some unecessary wire bends.  the graders will ding points for these
    infinite loop.  the GUI has no graceful exit (in fact cannto be stopped without either A) pressing abort or B) deleting the log file (throwing error 7)
    why no icons for the custom controls?  I know this seems picky but when you are looking at a hierarchy view of a larger project the default ctl icons get confusing.  NI should listen to their own advice and improve the ivi drivers too where they commonly overlook ctl icons.
    missing a shutdown case in the timer- or you have 1 more enum than needed. pick one and run with it.
    How did you do on time?
    Jeff

  • CLD sprinkler Contoller

    Hi ,
      I am taking CLD within a week, here is my solution for sprinkler controller.
    Please review it and give me feedback. Thanks in advance.
    Aarthi
    Attachments:
    Sprinkler Controller.zip ‏119 KB

    Hi,
    First impressions:
    The Zone Service.VI:  Add labels to the cases stating what they are checking for, it is difficult to see at first view what they are toggling.
    Zone Service VI has an indicator called Boiler States, hmmmm.......
    In the Run State, label the case that checks the previous state.
    FWIW
    Mark Ramsdale

  • CLD Solution for Review

    Kindly Evaluate My CLD solution for Sample Exam Sprinkler Controller... 
    Thanks & Regards
    Varaprasath M
    Certified LabVIEW Developer
    Certified TestStand Developer
    Attachments:
    Sprinkler - Kopie.zip ‏332 KB

    Looks pretty clean, but I have not looked at it in detail.
    Here are a few notes:
    Isn't this supposed to be inside a project?
    I hate it when diagrams are maximized to the screen (main VI and file I/O vi)
    You have an existing log file and if I run the VI, new data gets appended. The problem is that the existing entries have a comma as decimal seperators, while the new entries (run in the US) have a decimal point. This could confuse a program that later might analyze the logs. You should decide on a wordwide format.
    To blink the pilot, you can create a direct property node for the button inside the cluster (right-click button on the front panel...create....property node. see image below). No need to get all control references and index out one. (even if you get all the boiler control references, that only needs to be done once outside the loop and not every time it is needed.
    As has been said by jeff above, terminals of subVIs should be on the toplevel diagram, and not buried inside case structures.
    In the file I/O subVI (open file case), you only handle error 7. Shouldn't you handle all errors somehow? For example if the file is "read only", you would get error 8.
    It would seem more easy to format "event" and "event data" into a single string in the main VI. Now you only need one feedback node to see if anything changed. The combination of strings and numerics can easily be done with single formatting statements.
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    pilotproperty.png ‏5 KB

  • Will I lose points on the CLD Exam if I use a Launcher vi in addition to the provided Front Panel?

    Hi!
    In this thread: https://decibel.ni.com/content/message/50512#50512, MattP directed me to this Certification Board.
    If I use the Actor Framework in a CLD exam, will I lose points for launching the Front Panel? For two specific examples of what I mean, please refer to the solutions submitted here:
    ATM: http://forums.ni.com/t5/Certification/Sample-Exam-Solutions-for-Review/m-p/2380868#M728
    Boiler: http://forums.ni.com/t5/Certification/Sample-Exam-Solutions-for-Review/m-p/2385580#M738
    Thanks!
    Solved!
    Go to Solution.

    Hi,
    You will not loose points for using the launcher, and not documenting the message classes.  The folder structure is also fine.
    Do document the other VI's, actors,and SubVI's.   Remember be brief with documentation.
    Mark Ramsdale
    Project Manager and CLD
    Customer Certification and Training at National Instruments

  • Difference between MVC & Front- Controller

    Hi All,
    could anyone help me out in differenciating the MVC & Front controller patterns.
    regards
    Karthik

    When should an application use the Front Controller
    patern and when should they use MVC? This boils down to scope of the problem domain and requirements.
    The Front Controller seems largely like a subset of
    MVC.Yes.
    Is there a situation where the Front Controller
    is more advantageous to use than MVC?Where its lighter weight pays off, i.e where you do not have a conventional model, e.g with streaming prototcol handlers or with fast readers. MVC is most useful for a N-Tier J2ee application offering CRUD type functionality.

  • Has anyone managed to program a Wago 750-650 module attached to a Wago 750-341/841 controller

    Hi,
    I'm planning to use 2 Wago 750-650 modules (serial to ethernet converter) attached to either a Wago 750-341 or 841 ethernet controller to communicate with a vacuum controller which uses a serial interface.
    I wonder if anyone has accomplished this? I have written a small VI using MODBUS commands to try and achieve this but I am unsure how to input commands of longer than 3 bytes and it seems that it is not working yet.
    Any tips or help would be welcomed.
    Thanks
    Keith.

    Hello Keith,
    Apparently the brackets were accidentally included in the link. Here's the right one:
    http://zone.ni.com/devzone/cda/tut/p/id/3141
    Kind Regards,
    Thierry C - Applications Engineering Specialist Northern European Region - National Instruments
    CLD, CTA
    If someone helped you, let them know. Mark as solved and/or give a kudo.

  • Please review my CLD practice exam

    Hi all,
    I'm working my nerve up to take the CLD.  If anyone has the time, I'd appreciate some advice on style, test rules, etc. based on my solution to the Traffic Light sample exam.
    Seemed a lot easier than the car wash exam.  Is this an older exam? How do the real tests compare to the practice exams? Any advice is much appreciated.
    -Barrett
    -Barrett
    CLD
    Attachments:
    Stop Light Controller.zip ‏53 KB

    blawson wrote:  would a simple error dialog be all I'd need for error handling?
    -Barrett
    Message Edited by blawson on 11-16-2009 10:12 AM
    Generally speaking, I think that the error dialog should suffice. I don't think I'm violating the NDA in saying this...  (My sincere apologies to NI training & certification if I am - please delete my post if that's true)  On exams I usually do something a bit more complex, but it's probably overkill.  I usually run a separate loop in parallel and send my errors over there via a queue.  That way errors don't hang up the application.  Still, I use the stock error dialog (one of the two) in my error handler loop.  I don't think I've ever lost points for that, to my recollection.
    Also, regarding typedefs:  To avoid orphaned enums that should be typedefs, I wrote something backwards on my forehead with a marker. (OK, not really.)     "If it's a cluster or an enum, make it a typedef."  Following this rule, I always start out with a typedef to begin with and thereby avoid the problem.  My experience is that this almost always saves you trouble later on.
    Free advice, for what it's worth.
    Jim

  • Update teststand on controller

    I want to update from TestStand 3.0 to 3.1 on a PXI controller with an external CDROM drive that is connected through the USB port, but when I run the autorun and setup.exe this does not seem to work.
    External CDROM drive(Teac) and PXI-controller were supplied by NI. Drive doesn't seem to work as a typical CDROM drive..
    thank you,

    Mr. op het Veld,
    Can you copy from the CD-ROM drive? Maybe a quick work around is to copy the CD-ROM to a temp folder on the controller and install it from there. Second workaround would be sharing a CD-ROM drive of another PC in your network (if the controller is connected to a network) and run the setup from there. You could also copy the disk on to the harddisk of the PC and share the folder where the installer is located.
    About the CD-ROM drive: Did you try other CD-ROMs? Do they also not work. It could be a problem with the CD-ROM itself. What kind of controller do you have and which OS?
    Hope this helps,
    Best Regards,
    RikP
    Application Engineering
    National Instruments
    Rik Prins, CLD
    Applications Engineering Specialist Northern Europe, National Instruments
    Please tip your answer providers with kudos.
    Any attached Code is provided As Is. It has not been tested or validated as a product, for use in a deployed application or system,
    or for use in hazardous environments. You assume all risks for use of the Code and use of the Code is subject
    to the Sample Code License Terms which can be found at: http://ni.com/samplecodelicense

Maybe you are looking for