Work in Progress: Assessment of Automation Labs to Facilitate Continuous Improvement

Page created by Jacob Smith
 
CONTINUE READING
Work in Progress: Assessment of Automation Labs to Facilitate Continuous Improvement
Paper ID #33012

Work in Progress: Assessment of Automation Labs to Facilitate Continuous
Improvement
Mr. Bradley Lane Kicklighter, University of Southern Indiana
     Brad holds a BS in Electrical Engineering from Rose-Hulman Institute of Technology (1989) and an MS
     in Electrical and Computer Engineering from Purdue University (2001).
     His past work experience includes eleven years at Delphi (formerly Delco Electronics) as an Advanced
     Project Engineer, eleven years at Whirlpool Corporation as a Lead Engineer/Solution Architect, and three
     years at Ivy Tech Community College as an Instructor/Program Chair of Pre-Engineering. Since 2015,
     he has been employed at the University of Southern Indiana as an Assistant Professor of Manufacturing
     Engineering Technology.
     He holds three patents, has served as an IEEE section officer since 2004, and has been a Licensed Profes-
     sional Engineer in the State of Indiana since 2005.

                              c American Society for Engineering Education, 2021
Work in Progress: Assessment of Automation Labs to Facilitate Continuous Improvement
Work in Progress: Assessment of Automation Labs to Facilitate Continuous
                                  Improvement
Abstract
With the implementation of new equipment and laboratory activities in an automation course, it
is desired to assess the effectiveness of the equipment and labs so that improvements may be
made. This paper covers the assessment methods used and the results to date.
New Programmable Logic Controller (PLC) trainers have been introduced in SCADA
(Supervisory Control and Data Acquisition) Systems Design. The labs for this course have either
been modified or new ones created to work with the new equipment. To objectively assess the
effectiveness of the equipment and laboratory activities, pre- and post-lab surveys are
administered to the students. Students are surveyed about their understanding of the various
objectives of the labs. The survey results, along with direct assessment data in the form of lab
scores, are used to identify areas of improvement for the equipment and the labs.

Introduction
In the fall of 2020, a new PLC trainer was introduced to SCADA Systems Design, which
required several labs to be modified or replaced with new ones. Surveys administered to the
students and lab scores were used to assess the effectiveness of the equipment and the labs [1],
[2]. The objectives of the labs formed the basis of the survey questions. The survey results are
used to identify areas of improvement.

Course
ENGR 382 SCADA (Supervisory Control and Data Acquisition) Systems Design is an upper-
division course taught to students in the Engineering Department as an elective or required
course, depending upon the program. The following are the course learning outcomes:
   1.      Understand common Industrial Automation concepts, methods, and control
           algorithms.
   2.      Understand sensors and actuators used in Industrial Automation tasks.
   3.      Design Piping & Instrumentation Diagrams (P&IDs) for simple process systems.
   4.      Measure process variables in response to process parameters and analyze the resulting
           process behavior.
   5.      Understand Programmable Logic Controller (PLC) components, signal interface
           methods, and applications.
   6.      Design and write PLC control programs. Recognize other control program language
           formats defined in the IEC 61131-3 standard.
   7.      Design and program suitable Human Machine Interface systems.
   8.      Understand common industrial networking topologies, protocols, and hardware.
Work in Progress: Assessment of Automation Labs to Facilitate Continuous Improvement
Course learning outcomes one, five, and six are related to PLC programming.
The course has the following laboratory activities:
   •   Lab 1: Automation Device Specifications
   •   Lab 2: CLICK Programming Software Introduction
   •   Lab 3: Basic Ladder Logic Programming
   •   Lab 4: Sequential Programming and Looping
   •   Lab 5: Car Lot Management System
   •   Lab 6: Stop Lights
   •   Lab 7: LabVIEW
   •   Lab 8: Analog I/O
   •   Lab 9: Analog Calculator
   •   Lab 10: Reaction Timer
   •   Lab 11: Process Trainer Closed-Loop Control
   •   Lab 12: Process Control System Design
Seven of twelve laboratory activities use the new PLC Trainer (Lab 1, Lab 2, Lab 7, Lab 11, and
Lab 12 do not). See the Appendix for the labs referenced by this paper.

PLC Trainer
The PLC trainer (see Figure 1) used for this course is based around an AutomationDirect CLICK
PLC, a 16-point discrete input module, and 8-point relay output module [3]. There are six lighted
momentary pushbuttons, two potentiometers (connected to analog inputs), and a voltmeter
(connected to an analog output).

Figure 1: CLICK PLC Trainer
Work in Progress: Assessment of Automation Labs to Facilitate Continuous Improvement
Methods
Blackboard is the learning management system used by our university. The surveys used for this
assessment were administered in Blackboard. For each lab being assessed, a pre-lab survey is
administered to the students. Completing the survey makes the lab available using adaptive
release in Blackboard. Submitting the lab assignment to Blackboard makes the post-lab survey
available. The surveys consist of Likert Scale questions about the objectives of the lab and a
place for students to make comments about the lab. Note that for a given lab, the pre- and post-
lab survey questions are the same.
Since the surveys are Blackboard surveys, this means that they are anonymous. Thus, the pre-
and post-lab survey cannot be paired. Since the data are non-parametric (see Shapiro-Wilk
Normality Test results in the appendix) and that the pre- and post-lab data cannot be paired, the
Wilcoxon Ranked Sum Test is used to test differences between the pre- and post-lab data to a
95% confidence level [4], [5]. Box plots for each lab are prepared.
R is used for the Schapiro-Wilk Normality Test and for the Wilcoxon Ranked Sum Test.
Microsoft® Excel® is used to prepare the box plots.
The Likert Scale results are mapped to numeric scores per Table 1.
 Result                           Score
 Strongly Agree                        2
 Agree                                 1
 Neither Agree nor Disagree            0
 Disagree                             -1
 Strongly Disagree                    -2
