跳到主要内容

AI 驱动文档

您想了解什么?

PLC User Data

User Data 是 PLC 通过 Industrial Ethernet 写入相机的最多 464 字节 的数据块。相机本身不会解释这些字节。您通过在字节偏移位置添加变量来赋予它们含义,例如在字节 0 到 15 处放置一个 16 字符的序列号。

User Data 偏移量范围是 0 到 463。这就是您在添加变量时在 Offset (byte) 中输入的数字。所有 464 字节是否都能到达相机,取决于协议,在 PROFINET 上还取决于您 PLC 项目中的模块。

哪些字节会到达​

您的 PLC 项目相机接收到的 User Data 字节
EtherNet/IP全部,0 到 463。连接大小是固定的,无需选择
PROFINET 使用 User Data 464 模块全部,0 到 463
PROFINET 使用 User Data 64 模块仅 0 到 63
PROFINET 未使用 User Data 模块无

在 PROFINET 上,User Data 是一个可选模块,在您的工程工具(例如 TIA Portal)中放在相机的槽位 14。GSDML 文件提供两种大小:

模块大小适用场景
User Data 6464 字节您的变量可以放在前 64 字节内。较小的循环数据
User Data 464464 字节您需要使用第 64 字节及以后的任何字节,例如长字符串或多个变量

当您在 PROFINET 相机上于偏移量 64 或更大位置添加变量时,Add variable 表单会提示:Arrives only with the User Data 464 module.

PLC 未发送的字节会读取为零,而不是空值

如果变量位于 PLC 未发送的字节上(例如在 User Data 64 模块下偏移量 100 处),相机不会将其保留为空。它会将这些字节读取为零,因此变量会变成 0、false 或空字符串,并且每次捕获都会保存该值。使用检查缺失值(null)的程序脚本无法捕获这种情况。请插入 User Data 464 模块,或将变量移到字节 64 以下。

字节在 PLC 中的位置​

User Data 从相机自身的控制字节之后开始,因此第一个 User Data 字节不是 PLC 输出数据的字节 0:

协议User Data 字节 n 对应
EtherNet/IP,使用 EDS 添加相机标签 UserData[n]
EtherNet/IP,作为 Generic Ethernet Module输出组件的 DATA[32 + n]。User Data 字节 0 为 DATA[32]
PROFINET槽位 14 中 User Data 模块的字节 n

在 Industrial Ethernet 下选择协议后,Add variable 表单会在 Where the PLC writes it 下显示您所选偏移量对应的这些地址,因此无需手动计算。在 EtherNet/IP 上,会同时列出 Rockwell UDT 标签和 Generic Ethernet Module 地址。

字节顺序​

超过一个字节的数值(INT、DINT、REAL 等)按现场总线自身的字节顺序读取。相机不会进行任何交换:

协议字节顺序
EtherNet/IP小端序:最低字节在前
PROFINET大端序:最高字节在前

按 PLC 的常规格式写入数值,它们就会正确到达。只有在您逐字节构建值时(例如在 BYTES 数组中),字节顺序才重要。

相机何时读取这些字节​

  • 相机每次有字节发生变化时都会解码 User Data,因此变量始终与 PLC 最后写入的字节保持同步。
  • 每次检测都会在其工具完成时保存变量的当前值。请让 PLC 在发出触发之前写入 User Data。
  • 当没有 PLC 连接时,不会进行解码,每个变量都保留其上一次的值。

检查 PLC 正在发送的内容​

打开 Integration > I/O Live Monitor。Fieldbus User Bytes 会实时显示相机正在接收的字节。如果变量读取为 0 或错误值,请先检查那里的字节,然后再检查模块大小和偏移量。

下一步​