PI AF Units of Measure
This is why I love PI AF’s Unit of Measure Database: a single source of truth for all units and conversions. Each Class is a controlled group of Units of Measure (UOMs) which are interchangeable with one another. They set strict boundaries for data, facilitating accurate data handling and preventing users from attempting nonsensical conversions.
ITI Group’s PI AF Developers have used these features to great effect, creating Templates and Analytics that scale quickly across assets in any region, regardless of the unit set the region utilises. They no longer have to worry about identifying and writing manual conversion factors into every calculation, nor redesigning calculations every time they encounter sensors applying different units.
Figure 1 - Heat Transfer Units of Measure
The UOM Database is thus a simple yet powerful component of PI AF, but its layers of protection are surprisingly complex:
- If a UOM is in use by any object on the AF Server, it cannot be deleted and its Abbreviation cannot be modified. This can include hidden metadata, which is especially difficult to locate.
- UOMs cannot be moved across Classes. If a UOM has had its Class assigned incorrectly, you must Delete the UOM.
- UOM Classes are based on a single Canonical Unit, which cannot be reassigned. If you are the unfortunate soul whose entire Class is based on the wrong UOM, every single unit in the Class must be deleted in order to recreate the Class!
These Layers of Protection are incredibly helpful when your UOM Database is in good shape and prevent anything from breaking, but in a poorly designed database these can make the process of rationalisation surprisingly slow and painful.