自定义有效负载

自定义有效负载允许 MQTT 发布者将数据发送到不使用默认有效负载结构的系统。

默认有效负载和自定义有效负载

默认有效负载使用固定的 JSON 结构。自定义有效负载使用字符串格式器模板来更改字段名称、嵌套或纯文本输出。
默认有效负载和自定义有效负载比较
方面
默认有效负载
自定义有效负载
使用案例
在接收系统接受内置 JSON 结构时使用。
在接收系统需要不同的字段名称、嵌套或纯文本时使用。
结构
有效负载结构是固定的。有关示例,请参见 MQTT。
标头和/或记录都使用字符串格式器模板。
发布者配置
保持
PF Enabled
处于禁用状态。
启用
PF Enabled
,然后定义
PF Header
;如果需要,再定义
PFRecord
。
订阅者兼容性
MQTT 订阅者需要默认的 JSON 有效负载。请参见默认 JSON 订阅。
本主题仅介绍发布者格式设置。
数组和复杂数据类型
数组仅在采用默认有效负载格式时受支持。有关更多信息,请参见发布复杂数据类型。
发布数组时使用默认的有效负载格式。
重要提示: 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}
    映射到此链接。
有关固定的默认有效负载结构,请参阅MQTT。有关默认有效负载格式的数组和复杂数据类型,请参阅发布复杂数据类型。
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈 。
Normal