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 64 | 64 字节 | 您的变量可以放在前 64 字节内。较小的循环数据 |
| User Data 464 | 464 字节 | 您需要使用第 64 字节及以后的任何字节,例如长字符串或多个变量 |
当您在 PROFINET 相机上于偏移量 64 或更大位置添加变量时,Add variable 表单会提示:Arrives only with the User Data 464 module.
如果变量位于 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 或错误值,请先检查那里的字节,然后再检查模块大小和偏移量。
下一步
- Variables:在 PLC User Data 上添加变量
- Industrial Ethernet:设置 EtherNet/IP 或 PROFINET
- PLC handshakes:触发和结果信号