摘要
传统第三方组态软件描述 S7 数据时,常以DB1.DBD20、DB1.DBX10.3、MW100这样的绝对地址字符串作为配置核心,再为变量附加数据类型和采集周期。它直观、容易入门,但地址中的存储区、长度和偏移彼此耦合;当工程需要批量生成、位域解析、不同字节序适配或通信合并时,软件通常还要重新解析字符串,或依赖额外的私有配置。
摩尔信使MThings 采用的是“结构化地址 + 独立数据语义 + 独立通信策略”模型。界面仍生成工程师熟悉的 S7 地址文本,但文本只是展示结果,不是配置的唯一事实来源。该设计把一个点位从“地址写法”提升为可校验、可转换、可批量操作、可优化传输的工程对象。
一、比较范围
本文所说的“传统方法”,主要指第三方 HMI、SCADA、网关或驱动软件中常见的绝对地址配置方式:
变量名:电机转速 地址:DB1.DBW20 数据类型:UInt16 采集周期:1000 ms西门子对绝对地址的标准表达包括DB1.DBX2.3、DB1.DBB4、DB10.DBW2和DB20.DBD8。同时,现代 TIA Portal/WinCC 也支持符号寻址,而且西门子明确建议在条件允许时优先使用符号寻址。因此,本文讨论的是 MThings 相对“绝对地址字符串型第三方配置”的优势,而不是宣称它全面替代 PLC 工程内的符号寻址。
二、核心差异:地址是字符串,还是结构化对象
传统配置通常把下列信息压缩在一个字符串里:
DB1.DBD20 │ │ │ └─ 起始字节偏移 20 │ │ └─── D:双字,隐含 4 字节 │ └────── DB 区访问标记 └──────── 数据块编号 1MThings 则将同一个点位拆成互相独立、可以分别校验的字段:
| 层次 | MThings 字段 | 示例 | 作用 |
|---|---|---|---|
| 点位身份 | 数据 ID、名称、分组、颜色 | 12 / 电机转速 | 供曲线、历史、告警和界面引用 |
| 物理位置 | 区域、DB 号、字节偏移 | DB / 1 / 20 | 唯一确定 PLC 内存起点 |
| 数据范围 | 字节长度、位偏移、位数 | 4 / 0 / 32 | 明确读取范围和有效位域 |
| 原始解释 | 协议类型 | FLOAT | 定义线上的原始数据含义 |
| 展示解释 | 显示类型、小数位、枚举 | 浮点 / 2 位 | 定义面向用户的表达 |
| 数据修正 | 字节序、字序、增益、偏置 | 大端 / 大端 / 0.1 / 0 | 适配设备布局并完成工程量换算 |
| 通信策略 | 批量轮询、间隔、超时、重发 | 是 / 1000 / 500 / 2 | 控制点位如何被采集 |
由这些字段,MThings 再生成DB1.DBD20供人阅读。换言之:
传统方法把地址文本当“源数据”;MThings 把地址文本当“结构化配置的视图”。
三、同一组 S7 数据的配置示例
假设DB1中有以下数据:
| 业务数据 | 传统地址 | MThings 位置描述 | MThings 数据语义 |
|---|---|---|---|
| 运行状态 | DB1.DBX0.0 | DB=1,字节偏移=0,长度=1,位偏移=0,位数=1 | UINT → 枚举:0=停止,1=运行 |
| 转速给定 | DB1.DBW2 | DB=1,字节偏移=2,长度=2,位数=16 | UINT → 十进制,增益=0.1,单位=r/min |
| 实时功率 | DB1.DBD4 | DB=1,字节偏移=4,长度=4,位数=32 | FLOAT → 浮点数,小数位=2,单位=kW |
| 批次编码 | DB1.DBB8 | DB=1,字节偏移=8,长度=12,位数=96 | BYTES → 字符串 |
| 三级告警码 | DB1.DBX20.4 | DB=1,字节偏移=20,长度=1,位偏移=4,位数=3 | UINT → 枚举 |
这个例子体现了两个重要区别:
B/W/D只能简洁表达 1、2、4 字节,而 MThings 的“字节长度”可以直接表达 8 字节、12 字节等范围。DBX20.4只表达起始位,MThings 还能明确“从第 4 位开始连续取 3 位”,因此可直接描述状态字中的位域,而不必为每个位单独建立变量。
四、MThings 设计的主要优势
1. 结构化配置减少地址歧义
区域限定为DB/M/I/Q/CT/TM;DB 号只在 DB 区有效;计数器和定时器会自动规范为 2 字节无符号整数。区域切换时,系统会同步清理或修正不再适用的字段,避免出现诸如“M 区仍携带 DB 号”一类逻辑矛盾。
传统字符串当然也能被解析和检查,但每个功能都必须先重复完成文本识别。MThings 的配置从进入系统时就是结构化数据,界面、序列化和协议层可以直接共享同一语义。
2. 地址定位与数据解释解耦
同一段 PLC 内存并不只需要“读到”,还需要回答“怎样解释”。MThings 将协议类型与显示类型分开,并额外提供:
- 字节序与字序;
- 有符号、无符号、浮点、字节流等原始类型;
- 十进制、十六进制、位串、字符串、浮点和枚举等显示方式;
- 增益、偏置、小数位、单位和量程。
因此,通信驱动负责取得原始字节,数据转换层负责把它转成工程值,界面层负责按业务方式展示。职责清楚后,同一地址模型可以同时服务实时值、曲线、历史记录、告警和写命令。
3. 支持“任意长度 + 任意有效位域”
MThings 不把数据长度锁死在 S7 地址后缀中。除常见的 1/2/4 字节值外,还能描述长字节串、字符串和 64 位数据;通过“位偏移 + 位数”,还能表达一个字节或一个字中的连续位域。
系统会把位范围约束在已配置的字节范围内,并限制浮点原始数据必须占满 32 位或 64 位。相比录入后才在运行期暴露错误,这类联动校验更接近配置动作本身。
4. 批量建点效率高
新增数据对话框一次配置区域、DB 号、起始字节偏移、字节长度和点数,最多可批量创建 10000 个点;开启自动偏移后,后续点位按字节长度连续递增。
表格还支持多选后批量修改区域、协议类型、显示类型、字节序和字序,以及对数值列进行整体偏移。连续地址表、数组或结构体映射不再需要逐条重写完整地址。
5. 配置本身可直接驱动通信优化
S7 主站读取前会按“区域 + DB 号 + 字节偏移”排序。自动组包模式下,连续的非位数据会合并成一个范围,再通过 S7 Read Var 多变量请求发送;组包同时受以下条件约束:
- 协商后的最大 PDU;
- 最大读取/写入字节数;
- 单次最大读取/写入项目数;
- 用户选择的自动合并、逐点读取或多变量读取策略。
超长数据会按允许的字节数拆包,读取后再按原点位范围切片或重组。传统字符串模型也可以实现同样的优化,但必须先把每个字符串重新解析成这些结构;MThings 的地址模型天然就是组包算法需要的输入。
6. 人可读显示与机器执行保持一致
界面自动生成标准风格地址:
| MThings 配置 | 自动显示 |
|---|---|
| DB=1,偏移=20,长度=4 | DB1.DBD20 |
| DB=1,偏移=10,位偏移=3,位数<总位数 | DB1.DBX10.3 |
| 区域=M,偏移=100,长度=2 | MW100 |
| 区域=CT,偏移=5 | C5 |
| 区域=TM,偏移=8 | T8 |
工程人员仍能使用熟悉的地址检查配置,而协议层不必依赖这个展示字符串反向推断参数,避免“显示格式变化影响通信逻辑”。
7. 同一模型覆盖运行与配置全链路
S7 专用字段在项目文件中分别保存为区域、DB 号、字节偏移和字节长度;加载时再还原为 S7 数据项。运行期使用同一数据项构造 ANY 参数、读写 PLC 内存并转换值,不需要在 UI 配置、项目存储和驱动执行之间维护三套地址表达。
五、对比矩阵
| 对比维度 | 传统绝对地址字符串配置 | MThings 结构化配置 |
|---|---|---|
| 初次录入 | 单点录入直观 | 字段稍多,但含义明确 |
| 地址可读性 | 高 | 高,自动生成传统地址 |
| 内部可计算性 | 需先解析字符串 | 字段可直接排序、校验和组包 |
| 长字节数据 | 常依赖数组/字符串专用类型 | 字节长度直接表达 |
| 位域 | 常见方式以单个位为主 | 位偏移与位数独立表达 |
| 类型转换 | 常与驱动数据类型绑定 | 协议类型与显示类型分层 |
| 端序适配 | 依赖驱动选项或脚本 | 点位级字节序、字序 |
| 工程量换算 | 常用脚本或线性转换配置 | 增益、偏置、小数位内建 |
| 批量建点 | 导入表格或逐条复制 | 点数 + 自动偏移,支持批量编辑 |
| 连续地址合并 | 取决于驱动内部实现 | 地址结构直接驱动排序与合并 |
| PDU 约束 | 多为黑盒或全局参数 | 最大字节数、项目数和组包方式可配置 |
| 配置校验 | 多在输入格式或运行时报错 | 区域、长度、位域、类型联动规范化 |
| 项目文件 | 常保存地址文本 | 分字段持久化,可直接恢复语义 |
六、从配置到采集的数据流
这里最关键的价值不是“多了几个配置字段”,而是地址配置成为整个运行链路的统一元数据:上游方便工程配置,下游可以直接用于通信和数据处理。
七、适用边界
MThings 当前实现仍属于绝对地址访问模型,主要覆盖DB/M/I/Q/CT/TM区域。对于启用优化访问的 S7-1200/1500 数据块,绝对地址并不总是可用;这类项目更适合使用 PLC/HMI 的符号寻址,或在 PLC 工程中提供允许绝对访问的数据区。
因此可以把两种方案定位为:
- TIA 符号寻址擅长 PLC 工程内的类型一致性、重构跟随和优化数据块访问;
- MThings 结构化绝对地址擅长第三方通信、异构数据解释、批量建点、位域处理和可控组包。
两者并非简单替代关系。MThings 的优势,在于把第三方驱动不可避免要处理的绝对地址,组织成了一套比“地址字符串 + 数据类型”更完整、更可计算的工程模型。
八、结论
传统绝对地址字符串回答的是“数据在哪里”;MThings 的 S7 数据点模型同时回答:
- 数据在哪里;
- 要读取多少;
- 哪些位有效;
- 原始字节如何解释;
- 工程值如何展示;
- 以什么策略采集;
- 如何在 PDU 限制内高效组包。
这使 MThings 在大规模点表、连续数据块、非标准数据布局、跨设备端序适配和通信性能调优等场景中具有明显优势。其本质不是发明一种新的 S7 地址写法,而是将 S7 地址从“文本标识”升级为贯穿配置、存储、通信和应用的结构化数据资产。
参考资料
西门子官方资料:
- S7-1200:CPU 数据区与绝对地址的组成