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 检视器配置网络设置和通信参数:

Unity Inspector 中的 EthernetIP 接口组件及所有配置属性

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 中进行以下配置:

  1. 网络配置:配置以太网模块,静态 IP 地址可从 Unity 应用程序访问
  2. 标签创建:创建控制器作用域标签或程序作用域标签,供 realvirtual.io 访问
  3. 数据类型:使用支持的数据类型(REAL、BOOL、INT、SINT、DINT)以获得最佳兼容性
  4. 安全性:确保控制器的安全设置允许外部读写访问

标签命名约定示例:

  • 控制器标签:ConveyorSpeedSystemEnabledProductCount
  • 程序标签:Program:MainSequence.StepNumberProgram:Safety.EmergencyStop
  • 数组元素:ProductData[0]AxisPosition[3]

Omron NJ/NX 系列设置

对于使用 Sysmac Studio 的 Omron 控制器:

  1. EtherNet/IP 配置:在网络配置中启用 EtherNet/IP 适配器功能
  2. 标签定义:创建具有适当数据类型的全局变量
  3. 网络设置:使用静态 IP 地址配置内置 EtherNet/IP 端口

Micro800 配置

Micro800 系列控制器需要简化配置:

  1. 以太网配置:在 Connected Components Workbench 中设置静态 IP 地址
  2. 路径设置:在 realvirtual.io 检视器中留空 Path 字段
  3. 标签访问:使用简单标签名称,无需程序限定符

Signal Configuration

手动信号设置

信号可以手动创建,以精确控制标签映射和配置。当需要连接到特定 PLC 标签而不导入整个信号表时,这很有用。

手动创建信号

  1. 创建子游戏对象:右键单击 EtherNet/IP 接口游戏对象并创建空子游戏对象
  2. 添加信号组件:根据数据流添加适当的 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 值:

OriginDataTypePLC 数据类型realvirtual 信号类型描述
BOOL布尔值PLCInputBool/PLCOutputBool单位
SINT8 位有符号整数PLCInputInt/PLCOutputInt-128 到 127
INT16 位有符号整数PLCInputInt/PLCOutputInt-32,768 到 32,767
DINT32 位有符号整数PLCInputInt/PLCOutputInt-2,147,483,648 到 2,147,483,647
REAL32 位浮点PLCInputFloat/PLCOutputFloatIEEE 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 导入过程:

  1. 从编程软件导出标签列表
  2. 按照所需列结构格式化
  3. 使用检视器中的按钮浏览选择 CSV 文件
  4. 点击导入自动创建信号游戏对象

CSV 要求:

  • CSV 文件中不需要标题行
  • 列顺序:Symbol、Direction (INPUT/OUTPUT)、Type、Comment
  • Type 必须精确匹配支持的数据类型:REAL、BOOL、INT、SINT、DINT
  • Symbol 必须与 PLC 程序中的标签名称精确匹配

数据类型

EtherNet/IP 接口支持以下 PLC 标签与 realvirtual.io 信号之间的数据类型映射:

PLC 数据类型realvirtual 信号类型描述值范围
REALPLCInputFloat / PLCOutputFloat32 位 IEEE 浮点±3.4 × 10^38
BOOLPLCInputBool / PLCOutputBool单位布尔true/false
INTPLCInputInt / PLCOutputInt16 位有符号整数-32,768 到 32,767
SINTPLCInputInt / PLCOutputInt8 位有符号整数-128 到 127
DINTPLCInputInt / PLCOutputInt32 位有符号整数-2,147,483,648 到 2,147,483,647

使用示例

基本设置工作流

  1. 添加接口组件:创建空游戏对象并添加 EthernetIPInterface 组件
  2. 配置网络设置:设置 IP-Address 为 PLC 的以太网地址
  3. 设置 PLC 参数:配置 Path、PLCType、Protocol
  4. 测试连接:使用检视器中的按钮验证配置
  5. 导入信号:使用 CSV 导入或手动创建信号子对象
  6. 运行时操作:场景启动时接口自动处理读写周期

故障排除

连接问题

无法连接到 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 - 保留所有权利。未经出版商事先书面许可,不得以任何形式或任何方式(包括打印、保存、影印、录制或其他电子或机械方法)复制、分发或传播本出版物的任何部分。