✓ Link copied
Already in production on the shop floor · expanding to a second · air · gas · up to high-pressure hydrogen

The FAT certificate that used to take 3 hours of copy-paste,
now signed in 20 minutes.

F.A.T. Station is the self-hosted web platform that replaces WinCC + SQL + Excel + Word with a single UI. Built for the FAT of industrial compressors — air, gas, process, up to high-pressure hydrogen. The same engine works for any PLC-instrumented machine.

20min
from test to signed certificate
1Hz
on every line instrument
<200ms
real-time latency PLC→browser
PLC
OPC UA · Modbus · any machine

Today's acceptance test is a patchwork.

The operator in front of three different screens: WinCC on one, SQL workbench on another, Excel on the third. At the end of the day they fill in the certificate in Word, copy-paste 50+ values, save it to a network folder and pray the customer doesn't call asking "that test from last March, can you find me the raw data?".

One dashboard. The whole shop floor in real time.

The Control Room is the heart of F.A.T. Station. All shop floor lines in one grid: live status, PT1/PT2 from the PLC via OPC UA, connected operator, current phase and duration. No alt-tab between applications — the entire floor at a glance.

  • All your lines on a single host — a PC or a dedicated server — the grid scales with your floor.
  • 1 Hz sampling on every instrument of the line, on a TimescaleDB hypertable.
  • Real-time push <200ms via Socket.IO — PLC data → tile updated.
  • Industrial dark theme, readable under shop floor lighting. Responsive tablet/desktop.
fat.station.local/control-room/C1
CONTROL ROOM · acceptance test shop · all lines live
live · 1 Hz · tags from your PLC
● 5 testing · 2 idle · 1 ESD
L1testing
PT11024 barg
PT2 287 barg
OP3F4/6 · Load 75%
L2testing
PT1 412 barg
PT2 198 barg
OP5F2/6 · Leak
L3testing
PT1 980 barg
PT2 275 barg
OP1F3/6 · Load 50%
L4ESD trip
PT11212 barg
PT2 --- barg
OP7HH PT1 → STOP
L5idle
PT1 1 barg
PT2 1 barg
waiting
L6testing
PT1 802 barg
PT2 218 barg
OP2F5/6 · Load 100%
L7testing
PT1 615 barg
PT2 232 barg
OP4F3/6 · Load 50%
L8idle
PT1 1 barg
PT2 1 barg
L8 ready

Recording waits for the system to stabilize.

In legacy setups the data logger starts writing as soon as you press START. Result: the first 30-60 seconds of the phase contain start-up data, inflated variances, and the certificate comes out with wrong avg/min/max.

F.A.T. Station first verifies Hz is within ±5% of the setpoint. Only then does it activate 1 Hz buffering on phase_samples. Avg/min/max calculated solely on the stable window.

  • Gate Hz ± 5% on the setpoint configured per phase.
  • Gate PT1 in range optional for phases with fixed pressure condition.
  • No pre-stability samples archived — buffer discarded.
  • Statistics only on stable window: avg, min, max, σ calculated on real data.
Phase 4 · Load 75% · Machine 1
setpoint Hz: 48.0 · band: ±5%
RECORDING
+5% band -5% band ● GATE PASSED · t=14.2s recording started Hz
start-up (discarded) stable window (recorded) band ±5%

ESD / PSD / WRN / MSH — with first-out marker and ACK.

Four alarm classes aligned to the PLC's PROFIsafe logic: emergency, process shutdown, warning, message safety. The overlay is full-screen with Web Audio API beep: on the shop floor it can be seen and heard. The first-out marker answers that annoying question — "who tripped first?". ACK is mandatory before continuing.

  • First-out marker: the first trigger is saved with µs timestamp, no race condition.
  • Full-screen overlay + beep: even if the operator was looking at another panel's HMI.
  • Mandatory ACK to exit the overlay and continue the phase.
  • Audit persisted on TimescaleDB: who ACK'd, when, from which terminal.
● ESD

Emergency Shutdown. PSV trip, gas detect, irreversible hard stop.

● PSD

Process Shutdown. PT > limit, recoverable abnormal condition.

● WRN

Warning. TT > threshold, drift, operator decision needed.

● MSH

Message Safety High. Non-blocking notification for compliance log.

● ESD
PT1_HH · first-out marker
1212.4 barg (HH limit: 1100)
L4 · Machine 1 · Phase 4 · 2026-05-29T11:42:08.327+02:00
ACK required
TREND
P&ID
HMI (noVNC)
Siemens KTP900 · Line 1 · LIVE BRIDGE
SYS_STATERUNNING
PT11024.3 barg
PT2287.6 barg
TT162.4 °C
FREQ47.9 Hz
ZSV01OPEN
ZSV02CLOSING
[PT1][FCV][CMP01][PT2][ZSV02]
noVNC · ws-proxy://hmi-bridge:8081
Trend PT1 · last 60 seconds · 1 Hz
setpoint ± 5% stable · RECORDING −60s now 1050 1024 1000
avg / min / max1023.8 / 1019.4 / 1027.1 barg
σ (std dev)1.42 barg
trend buffer · TimescaleDB hypertable
P&ID · Machine 1 · high-pressure gas process
   IN ──[PT1]──[FCV01]──[CMP01]──[PT2]──[ZSV02]── OUT
                  │         │         │
              [TT1 62°C] [FREQ 48Hz] [TT2 71°C]
                            │
                        [PSV  ‖ 1050 barg trip]
