Jump to content
joshxdr

Please help review my CLD practice exam

Recommended Posts

Over all it looks good. Make sure you add descriptions and tip strip documentation to all of the front panel controls on your main vi. You don't need to write a paragraph for each one, just a quick sentence or two.

Add some labels on your wires on the block diagram, at least for the main wires. Add a few more diagram labes here and there, clean up a few wire bends, and eliminate the coercion dot on the Car Wash Indicator tunnel. None of that should take too long and will help boost your score.

Good luck, and tell us how it went.

  • Like 1

Share this post


Link to post
Share on other sites

Overall it looks pretty good. As Eric mentioned you definitely want to add more documentation. I would also look pay attention to the alignment of your controls and indicators on your front panels. Also some of the controls and indicators on your subVI were not completely visible on the front panel. You should avoid using the "Use default value if unwired" on the terminals of structures. Avoid wires that flow backwards. I am not sure if NI cares or not but I noticed when I opened a few of the block diagrams for some of your subVIs the code was not center or fully visible. I had to scroll the block diagram. I would avoid doing this too.

Good luck with your exam.

  • Like 1

Share this post


Link to post
Share on other sites

I took a look at your Car Wash and agree with the other posters (Mark and Eric) that overall it looks pretty good. A few thoughts, though.

First, I think you'd get dinged for using globals - there's nothing you're doing with the global that can't be done with a wire and I think that's the criteria that would apply. If you really want a global functionality, use a LV2 (functional) global as that's what the exam guidelines state.

