EthernetIP(Pro)
EthernetIP 接口仅包含在 realvirtual.io Professional 中
概述
EtherNet/IP 接口使用标准以太网上的通用工业协议(CIP)实现 realvirtual.io 与工业控制器之间的直接通信。EtherNet/IP(工业协议)是北美领先的工业通信协议之一,广泛用于制造、过程控制和混合自动化系统。
此接口提供与主要 PLC 制造商的无缝集成,包括 Allen-Bradley(Rockwell Automation)、Omron 和 Schneider Electric 控制器,实现真正的虚拟调试工作流程,使 Unity 仿真与真实工业硬件直接通信。
主要功能:
- 与 Allen-Bradley ControlLogix、CompactLogix 和 MicroLogix 系统的直接标签通信
- 支持 Omron NJ/NX 系列和 Schneider Electric Modicon 控制器
- 亚 100ms 周期时间的实时双向数据交换
- 从编程软件导出的 CSV 文件批量导入信号
- 内置连接诊断和错误处理
- 适合生产环境的线程安全通信架构
属性
EtherNet/IP 接口需要通过 Unity 检视器配置网络设置和通信参数:

IP-Address(字符串)目标 PLC 或 EtherNet/IP 网关设备的 IP 地址或主机名。使用冒号标记包含可选端口号(例如 192.168.1.100:44819)。标准 EtherNet/IP 使用端口 44818,但某些配置可能需要不同的端口。必须可从 Unity 应用程序的网络段访问。
Path(字符串)CIP 路由路径,指定目标控制器在机箱或背板中的物理位置。对于 Allen-Bradley ControlLogix/CompactLogix 系统,典型值为 1,0(背板位置 1,槽位 0)或 1,2(背板位置 1,槽位 2)。对于通过 DH+ 桥接器通信的 Logix 系统,此路径定义通过多个网络段的路由。对于 Micro800 系列控制器(不需要路由路径),留空。
PLCType(枚举)控制器系列选择,针对特定 PLC 架构优化通信协议行为。可用选项包括:
- controllogix:Allen-Bradley ControlLogix 和 CompactLogix 系统(推荐用于大多数 Rockwell 应用)
- micro800:Allen-Bradley Micro800 系列控制器
- slc500:Allen-Bradley SLC 500 系列 PLC
- plc5:旧版 Allen-Bradley PLC-5 系统
- omron-njnx:Omron NJ 和 NX 系列控制器
Protocol(枚举)通信协议选择,确定用于数据交换的网络层协议:
- ab_eip:Allen-Bradley EtherNet/IP 协议(推荐用于 Rockwell 和兼容系统)
- modbus-tcp:Modbus TCP 协议,用于更广泛的工业设备兼容性
Debug Mode(布尔值)启用额外的通信操作日志记录到 Unity 控制台。启用时,输出信号初始化状态、连接错误和信号操作详细信息。用于解决连接问题并验证信号设置。在生产环境中禁用以减少控制台日志量。
Timeout(整数)单个标签操作的通信超时值(毫秒)。较高的值对网络延迟和 PLC 响应延迟提供更多容差,但降低整体系统响应性。典型范围:1000-10000ms,取决于网络状况和控制器性能。
PLCSignalTable(字符串)批量信号导入的 CSV 格式信号定义表文件路径。使用检视器中的"选择 PLC 信号表"按钮浏览从编程软件(如 RSLogix 5000/Studio 5000)导出的 CSV 文件。选择文件后,点击"导入 PLC 信号表"自动创建信号游戏对象。文件必须遵循特定列格式:Symbol、Direction (INPUT/OUTPUT)、Type、Comment。
UpdateCycle(只读)当前通信周期计数器,每次成功的读/写操作周期递增。提供通信活动和连接健康状况的实时指示。当接口重新连接或重启时,值重置为 0。
Thread Status(只读)显示处理 PLC 数据交换的通信线程的当前状态。显示后台线程是否正在运行、已停止或出现错误。此状态指示确保非阻塞 Unity 性能的并行通信系统的健康状况。
Test Connect(按钮)通过尝试连接到指定的 PLC 来测试当前配置。在 Unity 控制台中显示连接结果。
Select PLC Signal table(按钮)打开文件浏览器选择包含信号定义的 CSV 文件以进行批量导入。
Import PLC signal table(按钮)处理所选 CSV 文件并自动创建信号子游戏对象。
PLC 配置
Allen-Bradley ControlLogix/CompactLogix 设置
对于 Allen-Bradley 控制器,确保在 RSLogix 5000/Studio 5000 中进行以下配置:
- 网络配置:配置以太网模块,静态 IP 地址可从 Unity 应用程序访问
- 标签创建:创建控制器作用域标签或程序作用域标签,供 realvirtual.io 访问
- 数据类型:使用支持的数据类型(REAL、BOOL、INT、SINT、DINT)以获得最佳兼容性
- 安全性:确保控制器的安全设置允许外部读写访问
标签命名约定示例:
- 控制器标签:
ConveyorSpeed、SystemEnabled、ProductCount - 程序标签:
Program:MainSequence.StepNumber、Program:Safety.EmergencyStop - 数组元素:
ProductData[0]、AxisPosition[3]
Omron NJ/NX 系列设置
对于使用 Sysmac Studio 的 Omron 控制器:
- EtherNet/IP 配置:在网络配置中启用 EtherNet/IP 适配器功能
- 标签定义:创建具有适当数据类型的全局变量
- 网络设置:使用静态 IP 地址配置内置 EtherNet/IP 端口
Micro800 配置
Micro800 系列控制器需要简化配置:
- 以太网配置:在 Connected Components Workbench 中设置静态 IP 地址
- 路径设置:在 realvirtual.io 检视器中留空 Path 字段
- 标签访问:使用简单标签名称,无需程序限定符
Signal Configuration
手动信号设置
信号可以手动创建,以精确控制标签映射和配置。当需要连接到特定 PLC 标签而不导入整个信号表时,这很有用。
手动创建信号
- 创建子游戏对象:右键单击 EtherNet/IP 接口游戏对象并创建空子游戏对象
- 添加信号组件:根据数据流添加适当的 PLCInput 或 PLCOutput 组件:
- PLCInputBool/Int/Float:数据从 Unity 流向 PLC(Unity → PLC)— 从 PLC 角度看是 PLC 输入
- PLCOutputBool/Int/Float:数据从 PLC 流向 Unity(PLC → Unity)— 从 PLC 角度看是 PLC 输出
- 配置信号属性:
- Name:输入确切的 PLC 标签名称
- Comment:可选的文档描述
- OriginDataType:指定确切的 PLC 数据类型(对正确通信至关重要)
OriginDataType 配置
OriginDataType 字段告诉接口如何在 PLC 级别解释数据。这对于 PLC 与 Unity 之间的正确数据转换至关重要。
何时设置 OriginDataType:
- 手动创建信号时始终需要
- 从 CSV 或 PLC 发现导入时自动设置
- 必须与 PLC 程序中定义的确切数据类型匹配
常见 OriginDataType 值:
| OriginDataType | PLC 数据类型 | realvirtual 信号类型 | 描述 |
|---|---|---|---|
| BOOL | 布尔值 | PLCInputBool/PLCOutputBool | 单位 |
| SINT | 8 位有符号整数 | PLCInputInt/PLCOutputInt | -128 到 127 |
| INT | 16 位有符号整数 | PLCInputInt/PLCOutputInt | -32,768 到 32,767 |
| DINT | 32 位有符号整数 | PLCInputInt/PLCOutputInt | -2,147,483,648 到 2,147,483,647 |
| REAL | 32 位浮点 | PLCInputFloat/PLCOutputFloat | IEEE 754 单精度 |
手动配置的重要说明
- 标签名称必须精确匹配:Name 字段必须与 PLC 标签名称完全相同,包括大小写
- 数据类型映射:多个 PLC 整数类型(SINT、INT、DINT)都映射到 realvirtual 中的 PLCInputInt/PLCOutputInt
- 布尔输出:由于 EtherNet/IP 协议限制,布尔输出可能在 PLC 中使用 SINT
- 数组访问:在 Name 字段中直接包含数组索引(如
ProductData[0]) - 验证:使用 Debug Mode 在开始播放模式后验证成功的标签连接
自动信号导入
CSV 信号导入
批量信号配置时,创建以下格式的 CSV 文件:
CSV 文件格式:
Symbol,Direction,Type,Comment
ConveyorSpeed,INPUT,REAL,主传送带速度(m/min)
SystemStart,OUTPUT,BOOL,操作员系统启动命令
ProductCount,INPUT,DINT,今天处理的总产品数
EmergencyStop,INPUT,BOOL,安全系统急停状态
CSV 导入过程:
- 从编程软件导出标签列表
- 按照所需列结构格式化
- 使用检视器中的按钮浏览选择 CSV 文件
- 点击导入自动创建信号游戏对象
CSV 要求:
- CSV 文件中不需要标题行
- 列顺序:Symbol、Direction (INPUT/OUTPUT)、Type、Comment
- Type 必须精确匹配支持的数据类型:REAL、BOOL、INT、SINT、DINT
- Symbol 必须与 PLC 程序中的标签名称精确匹配
数据类型
EtherNet/IP 接口支持以下 PLC 标签与 realvirtual.io 信号之间的数据类型映射:
| PLC 数据类型 | realvirtual 信号类型 | 描述 | 值范围 |
|---|---|---|---|
| REAL | PLCInputFloat / PLCOutputFloat | 32 位 IEEE 浮点 | ±3.4 × 10^38 |
| BOOL | PLCInputBool / PLCOutputBool | 单位布尔 | true/false |
| INT | PLCInputInt / PLCOutputInt | 16 位有符号整数 | -32,768 到 32,767 |
| SINT | PLCInputInt / PLCOutputInt | 8 位有符号整数 | -128 到 127 |
| DINT | PLCInputInt / PLCOutputInt | 32 位有符号整数 | -2,147,483,648 到 2,147,483,647 |
使用示例
基本设置工作流
- 添加接口组件:创建空游戏对象并添加 EthernetIPInterface 组件
- 配置网络设置:设置 IP-Address 为 PLC 的以太网地址
- 设置 PLC 参数:配置 Path、PLCType、Protocol
- 测试连接:使用检视器中的按钮验证配置
- 导入信号:使用 CSV 导入或手动创建信号子对象
- 运行时操作:场景启动时接口自动处理读写周期
故障排除
连接问题
无法连接到 PLC:
- 验证 IP 地址是否正确,PLC 是否已上电
- 使用 ping 命令检查网络连接
- 确保 Windows 防火墙允许 EtherNet/IP 通信(端口 44818)
- 验证 PLC 以太网模块配置和 IP 设置
连接超时:
- 在接口属性中增加 Timeout 值(尝试 5000-10000ms)
- 检查网络延迟和带宽可用性
- 验证 PLC 未因其他通信任务而过载
路径配置错误:
- 对于 ControlLogix:使用格式
1,0,其中 1 是背板,0 是槽位号 - 对于 CompactLogix:集成以太网端口通常为
1,0 - 对于 Micro800:留空 Path 字段
通信问题
标签不读写:
- 验证准确的标签名称拼写和大小写敏感性
- 确保标签存在于 PLC 程序中
- 检查 PLC 标签与 realvirtual 信号之间的数据类型兼容性
- 使用 Debug Mode 查看详细通信日志
手动信号配置问题:
- 缺少 OriginDataType:手动创建信号时始终设置 OriginDataType
- 错误的信号组件:确保所有整数类型使用 PLCInputInt
- 标签名称不匹配:Name 字段必须与 PLC 标签精确匹配(区分大小写)
- 方向混淆:记住 PLCInput = Unity→PLC,PLCOutput = PLC→Unity
通信缓慢:
- 减少信号数量或分组相关信号
- 优化 PLC 扫描时间和通信设置
- 检查网络带宽和交换机配置
间歇性连接丢失:
- 检查网线连接和交换机设置
- 验证 PLC 以太网模块是否正确安装
- 监控网络流量是否有拥塞或错误
另请参见
© 2024 realvirtual GmbH https://realvirtual.io - 保留所有权利。未经出版商事先书面许可,不得以任何形式或任何方式(包括打印、保存、影印、录制或其他电子或机械方法)复制、分发或传播本出版物的任何部分。