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)
- Confirm connectivity of the Industrial PC to the Huawei S5735 switch.
- 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.
- Run the HIL matrix (see
load-test/HIL_BENCH.md):
- Modbus-TCP + OPC UA against the site PLC.
- 3-scanner + 1-printer end-to-end ping.
- UPS + GPIO ACK-alarm smoke.
- 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
- Capture the Android dump with
adb shell run-as.
- Run
okto-migrate convert ANDROID_DUMP to populate
/etc/okto/edge-service.yaml on the replacement cabinet.
- Cut the line over during a planned 15-min window.
- Keep the Android host powered off but on-site for 14 days as a
rollback fallback.