Table 1: Likert Scale Result to Score Mapping
The hypothesis is that the post-lab survey values are greater than the pre-lab survey values.

Results and Discussion
For each lab, the survey questions are presented, box plots of the data by question, box plots for
the combined question data, a table of the Wilcoxon Ranked Sum Test results, and the comments
entered by students. Note that comments were not asked for until Lab 5.
A discussion of results follows each lab’s results.
Following the survey data is direct assessment data in the form of scores on the labs. For a direct
assessment item, success is defined as the average student performance being greater than 70%.
The labs assessed indirectly and directly are Lab 3 to Lab 6 and Lab 8 to Lab 10. The other labs
in the course did not involve the new PLC trainer.
The normality test results are found in the Appendix.
The number of responses per survey question are found in the Appendix.
Work in Progress: Assessment of Automation Labs to Facilitate Continuous Improvement
The data is from fall 2020 and the number of students enrolled in the class was sixteen.

Lab 3
Questions:
Q1: I feel confident in using the CLICK Programming Software to create simple ladder logic
programs.
Q2: I understand how logic gates as implemented in ladder logic work.
Q3: I am able to translate a Boolean expression into a ladder logic program.
Q4: I understand what a seal in and a seal breaker are.
Figure 2 shows the box plots of pre- and post-lab survey questions and Figure 3 shows the box
plots of the combined pre- and post-lab data.

Figure 2: Lab 3 Box Plots for Q1 to Q4 Pre- and Post-Lab Survey Results
Work in Progress: Assessment of Automation Labs to Facilitate Continuous Improvement
Figure 3: Lab 3 Box Plots for Combined Pre- and Post-Lab Survey Results
Table 2 lists the Wilcoxon Ranked Sum Test p-values.
 Q1                  < .001
 Q2                  < .001
 Q3                  < .001
 Q4                  < .001
 Combined            < .001
Table 2: Lab 3 Wilcoxon Ranked Sum Test p-values
Comments were not asked for in either the Pre-Lab or Post-Lab surveys.
While the p-values indicate that it is likely that post-lab scores are higher than the pre-lab ones,
box plots for question 4 (I understand what a seal in and a seal breaker are) indicate that the pre-
and post-lab survey scores are not statistically different.
Work in Progress: Assessment of Automation Labs to Facilitate Continuous Improvement
Lab 4
Questions
Q1: I understand how to initialize variables in a ladder logic program.
Q2: I understand how to use an on-delay timer in a ladder logic program.
Q3: I understand how to create a sequential ladder logic program to automate a set of steps.
Q4: I understand how to create a sequential ladder logic program that loops.
Figure 4 shows the box plots of pre- and post-lab survey questions and Figure 5 shows the box
plots of the combined pre- and post-lab data.

Figure 4: Lab 4 Box Plots for Q1 to Q4 Pre- and Post-Lab Survey Results

Figure 5: Lab 4 Box Plots for Combined Pre- and Post-Lab Survey Results
Work in Progress: Assessment of Automation Labs to Facilitate Continuous Improvement
Table 3 lists the Wilcoxon Ranked Sum Test p-values.
 Q1                  < .001
 Q2                  < .001
 Q3                  < .001
 Q4                  < .001
 Combined            < .001
Table 3: Lab 4 Wilcoxon Ranked Sum Test p-values
Comments were not asked for in either the Pre-Lab or Post-Lab surveys.
Both the p-values and the box plots indicate that it is likely that post-lab scores are higher than
the pre-lab ones.
Work in Progress: Assessment of Automation Labs to Facilitate Continuous Improvement
Lab 5
Questions
Q1: I understand how to use counters in a ladder logic program.
Q2: I understand how to use n copy instructions in a ladder logic program.
Q3: I understand how to use basic math instructions in a ladder logic program.
Q4: I understand how to use comparison instructions in a ladder logic program.
Figure 6 shows the box plots of pre- and post-lab survey questions and Figure 7 shows the box
plots of the combined pre- and post-lab data.

Figure 6: Lab 5 Box Plots for Q1 to Q4 Pre- and Post-Lab Survey Results

Figure 7: Lab 5 Box Plots for Combined Pre- and Post-Lab Survey Results
Work in Progress: Assessment of Automation Labs to Facilitate Continuous Improvement
Table 4 lists the Wilcoxon Ranked Sum Test p-values.
 Q1                  < .001
 Q2                  < .001
 Q3                  < .001
 Q4                  < .001
 Combined            < .001
Table 4: Lab 5 Wilcoxon Ranked Sum Test p-values
Pre-Lab Survey Comments:
   •   Satisfied with the lab process.
Post-Lab Survey Comments:
   •   I can build the system and apply these techniques, but I'm not sure they will 100% work
       the way intended.
   •   Challenging Lab but helpful
Both the p-values and the box plots indicate that it is likely that post-lab scores are higher than
the pre-lab ones.
Lab 6
Questions
Q1: I understand how to design a ladder logic program from a set of requirements.
Q2: I understand how to create a ladder logic program using advanced sequential programming
techniques.
Figure 8 shows the box plots of pre- and post-lab survey questions and Figure 9 shows the box
plots of the combined pre- and post-lab data.

Figure 8: Lab 6 Box Plots for Q1 to Q2 Pre- and Post-Lab Survey Results

Figure 9: Lab 6 Box Plots for Combined Pre- and Post-Lab Survey Results
Table 5 lists the Wilcoxon Ranked Sum Test p-values.
 Q1                  .0263
 Q2                  .0031
 Combined            .0064
Table 5: Lab 6 Wilcoxon Ranked Sum Test p-values
Pre-Lab Survey Comments:
   •   Have read the Advanced Sequential Programming and gained a better understanding.