PT1 inlet1024.3 barg
CMP01 freq47.9 Hz · stable
PT2 outlet287.6 barg
PSV trip @1050 barg (margin 26 bar)
P&ID template · catalog v0775-AA

The Siemens KTP panel, inside the session page.

The physical panel (KTP700, KTP900, MTP) runs in the same electrical cabinet as the PLC. Historically the operator had to get up and go look at it. F.A.T. Station does the bridge: VNC server on the panel → internal WebSocket proxy → noVNC iframe rendered inside the session page, alongside TREND and P&ID.

  • noVNC vendored: no browser plugins, no legacy Java applets.
  • Internal WebSocket proxy: the panel is not exposed directly to the network.
  • HMI / TREND / P&ID tabs in the session page — one single screen.
  • Read-only by default, write optional with PIN-elevated permissions.

3-sheet Excel + signed PDF in 20 minutes.

Once the last phase is complete, the operator and the customer QA sign at closing (PIN). ExcelJS produces an .xlsx with three sheets (cover + requirements + conditions per phase). Puppeteer renders the branded PDF with customer header, signatures, complete audit trail. The file goes into the archive, regeneratable on-demand if the customer asks for revisions.

📋
Operator completes all phases
stabilization gate per phase · 1 Hz buffer
✍️
Digital signature operator + customer QA
PIN-based, dual approval
📊
ExcelJS generates 3-sheet .xlsx
cover · requirements · conditions per phase
📄
Puppeteer renders branded PDF
customer header + signatures + audit trail
📁
Filterable archive
by order / customer / date / operator — regeneratable on-demand

Already in production.

No fake logos plastered to pad out the page. Two real customers under NDA — one in production, one in formal technical proposal. References available on request for interested prospects.

Italian manufacturer · air and gas compressors

deployment in acceptance test shop · under NDA
● Live

Acceptance test lines live in shop, expansion to a second shop incoming. Air and gas compressor families. F.A.T. Station has been replacing their legacy WinCC + SQL + Excel setup since early 2026.

lines live in shop air and gas compressors multi-shop since Q1 2026

EU manufacturer · high-pressure H2 compressors

formal technical proposal in progress · under NDA
● Proposal

Formal technical proposal for an H2 refueling order (bus / hydrogen mobility) at high pressure. Multi-train in container. Demo-readiness completed: container OPC UA tags mapped and the full ESD/PSD/WRN/MSH alarm chain configured.

H2 high pressure multi-train container container PLC mapped 2026
Do you build industrial compressors — or test machines on a line and issue their certificate? Let's talk →

Built to last 10 years on the shop floor.

Boring-good technologies: no exotic runtimes, no vendor lock-in. Three Docker containers on a host that stays on 24/7 — a PC, a VM or a dedicated server, your choice.

🏭

NestJS + TypeScript strict

Backend port 4500. Modular architecture, dependency injection, end-to-end type safety.

⚛️

Next.js 14 App Router

Frontend port 4200. React + Tailwind. SSR for session page, client for real-time.

🐘

Postgres + TimescaleDB

Hypertable phase_samples at 1 Hz. TIMESTAMPTZ everywhere.

🔌

OPC UA + Modbus TCP

node-opcua for Siemens (ns=2/ns=4), modbus-serial for Allen-Bradley, Schneider, Keyence.

📡

Socket.IO <200ms

Real-time push PLC → browser. Automatic reconnect, room per line.

🖥

noVNC HMI bridge

noVNC vendored + internal WebSocket proxy. Siemens panel in the browser.

📦

Docker Compose deploy

3 containers: db + backend + frontend. From a PC to a VM or dedicated server — scales with the shop floor.

🔐

PROFIsafe-aware

ESD / PSD / WRN / MSH with first-out marker, mandatory ACK, persisted audit.

🇮🇹

Timezone-correct + ISA-5.1

ISO 8601 with offset. ISA-5.1 strict tag mapping: PT/TT/Z/F + prefix AA/AB/AC + _H/_HH/_HHH.

16 animated chapters.
From login to signed certificate.

No public live deployment — F.A.T. Station runs in the customer's shop. But there's a cinematic HTML demo that shows the entire flow: PIN login, control room, session container opening, full phase cycle with stabilization gate, ESD alarm overlay, signature and certificate.

▶ Open interactive demo

Mapping of your machine in a few hours.
Remote demo in a few days.

If you build industrial compressors — or test any machine on a line and issue its acceptance certificate — and run FATs on the shop floor, one call tells you if F.A.T. Station is right for you. No sales slides — just a screen share of the real product: the control room, the session page with noVNC, the PDF certificate from a real test, in your client's format. After the call we send you a tailored quote based on your machine; post-sale support is handled directly by us.

📧 Request a demo — info@cra-srl.com ↓ Download technical overview (PDF)