访问方式与寻址
访问设备数据的方式是对象加实例加属性:类定义数据的种类,实例是具体一份,属性是其中的字段。读操作使用取属性服务,写操作使用置属性服务,需要一次拿多项时用取全部属性;访问路径由若干逻辑段组成,既可以指向类与实例编号,也可以指向符号化的名称,因此同一个数据既可按对象寻址,也可按名称寻址。设备返回的响应里带状态码,成功为零,非零则说明路径不存在、服务不支持、属性不可写或权限不足;把状态码读准,比反复改网络配置有效得多。
基本信息
| 基本单位 | 类、实例、属性 |
|---|---|
| 常用服务 | 取单个属性、取全部属性、置单个属性、复位类 |
| 访问路径 | 由逻辑段组成,可指向编号或符号名称 |
| 响应内容 | 数据加状态码,状态码决定成败判定 |
| 集成文件 | 电子数据表文件给出实例与属性映射 |
| 型号差异 | 实例号与属性号随厂商与型号不同,不能推断 |
| 写保护 | 部分属性只读,写入会返回明确的失败状态 |
典型使用场景
- 用通用工具读取身份属性,核对设备型号、版本与序列号
- 写参数前先读默认值与取值范围,避免写入越界
- 批量读取组态数据:用取全部属性减少往返次数
- 排查能连上但读不到:先看状态码含义,再判断路径是否正确
- 符号名与对象编号对照:不同工具使用不同寻址方式时的转换
- 与厂商软件结论不一致时,用通用工具交叉验证
常见状态码方向
| 状态含义 | 常见原因 | 排查方向 |
|---|---|---|
| 成功 | 请求被正确执行 | 无需额外处理 |
| 路径目标未知 | 类、实例或属性编号错误 | 核对集成文件与手册 |
| 服务不支持 | 设备不实现该服务 | 改用其他服务或确认固件能力 |
| 属性不支持 | 属性不存在或不可读写 | 确认可写属性清单 |
| 权限或状态冲突 | 设备当前状态不允许该操作 | 检查运行模式与写保护 |
| 数值超范围 | 写入值越界 | 先读取值范围再写 |
请求与判断顺序
请求与判断顺序
# 1 明确目标:哪个类、哪个实例、哪个属性,来自集成文件或手册
# 2 先读一次:确认路径可访问并拿到当前值与取值范围
# 3 再写:写入后回读校验,不要只看请求是否发出
# 4 失败时按状态码分类:路径错、服务不支持、权限不足、数值越界
# 5 记录状态码与时间,形成可复现的排查线索同系列不同型号的实例号与属性号常常不同,按经验值推断是高频误区,必须以该设备的集成文件或手册为准。
直接写属性可能绕过程序内的校验与联锁,尤其涉及运行模式、限值与保护参数的属性,写入前必须确认工艺后果。