Platform · Asset model
SPEC 01Define the asset class once. The fleet follows.
The asset model is where series stop being tag names and start being equipment. Templates carry the engineering; assets inherit it; views arrange it for the people who have to use it; registries keep the vocabulary honest.
Templates
SPEC 01 §3Series, limits, calculations, display, entry form — declared once, inherited everywhere.
A template describes an asset class in full: which series it has, what its operating limits are, which calculations run on it, how its display is laid out, what its manual-entry form asks. Every asset instantiated from the template inherits all of it. When the template changes, the change rolls out fleet-wide — and drift tracking reports any instance that has been locally overridden, so “applied to 14 assets · drift 0” is a checkable claim, not a hope.
centrifugal_pump_v4 ├─ series 9 defined │ ├─ flow_m3_h opcua │ ├─ discharge_bar opcua │ ├─ motor_power_kw opcua │ └─ seal_temp_c mqtt ├─ limits typed, per series ├─ calculations 3 expressions │ └─ specific_energy_kwh_m3 ├─ display generated └─ entry form generated applied to 14 assets · drift 0
fix the template, fix the fleet. drift is measured, not assumed.
Views
SPEC 01 §4One plant, several honest readings of it.
Operations thinks in lines and shifts. Maintenance thinks in equipment classes and failure history. Energy thinks in meters and cost centres. A view is a named arrangement of the same underlying assets — no duplication, no export, no “maintenance copy” that quietly disagrees with the operations one. Change an asset and every view sees the change, because there is only one asset.
three disciplines, one source of record. views arrange; they do not copy.
Registries
SPEC 01 §7Units, enumerations and materials are typed, versioned and shared — not strings scattered through tag descriptors.
A series declared in m³/h cannot be averaged against one in l/min without an explicit, recorded conversion. Enumerations (run states, quality codes, reason codes) are registry objects with versions, so a renamed state does not orphan a decade of history. Materials carry their own identity for batch genealogy to build on. Boring, deliberately — vocabulary is infrastructure.
every registry change is a version. history keeps meaning what it meant when it was written.
If you are carrying an AF database full of hand-copied elements, the model importer maps it — and shows you the drift it finds.