Example project · examples/brewery

Example SCADA for a 10 hl brewery with recipes, fermentation and utilities.

Brewhouse
10 hl
Fermenters
3 × 12 hl
Recipes
4 in the PLC
Sequence
12 steps
Communication
Encrypted OPC UA
Security
5 roles
Overview
(01)Screens

Runtime screenshots with the simulated PLC. Lines show the fluid in circulation: blue water, amber wort, gold beer and violet steam.

(02)Recipes

The PLC stores four recipes. When a batch starts it copies the chosen one: mash rests, boil and fermentation profile all come from it. Pick one to see its profile (in recipe time; the simulator compresses it: 1 min = 1 s and 1 day = 1 min).

Gravity
15.5 → 2.8 °P
Attenuation
82 %
Boil
75 min
In the cellar
15 days
Brewhouse°C
4056738910565°77°100°219 min0
Cellar°C · °P
0612182415 days0

━ Mash tun and kettle temperature━ Fermenter setpoint┅ Gravity (°P)

(03)Sequence

The PLC runs the brew step by step. At mash-in and at each hop addition it asks for a manual action with an amber prompt and waits for confirmation. HOLD freezes the sequence and ABORT drains the batch, after confirmation.

  1. 01

    Water fill

    Hot liquor blended to the strike temperature.

  2. 02

    Mash-in

    Waits for the operator to add the malt.

  3. 03

    Protein rest

    Optional: skipped when the recipe gives it 0 min.

  4. 04

    Saccharification

    The main rest, with regulated steam.

  5. 05

    Mash-out

    Up to 77–78 °C before lautering.

  6. 06

    Transfer and recirculation

    The mash moves to the lauter tun and recirculates.

  7. 07

    Lautering and sparging

    Wort to the kettle; rakes if the bed gets stuck.

  8. 08

    Heat-up

    Up to the boil.

  9. 09

    Boil

    Only counts while boiling; asks for the hops.

  10. 10

    Whirlpool

    15 minute rest.

  11. 11

    Cooling and transfer

    Through the wort cooler into the chosen fermenter.

  12. 12

    CIP cleaning

    And back to idle.

(04)Users and roles

Without a session, runtime is read-only. Role permissions determine which commands are available and who can edit recipes. Pick a role:

  • ✓View screens, trends and alarmsEvery screen
  • ✓Choose recipe and fermenter, start, hold and abortBrewhouse · operate
  • ✓Switch a fermenter to a manual setpointCellar · Command… · operate
  • ✓Acknowledge alarmsAlarms · acknowledge
  • ✓Edit and save recipesRecipes · recipes
  • ×Create and change accountsStudio · Users and roles · manage_users
  • ×Read the SCADA from another programOPC UA server · port 4850 · opcua

Every command is audited with the user who gave it and its origin: HMI, OPC UA or script. Roles, accounts (only each password's hash) and connection passwords travel with the project.

(05)OPC UA

The SCADA reads the PLC over OPC UA with signing and encryption and, at the same time, publishes its own variables for an MES. No certificate is accepted on its own: the first connection leaves the other side's certificate in «Rejected» until someone checks its thumbprint and trusts it.

OPC UA · client

PLC_Cerveceria

Basic256Sha256 · sign and encrypt · 1 s

Brewhouse, three fermenters, utilities and recipe manager, with nodes nsu=urn:latolva:plc;s=<object>.<field>.

OPC UA · server

abSCADA server

opc.tcp://<host>:4850/abscada

Publishes every variable. Login with abSCADA accounts; writing needs «Commands and setpoints» and is audited.

Project PKI

Certificates

pki/own · trusted · rejected

The project's certificate and trust lists travel with it: copy it to another PC and the PLC still trusts it.

Project → OPC UA certificates: the PLC's certificate waits in «Rejected» until it is trusted.
Project → OPC UA certificates: the PLC's certificate waits in «Rejected» until it is trusted.
Project → OPC UA server: port, security policies and anonymous access.
Project → OPC UA server: port, security policies and anonymous access.
(06)Alarms

SignalWarningAlarm
Kettle foam60 %80 %
Lauter bed150 mbar200 mbar
Fermenter temperature—± 1.5 °C from setpoint
CO₂ pressure1.6 bar2.2 bar
Glycol—> 0 °C · level < 40 %
Steam—< 4 bar
Stuck fermentation—Gravity flat for 1 day
(07)Training

  1. 01As the operator, brew a Tostada into FV3 and confirm the malt and the hops.
  2. 02Trigger foam at the boil and watch the PLC back off the steam.
  3. 03Fail the glycol chiller and follow the fermenters drifting in the cellar.
  4. 04Try to save a recipe as the operator: abSCADA asks for another login. Do it as the head brewer.
  5. 05Make the yeast inactive and wait for the stuck fermentation alarm.
  6. 06Transfer a ready fermenter to packaging to free it.
(08)Run it

The simulated PLC ships inside abSCADA. The first time, accept its certificate in Project → OPC UA certificates.

  1. 01Download abSCADA for Windows and open abscada.exe.
  2. 02On the start screen, pick the example and keep «Also start its simulated PLC» ticked.
  3. 03Click Open runtime in Studio.
Download for Windows ↓
UserPasswordRole
adminTolva-Admin-2026Administrator
maestroTolva-Maestro-2026Head brewer
operadorTolva-Operador-2026Brewhouse operator
mesTolva-MES-clienteMES client (OPC UA)

The accounts already come with the project. These are public demonstration passwords: in a real project, create your own.

Example guide in the manual →

Example scope

It is a teaching example, not a certified system. Timings are compressed and the yeast, glycol and CO₂ models are approximate. Safety valves and steam interlocks live in the PLC and in the field, never in the SCADA.