Bird
Raised Fist0
PLC Programmingscripting~5 mins

Internal relay (memory bit) addressing in PLC Programming - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Internal relay (memory bit) addressing
O(n)
Understanding Time Complexity

When using internal relays (memory bits) in PLC programming, it's important to understand how the program's execution time changes as you use more bits.

We want to see how the number of memory bits accessed affects the time the PLC takes to run the program.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


// Example: Setting multiple internal relays
FOR i := 0 TO n-1 DO
  M[i] := TRUE; // Set internal relay bit
END_FOR
    

This code sets a series of internal relay bits from 0 up to n-1 to TRUE one by one.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Setting each internal relay bit (M[i]) inside the loop.
  • How many times: The loop runs n times, once for each bit.
How Execution Grows With Input

As the number of bits n increases, the program sets more bits one after another.

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

Pattern observation: The number of operations grows directly with n; doubling n doubles the work.

Final Time Complexity

Time Complexity: O(n)

This means the time to set internal relay bits grows linearly with the number of bits you set.

Common Mistake

[X] Wrong: "Setting multiple internal relays at once takes the same time as setting one."

[OK] Correct: Each bit set requires an operation, so more bits mean more time, not the same time.

Interview Connect

Understanding how loops over memory bits affect execution time helps you write efficient PLC programs and explain your reasoning clearly in interviews.

Self-Check

What if we replaced the loop with a single command that sets all bits at once? How would the time complexity change?

Practice

(1/5)
1. What is the main purpose of an internal relay (memory bit) in PLC programming?
easy
A. To store ON/OFF states inside the PLC without controlling physical devices
B. To directly control motors and actuators
C. To provide power to sensors
D. To display output on the PLC screen

Solution

  1. Step 1: Understand internal relay function

    Internal relays store ON/OFF states inside the PLC memory but do not control physical devices.
  2. Step 2: Compare options

    Only To store ON/OFF states inside the PLC without controlling physical devices correctly describes this purpose; others mention controlling devices or power, which is incorrect.
  3. Final Answer:

    To store ON/OFF states inside the PLC without controlling physical devices -> Option A
  4. Quick Check:

    Internal relay = memory bit for logic [OK]
Hint: Internal relays remember states, not control devices [OK]
Common Mistakes:
  • Confusing internal relays with output devices
  • Thinking internal relays supply power
  • Assuming internal relays display information
2. Which of the following is the correct syntax to address an internal relay (memory bit) named M10 in a PLC program?
easy
A. D10
B. X10
C. Y10
D. M10

Solution

  1. Step 1: Identify internal relay address format

    Internal relays are commonly addressed with the letter 'M' followed by a number, e.g., M10.
  2. Step 2: Match options to address format

    M10 uses 'M10', which is correct. Other options use letters for inputs (X), outputs (Y), or data registers (D).
  3. Final Answer:

    M10 -> Option D
  4. Quick Check:

    Internal relay = M + number [OK]
Hint: Internal relays start with 'M' in address [OK]
Common Mistakes:
  • Using input (X) or output (Y) addresses for internal relays
  • Confusing data registers (D) with memory bits
  • Omitting the letter prefix
3. Given the following ladder logic snippet, what is the state of internal relay M5 after the rung executes?
--[ ]--[ ]--(M5)\n   I1   I2

Inputs: I1 = ON, I2 = OFF
medium
A. ON
B. OFF
C. Toggle
D. Undefined

Solution

  1. Step 1: Analyze input conditions

    The rung has two contacts in series: I1 and I2. I1 is ON, I2 is OFF.
  2. Step 2: Determine relay output state

    Both inputs must be ON for M5 to energize. Since I2 is OFF, M5 remains OFF.
  3. Final Answer:

    OFF -> Option B
  4. Quick Check:

    Series contacts require all ON for output ON [OK]
Hint: Series contacts need all ON to energize relay [OK]
Common Mistakes:
  • Assuming relay toggles automatically
  • Ignoring OFF input in series
  • Confusing parallel and series logic
4. In the following PLC code snippet, there is an error in addressing the internal relay. Identify the error:
LD X0\nAND M1\nOUT M2

What is the error?
medium
A. Using M1 as input in AND instruction is invalid
B. Incorrect internal relay address M2 in OUT instruction
C. No error, code is correct
D. Using input address X0 instead of internal relay

Solution

  1. Step 1: Review each instruction

    LD X0 loads input X0 state, AND M1 uses internal relay M1 as condition, OUT M2 sets internal relay M2.
  2. Step 2: Check addressing validity

    Inputs (X) and internal relays (M) are correctly used. M1 and M2 are valid internal relay addresses.
  3. Final Answer:

    No error, code is correct -> Option C
  4. Quick Check:

    Input and internal relay addresses used properly [OK]
Hint: Inputs use X, internal relays use M; both valid here [OK]
Common Mistakes:
  • Thinking internal relays can't be inputs
  • Assuming OUT can't target internal relays
  • Confusing input and output addresses
5. You want to use internal relays M10 and M11 to remember if two sensors S1 and S2 were ON at any time during a process. Which ladder logic sequence correctly sets M10 and M11 to ON when their respective sensors turn ON, and keeps them ON until reset?
hard
A. --[S1]--(M10)\n--[M10]--(M10)\n--[S2]--(M11)\n--[M11]--(M11)\n--[Reset]--(/M10)\n--[Reset]--(/M11)
B. --[S1]--(M10)\n--[S2]--(M11)\n--[Reset]--(/M10)\n--[Reset]--(/M11)
C. --[S1]--(M10)\n--[S2]--(M11)\n--[Reset]--(M10)\n--[Reset]--(M11)
D. --[S1]--(M10)\n--[S2]--(M11)\n--[Reset]--(M10)\n--[Reset]--(/M11)

Solution

  1. Step 1: Understand latch logic for memory bits

    To keep M10 and M11 ON after sensors turn ON, latch logic uses the internal relay itself in parallel with the sensor input.
  2. Step 2: Analyze options for latch and reset

    --[S1]--(M10)\n--[M10]--(M10)\n--[S2]--(M11)\n--[M11]--(M11)\n--[Reset]--(/M10)\n--[Reset]--(/M11) shows M10 and M11 set by sensors and latched by themselves, with reset contacts to turn them OFF. Others lack latching or proper reset.
  3. Final Answer:

    --[S1]--(M10)\n--[M10]--(M10)\n--[S2]--(M11)\n--[M11]--(M11)\n--[Reset]--(/M10)\n--[Reset]--(/M11) -> Option A
  4. Quick Check:

    Latching uses self-holding contact + reset to clear [OK]
Hint: Latch with self-contact to hold ON until reset [OK]
Common Mistakes:
  • Not using latch (self-holding) contacts
  • Resetting only one relay
  • Using reset coil instead of reset contact
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