I went through the Labview Boiler CLD practice test and am looking for some feedback on my solution. Any help is greatly appreciated. I'm quite happy with how it turned out, but would be interested to see what other more experienced people have to say. This was programmed in Labview 2015.
I had gone through your VI. I had attached your code with some comments where you have to improve more.
Some General suggestions,
1) Functionality part of your VI was ticks good in all aspects, But I guess you know that you will get only 15 marks for the functionality.
2) Style part requires a lots of modifications:
All the best for your CLD exam, you have a great probability of clearing CLD test at ease, If you improve in the Style and Documentation section
Mohamed Tanveejul Arsath .P.S,
Certified LabVIEW Developer,
Project Engineer, HTIC-IITM
I plan to take up the CLD exam in 20 days time. I have completed the 4 sample applications. I would love to hear your feedback on the same.
Thank you for your time.
The Boiler exam looks good enough to me.
Haven't checked functionality, just style (ignoring my personal preferences).
A case with an enum should not have a default case if all cases are implemented. Not sure if it's checked, but it should because it's just wrong. You want a broken wire if you add an item to the enum.
The timer has a Boolean button with a wire going to the right. That might cost you some points (this might be checked automatically, so it's relentless).
I think controls\indicators inside structures is frowned upon. They should be outside if possible (although I don't agree per se). Again, this might be checked automatically.
Give the main an icon, or loose points.
Give all the VIs a description (incl. main), or loose points.
Some wire crossing (e.g. the Boolean from the timer to the case in "Pre-purge") can be avoided.
Some Boolean (NOT\AND) and math operations (Subtract\Add) can be merged into a Compound Arithmetic function (invert to subtract numerics or to invert Booleans). Might save some time, I don't think it will cost points on style.
You could save some valuable time by simply using the cluster constant to fill in the values. This in stead of putting a cluster constant, then an bundle by name, then creating and wiring constants to it. Simply untag the constant's "Show as Icon" or double click it, and fill in the values directly.
In short, minor things that are easy to fix! Perhaps not needed, but you should try to squeeze every point out of it.
Glad to find this thread. I'm taking the CLD in about 20 days. I have been working through the examples and figured I'd start posting my solutions for feedback. I did the ATM this morning before work. I'm actually not going to post that becuase I had a queing issue I got hung up on that ate up my time so I didn't finish.
Here is the generic timer I have been using for the example problems. It basically works off the following principle;
Total Time Passed=Elapsed Time +Paused Time
Paused Time=Total Time Passed-Elapsed Time
Elapsed Time=Total Time Passed-Paused Time
Remaining Time=Target Time-Elapsed Time.
I'm able to finish it in a couple minutes and it has worked for all the examples. I'll post an actual sollution for critique tomorrow morning when I do the Boiler(If I finish on time). For me it's the mind game. When I'm calm and clear I can do them in two hours or so but sometimes I just get hung up on something for too long.
Here is my solution for the CLD Boiler Practice Test in 2014
I was able to do this test in 3.5 hours. I was hoping to be a bit faster. I know I know no points for finishing early but it's not the first time i've done it so I figure the time should be much less than the actual test will be when I am less familiary with the requirements. Also due to time it's all auto cleanup so sorry if the wiring comes across janky.
I spent 26 minutes reviewing and summarizing the requirements.
Then built my timer FGV knowing I was going to need it.
Then I copy and pasted the Event Driven Producer Consumer template.
Made my que type def and then started implmementing states.
I did have one issue after I had finished the test.(so would have been a bug in a submission)Since I used my stop button in the producer to trigger a stop event, without registering for a user event.(seemed overkill for cld/more time expensive than I could afford) So I added a short timeout that checks for a local variable tied to the stop button to become true. I set this local to true after the shutdown case.
To use boiler
2)Turn on Boiler Reset and Run Interlock
3)Press Start Sequence
4)Click Pilot when it starts to blink
5)Move Flame Sensor Value to get "Boiler Ready'
6)Click Forced Draft Fan
7)Move Fule Control Valve dial to greater than 10%
8)To shutdown press either the Run Interlock again, Turn the Forced Draft Fan off or move the dial below 10 or above 75.
I would recommend leveraging a LabVIEW Project (.lvproj) file to organize your code. Once you do that, you can zip of the project contents and upload to the forums in a single file and it will make it easier for people to give you feedback.