Skip to content

Signal Router

The Signal Router allows passing data between independent engine contexts, enabling multi-PLC communication on a single server.

How It Works

The router runs server-side with direct access to each context's memory, eliminating network round-trips.

EngineContext A              EngineContext B
+--------------+             +--------------+
| B:0/0 = true |---[route]-->| B:0/3 = true |
| N:10 = 42    |---[route]-->| N:20 = 42    |
+--------------+             +--------------+

Configuration

  1. Open the Signal Router panel (View > Signal Router)
  2. Add a new route:
    • Source context and source address (e.g., PLC1 → B:0/0)
    • Destination context and destination address (e.g., PLC2 → B:0/0)
    • Data type: Bit or Word
    • Interval (ms): Update frequency (10–5000ms)
  3. Enable the route

Example: Pulse Counter

PLC1 generates a 1-second pulse. PLC2 counts those pulses.

PLC1 (Pulse Generator):

Rung 0: [/B:0/0 + TON:500ms + TOF:500ms] ──( B:0/0 )

Route: PLC1 B:0/0 → PLC2 B:0/0

PLC2 (Counter):

Rung 0: [ B:0/0 ]──[CTU C:0 PRE:10]
Rung 1: [ C:0.DN ]──[RES C:0]

Note

Signal routes are persisted in .mplcproj files and automatically restored on load.