Skip to content

MARS L2 (WET/DRY) — Rollout plan

Target: 20 DRY + 31 WET cabinets across four MARS sites (LUZ, NOV, MIR, RND). See L2_WET_DRY_GAP_ANALYSIS.md for the functional gap analysis and the execution plan for the per-phase backlog.

Cabinet distribution

Site DRY WET Total
LUZ 12 11 23
NOV 8 6 14
MIR 0 7 7
RND 0 7 7
Sum 20 31 51

Variant summary

  • DRY cabinet — Industrial PC (Promolink / Advantech IPC with sensor touchscreen, IP65) + Control cabinet with PLC (Inovance AM521-0808-TN or AM522), managed switch (Huawei S5735L-S8T4XV-V2), modular power distribution, and reserved space for future Point-I/O. The L2 server drives the PLC directly over Modbus TCP / OPC UA.
  • WET cabinet — Industrial PC + Power cabinet with UPS (OWEN IBP120K), circuit breakers, reserved Point-I/O space. PLC is line-side (primary-packaging); the L2 server talks to it over the fieldbus but does not own the PLC itself.

Preparation (per site)

  1. Confirm connectivity of the Industrial PC to the Huawei S5735 switch.
  2. Provision per-cabinet edge-service.yaml via the okto-migrate CLI if migrating from an existing MARS Android L2 host; otherwise seed the RED OS / Debian package defaults from install.sh with VARIANT=dry|wet SITE=LUZ|NOV|MIR|RND.
  3. Run the HIL matrix (see load-test/HIL_BENCH.md):
  4. Modbus-TCP + OPC UA against the site PLC.
  5. 3-scanner + 1-printer end-to-end ping.
  6. UPS + GPIO ACK-alarm smoke.
  7. Export the journal after HIL:
    curl -o bench.csv "http://<ipc>:8080/api/v1/events/export?format=csv"
    

Per-site schedule

Site Pilot lines Rolling rollout
LUZ L01 (DRY) + L02 (WET) — 7 days 2 cabinets / day × 11 days
NOV L01 (DRY) + L02 (WET) — 3 days 2 cabinets / day × 7 days
MIR L01 (WET) — 3 days 1 cabinet / day × 7 days
RND L01 (WET) — 3 days 1 cabinet / day × 7 days

Exit criteria

  • All L2 REST endpoints healthy: /api/v1/scanners, /printers, /plcs, /ups/status, /gpio/status, /events, /batch-accounting/buffer.
  • Operator UI loads Journal + PLC iframe pages without errors.
  • Management dashboard shows the cabinet variant, site, UPS badge.
  • 24 h of production without unrecovered journal events.
  • Backup copy of the MARS Android dump stored in the OKTO vault before the old installation is retired.

Decommissioning the Android L2

  1. Capture the Android dump with adb shell run-as.
  2. Run okto-migrate convert ANDROID_DUMP to populate /etc/okto/edge-service.yaml on the replacement cabinet.
  3. Cut the line over during a planned 15-min window.
  4. Keep the Android host powered off but on-site for 14 days as a rollback fallback.