Post-Lab Survey Comments:
   •   Good Lab
   •   I enjoy trying to figure these labs out. I usually try nontraditional approaches since all of
       this is new to me, but once I get a push in the right direction it usually makes sense.
While the p-values indicate that it is likely that post-lab scores are higher than the pre-lab ones,
box plots for question 1 (I understand how to design a ladder logic program from a set of
requirements) indicate that the pre- and post-lab survey scores are not statistically different.
Lab 8
Questions
Q1: I understand how to set up analog inputs and outputs on a PLC.
Q2: I understand how to use analog inputs and outputs in a ladder logic program.
Q3: I understand how to use floating-point values in a ladder logic program.
Q4: I understand how to translate requirements into a ladder logic program.
Figure 10 shows the box plots of pre- and post-lab survey questions and Figure 11 shows the box
plots of the combined pre- and post-lab data.

Figure 10: Lab 8 Box Plots for Q1 to Q4 Pre- and Post-Lab Survey Results

Figure 11: Lab 8 Box Plots for Combined Pre- and Post-Lab Survey Results
Table 6 lists the Wilcoxon Ranked Sum Test p-values.
 Q1                  < .001
 Q2                  < .001
 Q3                  < .001
 Q4                   .0013
 Combined            < .001
Table 6: Lab 8 Wilcoxon Ranked Sum Test p-values
Pre-Lab Survey Comments:
   •   Expecting to improve these skills during lab.
Post-Lab Survey Comments:
   •   This lab has increased my knowledge and experience in PLC ladder logic programming.
Both the p-values and the box plots indicate that it is likely that post-lab scores are higher than
the pre-lab ones.
Lab 9
Questions
Q1: I understand how to use subroutines in a ladder logic program.
Figure 12 shows the box plots of pre- and post-lab survey question. Since this lab only has one
survey question, there are no combined data box plots.

Figure 12: Lab 9 Box Plots for Q1 Pre- and Post-Lab Survey Results
Table 7 lists the Wilcoxon Ranked Sum Test p-value.
 Q1                  < .001
Table 7: Lab 9 Wilcoxon Ranked Sum Test p-value
Pre-Lab Survey Comments:
   •    Expecting to expand experience on using subroutines in a ladder logic program.
Post-Lab Survey Comments:
   •    I enjoyed this lab. I'm not sure what about it made me enjoy it more than others, but it
        was a fun lab and I didn't ever feel lost like I have with a few of the other labs.
   •    I have a much better understanding of the use of subroutines and their advantages.
Both the p-value and the box plots indicate that it is likely that post-lab scores are higher than the
pre-lab ones.
Lab 10
Questions
Q1: I understand how to use edge contacts in a ladder logic program.
Q2: I understand how to generate pseudo-random numbers.
Figure 13 shows the box plots of pre- and post-lab survey questions and Figure 14 shows the box
plots of the combined pre- and post-lab data.

Figure 13: Lab 10 Box Plots for Q1 to Q2 Pre- and Post-Lab Survey Results

Figure 14: Lab 10 Box Plots for Combined Pre- and Post-Lab Survey Results
Table 8 lists the Wilcoxon Ranked Sum Test p-values.
 Q1                  < .001
 Q2                  < .001
 Combined            < .001
Table 8: Lab 10 Wilcoxon Ranked Sum Test p-values
Pre-Lab Survey Comments:
   •   I expect to learn more about edge contacts and pseudo random numbers.
Post-Lab Survey Comments:
   •   Had a lot of trouble with this lab, not sure how to do the MOD or input a rising edge
       contact. Also had trouble with the internal time clock and using that within the logic
       program.
   •   Good lab
   •   I'm slowly getting better at this! I talked to my advisor Dr. McDonald about the
       possibility of a SCADA 2 class, as these topics really interest me.
Both the p-values and the box plots indicate that it is likely that post-lab scores are higher than
the pre-lab ones.

Direct Assessment – Lab Scores
Box plots of lab scores are shown in Figure 15 and score averages by lab are show in Table 9.
The number of points possible for each lab is fifteen and n = 16 for each lab.

Figure 15: Box Plots of Lab Scores
Lab            3        4      5               6         8         9         10
 Average      94.9% 85.1% 93.3%               97.5%     95.2%     96.1%      93.1%
Table 9: Averages of Lab Scores
Since the average on every lab is greater than 70%, the success criterion is satisfied for each lab
and this data does not suggest the need for any improvements in the labs.

Conclusions
Based on the p-values, box plots, and lab score averages, most of the labs do not appear to
require changes to improve effectiveness.
Lab 3
The survey box plots for Lab 3 would indicate that improvements need to be made. The material
used to teach the concepts of “seal in” and “seal breaker” need to be improved by adding a step-
by-step example of how the seal in and seal breaker work.
Lab 6
The survey box plots for Lab 6 would indicate that improvements need to be made. The example
used to show how to design a ladder logic program from a set of requirements needs to be
improved by expanding the document to illustrate how elements of the written requirements
correspond to ladder logic structures.
Lab 10
From the comments, one student had trouble with the modulus operator and edge contacts in Lab
10. The description of the modulus operator in the lab document needs an example added and the
lecture material on edge contacts needs an illustration to show signal behavior over time.
Surveys
As far as methods go, the surveys need to be changed away from anonymous ones so that pre-
and post-lab survey data may be paired. This would also allow pairing with direct assessment
data.

Acknowledgements
I thank Dr. Tom McDonald for providing invaluable advice on statistical analysis for this paper.
References
[1] C. Habibi and D Fieschko, “PLC Training in a First-year Electrical Engineering Program,” in
2020 ASEE Virtual Annual Conference, June 22, 2020 [Online]. Available:
https://peer.asee.org/35060. [Accessed: 10 Oct. 2020]
[2] B. Smyser, “Voice of the Students: Continuous Lab Course Improvement Using Student
Feedback,” in 2018 ASEE Annual Conference & Exposition, June 23, 2018 [Online]. Available:
https://strategy.asee.org/31228. [Accessed: 10 Oct. 2020]
[3] “CLICK Series Programmable Controllers,” AutomationDirect. [Online]. Available:
https://www.automationdirect.com/adc/overview/catalog/programmable_controllers/click_series
_plcs. [Accessed: 28 Feb. 2021].
[4] “Unpaired Two-Samples Wilcoxon Test in R,” STHDA. [Online]. Available:
http://www.sthda.com/english/wiki/unpaired-two-samples-wilcoxon-test-in-r. [Accessed: 25 Jan.
2021]
[5] D. Levine, D. Stephan, and K. Szabat, Statistics for Managers Using Microft® Excel, 7th Ed.
Upper Saddle River, NJ: Pearson, 2014, pp. 448-452.
Appendix
The Appendix contains a summary of survey response numbers, the test results for the Shapiro-
Wilk Normality tests of the survey data, and the labs referenced by this paper in their entirety.

Summary of Survey Response Numbers
Table 10 provides a summary of the number of responses each question on each survey received.
There were 16 students in the class.
 Lab    Survey       Q1       Q2       Q3      Q4
        Pre           16      16        16     16
 3
        Post          16      16        16     16
        Pre           16      16        16     16
 4
        Post          14      14        14     14
        Pre           15      16        16     16
 5
        Post          15      15        15     15
        Pre           16      16
 6
        Post          15      15
        Pre           16      16        16     16
 8
        Post          15      15        15     15
        Pre           16
 9
        Post          14
        Pre           16      16
 10
        Post          15      15
Table 10: Number Survey Responses Received by Question
Shapiro-Wilk Normality Test Results
Table 11 lists p-values for the test for normality of the data using the Shapiro-Wilk Normality
Test for the survey data.
 Lab    Survey         Q1        Q2         Q3        Q4 Combined
        Pre         .0715     .0202     < .001     .0434    < .001
 3
        Post       < .001 < .001        < .001     .0049    < .001
        Pre         .0356     .0362      .0316     .0271    < .001
 4
        Post       < .001 < .001         .0021     .0093    < .001
        Pre         .2465     .2547      .0408     .0520    < .001
 5
        Post       < .001 < .001        < .001    < .001    < .001
        Pre         .0415     .0898                          .0012
 6
        Post       < .001 < .001                            < .001
        Pre         .2547     .2547      .0024     .2679    < .001
 8
        Post        .0035 < .001        < .001     .0014    < .001
        Pre         .0749                                    .0749
 9
        Post       < .001                                   < .001
        Pre         .0996     .0141                          .0016
 10
        Post       < .001 < .001                            < .001
Table 11: Normality Test p-values
Labs
The labs referenced in this paper are provided below in their entirety (three to six and eight to
ten).

Lab 3: Basic Ladder Logic Programming
Name:
Date:
Objectives
1.      Demonstrate the ability to create simple ladder logic programs.
2.      Demonstrate understanding of how logic gates are implemented in ladder logic.
3.      Translate a Boolean expression into rungs in a ladder logic program.
4.      Demonstrate understanding of the seal in and the seal breaker.
References
Ch. 21 Introduction to Programmable Controllers
Ch. 22 Fundamental PLC Programming
CLICK Programming Software – Getting Started
AutomationDirect C0-USER-M User Manual
AutomationDirect CLICK Programming Software Help File
Equipment
CLICK PLC Trainer
Programming Cable
PC with CLICK Programming Software
Thumb Drive or Cloud Storage
Procedure
For each part below, create a new project. Name your project files as “Lab3-.ckp”. For
Part 1, the project name will be “Lab3-1.ckp”.
Create a PDF (print to PDF) of each ladder logic program named “Lab3-.pdf”. For Part 1,
the PDF name will be “Lab3-1.pdf”.
For Parts 1, 2, and the Bonus, use the nicknames defined in Table 1. The nicknames for Part 3
are defined in that section.
Address Nickname
 X101        A
 X103        B
 X105        C
 Y201        Out1
 Y202        Out2
 Y203        Out3
 Y204        Out4
 Y205        Out5
Table 1: Nicknames
For the truth tables, use the values 0 and 1, where 0 indicates the output is off and 1 indicates that
it is on.
Part 1 – Logic Gates
As we learned in the lecture, digital logic gates can be implemented in ladder logic. You will
create a ladder logic program with rungs that implement NOT, OR, NOR, AND, and NAND and
then fill in the truth table for each of logic gates.
Create the ladder logic program shown in Figure 1. Use the nicknames defined previously and
create rung comments as shown in Figure 1.

Figure 1: Logic Gates in Ladder Logic
Write your project to the PLC, test all input conditions, and fill in the truth tables (Tables 2 to 6).
A Out1
 0
 1
Table 2: NOT Truth Table
 A B Out2
 0 0
 0 1
 1 0
 1 1
Table 3: OR Truth Table
 A B Out3
 0 0
 0 1
 1 0
 1 1
Table 4: NOR Truth Table
 A B Out4
 0 0
 0 1
 1 0
 1 1
Table 5: AND Truth Table
 A B Out5
 0 0
 0 1
 1 0
 1 1
