Sample CLD (Car Wash) Solution for Review

Hi,
This is my first time posting. I am studying to take the CLD and I have attached my solution to the Car Wash sample exam (LV2011) using a PC-Events architecture. I ignored the time constraints for now to see where I stand as far as functionality and style. I tried to be thorough (not creative) with documentation as well. Any feedback would be greatly appreciated.
Thanks!
Steve T., Engineer
NSTec
Steve T., Engineer, CLAD
Albuquerque, NM
Attachments:
Car Wash.zip ‏128 KB

Steve Tomany wrote:
Great, thanks for the feedback. Any chance you can show me how you use the queue naming and the sub vi in this way? I've played with it but my attempts do nothing to improve the BD.
Thanks
Sure,  Here is a copy of my PC loop (events) template with the consumer loop as a sub-vi (Type Defs disconnected)
(NOTE: my template contains vi documentation template as well)  This won't save you on the CLD exam since the shipping templates are all you can use.  But having your own for "Real Life" sure speeds up programming time.
Jeff
Attachments:
ProducerConsumerEventsSilver.vi ‏35 KB
Consumer.vi ‏22 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

  • Car Wash Solution discussed in the webcast

    The Car wash solution on the sample exam page does not match with the solution discussed in the webcast. A few people have requested the solution discussed in the webcast to be posted. Please see attached.
    Thanks
    Zaki Chasmawala | Certification Development Group Manager | Training & Certification | National Instruments | [email protected]
    Attachments:
    Car Wash Solution.zip ‏111 KB

    Don't look too closely at the solution.  It was meant purely to show architectures and general concepts.  Furthermore, it was not a PERFECT solution.  It was a PASSING solution.  That example was actually somebody's submission for a CLD and they passed.  If there was a functionality missing, that would not be surprising.  A few points marked off, but still passing.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions

  • Sample Exam Solutions for Review

    Good afternoon,
    I am taking the CLD exam tomorrow morning and wanted to submit my sample exam for review. I was able to finish it in just about 4 hours. 
    Here is my solution, please provide feedback.
    Thanks.
    Steven

    Manushak wrote:
    Hello all
    I have solution for "sprinkler controller".
    I would be glad if someone could take a look and give me a feedback.
    I want to write more comments, but my english is poor and there are many mistakes in my texts. Do you know, can i have any translater with me in time of exam. Or can i use online translators. It will help my very much.
    Overall a C- job  Some things you did well. Please excuse me for only pointing out the flaws as my time is limited.
    You have some bad habits that you need to break;
    Icons.  They need to convey information to the next maintainer of your code.  Is that a flame under a teakettle?  Like GUIs the color usage in icons should avoid garashness and help aid clairity.  Your file read vi icon uses a glyph I would associate with a error dialog.
    Use a project
    Tip Strips on every object the user can see on the GUI!
    Timing- you have failed to meet spec on preserving the elapsed time if rain occurs durring the servicing of a zone.  You need an elapsed timer with a pause feature.
    Wire bends.  Enough said?

  • Please review this Car Wash Solution with Queue LV 2014

    Any advice would be greatly appreciated...honest
    Attachments:
    CarWash with queue LV 2014.zip ‏183 KB

    Hi again Matt.
    I came up with 2 solutions for dealing with errors.
    1)Generate an error message containing words that let the user know the program must be manually exited due to an error
    2)Generate a user event in the consumer loop that lets the producer loop know it must quit the program due to error and show a dialog on the way out
    To test this I added a Button named error that enqueues a command that  causes the consumer loop to generates an error
    Also quiting the producer loop and releasing the queue was generating an error in the consumer loop which caused it to stop
     from the error case.
    That works but badly so a better way was to enqueue a quit command to the consumer loop. Done in both updates.
    If I were doing the exam I would use the first in the interests of time. Crude but lets the user know.
    I attached both versions in case others were interested.
    Attachments:
    Car Wash simple error.vi ‏79 KB
    Car Wash reg events.vi ‏82 KB

  • 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

  • PPPoE problem - solution for review

    I'm posting this to save others the search after I troubleshot a painful issue, which wiser types may be able to clarify the background.
    Equipment: DLink DSL 504T Gen II; MBP 2008; AEBSdual-n 2009
    Problem: Set up new AEBSdual-n, set up security, PPPoE to bridged modem and accept all default networking settings. With correct username & p/w, AEBS fails to authenticate, flashing yellow and generally not responding to Airport Utility very well, even by wired connection...
    Solution: Noticed that default DHCP prefix in Airport is 10.x.x.x which is the same ilk as the Dlink DSL 504T. Wonder if the subnets are clashing or something. Try changing DHCP prefix given out by AEBS to 192.168.x.x and all works fine. Note that to achieve this I had to hard reset (power and reset button at once) to restore default settings.
    Those wiser than me can look at the reasons, but I wanted to post a likely solution for many others I've read when researching the problem.
    Cheers,
    Tim
    Message was edited by: Tim Groves for clarity

    I tried the same and the opposite happened. If I left it as 10.XX it worked fine

  • CLD Sample Exam Solution for Review - ATM

    Please see the attached ATM controller code. I would appriciate any feedback as I am sitting the CLD exam next week.
    Matthew
    Attachments:
    ATM.zip ‏374 KB

    Its probably been a few weeks since you took the CLD. How do you think you did?

  • Car Wash CLD Sample Exam Solution

    Attached is my solution to the CLD Car Wash Sample Exam.  Comments will be appreciated.  The main VI is Main_6.15.10.
    Thanks in advance.
    Attachments:
    CarWash_6.15.10.7z ‏60 KB

    Here are my thoughts....
    Your solution is functional, so there are points for that right away.  Where I think there could be some more work is the architecture.  The exam requirements state that the design must be "easily scalable".  To me that means new states or cycles can be added without much messing about on the block diagram.  If you notice, there are only certain... lets call them Properties of each cycle type.  You could have an array of cycle properties such as cycle time, cycle position switches, cycle name, and flags for standard or deluxe.  Then you could reduce your cycle handling to a single state that just indexes through the cycle array and executed the next appropriately flagged cycle.
    I noticed a Select node in each of your cycle states with constant True and False wired to it.  That is a total of three elements plus two wires that should have just been a Not right off of the Boolean palette.
    You stop the program with a Stop button, yet you allow the user to close the window.  You should consider a Panel Close? event in your event structure to handle a use trying to close the window so that you can execute a graceful stop.
    There is no VI Description filled out for your main VI.  You should also have an icon for the main VI.  The suggested front panel shown in the exam has an icon.
    When your VI is running, you have the scrollbars, toolbar, and menu bar shown.  None of those serves any function for the application, so they should not be shown at runtime.
    The Stop button that is used to stop your application is reset with a Property Node.  Not that there is a performance issue here, but it is generally not good practice to do that unless you are forced to.  Consider just using a Mechanical Action of Latch When Released instead of Switch When Released.  That way you do not need to force the reset to the False state.  Of course, I would rather see something like a Stop state writing to the While Loop conditional terminal.  Also, you could have used a Local Variable to write the initial state of the Sim Switches instead of the Property Node.
    The graders like to see code comments describing your algorithms.  I would say that you need more of those.
    A 10 msec timeout on the event structure is a bit hyper.  Nothing in the system runs that fast, and the only thing you are waiting for is the user.  You could actually have a -1 wired there if you add an event case for the Stop button and Panel Close.  It will greatly reduce the CPU cycles (again not that there is a huge performance issue here).
    Come to think of it, the 20 msec wait for next multiple timer is a bit hyper too.  Your timing requirements are on the order of seconds.  You do not need to loop that fast.
    In general I prefer to have the Event Structure outside the State Machine.  Either that, or I use the Event Structure as the State Machine (in place of the Case Structure).  That way, if you need to respond to the user interface, you can do so without waiting to cycle back to the Idle state.
    This one was not listed in the requirements, but it would be very helpful to see the clock.  A cycle countdown timer or elapsed time indicator is so helpful to the user and the grader.  It confirms that things are working properly and the the application has not sieved up.  Users like to see something "alive" on the screen.
    To end on a positive... good job remembering to Disable the Purchase Selection buttons once the user clicks one.  I got ding'd for forgetting about that back when I took the CLD in 2003.

  • CLD Solution - Car Wash System

    Hi all,
    I have one lLVOOP solution for the car wash example for the CLD.
    Would like to have comments on this from you all
    Also, you can rate me between score of 0-40
    Thanks!
    -Parag D
    -FraggerFox!
    Certified LabVIEW Architect, Certified TestStand Developer
    "What you think today is what you live tomorrow"
    Attachments:
    Wash System.zip ‏130 KB

    Did you complete it in 4 hours?
    The code and project structure look very good in my opinion.
    After selecting Economy or Deluxe, you should provide an indicator as to what was selected. Such as "Deluxe Carwash In Progress" above the LED's. You should always give the user confirmation.
    Hide the toolbar while running. 
    Richard

  • CLD Practice Review - Car Wash

    Hey, so I've done all 4 available CLD Prep Exams.  I was curious if I could get some feedback on the Car Wash.  This, imo, was the easiest of them all and so I was wondering what kind of marks I would end up getting with the attached as the end result.  Like, just how many "unnecessary bends" are present in my code?  What does it need?  The code is in 2011 SP1.  Thank you.
    Remember, code does exactly what you tell it.
    Attachments:
    Car Wash.zip ‏89 KB

    Well while we wait for the thread to be moved here are some comments:
    Your main has uninitialized shift registers for no reason.  They should be initialized with constants.
    All of your VIs are missing VI Icons
    All of your VIs are missing VI Descriptions
    Saved controls are also missing icon and description
    Your front panel controls don't have tip strips, or descriptions
    Wires are routed behind structures in a couple VIs
    There are far too few comments.  All cases in the state machine needs comments explaining what the state is for.
    I also don't remember all the requirements so there is likly funcitonal things I don't remember.  Like aren't controls supposed to be disabled when a car is going through the wash?
    Unofficial Forum Rules and Guidelines - Hooovahh - LabVIEW Overlord
    If 10 out of 10 experts in any field say something is bad, you should probably take their opinion seriously.

  • My Car Wash CLD Example

    Hello,
    I just completed the Car Wash CLD example using a modified producer/consumer with events pattern. I would like any feedback regarding the implementation.
    Thanks!
    Attachments:
    CarWash.zip ‏163 KB

    Hopefully this is still helpful. I would've reviewed last week but I just finished this example myself.
    I think you'd earn solid marks for coding style. Your code is clean, organized, and well-commented/documented.
    Unfortunately, I can't seem to get many of the functions to work as expected... the architecture is also pretty complicated. I noticed a few instances of elements being self-enqueued into the same state machine. This is a bit challenging to follow and (possibly?) debug.
    http://linkd.in/mikele

  • Car Wash Review

    Hi All - 
    I'm planning on taking the CLD in a week and a half or so. Would any of you mind reviewing my car wash practice exam? I posted some other practice exams in June, but I have changed my approach and would appreciate another review. 
    Thanks!
    Attachments:
    Car Wash - 11-21-2012.zip ‏239 KB

    Overall Very nicely designed I think you pretty much understand what you did right.  So accept my appologies in advance for nitpicking on the areas you can improve in the next week.
    BD Size.  Get them more compact! most are saved with way too much whitespace.  The difference is night and day about how much actual information the developer can fit on one screen white space just hides another pane that could present information
    Lets look at that same AE Again. a couple more edits are desirable.  See notes in snippet.
    Again nice work
    Jeff

  • Cant figure out what error in my car wash tunnels

    I made a vi to practice the car wash CLD sample question. And labview says there is missing assignment in every one of my 10 tunnels. But I checked, there is an enum array going into every one of 10 the tunnels. Where did the error come from? 
    I cant figure it out!   My tunnels look exactly like the one in the CLD sample answer attached.
    Solved!
    Go to Solution.
    Attachments:
    Car Wash LV86.zip ‏73 KB
    sunflower car wash 100.zip ‏44 KB

    Hi,
    Just move that Enum tunnel upward which you are indicating in RED arrow. You can find a unwired tunnel.Just delete that. Since it has been overlapped you are not able to see.
    Thats it.All your error will vanish.

  • Car washing machine

    Hello guys , 
    first i'm sorry for my bad english .. 
    second I'm very new in labview and i'm supposed to build a model for a car washing machine ,, i.e . a building where the car has to enter dirty and leave it clean ..
    i didn't start the project yet but i will be happy to hear ur ideas about what to include in my project .. 
    keep in mind that the project won't be that big , it is a model only .. 
    waiting patiently to hear ur ideas .. 
    and thx for your time

    Hi,
    This sounds like on of the examples of CLD exam.
    You can find more details about this on the following link https://lumen.ni.com/nicif/us/ekitcldexmprp/content.xhtml
    There is CLD Exam Sampels, and one of them is the Car Washing Software.
    Best regards,
    IR

Maybe you are looking for

  • Load an XML file into table(s)

    Hi , I have to load data from an xml file into an Oracle DB but I never used this king of process before. The purpose is to use as much as possible Oracle standard features ( stored procedures , functions , API's ). Can someone explain me in simple e

  • Can anyone help me decipher if I have a Keylogger in my Terminal description?

    Hello there - I followed some good sounding advice on the discussion board here: https://discussions.apple.com/thread/4243511  and have the list of output from my Terminal.  Does anyone mind looking below to see if there seems to be a keylogger in th

  • Validation error when submitting a form

    Hi, My first post so please don't come down on me like a ton of bricks if this is the wrong forum. I created a form in Adobe LiveCycle Designer 7,0,050519,0. Some users could not send the results back via the email button, but others did. That's okay

  • A pages doc wont open, says it's unsupported

    A pages doc that I open nearly every day will not open now. Message box says that it's not supported.  Pages app will open, and I can creat a new doc but the old one will not?

  • Synchronous RFC  scenario

    Hi, I am with a 2 part asyncronous scenario as shown below: JMS -> XI -> receiver RFC : Sender RFC -> XI -> JMS. In the above case, I am calling the sender RFM within the Receiver RFM. when i execute the scenario. The first part runs successfully . A