Bird
Raised Fist0
PLC Programmingscripting~5 mins

Count-up counter (CTU) behavior in PLC Programming - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Count-up counter (CTU) behavior
O(n)
Understanding Time Complexity

We want to understand how the time it takes to run a count-up counter changes as the input grows.

Specifically, how does the counter's operation time grow when counting more events?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

// Simple count-up counter (CTU) example
VAR
  CounterValue : INT := 0;
  InputSignal : BOOL;
END_VAR

IF InputSignal THEN
  CounterValue := CounterValue + 1;
END_IF

This code increases the counter by one each time the input signal is true.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Checking the input signal and incrementing the counter.
  • How many times: Once per scan cycle or input event.
How Execution Grows With Input

Each time the input signal is true, the counter increases by one with a simple addition.

Input Size (n)Approx. Operations
1010 increments
100100 increments
10001000 increments

Pattern observation: The number of operations grows directly with the number of input events.

Final Time Complexity

Time Complexity: O(n)

This means the time to process grows in a straight line with the number of input signals received.

Common Mistake

[X] Wrong: "The counter increments instantly no matter how many inputs come in."

[OK] Correct: Each increment takes a small step, so more inputs mean more increments and more time.

Interview Connect

Understanding how simple counters scale helps you explain how automation systems handle repeated signals efficiently.

Self-Check

"What if the counter resets after reaching a limit? How would that affect the time complexity?"

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