Table 6: NAND Truth Table
Part 2 – OR/AND Combinations
Create a ladder logic program with two rungs. The first rung must implement the Boolean
expression:
Out1 = A OR (B AND C)
The parentheses indicate the precedence of the operations. In the first rung, B and C must be
ANDed together and then the result is ORed with A.
The second rung must implement the Boolean expression:
Out2 = A AND (B OR C)
Use the Boolean expressions as the rung comments in the program.
Write your project to the PLC, test all input conditions, and fill in the truth tables (Tables 7 to 8).
 A B C Out1
 0 0 0
 0 0 1
 0 1 0
 0 1 1
 1 0 0
 1 0 1
 1 1 0
 1 1 1
Table 7: Rung 1 Truth Table
 A B C Out2
 0 0 0
 0 0 1
 0 1 0
 0 1 1
 1 0 0
 1 0 1
 1 1 0
 1 1 1
Table 8: Rung 2 Truth Table
Part 3 – Start/Stop Logic
For this program, use the nicknames in Table 9.
 Address Nickname
 X105       Start
 X102       Stop
 Y206       Motor
Table 9: Nicknames
Identify the input/output devices being used in the program. For the pushbuttons, identify the
color and if it is normally open (NO) or normally closed (NC). For the LED, identify the color.
Complete Table 10 with this information.
 Nickname Input/Output
              Device
 Start
 Stop
 Motor
Table 10: Input/Output Devices
Create the ladder logic program shown in Figure 2. Use the nicknames defined in Table 9 and
create the rung comment as shown in Figure 2. Verify program operation to start and stop the
motor.
Figure 2: Motor Start/Stop Program
Identify the following program elements: seal in and seal breaker. Complete Table 11 with the
nicknames.
 Program Element Nickname
 Seal In
 Seal Breaker
Table 11: Program Elements
Deliverables
Submit the following to Blackboard under the appropriate lab assignment:
   •    Edited lab document.
   •    Project and PDF files for all parts of the lab.

Lab 4: Sequential Programming and Looping
Name:
Date:
Objectives
   1.   Create a ladder logic program with initialization of a variable.
   2.   Create a ladder logic program using an on-delay timer.
   3.   Create a sequential ladder logic program to automate a set of steps.
   4.   Create sequential ladder logic program that loops.
References
Sequential Programming and Looping
CLICK Programming Software – Getting Started
AutomationDirect C0-USER-M User Manual
AutomationDirect CLICK Programming Software Help File
Equipment
CLICK PLC Trainer
Programming Cable
PC with CLICK Programming Software
Thumb Drive or Cloud Storage
Procedure
For each part below, create a new project. Name your project files as “Lab4-.ckp”. For
Part 1, the project name will be “Lab4-1.ckp”.
Create a PDF (Microsoft Print to PDF) of each ladder logic program named “Lab4-.pdf”.
For Part 1, the PDF name will be “Lab4-1.pdf”. Use the “letter” size and “landscape” orientation.
Each rung of the program must have a descriptive comment to document its behavior.
Demonstrate each of your programs to your instructor.
Answer the questions for each part in this document.
Part 1 – Sequential Program
Create nicknames for the following:
 Address Tag
 X105       Start
 X102       Stop
 Y201       Step1
 Y202       Step2
 Y203       Step3
 Y204       Step4
 Y205       Step5
 Y206       Step6
 T1         Step1Done
 T2         Step2Done
 T3         Step3Done
 T4         Step4Done
 T5         Step5Done
 T6         Step6Done
 C1         Done
 DS1        Timeout
Table 1: Nicknames
Create a sequential program with six steps and a done state.
Each step must last for 1.5 seconds.
Setpoints for all timers must be set to the Timeout data register.
Initialize Timeout upon first scan of the ladder logic program (see system coil relay SC2).
Use the On-Delay timer to provide the timing of each step (one timer for each step).
The completion of the timer for a step must cause the next step to start. The completion of the
timer represents an event that signals that a particular step has completed.
Only one step may run at a time.
Go to the Done state after Step 6 is done.
The Start button must start Step 1 going.
The Stop button must stop any and all steps from going (including the Done state).
Download your program to the PLC and monitor it.
Demonstrate your program to the instructor.
Q1: What time base did you use for your timers?
A1:
Q2: What value did you use for Timeout?
A2:
Q3: Why would you want the ability to stop a PLC program?
A3:
Part 2 – Looping
Make a copy of your Part 1 project file and rename it for Part 2.
Modify the program so it will loop. That is, when Step 6 completes, Step 1 must start again.
The Done state is not needed.
Only one step may run at a time.
The Start button must start Step 1 going.
The Stop button must stop any and all steps from going.
Download your program to the PLC and monitor it.
Demonstrate your program to the instructor.
Q4: What did you have to do to the program for Part 2 to make it loop?
A4:
Q5: Why would you want a ladder logic program to loop?
A5:
Deliverables
Submit the following to Blackboard under the appropriate lab assignment:
      •    A text or Word document with the title “Lab 4”, your name, and the answers to the
           questions (A1 to A5).
      •    Project and PDF files for all parts of the lab.

Lab 5: Car Lot Management System
Name:
Date:
Objectives
      1.   Create a ladder logic program using counters.
      2.   Create a ladder logic program using copy instructions.
      3.   Create ladder logic program using basic math instructions.
      4.   Create a ladder logic program using comparison instructions.
References
CLICK Programming Software – Getting Started
AutomationDirect C0-USER-M User Manual
AutomationDirect CLICK Programming Software Help File
Equipment
CLICK PLC Trainer
Programming Cable
PC with CLICK Programming Software
Thumb Drive or Cloud Storage
Procedure
Create a new project named “Lab5.ckp”.
Review and analyze the requirements for a control system that manages a car lot.
Design the control system.
Create and test the control system.
Each rung of the program must have a descriptive comment to document its behavior.
Demonstrate your program to your instructor.
Create a PDF (Microsoft Print to PDF) of the ladder logic program named “Lab5.pdf”.
Problem Statement
You are to design and implement a system to manage a car lot of a given size. Pushbuttons will
be used to indicate when a car enters or leaves the lot. The system will keep track of information
about the current state of the lot. The system must be designed based on the requirements given
below.
Requirements
Provide the following control relays (internal bits): lot full and lot empty.
Provide the following data registers: number of cars, number of (empty) spaces, total number of
cars, and lot size.
The car lot has a size of 10 cars. This variable should be initialized upon the first scan of the
program.
Provide the following pushbuttons: car enters lot, car leaves lot, and reset counters.
Provide a lamp to indicate when the lot is full.
Start with the lot empty (initialized upon first scan of the program).
Use a counter to keep track of the number of cars on the lot. Set point = 0.
Use a counter to keep track of the total number of cars that have been in the lot since the last
reset. Set point = 0.
Use copy instructions to copy the number of cars and the total number of cars from the counters
into data registers.
If the lot becomes full, prevent more cars from entering the lot (the current value of the counter
must not go above the lot size).
Prevent the current number of cars on the lot to go below zero (number of spaces must not go
above lot size).
Design
Complete Table 1 with the addresses that will be used by your program. Add rows as needed.
The counters do not need nicknames.
Address Nickname Description
            Inputs

                Outputs

     Control Relays (Internal Bits)

             Data Registers

               Counters

Table 1: Memory Usage
Deliverables
Submit the following to Blackboard under the appropriate lab assignment:
     •   A Word document with the title “Lab 5”, your name, and Table 1.
     •   Project and PDF files your ladder logic program.

Lab 6: Stop Lights
Name:
Date:
Objectives
1.       Design a ladder logic program from a set of requirements.
2.       Create a ladder logic program using advanced sequential programming techniques.
References
Sequential Programming and Looping
Advanced Sequential Programming
CLICK Programming Software – Getting Started
AutomationDirect C0-USER-M User Manual
AutomationDirect CLICK Programming Software Help File
Equipment
CLICK PLC Trainer
Programming Cable
PC with CLICK Programming Software
Thumb Drive or Cloud Storage
Procedure
Create a new project named “Lab6.ckp”.
Review and analyze the requirements for a control system that operates a stop light.
Design the control system.
Create and test the control system.
Each rung of the program must have a descriptive comment to document its behavior.
Demonstrate your program to your instructor.
Create a PDF (Microsoft Print to PDF) of the ladder logic program named “Lab6.pdf”. Use the
“letter” size and “landscape” orientation.
Problem Statement
You are to create a system that controls stop lights at an intersection. One set of lights controls
traffic going North/South and the other set controls traffic going East/West. Table 1 shows the
sequence for the lights where each row represents two seconds.
  N/S       E/W
 Green      Red
 Green      Red
 Green      Red
 Yellow     Red
  Red       Red
  Red      Green
  Red      Green
  Red      Green
  Red     Yellow
  Red       Red
Table 1: Sequence for the North/South and East/West Stop Lights
Since we will be using the CLICK PLC Trainer, the East/West lights will be the blue, orange,
and white LEDs where: Red = Blue, Yellow = Orange, and Green = White.
Requirements
Select normally open push buttons to start and stop the system.
All six LEDs will be used for the stop lights as described in the Problem Statement.
Apply the advanced sequential programming techniques to create a system that implements the
sequence in Table 1 that, once started, loops until stopped.
The number of steps must be minimized and therefore the number of timer set points is also
minimized. Hint: This can be done with only six steps and three set point times.
Pressing the Start button must start the sequence at the top of Table 1.
Pressing the Stop button must stop all steps from running.
Timer set points must be initialized upon the first scan of the program.
Design
Complete Table 2 with the addresses that will be used by your program. Add rows as needed.
 Address Nickname Description
            Inputs

                Outputs

   Control Relays (Internal Bits)

             Data Registers

                 Timers

Table 2: Memory Usage
It is suggested that the LED outputs be named the same as their color. The timers must have
nicknames.
Deliverables
Submit the following to Blackboard under the appropriate lab assignment:
   •     A Word document with the title “Lab 6”, your name, and Table 2.
   •     Project and PDF files for your ladder logic program.

Lab 8: Analog I/O
Name:
Date:
Objectives
   1.    Set up analog inputs and outputs on a PLC.
   2.    Use analog inputs and outputs in a ladder logic program.
   3.    Use floating-point data values in a ladder logic program.
   4.    Translate requirements into a ladder logic program.
References
CLICK Programming Software – Getting Started
AutomationDirect C0-USER-M User Manual
AutomationDirect CLICK Programming Software Help File
Equipment
CLICK PLC Trainer
Programming Cable
PC with CLICK Programming Software
Thumb Drive or Cloud Storage
Procedure
Create a new project named “Lab8.ckp”.
Review and analyze the requirements for the program.
Design the program.
Create and test the program.
Each rung of the program must have a descriptive comment to document its behavior.
Demonstrate your program to your instructor.
Create a PDF (Microsoft Print to PDF) of the ladder logic program named “Lab8.pdf”. Use the
“letter” size and “portrait” orientation.
Setting Up Analog I/O
To set up analog inputs and outputs on the PLC, go to Setup -> CPU Built-in I/O Setup. On the
Input tab, you can set the scaled range values for the analog inputs as well as see the floating-
point data registers assigned to the inputs. On the Output tab, you can set the scaled range values
for the analog outputs as well as see the floating-point data registers assigned to the outputs.
Problem Statement
You are to write a ladder logic program that uses analog inputs and an analog output. The analog
inputs will be compared to thresholds to determine when LEDs should be on. The analog output
will be driven by one of the analog inputs. One of the analog inputs will be monitored for an
error condition.
Table 1 lists the inputs and outputs.
Device Signal Name      Nickname                            Notes
 POT1                    Sensor 1  Nickname applies to the floating-point register for the
                                   input
 POT2                    Sensor 2  Nickname applies to the floating-point register for the
                                   input
 V_METER                 Driver 1  Nickname applies to the floating-point register for the
                                   output
 WHT_NO                  Reset
 RED_LED                 High LED
 YEL_LED                 Med LED
 GRN_LED                 Low LED
