From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.
We appreciate your patience as we improve our online experience.
01-11-2015 09:26 PM
Hello All,
I am planning to take the CLD exam. Attached is the ATM sample exam. I went a little over 4hrs. This was my first attempt. I am sure if I try again I can do it a little faster.
Please let me know your thoughts on my code. Thanks!
01-12-2015 05:00 AM
Hi Jose, this is a very good effort.
Documentation: estimate 5-6/10
- main vi has default icon
- no proper documentation on top level of main vi
- no documentation in vi properties of main vi
- the type defs you created of the main controls (which was the right thing to do) have default icons
- subVIs have icons but lack documentation both on BD and in properties
Style: estimate 10-11/15
- non-standard subVI icons (make it a functional Header (e.g. File IO) + descriptive bottom Bit (e.g. update entry))
- no error handling, nothing ever gets done with the error
- don't use default values out of structures (case, event structures)
- some subVIs lack standard error in/out functionality
- unnecessary bends in wires
- backwards wires
functionality: estimate 15/15
- haven't tested it
depending on how good the functionality is it might give you a passing grade. I would have a look at the documentation and style points as at the moment you are throwing away some easy points.
01-12-2015 05:39 AM
another two points:
- use a project (won't get you any deductions but PLEASE use one!)
- front panel controls have documentation but lack a tip strip (that would take another point of documentation)
01-12-2015 10:01 AM
Jose,
This is a very good first attempt. I also didn't check your functionality either, but you probably know better than anyone how many points you would get in that category.
For documentation I am just going to reiterate Mathis. Tip strips on all of the Main VI FP objects and remember documentation for every VI in the project. Every time you open a VI press Ctrl+i and write what you are about to do.
As far as style goes (in addition to everything Mathis already said) I am not sure how they would grade you polling for front panel actions instead of using an event structure. I suppose if the VI reacts to FP events within the required time then it is okay but in the future you might want to think about using an event structure if you have a lot of FP objects to poll. Also make sure you use descriptive names for SubVI parameters (mostly the enum input for read/write).
01-18-2015 11:33 AM
Hello Mathis and Matt,
Thank you for the constructive comments. Just so that I did understand what you were referring to, I have updated the exam per your comments. Please review the documentation and style.
Yes, the VI does work and reacts to the given 10 sec.
I do have a few questions and comments.
Documentation: updated and done per suggestion. Please review.
Style:
- non-standard subVI icons (make it a functional Header (e.g. File IO) + descriptive bottom Bit (e.g. update entry))
--> Not sure what you mean?
- no error handling, nothing ever gets done with the error
--> I hope I took care of this.
- don't use default values out of structures (case, event structures)
--> Updated (added false instead of using default value). I did this for time saving. Also, just curious if we can't use the default values, then why are they there?
- unnecessary bends in wires
--> I tried to update as much unnecesary bends. Please let me know if there still are many.
- backwards wires
--> Not sure I saw any? May you point them out?
01-19-2015 03:56 AM
Hi Jose,
the error handling does still not clear the error, meaning the application will keep running with unexpected behaviour as everything with standard error in/out functionality will be skipped. I think the best would be to "or" the stop boolean from the case structure with the last error in the while loop. This way an error would shut down the application. Outside of the loop I would put the error handler.
Backwards wire e.g. in read write file.vi (also check out the results from vi analyser):
You also have wires going behind constants. E.g. Update user acct.vi
a standardised icon looks like this:
easily achieved by using lvlibs (more important though is to start using projects). During my CLD (I didn't use lvlibs) I quickly created the template (Header without bottom bit) and saved it as a template. This way I could just select it and write the bottom bit.
Hope this clarifies things
BR Mathis
01-19-2015 11:49 PM
Hello Mathis,
Okay, thank you for the input. Instead of updating the ATM 1-115, I decided to redo the test from the beginning and implement an "event structure".
I will start another thread with that one.
Thanks,
Jose