📖 Scenario: You are programming a simple machine counter that can count up or down based on user input. This counter will help track the number of items processed in a factory line.
🎯 Goal: Build a PLC program that initializes a counter, sets a limit, increments or decrements the counter based on input signals, and displays the current count.
📋 What You'll Learn
Create a counter variable initialized to zero
Create a maximum count limit variable
Use input signals to increase or decrease the counter
Ensure the counter does not go below zero or above the maximum limit
Display the current counter value
💡 Why This Matters
🌍 Real World
Up-down counters are used in factories to track production counts, inventory levels, or machine cycles.
💼 Career
Understanding counters is essential for automation technicians and engineers who program PLCs to control industrial processes.
Progress0 / 4 steps
1
Initialize the counter variable
Create an integer variable called counter and set it to 0.
PLC Programming
Hint
Use the assignment operator := to set the value.
2
Set the maximum count limit
Create an integer variable called max_limit and set it to 10.
PLC Programming
Hint
This variable will limit how high the counter can go.
3
Implement the up-down counting logic
Write code that increases counter by 1 if up_signal is true and decreases counter by 1 if down_signal is true. Make sure counter never goes below 0 or above max_limit. Assume up_signal and down_signal are boolean inputs.
PLC Programming
Hint
Use an IF statement to check signals and update counter safely.
4
Display the current counter value
Write a statement to output the current value of counter to the display or console using print().
PLC Programming
Hint
Use print() to show the counter value. The output should look like Current count: 0.
Practice
(1/5)
1. What is the primary function of an up-down counter in PLC programming?
easy
A. It resets the PLC program automatically.
B. It only counts upwards and never decreases.
C. It counts events by increasing or decreasing a value based on inputs.
D. It controls the speed of a motor.
Solution
Step 1: Understand the role of an up-down counter
An up-down counter changes its count value by either increasing or decreasing based on input signals.
Step 2: Compare options with the definition
Only It counts events by increasing or decreasing a value based on inputs. correctly describes counting up or down. Options B, C, and D describe unrelated functions.
Final Answer:
It counts events by increasing or decreasing a value based on inputs. -> Option C
Quick Check:
Up-down counter counts up or down = A [OK]
Hint: Remember: up-down counters change count both ways [OK]
Common Mistakes:
Thinking it only counts up
Confusing counter with reset function
Assuming it controls hardware speed
2. Which of the following is the correct way to represent an up-down counter in a PLC ladder logic diagram?
easy
A. A timer with inputs labeled T1 and T2.
B. A simple relay coil with no inputs.
C. A motor control block with start and stop inputs.
D. A counter with inputs labeled CU (count up), CD (count down), and R (reset).
Solution
Step 1: Identify typical up-down counter inputs
Up-down counters use CU for counting up, CD for counting down, and R for reset.
Step 2: Match inputs to options
Only A counter with inputs labeled CU (count up), CD (count down), and R (reset). correctly lists these inputs. Others describe unrelated components.
Final Answer:
A counter with inputs labeled CU (count up), CD (count down), and R (reset). -> Option D
Quick Check:
CU, CD, R inputs = B [OK]
Hint: Look for CU, CD, and R inputs to spot up-down counters [OK]
Common Mistakes:
Confusing counters with timers
Ignoring reset input
Choosing unrelated control blocks
3. Given the following PLC code snippet for an up-down counter:
CU = 1 (pulse) CD = 0 R = 0 Initial count = 3 Limit = 5
What will be the count value after this pulse?
medium
A. 4
B. 3
C. 2
D. 5
Solution
Step 1: Analyze input signals
CU=1 means count up by 1, CD=0 means no count down, R=0 means no reset.
Step 2: Calculate new count
Starting from 3, counting up by 1 results in 4, which is below the limit 5.
Final Answer:
4 -> Option A
Quick Check:
Count up from 3 by 1 = 4 [OK]
Hint: Count up adds 1; count down subtracts 1 [OK]
Common Mistakes:
Counting down instead of up
Resetting count incorrectly
Ignoring initial count
4. Identify the error in this up-down counter logic snippet:
CU = 0 CD = 1 (pulse) R = 1 (pulse) Initial count = 2 Limit = 5
What is wrong with this setup?
medium
A. Reset (R) is active while counting down, causing unexpected behavior.
B. Count up (CU) is missing, so counter won't work.
C. Limit is too high for the initial count.
D. Count down (CD) should be zero to reset properly.
Solution
Step 1: Check input signals
R=1 means reset is active, which overrides counting inputs.
Step 2: Understand effect of reset during count down
Reset active while CD=1 causes the counter to reset instead of counting down, leading to unexpected results.
Final Answer:
Reset (R) is active while counting down, causing unexpected behavior. -> Option A
Quick Check:
Reset active during count down causes errors = A [OK]
Hint: Reset should be inactive when counting up or down [OK]
Common Mistakes:
Activating reset and count inputs simultaneously
Assuming missing CU disables counter
Misunderstanding limit role
5. You want to design an up-down counter that counts from 0 to 10 and resets automatically when it reaches 10. Which logic should you implement?
hard
A. Use a timer instead of a counter to track counts.
B. Use CU input to count up, CD input to count down, and a compare block to reset when count = 10.
C. Use CU input to count up without reset; manually reset when needed.
D. Use only CD input to count down and reset at 0.
Solution
Step 1: Define counting and reset conditions
The counter must count up and down between 0 and 10, resetting automatically at 10.
Step 2: Choose correct inputs and logic
CU counts up, CD counts down, and a compare block triggers reset when count reaches 10.
Final Answer:
Use CU input to count up, CD input to count down, and a compare block to reset when count = 10. -> Option B
Quick Check:
Count up/down with auto reset at limit = D [OK]
Hint: Combine count inputs with compare for auto reset [OK]
Common Mistakes:
Using only count down input
Forgetting automatic reset
Confusing timer with counter
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.