Table 1: System Inputs and Outputs
Requirements
All constants must be stored in data registers that are initialized upon the first scan of the
program.
Unless otherwise specified, all addresses must have nicknames assigned to them.
The white normally open push button is the only one that is required.
The Low, Medium, and High conditions must be stored in control relays (internal bits).
Sensor 1/Driver 1
Set up the Sensor 1 analog input for values from 0.0 to 100.0.
Set up the Driver 1 analog output for values from 0.0 to 100.0.
Copy the value for Sensor 1 to Driver 1 (POT1 will determine the value for V_METER).
The Medium condition must be true if the Sensor 1 value is between 45.0 and 55.0.
The yellow LED must be on if the Medium condition is true.
Sensor 2
Set up the Sensor 2 analog input for values from 0.0 to 100.0.
The Low condition must be true if the Sensor 2 value is less than 25.0.
The High condition must be true of the Sensor 2 value is greater than 75.0.
The green LED must be on if the Low condition is true.
Each time the High condition becomes true, the High condition count must be incremented.
Sensor 2 is considered in error if the High condition count is 5 or greater.
The red LED must be on if the High condition is true and Sensor 2 does not have an error.
If Sensor 2 is considered in error, then the red LED must blink at a one second rate.
Hint: SC7 (_1sec_Clock) is a system control relay that goes on/off at a one second rate.
Pressing the Reset push button must reset the High condition count.
Design
Complete Table 2 with the addresses and nicknames that will be used by your program. Add
rows as needed.
 Address       Nickname Description
            Digital/Analog Inputs

           Digital/Analog Outputs

        Control Relays (Internal Bits)

 Integer/Floating Point Data Registers

          Counters/Current Values

Table 2: Memory Usage
The analog inputs and output do not need nicknames, but their associated data registers do. Both
the counter and its current value need nicknames.
Deliverables
Submit the following to Blackboard under the appropriate lab assignment:
   •     A Word document with the title “Lab 8”, your name, and Table 2.
   •     Project and PDF files for your ladder logic program.

Lab 9: Analog Calculator
Name:
Date:
Objectives
   1. Use subroutines in a ladder logic program.
References
CLICK Programming Software – Getting Started
AutomationDirect C0-USER-M User Manual
AutomationDirect CLICK Programming Software Help File
Equipment
CLICK PLC Trainer
Programming Cable
PC with CLICK Programming Software
Thumb Drive or Cloud Storage
Procedure
Create a new project named “Lab9.ckp”.
Review and analyze the requirements for the program.
Design the program.
Create and test the program.
Each rung of the program must have a descriptive comment to document its behavior.
Demonstrate your program to your instructor. Note: It is recommended that you create a Data
View with all variables used in your program so that they may be easily monitored.
Create a PDF (Microsoft Print to PDF) of the ladder logic program named “Lab9.pdf”. Use the
“letter” size and “portrait” orientation.
Problem Statement
You are to write a ladder logic program that uses subroutines to perform math functions
(addition, subtraction, multiplication, division) on two numbers read from analog inputs and
output the result to an analog output. Pressing a button copies the current values of the analog
inputs into data registers so that the values of the two numbers can be checked to determine
which math functions are permitted. A pushbutton is assigned to each math function and the
LEDs in the pushbuttons indicate which math functions are permitted. Pressing a pushbutton will
clear the values of the numbers and result.
Analog I/O Setup
The analog inputs are AD3 (POT1) and AD4 (POT2). The analog output is DA2 (V_METER).
Use the default values of 0.0 to 100.0 for the analog inputs and outputs.
Requirements
All constants used by the program, except for the value 0, must be stored in data registers.
Unless otherwise specified, all addresses must have nicknames assigned to them.
Floating-point data registers for Num1, Num2, and Result must be used for the math operations.
Table 1 lists the inputs and outputs.
Device Signal Name        Nickname                                 Notes
 POT1                      Num1 In           Nickname applies to the floating-point register for the
                                             input
 POT2                      Num2 In           Nickname applies to the floating-point register for the
                                             input
 V_METER                   Result Out        Nickname applies to the floating-point register for the
                                             output
 Normally open            Push
 pushbuttons of your      Add
 choice                   Subtract
                          Multiply
                          Divide
                          Clear
 LEDs for the Add,        Add Ok
 Subtract, Multiply,      Subtract Ok
 Divide pushbuttons       Multiply Ok
                          Divide Ok
Table 1: System Inputs and Outputs
Seven subroutines are required for the program. The main program will consist of rungs that call
the subroutines. The calling conditions and behavior are described below.
Initialize
Calling Conditions: First scan of program.
Behavior: Copy constants into data registers.
Clear
Calling Conditions: First scan of program or Clear pushbutton is pressed.
Behavior: Set Num1, Num2, and Result to 0.0.
Push
Calling Conditions: Push pushbutton is pressed.
Behavior: Copy Num1 In to Num1, copy Num2 In to Num2, and determine which math
operations are permitted (see Table 2).
 Math Operation       Permissible Conditions
 Addition             Num1 ≤ 50.0 and Num2 ≤ 50.0
 Subtraction          Num1 ≥ Num2
 Multiplication       Num1 ≤ 10.0 and Num2 ≤ 10.0
 Division             Num2 ≠ 0.0