Second, I think it's best practice to always initialize shift registers unless they are specifically intended to maintain state between calls. I don't know if the exam graders would ding you for this (since there are no functional problems) but I have found that sooner or later uninitialized shift registers (unless they're intentional) will get in some sort of state that will cause you headaches.

Third, there's no description for front panel controls

Fourth - the intializations for the globals (your constants) are arrays that aren't type def'd - I agree that arrays are useful for allowing the code to adapt to changes, but the assignment of sensors to wash steps should be an array of the CW_States enum.ctl type def (this type def already exists) - then the constant would be self documenting. The wash purchase options is also a little cryptic. I would think an array of type def'd clusters (each cluster contains a labeled boolean for each wash state selected) would be much easier to read on the BD.

Fifth - the output of the Out_of_Position.vi is labled Boolean - that's not descriptive enough and you'd definitely get dinged for that.

I know this is nit-picky, but I think these are the kinds of nits the graders will pick!

Good Luck,

Mark

  • Like 2

Share this post


Link to post
Share on other sites

I haven't taken the CLD so I don't know what the requirements are, but the logic in your Update_LEDs is quirky. For example, why use two index array nodes in sequence to extract a single element, instead of just wiring both indices to the index array function? Also, to find the first true boolean in an array, consider using Search 1D Array instead of a for loop. Finally it seems to me you could avoid rewriting the boolean array twice in the two for loops (one inside a case structure, the other outside).

  • Like 1

Share this post


Link to post
Share on other sites

Interestingly (or not as the case may be). The NI "text book" answer you can download has absolutely no documentation (no descriptions of the controls, tip-strips etc). Perhaps NI should practice what they preach.

I think it would be nice if all you guys out there that have done these exams could write a few words outlining the task given to you in your exams (i'm sure its not a car wash EVERY exam). This would give those about to take thier exams a broader view of the type and scope of tasks to expect rather than one poultry example! Maybe a separate thread?

Share this post


Link to post
Share on other sites

... all you guys out there that have done these exams could write a few words outlining the task given to you in your exams ...

nono.gif I believe CLD test-takers sign a non-disclosure agreement before taking the test. Sharing test details could get someone in trouble.

Share this post


Link to post
Share on other sites
nono.gif I believe CLD test-takers sign a non-disclosure agreement before taking the test. Sharing test details could get someone in trouble.

Yep - don't post the details of your exams here.

Yep - don't post the details of your exams here.

PS: PaulG: that avatar freaks me out man! wacko.gif

Share this post


Link to post
Share on other sites

Interestingly (or not as the case may be). The NI "text book" answer you can download has absolutely no documentation (no descriptions of the controls, tip-strips etc). Perhaps NI should practice what they preach.

I think it would be nice if all you guys out there that have done these exams could write a few words outlining the task given to you in your exams (i'm sure its not a car wash EVERY exam). This would give those about to take thier exams a broader view of the type and scope of tasks to expect rather than one poultry example! Maybe a separate thread?

There are actually 3 examples posted, but none of the sample solutions are very good IMHO. There is the car wash, security system, and traffic light.

They are all rather poultry...or did you mean paltry ;)

I actually thought the difficulty level of the sample exams was pretty close to the real thing, but the real test had a lot more requirements so it was harder to finish in the allotted time.

Share this post


Link to post
Share on other sites

Thanks Mark and Ned. I took the Security System example exam today. I read the question wrong and had to do a major rewrite, so by the time I finished, I had taken 5 1/2 hours. It will definitely be challenging to finish within four hours. I need to learn how to use the quick drop menu to get more speed.

Share this post


Link to post
Share on other sites

Thanks Mark and Ned. I took the Security System example exam today. I read the question wrong and had to do a major rewrite, so by the time I finished, I had taken 5 1/2 hours. It will definitely be challenging to finish within four hours. I need to learn how to use the quick drop menu to get more speed.

Time management is a must when you are taking the test. The four hours they give you fly by. When you take the exam you have to make sure you are always making some progress otherwise you will probably run out of time. Take a few minutes in the beginning to form your strategy and basic design of the application and then start coding. You will not have time to do things over during the exam.

Good luck.

Share this post


Link to post
Share on other sites

The scoring for the exam is based on 40 points, 15 for style, 15 for Functionality, and 10 for Documentation. Divide your time up accordingly. Our natural instinct as programmers is to focus on Functionality, which in the case of this exam might hurt you.

Documentation is really quite easy and shouldn't take more than a few minutes, so don't miss out on those points. In addition to my previous suggestions, also add descriptions to all your sub-vis. Do this as you create the sub-vis, much eaiser than than trying to go back at the end of the test and add it.

For Style, graders are looking for things like unnecessary wire bends, coersion dots, overlapping objects, unused code, stuff like that.

My biggest loss of points was due to the fact I didn't handle errors. I'd planned implement an error handing routine at the end, and I ran out of time. If I'd added it from the start I'd probably have gotten a better score.

But most of all, just relax. It's really not that hard. thumbup1.gif

Share this post


Link to post
Share on other sites

There are actually 3 examples posted, but none of the sample solutions are very good IMHO. There is the car wash, security system, and traffic light.

I've just seen them. It stikes me that the traffic light one is a lot harder (conceptually) than the others. I'd guess that the others would take me about 1 hr from scratch, but the traffic light one I'd probably have to think for an hour first!:book:

They are all rather poultry...or did you mean paltry ;)

The latter. I'm a bit hard-of-thinking :P

I actually thought the difficulty level of the sample exams was pretty close to the real thing, but the real test had a lot more requirements so it was harder to finish in the allotted time.

More cosmetic requirements? Or more to test your specmanship?

Share this post


Link to post
Share on other sites

I've just seen them. It stikes me that the traffic light one is a lot harder (conceptually) than the others. I'd guess that the others would take me about 1 hr from scratch, but the traffic light one I'd probably have to think for an hour first!:book:

More cosmetic requirements? Or more to test your specmanship?

I actually found the security system to be the most difficult of the sample exams. It took me a while to understand exactly what they wanted.

As for the real exam, I just found that the program I was given to write required a lot more functionality than any of the sample exams. Creating the UI layout wasn't difficult because you get a picture to work from, but my event structure and state machine on the real exam had many more events and states than were necessary to complete the sample exams.

Share this post


Link to post
Share on other sites

I just checked the example answer provided by NI for the Security System question. Strangely, the log file it produces does not match the spec in the question, and doesn't even record anything useful. This answer seems to have been posted on the NI webpage since 2007... I wonder if the example answers were actually graded? If this is the standard for passing the test, my confidence is way up!

Personally, I found the difficulty of the examples to be Car Wash > Security System > Traffic Light. The traffic light just seemed simper, there are far fewer interactions. For example, what the car wash does depends on the current step, the wash selected, the sensor status, and the next step. I also wasted time trying to get built in Time Elapsed vi to do something useful. I ended up building my own that worked.

Another comment about the example answers. There are often switches which are intended to be hardware inputs. In theory, these hardware states are totally out of the control of the software you are writing, you are just reading the sensor/switch/whatever. Yet, in every example answer, these switch states are reset at initialization, as though you can magically move cars off the street when the program starts!

Share this post


Link to post
Share on other sites

In the traffic light example, I noticed there are coercion dots on the traffic light cluster when setting the states of red, yellow, green. Since the clusters are coming from the same type def, I don't understand why the dots are there. Is this a correctable condition or just a feature that won't be dinged if encountered during the test?

Thanks,

Ron

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

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