跳到主要内容

AI 驱动文档

您想了解什么?

PLC 用户数据

用户数据是 PLC 通过工业以太网写入相机的一块最大 464 字节的数据。相机本身并不解释这些字节。您通过在某个字节偏移处添加变量来赋予它们含义,例如在字节 0 到 15 处放置一个 16 字符的序列号。

用户数据偏移范围为 0 到 463。添加变量时,您在偏移量 (byte) 中输入的就是这个数字。全部 464 字节是否都能到达相机,取决于所使用的协议;在 PROFINET 上,还取决于您 PLC 项目中所使用的模块。

哪些字节会到达​

您的 PLC 项目相机接收的用户数据字节
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 或更大的变量时,添加变量表单会提示:仅在使用 User Data 464 模块时到达。

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

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

字节在 PLC 中的位置​

用户数据在相机自身的控制字节之后开始,因此第一个用户数据字节并非 PLC 输出数据的第 0 字节:

协议用户数据字节 n 的位置
EtherNet/IP,使用从 EDS 添加的相机标签 UserData[n]
EtherNet/IP,作为通用以太网模块 (Generic Ethernet Module)输出组件的 DATA[32 + n]。用户数据字节 0 为 DATA[32]
PROFINET槽位 14 中 User Data 模块的字节 n

在工业以太网下选择协议后,添加变量表单会在PLC 写入位置下显示您所选偏移量对应的这些地址,因此您无需手动计算。在 EtherNet/IP 上,它会同时列出 Rockwell UDT 标签和通用以太网模块地址。

字节顺序​

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

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

从 PLC 按其正常格式写入数值,即可正确到达。只有当您逐字节构建数值时(例如在 BYTES 数组中),字节顺序才会有影响。

相机读取字节的时机​

  • 每当字节发生变化时,相机就会解码用户数据,因此变量始终与 PLC 最后写入的字节保持同步。
  • 每次检测会保存各工具完成时变量所持有的值。请让 PLC 在拉起 trigger 之前写入用户数据。
  • 未连接 PLC 时不会进行解码,每个变量会保留其上一次的值。

检查 PLC 发送的内容​

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

后续步骤​