Bird
Raised Fist0
PLC Programmingscripting~5 mins

Timer preset and accumulated values in PLC Programming - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Timer preset and accumulated values
O(n)
Understanding Time Complexity

We want to understand how the time it takes to run a timer program changes as we change the timer settings.

Specifically, how the preset and accumulated values affect the program's execution time.

Scenario Under Consideration

Analyze the time complexity of the following timer code snippet.

// Timer example
Timer T1;
T1.Preset = 1000;  // Set timer preset value
T1.Accum = 0;      // Reset accumulated time
while (T1.Accum < T1.Preset) {
  T1.Accum += 1;    // Increment accumulated time
}
// Timer done when Accum reaches Preset

This code simulates a timer counting up until it reaches the preset value.

Identify Repeating Operations

Look at what repeats in the code.

  • Primary operation: Incrementing the accumulated value inside the loop.
  • How many times: The loop runs until accumulated equals preset, so it repeats as many times as the preset value.
How Execution Grows With Input

The time to finish grows directly with the preset value.

Input Size (Preset)Approx. Operations (Loop Iterations)
1010
100100
10001000

Pattern observation: If you double the preset, the loop runs twice as long.

Final Time Complexity

Time Complexity: O(n)

This means the time to complete grows linearly with the preset value.

Common Mistake

[X] Wrong: "The timer runs in constant time no matter the preset."

[OK] Correct: The loop runs once for each unit up to the preset, so bigger presets take more time.

Interview Connect

Understanding how timers work and how their settings affect program time helps you write efficient control programs and explain your logic clearly.

Self-Check

"What if the timer increments by 2 each loop instead of 1? How would the time complexity change?"

Practice

(1/5)
1. What does the preset value of a timer represent in PLC programming?
easy
A. The number of times the timer has been reset
B. The current time counted by the timer
C. The total time the timer should count before activating
D. The delay before the timer starts counting

Solution

  1. Step 1: Understand timer preset meaning

    The preset value is the target time set for the timer to reach before it triggers.
  2. Step 2: Differentiate from accumulated value

    The accumulated value shows elapsed time, not the target time.
  3. Final Answer:

    The total time the timer should count before activating -> Option C
  4. Quick Check:

    Preset = target time [OK]
Hint: Preset is the goal time, accumulated is progress [OK]
Common Mistakes:
  • Confusing preset with accumulated value
  • Thinking preset changes during timing
  • Assuming preset is a delay before start
2. Which of the following is the correct way to set a timer's preset value to 5000 milliseconds in a typical PLC timer instruction?
easy
A. TIMER.PRESET = 5000
B. TIMER.ACC = 5000
C. TIMER.SET = 5000
D. TIMER.TIME = 5000

Solution

  1. Step 1: Identify correct property for preset

    In PLC timers, the preset value is usually set with the property named 'PRESET'.
  2. Step 2: Check other options

    'ACC' is for accumulated time, 'SET' and 'TIME' are not standard properties for preset.
  3. Final Answer:

    TIMER.PRESET = 5000 -> Option A
  4. Quick Check:

    Preset set with .PRESET property [OK]
Hint: Preset uses .PRESET, accumulated uses .ACC [OK]
Common Mistakes:
  • Using .ACC to set preset
  • Using non-standard property names
  • Confusing preset with timer start command
3. Given the following timer status after running:
TIMER.PRESET = 10000
TIMER.ACC = 7500
What is the timer's current state?
medium
A. Timer has finished counting and is done
B. Timer is paused at 7500 milliseconds
C. Timer is reset and not started
D. Timer is still counting and not done

Solution

  1. Step 1: Compare accumulated and preset values

    The accumulated value (7500) is less than the preset (10000), so the timer has not reached its target.
  2. Step 2: Determine timer state

    Since accumulated is less than preset, the timer is still counting and not done.
  3. Final Answer:

    Timer is still counting and not done -> Option D
  4. Quick Check:

    ACC < PRESET means timer running [OK]
Hint: If ACC < PRESET, timer is running [OK]
Common Mistakes:
  • Assuming timer is done when ACC < PRESET
  • Confusing paused with running
  • Thinking reset means ACC is non-zero
4. A timer's accumulated value never increases even though the timer is enabled. Which is the most likely cause?
medium
A. The preset value is set to zero
B. The timer is not enabled or triggered properly
C. The accumulated value is manually reset continuously
D. The timer's accumulated value is greater than preset

Solution

  1. Step 1: Understand timer behavior when enabled

    The accumulated value increases only when the timer is enabled and counting.
  2. Step 2: Analyze causes for no increase

    If the timer is not enabled or triggered, the accumulated value stays the same.
  3. Final Answer:

    The timer is not enabled or triggered properly -> Option B
  4. Quick Check:

    Timer must be enabled to accumulate time [OK]
Hint: Timer must be enabled to increase ACC [OK]
Common Mistakes:
  • Assuming preset zero stops accumulation
  • Ignoring timer enable condition
  • Thinking ACC resets automatically
5. You want a process to run exactly 15 seconds after a start signal. Which timer setup ensures the process starts only after 15 seconds have fully elapsed?
hard
A. Set TIMER.PRESET = 15000 and start process when TIMER.ACC >= TIMER.PRESET
B. Set TIMER.PRESET = 15000 and start process immediately when timer starts
C. Set TIMER.PRESET = 15000 and start process when TIMER.ACC = 0
D. Set TIMER.PRESET = 15000 and start process when TIMER.ACC < TIMER.PRESET

Solution

  1. Step 1: Understand timing requirement

    The process must start only after 15 seconds have fully passed.
  2. Step 2: Use timer values to control start

    Starting the process when accumulated time is equal or greater than preset ensures 15 seconds elapsed.
  3. Final Answer:

    Set TIMER.PRESET = 15000 and start process when TIMER.ACC >= TIMER.PRESET -> Option A
  4. Quick Check:

    Start after ACC >= PRESET for exact delay [OK]
Hint: Start process only when ACC reaches preset [OK]
Common Mistakes:
  • Starting process immediately on timer start
  • Starting before accumulated time reaches preset
  • Using ACC = 0 as start condition
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