自定义有效负载
自定义有效负载允许 MQTT 发布者将数据发送到不使用默认有效负载结构的系统。
默认有效负载和自定义有效负载
默认有效负载使用固定的 JSON 结构。自定义有效负载使用字符串格式器模板来更改字段名称、嵌套或纯文本输出。
方面 | 默认有效负载 | 自定义有效负载 |
|---|---|---|
使用案例 | 在接收系统接受内置 JSON 结构时使用。 | 在接收系统需要不同的字段名称、嵌套或纯文本时使用。 |
发布者配置 | 保持 PF Enabled 处于禁用状态。 | 启用 PF Enabled ,然后定义 PF Header ;如果需要,再定义 PFRecord 。 |
重要提示:
MQTT 订阅者需要默认的 JSON 有效负载。本主题介绍适用于 MQTT 发布者的自定义格式。
自定义有效负载可以包含标头和/或记录。例如:
{ "timestamp": "...", "sensors": [ { "name": "MyVariableA", "value": 23 }, { "name": "MyVariableB", "value": true }, { "name": "MyVariableC", "value": "abc" } ] }
通用有效负载结构

FactoryTalk® Optix™
将字符串格式器动态链接与 MQTT 发布者有效负载格式器属性结合使用:PF Enabled
、PF Header
和PFRecord
。
小贴士:
在字符串格式器中,当记录包含多个数据类型时,请选择 JSON 兼容格式。有关更多信息,请参见字符串格式器数据类型。
有效负载格式器组件
PF Header
:- 定义有效负载的标头部分。
- 使用字符串格式器定义 JSON、纯文本或具有动态值的混合文本。
- 可以包含一个或多个变量,例如时间戳或生产线编号。
- 在标头插入记录输出时使用#PFRecord占位符。
- 当多个变量构成一个 JSON 数组时,请在#PFRecord两侧使用方括号。
- 如果文件夹中存在多个变量,FactoryTalk Optix将在创建有效负载期间循环访问这些变量。
PFRecord
:- 定义有效负载的重复记录部分。
- 使用字符串格式器动态链接映射别名条目特性,例如浏览名称和值。
- 当有效负载不使用重复记录时,可以保持空白。
小贴士:
在字符串格式器中,转义第一个左大括号,以防止出现语法错误。使用两个大括号即可完成转义。例如:
{{{0}
自定义有效负载示例
这些示例显示了
PF 头部
和 PF 记录
的字符串格式器格式和动态链接。- PF 头部字符串格式器格式:{"timestamp":"{0:o}","sensors":[#PFRecord]}动态链接 (0):MQTT/MQTTClient/MQTTPublisher/PayloadUpadteTimestamp。占位符{0:o}映射到此链接。占位符#PFRecord将格式化的PF 记录输出插入到传感器数组中。
- PF 记录字符串格式器格式:{"name":"{0}","value":{1}},动态链接 (0):{Item}@BrowseName。占位符{0}映射到此链接。动态链接 (1):{Item}@Value。占位符{1}映射到此链接。
提供反馈