Appearance
产品配置与物模型
功能说明
同一批设备(如 100 台同型号温控器)硬件、数据点、指令都一样,逐台配置既重复又易错。产品就是设备的模板——先给产品定义好物模型(有哪些属性、能采什么数据、能下发什么指令),同型号设备归到这个产品下即可共用一套配置;物模型又把底层协议的寄存器/点位与业务概念(温度、开关)解耦。
举例: 100 台 Modbus 温湿度传感器建成一个“温湿度传感器”产品,配好 temperature/humidity 两个属性和读取事件,100 台设备直接套用,改一处全产品生效。
菜单:基础信息 → 产品配置
创建产品
- 进入 基础信息 → 产品配置,点击"新增"
- 在弹框中填写以下信息:
| 字段 | 说明 | 是否必填 |
|---|---|---|
| 产品名称 | 产品的中文名称,便于识别 | 必填 |
| 所属类型 | 选择协议驱动类型(如 Modbus Tcp、Siemens PLC 等) | 必填 |
| 产品代码 | 英文唯一标识,创建后不可修改(如 light_ctrl_cabinet) | 必填 |
| 设备类型 | 选择"直连设备"、"网关设备"或"网关子设备" | 必填 |
| 父产品 | 仅设备类型为"网关子设备"时显示,选择对应的网关产品 | 子设备必填 |
| 网络组件 | 设备类型为"直连设备"或"网关设备"时显示,选择对应的网络组件 | 直连/网关设备必填 |
| 产品说明 | 产品的用途描述 | 选填 |
表单动态显示: 选择"设备类型"后,表单会根据选择动态变化:
- 选择 网关子设备 → 显示"父产品"字段,需要选择所属的网关产品
- 选择 直连设备 或 网关设备 → 显示"网络组件"字段,需要选择对应的网络组件
- 点击"提交"完成创建
三种产品类型
| 产品类型 | 对应设备 | 内置驱动 | 是否需要配置物模型 |
|---|---|---|---|
| 直连产品 | 直连设备(直接联网、产生数据) | HJ212、IEC104、发那科 CNC | 需要 |
| 子产品 | 网关子设备(通过网关联网、产生数据) | Modbus、DTU、MQTT、PLC、OPC UA、DLT645 | 需要 |
| 父产品(网关产品) | 网关设备(不产生数据、只转发) | 同上(已预置) | 不需要 |
内置驱动简化: 内置驱动的网络组件和网关产品已预置,接入设备时只需创建直连产品或子产品。
物模型配置
在产品列表点击"物模型"按钮,进入物模型配置页。页面顶部展示产品基本信息(产品名称、产品代码、产品类型、设备类型、操作方式、绑定协议、接入网关、传输协议、备注),下方通过选项卡提供以下配置能力:
| 选项卡 | 用途 |
|---|---|
| 属性模型 | 定义设备的数据点(温度、湿度、状态等) |
| 功能模型 | 定义平台向设备下发的控制指令 |
| 事件模型 | 定义平台从设备采集数据的接口 |
| 计算属性 | 通过脚本对采集值进行二次计算 |
| 指令集 | 查看当前驱动提供的所有可用指令 |
| 协议列表 | 查看当前产品绑定的驱动提供的协议清单 |
属性模型
属性模型定义设备的数据点。每个属性代表设备的一个数据维度。
新增属性
- 在"属性模型"选项卡下点击"新增"
- 填写以下字段:
| 字段 | 说明 | 示例 |
|---|---|---|
| 属性名称 | 属性的中文名称 | 温度 |
| 属性字段 | 英文唯一标识,以字母开头,支持 a-zA-Z0-9_- | temperature |
| 数据类型 | 选择数据类型 | float(单精度) |
| 属性类型 | 读 / 写。读属性:平台只能读不能写;写属性:平台可读可写 | 读 |
| 值解析器 | 将采集到的值解析成对应的数据类型,默认 DEFAULT;下拉项可通过脚本动态添加 | DEFAULT |
| 序号 | 采集器里接口的排序,值越小越靠前 | 0 |
| 默认值 | 设备首次连接尚未上报数据时显示的初始值 | — |
| 属性单位 | 数据的物理单位 | ℃ |
| 精度 | 小数点精度 | 2 |
| 增益 | 采集数据的放大倍数,寄存器上报的值放大了几倍就填几 | 10 |
| 属性备注 | 属性的补充说明 | 环境温度 |
- 点击"提交"保存
支持的数据类型:
| 类型 | 说明 |
|---|---|
| string | 字符串 |
| boolean | 布尔类型 |
| byte | 字节 |
| short | 短整型 |
| int | 整型 |
| long | 长整型 |
| float | 单精度浮点数 |
| double | 双精度浮点数 |
| date | 日期 |
| bit | 比特位(可展开为多个布尔子属性) |
| group | 分组(可包含多个子属性) |
| json | JSON 类型(可映射多个子属性) |
属性来源说明: 属性分为"Model"(用户手动新增)和"Protocol"(驱动自动注册)两种来源。驱动注册的属性不可修改和删除,只能由用户手动新增的属性才能编辑。
属性值配置
属性保存后,在属性详情中切换到"属性值配置"子选项卡,可以为属性配置字典。字典的作用是将原始数据值映射为可读的显示名称,例如:
- boolean 类型属性:配置“开”=true、“关”=false
- short 类型属性:配置“正转”=1、“反转”=-1
| 字段 | 说明 |
|---|---|
| 名称 | 显示文字(如“开”、“正转”) |
| 值 | 实际数据值(如 true、1) |
配置字典后,页面自动将数值显示为中文标签,控制接口也会自动拆分为对应的操作按钮。
告警/指标配置
在属性详情中切换到"告警/指标配置"子选项卡,可以为属性设置阈值告警:
| 字段 | 说明 | 示例 |
|---|---|---|
| 操作 | 比较操作符(大于、小于、等于等) | 大于 |
| 阈值 | 触发告警的数值 | 50 |
| 告警等级 | 告警的严重程度 | 告警 |
| 频率(秒) | 告警频率,在频率内多次告警只通知一次,0 为不限制 | 60 |
| 指标 | 状态标签(偏高/偏低/正常/过高/过低) | 过高 |
| 推送消息 | 选择预置的消息模板进行告警推送 | — |
| 告警内容 | 告警描述文本,支持占位符:{deviceSn} 设备编号、{value} 值、{warnTime} 时间、{grade} 等级 | 设备{deviceSn}温度{value}℃ |
指标模式: 如果只想显示状态标签而不产生告警记录,告警等级选择"指标"即可,指标等级不参与告警。
注意: json、bit、group 类型的属性不支持告警配置。
功能模型
功能模型定义平台向设备下发的控制指令。
新增功能
- 在"功能模型"选项卡下点击"新增"
- 填写以下字段:
| 字段 | 说明 | 示例 |
|---|---|---|
| 功能名称 | 功能的中文名称 | 写入线圈 |
| 协议指令 | 从驱动提供的指令列表中选择 | Write05 写单个线圈 |
| 接口代码 | 英文唯一标识,以字母开头,至少 6 位 | write_coil |
| 触发方式 | 由指令自动填充:主动(active) / 被动(passive) | 被动 |
| 序号 | 排序权重,值越小越靠前 | 1000 |
| 功能说明 | 功能的补充说明 | 控制设备开关 |
- 选择协议指令后,页面自动加载该指令的下行配置和上行配置
下行配置
下行配置定义向设备发送指令时需要填写的参数。每行包含:
| 字段 | 说明 |
|---|---|
| 名称 | 协议指令定义的参数名 |
| 协议属性 | 协议层面的字段标识 |
| 数据类型 | 该参数要求的数据类型 |
| 配置值 | 要下发的值 |
| 备注 | 参数说明 |
配置值的填写方式:
- 固定值 — 直接输入固定值(如
1、0) - @属性绑定 — 输入
@触发属性选择器,选择模型属性进行动态绑定,绑定后该属性的值会作为指令参数下发 - #脚本引用 — 输入
#触发脚本引擎选择器,选择脚本引擎动态构建值
上行配置
上行配置定义设备返回的数据如何映射到模型属性。配置值只支持 @属性绑定 方式,通过 @属性字段 将采集到的数据绑定到对应的模型属性。
作为状态
对于被动触发的写类型(W)功能,可以将其设置为"状态":
- 点击功能列表中的"作为状态"按钮
- 设置后该功能会在设备列表的显眼位置展示为状态开关
- 一个产品最多只能有 4 个状态接口
事件模型
事件模型定义平台从设备采集数据的接口。
新增事件
- 在"事件模型"选项卡下点击"新增"
- 填写以下字段:
| 字段 | 说明 | 示例 |
|---|---|---|
| 事件名称 | 事件的中文名称 | 读取温度 |
| 协议指令 | 从驱动提供的指令列表中选择 | Read03 读保持寄存器 |
| 接口代码 | 英文唯一标识,以字母开头,至少 6 位 | read_temp |
| 触发方式 | 由指令自动填充:主动(active) / 被动(passive) | 主动 |
| 频率标签 | 采集频率标记 | 默认 |
| 事件说明 | 事件的补充说明 | 定时读取温度数据 |
- 选择协议指令后,页面自动加载该指令的下行配置和上行配置
频率标签
频率标签决定采集器对接口的执行频率:
| 标签 | 说明 |
|---|---|
| 默认(DEFAULT) | 标准采集频率 |
| 低频(LOW) | 采集频率较低,间隔较长 |
| 中频(MEDIUM) | 中等采集频率 |
| 高频(HIGH) | 采集频率较高,间隔较短 |
标签值越高,采集器执行的频率越快。可以为不同事件接口设置不同的频率标签,实现差异化的采集策略。
下行配置和上行配置
事件模型的下行配置和上行配置与功能模型类似:
- 下行配置 — 定义采集请求的参数(如寄存器地址、数据类型等),支持固定值、
@属性绑定、#脚本引用三种方式 - 上行配置 — 定义采集结果到模型属性的映射,仅支持
@属性绑定方式
计算属性
计算属性通过脚本对采集到的值进行二次计算,生成新的属性值。
使用方法
- 切换到"计算属性"选项卡
- 在左侧编辑器中编写 JavaScript 脚本
- 右侧提供了可用方法列表供参考
- 点击"保存"生效
注意: 计算属性功能需要在产品配置中开启(
calcLanguage配置项),未开启时该选项卡不显示。可通过切换 javascript / 禁用 来控制开关。
指令集
指令集选项卡展示当前产品所属驱动提供的所有可用指令。
| 字段 | 说明 |
|---|---|
| 接口名称 | 指令的中文名称 |
| 指令 | 指令的具体值(点击可复制) |
| 指令说明 | 指令的用途描述 |
| 接口类型 | 功能(func) 或 事件(event) |
指令集为只读信息,由驱动自动提供。在配置功能模型和事件模型时,从此指令列表中选择对应的指令。
协议列表
协议列表选项卡展示当前产品绑定的驱动所提供的所有协议接口。
| 字段 | 说明 |
|---|---|
| 协议名称 | 协议的中文名称 |
| 协议代码 | 协议的唯一标识 |
| 接口类型 | 功能(func) 或 事件(event) |
| 触发方式 | 主动(active) / 被动(passive) |
| 功能说明 | 协议的用途描述 |
协议列表由产品所属驱动提供,不可编辑。功能模型和事件模型中选择的协议指令就来自此列表。
