Mapping Without Local GPIO

In decentralized industrial swarm networks, the edge controller frequently possesses no local GPIO pins. All physical sensors and actuators are connected to remote Ethernet I/O blocks (Modbus TCP, Profinet, Wago/Phoenix couplers) or inter-controller channels (OPC UA FX). PAML lines bridge this gap by binding network register offsets to logical process tags.

1. Analog Inputs (Ranged Remote scaling)

Analog scaling maps raw register integers (like 12-bit/16-bit analog counts) to engineering values (e.g. pressure in bar, level in percent) and applies a low-pass filter to smooth sensor jitter:

(B) @AI @ModbusTCP +Tank101 LI101 source:bus0 reg:40001 raw:4000-20000 range:0-100 unit:pct filter:1.5s
  • raw:4000-20000: The raw integer boundary of the remote Modbus converter.
  • range:0-100: Scaled engineering output representing tank volume.
  • filter:1.5s: A 1.5-second time constant applied to smooth out fast input ripples.

2. Discrete State Masking

Discrete inputs are grouped into packed registers to reduce traffic. PAML extracts individual bits and sets contact behaviors:

(A) @DI @ModbusTCP +Boiler01 EStop source:bus0 reg:10001 bit:4 invert:true state:TRIPPED
  • bit:4: Inspects only the fourth bit offset of register 10001.
  • invert:true: Inverts the value (normally closed switch pattern) to guarantee a fail-safe alarm if physical power is cut.

3. Redundant Motor Starter Pairs

Instead of mapping complex sequence logics for wear-and-tear balancing manually, PAML encapsulates pump rotation rules in a single block:

(C) @MOTOR_PAIR +UtilityPumps CTRL lead:P101A lag:P101B mode:AUTO swap_hours:168h trigger:P101A.fail
  • swap_hours:168h: Alternates the primary lead pump every week to balance running wear.
  • trigger:P101A.fail: Immediately engages the standby pump (lag) if the running pump experiences a thermal trip or contactor failure.

4. Asynchronous Analyzer Watchdogs

Smart instruments (like gas chromatographs) push data packet bursts at irregular intervals. PAML provides watchdog gates to intercept stale data:

(C) @ANALYZER +DistillColumn AT401 bus:TCP_502 type:CHROMATOGRAPH interval:450s
(A) @WATCHDOG +DistillColumn IF AT401.stale_time > 900s THEN AT401.quality:BAD alarm:TIMEOUT
  • interval:450s: Expected measurement update window.
  • stale_time > 900s: If no new packet is received within double the window, the watchdog forces the value quality status to BAD, prompting safe fallbacks in PID controllers.

5. 2-out-of-3 (2oo3) Voted Safety Loops

For critical SIL boundaries, PAML provides hardware-independent voting structures to eliminate single points of sensor failure:

(A) @SIS_IN @UAFX_PubSub +Reactor PT301 voted:2of3 channels:[bus1.ch0, bus1.ch1, bus1.ch2] tolerance:0.5bar
(A) @INTERLOCK +Reactor IF PT301 > 42.5bar THEN XV301->FORCE_CLOSE

Core 1 (the 1ms Safety Core) reads values from three independent transmitters. If any two sensors align above the trip threshold, the interlock forces the isolation valve shut in less than a millisecond, discarding the third sensor value if it drifts outside the tolerance window.