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 64 | 64 字节 | 您的变量可以放入前 64 字节。较小的循环数据 |
| User Data 464 | 464 字节 | 您需要使用 64 字节之后的任何字节,例如长字符串或大量变量 |
当您在 PROFINET 相机上添加偏移量为 64 或更大的变量时,添加变量表单会提示:仅在使用 User Data 464 模块时到达。
如果变量所处的字节未被 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 或错误的值,请先在这里检查字节,然后再检查模块大小和偏移量。
后续步骤
- Variables:在 PLC 用户数据中添加变量
- Industrial Ethernet:设置 EtherNet/IP 或 PROFINET
- PLC handshakes:trigger 和结果信号