Bird
Raised Fist0
PLC Programmingscripting~5 mins

Count-up counter (CTU) behavior in PLC Programming

Choose your learning style10 modes available
Introduction

A count-up counter (CTU) helps keep track of how many times something happens. It adds one each time an event occurs.

Counting how many products pass on a conveyor belt.
Tracking how many times a button is pressed.
Measuring the number of cycles a machine completes.
Keeping score in a simple game.
Monitoring how many items are packed in a box.
Syntax
PLC Programming
CTU (Counter Up) instruction format:

CTU(counter_name, preset_value, current_count, CU_input)

Where:
- counter_name: Name of the counter
- preset_value: The target count to reach
- current_count: The current count value (increments)
- CU_input: The input signal that triggers counting (usually a rising edge)

The counter increases its count only when the CU_input changes from 0 to 1 (rising edge).

When current_count reaches preset_value, the counter's done bit is set.

Examples
This counts up to 10. Each time CU_input goes from 0 to 1, Counter1.ACC increases by 1.
PLC Programming
CTU(Counter1, 10, Counter1.ACC, CU_input)
Counts parts passing a sensor until 100 parts are counted.
PLC Programming
CTU(PartsCounter, 100, PartsCounter.ACC, SensorSignal)
Sample Program

This program simulates 7 pulses to the count-up counter with a preset of 5. The counter increments on each rising edge. After 5 counts, the done bit (Q) becomes TRUE.

PLC Programming
(* Simple CTU example in structured text *)
VAR
  CU_input : BOOL := FALSE; (* Input signal *)
  Counter1 : CTU; (* Counter instance *)
  i : INT;
END_VAR

(* Initialize counter preset to 5 *)
Counter1.PRE := 5;
Counter1.ACC := 0;

(* Simulate input pulses *)
FOR i := 1 TO 7 DO
  CU_input := TRUE; (* Rising edge *)
  Counter1(CU := CU_input);
  CU_input := FALSE; (* Falling edge *)
  Counter1(CU := CU_input);
END_FOR

(* Output the final count and done status *)
WriteLn(CONCAT('Final Count: ', INT_TO_STRING(Counter1.ACC)));
WriteLn(CONCAT('Done Bit: ', BOOL_TO_STRING(Counter1.Q)));
OutputSuccess
Important Notes

The counter stops counting once it reaches the preset value until reset.

Resetting the counter sets the count back to zero and clears the done bit.

Summary

A CTU counts up by one on each rising edge of its input.

It has a preset value to know when to stop counting.

The done bit signals when the count reaches the preset.

Practice

(1/5)
1. What does the done bit in a CTU (Count-Up Counter) indicate?
easy
A. The counter has reached its preset value
B. The counter is reset to zero
C. The counter is currently counting down
D. The counter input is inactive

Solution

  1. Step 1: Understand the done bit role

    The done bit is a signal that shows when the counter has reached its preset value.
  2. Step 2: Relate done bit to counting

    When the count equals the preset, the done bit turns ON to indicate completion.
  3. Final Answer:

    The counter has reached its preset value -> Option A
  4. Quick Check:

    Done bit = preset reached [OK]
Hint: Done bit means count reached preset value [OK]
Common Mistakes:
  • Confusing done bit with reset signal
  • Thinking done bit means counting down
  • Assuming done bit is always ON
2. Which of the following is the correct syntax to declare a CTU counter named C1 with a preset of 10 in a typical PLC program?
easy
A. CTU C1 PRE 10
B. CTU(C1, 10);
C. CTU C1, PRE:=10;
D. Counter CTU C1 = 10;

Solution

  1. Step 1: Identify correct CTU declaration syntax

    Typical PLC syntax uses the format: CTU counterName, PRE:=presetValue;
  2. Step 2: Match options to syntax

    CTU C1, PRE:=10; matches the correct syntax with CTU C1, PRE:=10;
  3. Final Answer:

    CTU C1, PRE:=10; -> Option C
  4. Quick Check:

    CTU declaration uses PRE:= preset [OK]
Hint: Look for PRE:= syntax in CTU declaration [OK]
Common Mistakes:
  • Using parentheses incorrectly
  • Missing PRE:= keyword
  • Using assignment '=' instead of ':='
3. Given a CTU counter with preset 5 and current count 3, what will be the count and done bit after two rising input pulses?
medium
A. Count = 3, Done bit = TRUE
B. Count = 4, Done bit = FALSE
C. Count = 5, Done bit = FALSE
D. Count = 5, Done bit = TRUE

Solution

  1. Step 1: Add two pulses to current count

    Starting at 3, two pulses increase count to 5 (3 + 2 = 5).
  2. Step 2: Check if count reached preset

    Count equals preset (5), so done bit becomes TRUE.
  3. Final Answer:

    Count = 5, Done bit = TRUE -> Option D
  4. Quick Check:

    Count + pulses = preset -> done bit TRUE [OK]
Hint: Add pulses to count, compare with preset [OK]
Common Mistakes:
  • Not updating count correctly
  • Confusing done bit state
  • Assuming done bit is TRUE before preset reached
4. A CTU counter is not setting the done bit even after the count reaches the preset. Which of the following is the most likely cause?
medium
A. The preset value is set higher than intended
B. The done bit is wired incorrectly in the program
C. The counter is counting down instead of up
D. The counter is not receiving rising edge pulses

Solution

  1. Step 1: Analyze why done bit is not set

    If count reaches preset but done bit stays off, wiring or logic for done bit is likely wrong.
  2. Step 2: Evaluate other options

    If pulses were missing or counting down, count wouldn't reach preset. Preset too high means count can't reach it.
  3. Final Answer:

    The done bit is wired incorrectly in the program -> Option B
  4. Quick Check:

    Done bit wiring error causes no done signal [OK]
Hint: Check done bit wiring if count reaches preset but no done [OK]
Common Mistakes:
  • Assuming pulses are missing without checking
  • Ignoring done bit wiring
  • Confusing counting direction with done bit issue
5. You have a CTU counter with preset 10. The input pulses come irregularly, sometimes multiple pulses at once. How should you modify the program to ensure the count never exceeds the preset and done bit is set correctly?
hard
A. Ignore extra pulses; CTU automatically limits count to preset
B. Use a separate timer to count pulses instead of CTU
C. Add logic to reset the counter when count exceeds preset
D. Increase the preset value to a higher number

Solution

  1. Step 1: Understand CTU behavior with irregular pulses

    CTU increments by 1 per rising edge and automatically limits the accumulator to the preset value, preventing overflow.
  2. Step 2: Verify done bit sets correctly

    No modification needed; done bit activates when accumulator reaches preset, even with irregular pulses.
  3. Final Answer:

    Ignore extra pulses; CTU automatically limits count to preset -> Option A
  4. Quick Check:

    CTU ACC ≤ PRE automatically, done sets [OK]
Hint: CTU automatically limits count to preset [OK]
Common Mistakes:
  • Assuming CTU allows count to exceed preset
  • Adding unnecessary reset logic for overflow
  • Using timer or increasing preset unnecessarily
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard