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.

Certification

cancel
Showing results for 
Search instead for 
Did you mean: 

CLD ATM Problem (1-11-15): How Did I Do?

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!

0 Kudos
Message 1 of 7
(6,062 Views)

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.

Message 2 of 7
(6,054 Views)

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)

Message 3 of 7
(6,051 Views)

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).

Matt J | National Instruments | CLA
Message 4 of 7
(6,043 Views)

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?

 

0 Kudos
Message 5 of 7
(6,012 Views)

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):

 

backwards wire.png

You also have wires going behind constants. E.g. Update user acct.vi

 

wire behind structure.png

 

a standardised icon looks like this:

 

standardised icon.png

 

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

Message 6 of 7
(6,003 Views)

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

0 Kudos
Message 7 of 7
(5,984 Views)