Table 2: Permissible Conditions for Math Operations
The LED is on for each math operation pushbutton that is permissible based on the conditions in
Table 1.
Add
Calling Conditions: Add pushbutton is pressed and addition is permissible.
Behavior: Num1 and Num2 are added together and sum is written to Result. Result is copied to
analog output Result Out.
Subtract
Calling Conditions: Subtract pushbutton is pressed and subtraction is permissible.
Behavior: Num2 is subtracted from Num1 and difference is written to Result. Result is copied to
analog output Result Out.
Multiply
Calling Conditions: Multiply button is pressed and multiplication is permissible.
Behavior: Num1 and Num2 are multiplied together and product is written to Result. Result is
copied to analog output Result Out.
Divide
Calling Conditions: Divide button is pressed and division is permissible.
Behavior: Num2 is divided into Num1 and quotient is written to Result. Result is copied to
analog output Result Out.
Design
Complete Table 3 with the addresses and nicknames that will be used by your program. Add
rows as needed. Remove categories that are not needed.
 Address      Nickname Description
           Digital/Analog Inputs

           Digital/Analog Outputs

       Control Relays (Internal Bits)

 Integer/Floating Point Data Registers

Table 3: Memory Usage
The analog inputs and output do not need nicknames, but their associated data registers do.
Deliverables
Submit the following to Blackboard under the appropriate lab assignment:
   •     A Word document with the title “Lab 9”, your name, and Table 3.
   •     Project and PDF files for your ladder logic program.
Lab 10: Reaction Timer
Name:
Date:
Objectives
   1. Use edge contacts in a ladder logic program.
   2. Generate a pseudo-random number.
References
CLICK Programming Software – Getting Started
AutomationDirect C0-USER-M User Manual
AutomationDirect CLICK Programming Software Help File
Equipment
CLICK PLC Trainer
Programming Cable
PC with CLICK Programming Software
Thumb Drive or Cloud Storage
Procedure
Create a new project named “Lab10.ckp”.
Review and analyze the requirements for the program.
Design the program.
Create and test the program.
Each rung of the program must have a descriptive comment to document its behavior.
Demonstrate your program to your instructor. Note: It is recommended that you create a Data
View with all variables used in your program so that they may be easily monitored.
Create a PDF (Microsoft Print to PDF) of the ladder logic program named “Lab10.pdf”. Use the
“letter” size and “landscape” orientation.
Random Number Generator
There are numerous methods of generating random numbers. Some techniques give true random
number sequences (usually based on a physical phenomenon) while others are pseudo-random
number sequences.
If you need random integers from 0 to 9, the system clock can be used as a source. The least
significant digit of the current number of seconds on the system clock can be isolated by
performing “seconds modulo 10”.
See Real-Time Clock and Modulo below.
Real-Time Clock
The CLICK PLC has a real-time clock that keeps track of the current date and time. The system
data registers in Table 1 provide access to the time.
 Address System Nickname Notes
 SD24      _RTC_Hour           0 to 23
 SD25      _RTC_Minute         0 to 59
 SD26      _RTC_Second         0 to 59
Table 1: CLICK System Data Registers for Real-Time Clock Current Time
See CLICK Software Manual (CLICK Help) for the system data registers for the date.
Modulo
The modulo finds the remainder of an integer division operation. This remainder is sometimes
called the modulus. The modulo operator is frequently abbreviated as mod. MOD is one of the
math operators available in the Math instruction.
Edge Contacts
There are two different edge contacts available: Rising Edge and Falling Edge. An edge contact
will be on (true) for one scan time when the bit addressed by contact has a rising or falling edge.
These contacts are referred to as one-shot instructions by some other PLCs.
Use an edge contact if you want some task to happen once when a bit changes value.
The Rising Edge contact is on (true) when the bit addressed by the contact goes from off (false)
to on (true). The contact stays on (true) for one scan time.
The Falling Edge contact is on (true) when the bit addressed by the contact goes from on (true) to
off (false). The contact stays on (true) for one scan time.
Problem Statement
You are to design a reaction timer where the system will light an LED a random amount of time
after the start button is pressed and it will determine how long it takes for the stop button to be
pressed after the LED lights up (the reaction time). If the stop button is not pressed within 5
seconds, the reaction timer stops.
Requirements
All constants used by the program must be stored in data registers and they must be initialized in
a subroutine.
Unless otherwise specified, all addresses must have nicknames assigned to them.
The required inputs are normally open Start and Stop pushbuttons. It is your choice which
pushbuttons to use.
The required output is an LED. It is your choice which LED to use.
There are three states that the system progresses through: Prep, Wait, and Go. When entering a
state, the previous state must end. Use sequential programming techniques to create the states.
Use control relays (internal bits) to represent the states.
Prep State
Pressing the Start pushbutton causes the Prep state to be entered. Upon first entering the Prep
state, the random wait time must be determined. You must use an edge contact to trigger the
math instruction to determine the wait time.
Wait State
Being in the Prep state causes the Wait state to be entered. While in the Wait state, the wait timer
must be running.
Go State
When the wait timer times out, the Go state must be entered. While in the Go state, the reaction
timer must be running, the LED must be on, and the current reaction timer value must be copied
to a data register (reaction time). The reaction timer must have a time base of 1 millisecond and
must have a 5 second setpoint. Pressing the stop button or reaching the reaction timer setpoint
must cause the Go state to be exited.
Design
Complete Table 2 with the addresses and nicknames that will be used by your program. Add
rows as needed. Remove categories that are not needed.
 Address       Nickname Description
               Digital Inputs

              Digital Outputs

     Control Relays (Internal Bits)

           Integer Data Registers

                  Timers

Table 2: Memory Usage
Deliverables
Submit the following to Blackboard under the appropriate lab assignment:
   •   A Word document with the title “Lab 10”, your name, and Table 2.
   •   Project and PDF files for your ladder logic program.
You can also read