13.3 计量单位
在工业和物联网场景中,不同设备或系统采集的测量值往往使用不同的计量单位。即使在数据入库时进行了单位转换,由于项目实施时间不同及其他各种原因,存入数据库后仍可能存在计量单位不一致的情况。IDMP 通过**计量单位(UOM)**库来管理这一问题,支持在属性公式、计算和显示中自动进行单位转换。
计量单位在基础库 → 计量单位中管理。
计量单位分类
IDMP 将计量单位组织为计量单位分类——衡量同一物理量的单位分组。每个分类有一个标准单位(内部用于转换的基准单位),以及可选的一个或多个基础计量单位分类(用于导出量,如压力 = 质量 / (长度 × 时间²))。
IDMP 内置以下计量单位分类:
| 分类 | 基本计量单位 | 基础计量单位分类 |
|---|---|---|
| 面积 | 平方米 | 长度 |
| 计算机存储 | 字节 | — |
| 密度 | 千克每立方米 | 长度、质量 |
| 电流 | 安培 | — |
| 电压 | 伏特 | — |
| 电功率 | 伏安 | — |
| 能量 | 焦耳 | — |
| 长度 | 米 | — |
| 质量 | 千克 | — |
| 分子量 | 克每摩尔 | — |
| 物质的量 | 摩尔 | — |
| 平面角 | 弧度 | — |
| 功率 | 瓦特 | — |
| 压力 | 帕斯卡 | 长度、质量、时间 |
| 比率 | % | — |
| 比能 | 焦耳每千克 | 长度、时间 |
| 比容 | 立方米每千克 | 长度、质量 |
| 温度 | 开尔文 | — |
| 时间 | 秒 | — |
| 速度 | 米每秒 | — |
| 体积 | 立方米 | 长度 |
您可以通过添加自定义计量单位分类来扩展此列表。
查看分类中的单位
点击任意计量单位分类名称,查看其包含的各个单位。单位列表显示:
| 列 | 说明 |
|---|---|
| 名称 | 单位名称(如升、美制加仑) |
| 缩写 | 简短符号(如 L、US gal) |
| 来源 | 内置单位为 系统定义,自定义单位显示创建者用户名 |
| 描述 | 可选描述 |
| 标准换算 | 相对于标准单位的换算公式 |
| 换算量 | 多少该单位等于一个标准单位 |
顶部的数量字段允许输入参考量,预览该分类下所有单位的换算结果。
创建自定义计量单位分类
在计量单位列表页点击 + 创建新分类。填写以下字段:
| 字段 | 说明 |
|---|---|
| 名称(必填) | 分类名称。支持字母、数字、下划线、连字符和空格。 |
| 标准计量单位(必填) | 此分类的标准(基准)单位名称。 |
| 计量单位缩写(必填) | 标准单位的缩写。 |
| 描述 | 可选描述。 |
| 基础计量单位分类 | 可选。添加此分类派生自的一个或多个已有分类(如压力派生自质量、长度和时间)。点击 + 逐一添加。 |
点击保存创建分类。
向分类中添加自定义单位
打开某个计量单位分类,点击 + 添加新单位。填写以下字段:
| 字段 | 说明 |
|---|---|
| 名称(必填) | 单位名称。支持字母、数字、下划线、连字符和空格。 |
| 缩写(必填) | 单位的简短符号。 |
| 描述 | 可选描述。 |
| 参考计量单位 | 用于换算的参考单位(默认为该分类的标准单位)。 |
| 参考系数 | 乘法系数:新单位 = 参考系数 × 参考计量单位。默认:1.0。 |
| 参考偏移量 | 系数之后加上的偏移量:新单位 = 参考系数 × 参考计量单位 + 参考偏移量。适用于非比例换算,如摄氏度 ↔ 华氏度。默认:0.0。 |
点击保存添加单位。
为属性分配计量单位
每个属性可配置以下内容:
- 计量单位分类 — 物理量类型(如温度)
- 默认计量单位 — 数据在 TSDB 中存储所用的单位(如开尔文)
- 显示计量单位 — 向用户展示时使用的单位(如摄氏度)
当默认计量单位和显示计量单位不同时,IDMP 会自动将存储值换算为显示单位。
公式中的自动单位转换
当配置了计量单位的属性参与公式表达式运算时,IDMP 会自动应用单位换算规则,确保计算结果在物理上是有意义的。
加减运算
对于 A + B 或 A - B:
- 如果 A 和 B 属于不同的计量单位分类,则报错。
- 如果 A 和 B 属于相同的计量单位分类但单位不同,IDMP 会将 B 的单位换算为 A 的单位后再计算。
- 如果一个操作数有计量单位而另一个没有,则无单位的操作数被视为与另一个具有相同单位,然后再计算。
乘除运算
对于 A * B 或 A / B:
- 两个操作数先分别换算为各自计量单位分类的标准单位。
- 结果的计量单位分类通过组合两个操作数的基础计量单位分类来确定(如质量 / (长度 × 时间²) = 压力)。
- 结果单位为所确定分类的标准单位。
- 如果乘除运算的结果无法匹配任何已定义的计量单位分类,则报错。
示例: 属性 A 的单位为 cm(长度),属性 B 的单位为 m²(面积)。公式 A * B 会将 A 换算为米,与 B 相乘,结果单位为 m³(体积)。
比较运算与位运算
对于运算符 =、<>、>、<、>=、<=、|、&:
- 如果两边都有计量单位但属于不同分类,则报错。
- 如果一边有计量单位而另一边没有,则忽略计量单位。
- 如果两边都有计量单位且属于相同分类但单位不同,则在运算前将右侧的单位换算为左侧的单位。
函数
对函数应用于属性的结果,其计量单位与函数第一个参数的计量单位一致。例如,SIN(A) 的结果计量单位与 A 相同。
在属性上编辑公式表达式时,点击表达式编辑器中的评估按钮,可提前预览计算值并自动检测单位错误。如果属性尚未分配计量单位,IDMP 将根据最后一次评估结果自动推荐计量单位。









