Batch Mixing Reactor
Chemical / pharma
Charges, heats, reacts, cools, and discharges on a repeating batch cycle.
Eight simulated process units, modeled as DCNs based on the O-PAS standard with live values, operator setpoints, control methods, and working alarms & conditions. Point any OPC UA client at it.
opc.tcp://opas.digitalpetri.com:4840
None and Basic256Sha256 / SignAndEncrypt endpoints
Connect anonymously with any OPC UA client — UaExpert, the Prosys browser, or your
own code — and browse to the OPAS folder:
Objects → OPAS → BR_100 · CMP_100 · DC_100 · FH_100 · HX_100 · LS_100 · MG_100 · SEP_100
StartBatch(), EmergencyTrip(),
Blowdown()…Server; acknowledge, confirm, and shelve
alarms.FindAlias on Objects → Aliases.From the Open Group's process unit example projects. The nodesets define each unit's structure; this server adds the live behavior — deterministic simulations, working methods, firing alarms.
Chemical / pharma
Charges, heats, reacts, cools, and discharges on a repeating batch cycle.
Rotating equipment
Variable-speed compressor with an anti-surge recycle loop and machinery-protection trips.
Refining
Firing holds the coil-outlet temperature, air trim targets excess O2, and safety interlocks cut fuel.
Refining / petrochemical
Reflux and reboiler duty hold a sensitive-tray temperature; condenser duty holds pressure.
Heat transfer
Cooling water holds the process outlet temperature while fouling slowly builds.
Water / wastewater
Duty/standby pumps drain a wet well, alternating the lead pump each cycle.
Energy / renewables
PV, battery, and grid tie dispatched around a compressed two-minute solar day.
Upstream oil & gas
Pressure, oil level, and the oil/water interface held by three interacting valve loops.
Each unit is a DCN based on the O-PAS standard: it subtypes
DCNBaseType under the Part 4 OPAS folder, carries
IOServiceEngine and
AlarmEngine, types every signal per the O-PAS Base model, registers a tag
alias per signal, and wires each alarm as an ExclusiveLimitAlarm. The DI,
IRDI, PADIM, O-PAS Base, and O-PAS Connectivity Framework models are loaded alongside.
| Index | Namespace URI | Model |
|---|---|---|
| 0 | http://opcfoundation.org/UA/ | OPC UA base |
| 1 | urn:digitalpetri:opas-demo-server | Server application |
| 2 | http://opcfoundation.org/UA/DI/ | Device Integration (DI) |
| 3 | http://opcfoundation.org/UA/Dictionary/IRDI | IRDI dictionary |
| 4 | http://opcfoundation.org/UA/PADIM/ | PADIM |
| 5 | https://www.opengroup.org/open-process-automation/O-PAS/Base | O-PAS Base (Part 6.2) |
| 6 | https://www.opengroup.org/open-process-automation/O-PAS/CF | O-PAS Connectivity Framework (Part 4) |
| 7 | http://example.org/opcua/BR-100 | Batch reactor |
| 8 | http://example.org/opcua/CMP-100 | Compressor anti-surge loop |
| 9 | http://example.org/opcua/FH-100 | Fired heater |
| 10 | http://example.org/opcua/DC-100 | Distillation column |
| 11 | http://example.org/opcua/HX-100 | Heat exchanger |
| 12 | http://example.org/opcua/LS-100 | Lift station |
| 13 | http://example.org/opcua/MG-100 | Solar microgrid |
| 14 | http://example.org/opcua/SEP-100 | Three-phase separator |
Every alarm fires event notifications through the Server object with the
standard OPC UA Part 9 condition fields and live condition-state nodes.
Acknowledge, Confirm, AddCommentEnable / DisableTimedShelve, OneShotShelve, UnshelveConditionRefresh / ConditionRefresh2 replay of retained
conditionsTempSP at maximum and
wait for HighTemp.SurgeMarginSP — or just call
EmergencyTrip().HighFouling, then
Bypass() to clean it.A demonstration by digitalpetri, built on Eclipse Milo. The unit address spaces come from the Open Group's process unit example projects; the O-PAS™ nodesets ship with the O-PAS Standard, Version 2.1. This is an independent educational demo, not produced or endorsed by The Open Group.