Mitsubishi McpX (Professional)

⚠️

Beta 接口:此接口目前处于 Beta 阶段。如果您遇到任何问题或需要帮助,请联系 realvirtual 支持或通过我们的社区论坛。

Mitsubishi McpX 接口通过 McpX 库使用 MC Protocol 3E/4E 帧格式,提供与 Mitsubishi PLC 的高性能通信。

概述

Mitsubishi McpX 接口支持 Unity 仿真与 Mitsubishi Q、L、R、iQ-R 和 iQ-F 系列 PLC 之间的实时双向数据交换。此 Professional 专用接口使用 MC Protocol (MELSEC Communication Protocol) 的 3E/4E 帧格式进行可靠的工业通信。其核心特性是智能批量读取优化,可自动将信号分组为高效的读取操作,与逐个信号读取相比,网络流量可减少、吞吐量可提升高达 30 倍。

该接口支持所有主要的 Mitsubishi 设备类型,包括物理输入/输出 (X/Y)、内部继电器 (M)、数据寄存器 (D)、定时器 (T)、计数器 (C)、状态继电器 (S) 和特殊设备 (SM/SD)。通信使用 FastInterface 架构在后台线程中运行,确保 Unity 性能流畅的同时保持可靠的 PLC 连接。

ℹ️

此接口需要 realvirtual Professional,并使用 McpX 库 (https://github.com/YudaiKitamura/McpX) 实现 MC Protocol。

安装

Mitsubishi McpX 接口包含在 realvirtual Professional 中,可通过以下方式添加到场景:

  1. 菜单方式:选择 Tools > realvirtual > Add Interface > Mitsubishi McpX (Pro)
  2. 手动方式:将 MitsubishiMcpXInterface 脚本添加到空的 GameObject 上

接口文件位于:Assets/realvirtual/Interfaces/Mitsubishi/

属性

Mitsubishi McpX 接口 Inspector

连接设置

  • IP Address (string): Mitsubishi PLC 的 IP 地址。默认:"192.168.3.39"
  • Port (int): MC Protocol 通信端口。默认:5001(MC Protocol 3E/4E 帧的标准端口)
  • Connection Timeout (int): 最大连接建立时间(毫秒)。默认:5000
ℹ️

接口默认使用 MC Protocol 3E 二进制帧格式TCP 传输。这些是 Mitsubishi Q、L、R、iQ-R 和 iQ-F 系列 PLC 的优化设置,无法更改。

批量优化

通过将多个信号读取分组为单个网络操作,可大幅提升通信效率,性能提升高达 30 倍。

  • Optimize Batch Reads (boolean): 启用自动信号分组以实现高效读取。默认:true
  • Max Gap Size (int): 同一批次中信号之间的最大地址间隔。默认:5
  • Min Batch Size (int): 触发批量读取所需的最小信号数量。默认:3
  • Max Batch Size Bits (int): 位设备 (X, Y, M 等) 的最大批量大小。默认:960(MC Protocol 限制)
  • Max Batch Size Words (int): 字设备 (D, W, R 等) 的最大批量大小。默认:120(MC Protocol 限制)

GX Works3 导入

提供与 GX Works3 设备注释导出文件的无缝集成,实现快速信号配置。

  • GX Works3 CSV File (string): 设备注释 CSV 导出文件路径。使用 Select CSV File 按钮浏览
  • Use Standard GX Format (boolean): 使用标准 GX Works3 CSV 格式 (Device,Comment,Data Type,Initial Value)。默认:true
  • Create Device Hierarchy (boolean): 按设备类型组织导入的信号(物理输入 (X)、物理输出 (Y) 等)。默认:true
  • Import Comments (boolean): 使用设备注释作为信号名称以便于识别。默认:true
  • Max Import Devices (int): 导入设备的安全限制,防止内存问题。默认:1000
  • Validate Device Addresses (boolean): 导入前检查设备地址的有效性。默认:true

设备类型筛选

控制从 CSV 文件中导入哪些设备类型。

  • Import Physical Inputs (boolean): 导入 X 设备(传感器、按钮、开关)。默认:true
  • Import Physical Outputs (boolean): 导入 Y 设备(执行器、指示灯、阀门)。默认:true
  • Import Internal Relays (boolean): 导入 M 设备(内部存储位)。默认:true
  • Import Data Registers (boolean): 导入 D 设备(16 位数据存储)。默认:true
  • Import Timers (boolean): 导入 T 设备(定时器当前值和触点)。默认:true
  • Import Counters (boolean): 导入 C 设备(计数器当前值和触点)。默认:true
  • Import State Relays (boolean): 导入 S 设备(状态/步进继电器)。默认:true
  • Import Special Devices (boolean): 导入 SM/SD 设备(系统特殊继电器和寄存器)。默认:false

PLC 配置

启用 MC Protocol

配置 Mitsubishi PLC 以接受 MC Protocol 连接:

  1. GX Works3 配置
    • 在 GX Works3 中打开您的项目
    • 导航到 Project > Parameter > Ethernet Configuration
    • 在端口 5001 上启用 MC Protocol(3E 帧的标准端口)
    • 将通信数据代码设置为 Binary(3E 帧格式必需)
    • 配置允许的操作(读/写)
    • 网络设置
    • 确保 PLC 和 Unity PC 在同一网络中
    • 适当配置 IP 地址和子网掩码
    • 使用 ping 命令测试连通性
    • 安全设置
    • MC Protocol 通常不需要认证
    • 确保防火墙允许在配置端口上通信
    • 某些 PLC 可能需要启用外部通信

设备注释导出

从 GX Works3 导出设备注释以供导入:

  1. 导出流程
    • 打开您的 GX Works3 项目
    • 导航到 Project > Export > Device Comment
    • 选择 CSV 格式
    • 选择要导出的设备
    • 使用有意义的文件名保存
    • CSV 格式

   Device,Comment,Data Type,Initial Value
   X0,Start Button,Bit,0
   Y0,Motor Output,Bit,0
   D100,Speed Setpoint,Word[Signed],0
   M100,System Ready,Bit,0

可选 InputOutput 列

ℹ️

此功能从 realvirtual 6.3 开始可用。

CSV 导入支持可选的 InputOutput 列,允许您为每个设备覆盖默认信号方向。当标准基于设备类型的方向不符合您的应用需求时,此功能非常有用。

支持的列标题InputOutputInput/OutputIO(不区分大小写)

带 InputOutput 列的 CSV 格式


Device,Comment,Data Type,Initial Value,InputOutput
D0,Rx000,Word[Signed],0,Input
D1,Rx001,Word[Signed],0,Output
D2,Rx002,Word[Signed],0,
M0,System Flag,Bit,0,Output

行为

  • 列存在且有值:指定的方向("Input" 或 "Output")覆盖默认值
  • 列存在但为空:使用基于设备类型的默认方向
  • 列不存在:使用基于设备类型的默认方向

按设备类型的默认方向(从 PLC 视角):

设备类型默认方向描述
XInputPLC 输入(传感器)- Unity 模拟传感器,发送给 PLC
YOutputPLC 输出(执行器)- PLC 发送命令给 Unity
M, D, T, C, SOutput大多数设备默认从 PLC 读取
SM, SDOutput特殊设备从 PLC 只读
⚠️

谨慎使用:为具有明确定义行为的设备类型设置错误的方向可能导致意外结果。例如,Y 设备 (PLC 输出) 不应设置为 "Input",因为它们代表 PLC 的执行器命令。同样,SM/SD (特殊设备) 是系统只读寄存器。只有在完全理解对特定应用的影响时才覆盖方向。

手动信号创建

为精确控制信号配置,您可以手动创建单个 PLC 信号。接口会自动从信号名称解析设备类型和地址。

基本设置流程

  1. 将接口添加到场景
    • 创建一个空的 GameObject 并命名为 "MitsubishiPLC"
    • 添加 MitsubishiMcpXInterface 组件
    • 配置连接设置(IP 地址和端口)
    • 创建信号 GameObject
    • 在层级视图中右键点击接口 GameObject
    • 选择 Create Empty 添加子 GameObject
    • 为其指定描述性名称(如 "ConveyorStartButton"、"MotorSpeedSetpoint"、"SystemReady")
    • 添加信号组件
    • 选择信号 GameObject
    • 根据设备类型添加适当的 PLC 信号组件:
    • PLCInputBool - 向 PLC 发送布尔值(用于 X 设备 - 传感器)
    • PLCOutputBool - 从 PLC 读取布尔值(用于 Y、M 设备 - 执行器、标志)
    • PLCInputFloat - 向 PLC 发送数值(用于作为设定值的 D 设备)
    • PLCOutputFloat - 从 PLC 读取数值(用于 D 设备 - 状态值)
    • 配置信号属性
    • Name:设置为 Mitsubishi 设备格式(如 "X100"、"D200"、"M5")
    • Comment:添加描述信号用途的文档
ℹ️

设备解析:接口自动从 Signal Name 属性(不是 GameObject 名称)中提取设备类型和地址。例如:

* Signal Name "X100" → DeviceType: "X", Address: "100"

* Signal Name "D200" → DeviceType: "D", Address: "200"

* Signal Name "M5" → DeviceType: "M", Address: "5"

信号配置示例

GameObject 名称Signal Name信号组件方向注释
ConveyorStartButtonX0PLCInputBoolInput传感器 → PLC
MotorContactorY0PLCOutputBoolOutputPLC → 执行器
SystemReadyM100PLCOutputBoolOutput从 PLC 读取标志
SpeedSetpointD200PLCInputFloatInput向 PLC 发送设定值
ActualSpeedD201PLCOutputFloatOutput从 PLC 读取值
DelayTimerT0PLCOutputBoolOutput从 PLC 读取定时器状态

配置总结

  • GameObject 名称:在 Unity 层级中便于识别的描述性名称
  • Signal Name:Mitsubishi 设备格式 (X100, D200 等) - 用于 PLC 通信
  • Comment:关于信号用途和使用的附加文档

CSV 导入

CSV 导入功能支持从 GX Works3 设备注释导出文件快速创建信号,可大幅减少大型系统的设置时间。

在 GX Works3 中准备 CSV 文件

  1. 导出设备注释
    • 打开您的 GX Works3 项目
    • 导航到 Project > Export > Device Comment
    • 从导出选项中选择 CSV format
    • 选择要导出的设备范围
    • 保存到 Unity 可访问的位置
    • 验证 CSV 格式:导出的 CSV 应遵循以下结构:

   Device,Comment,Data Type,Initial Value
   X0,Start Button,Bit,0
   X1,Stop Button,Bit,0
   Y0,Motor Contactor,Bit,0
   Y1,Status Light,Bit,0
   D100,Speed Setpoint,Word[Signed],1500
   D101,Temperature Reading,Word[Signed],0
   M0,System Ready,Bit,0
   M1,Auto Mode Active,Bit,0

Unity 中的导入流程

  1. 选择 CSV 文件
    • 在 Mitsubishi McpX 接口 Inspector 中
    • 点击 Select CSV File 按钮
    • 导航到您导出的 CSV 文件
    • 点击 Open 加载文件路径
    • 配置导入设置
    • Use Standard GX Format:保持启用以适配 GX Works3 导出
    • Create Device Hierarchy:启用以按设备类型组织信号
    • Import Comments:启用以使用设备注释作为信号名称
    • Max Import Devices:设置安全限制(默认 1000)
    • Validate Device Addresses:保持启用以捕获错误
    • 筛选设备类型:仅启用您需要的设备类型:
    • Physical Inputs (X):传感器、按钮、开关
    • Physical Outputs (Y):执行器、指示灯、阀门
    • Internal Relays (M):逻辑标志和状态位
    • Data Registers (D):数值和参数
    • Timers (T):定时器当前值和触点
    • Counters (C):计数器值和触点
    • State Relays (S):步进序列控制
    • Special Devices (SM/SD):通常禁用
    • 执行导入
    • 点击 Import from CSV 按钮
    • 监控 Unity Console 查看导入进度和任何警告
    • 在层级视图中查看创建的信号

导入后组织

成功导入后,您将获得:

  • 已组织的层级:信号按设备类型分组(如已启用)
  • 已命名的信号:使用设备注释作为有意义的名称
  • 已配置的地址:所有设备类型和地址已正确设置
  • 即用信号:立即可用于连接仿真组件

导入验证和故障排除

常见 CSV 问题

  • 编码问题:确保 CSV 保存为 UTF-8
  • 格式不匹配:验证列顺序与 GX Works3 标准匹配
  • 无效地址:检查设备地址中的拼写错误
  • 大量导入:考虑将非常大的文件拆分为较小的段

导入后验证

  • 检查 Unity Console 中是否有任何导入警告或错误
  • 验证信号名称是否符合预期
  • 在连接所有组件之前,先用少量示例信号测试连通性
  • 检查批量优化设置以确保与您的信号布局获得最佳性能

故障排除

连接问题

无法连接到 PLC

  1. 验证 PLC IP 地址是否正确
  2. 检查 PLC 上是否已启用 MC Protocol
  3. 使用 ping 命令测试:ping 192.168.3.39
  4. 验证防火墙设置是否允许端口 5001
  5. 检查网线和交换机

连接超时

  • 增加 Connection Timeout 值
  • 如果使用优化,减小批量大小
  • 检查网络延迟
  • 验证 PLC 扫描时间是否过长

导入问题

CSV 导入失败

  • 验证 CSV 格式与 GX Works3 标准匹配
  • 检查文件编码(推荐 UTF-8)
  • 确保设备地址有效
  • 查看控制台日志中的具体错误

信号不更新

  • 验证 PLC 处于 RUN 模式
  • 检查信号方向:X 设备应为 Input (Unity → PLC),Y 设备应为 Output (PLC → Unity)
  • 确保设备地址与 PLC 程序匹配
  • 检查批量优化设置

性能问题

更新速率慢

  • 启用批量优化
  • 调整 Max Gap Size 以获得更好的分组
  • 增加 Min Batch Size 以减少操作
  • 检查网络带宽和延迟

通信期间 Unity 卡顿

  • 接口在后台线程中运行
  • 检查控制台中的异常
  • 验证信号数量合理(<5000)
  • 考虑拆分为多个接口

支持的设备类型

接口支持所有标准 Mitsubishi 设备类型:

设备描述数据类型地址范围
X物理输入BitX0-X7FF (hex)
Y物理输出BitY0-Y7FF (hex)
M内部继电器BitM0-M8191
L锁存继电器BitL0-L8191
F信号继电器BitF0-F2047
V边沿继电器BitV0-V2047
B链接继电器BitB0-B1FFF (hex)
D数据寄存器WordD0-D12287
W链接寄存器WordW0-W1FFF (hex)
T定时器触点/当前值Bit/WordT0-T511
C计数器触点/当前值Bit/WordC0-C255
S状态继电器BitS0-S4095
SM特殊继电器BitSM0-SM2047
SD特殊寄存器WordSD0-SD2047
R文件寄存器WordR0-R32767
ZR文件寄存器WordZR0-ZR65535

另请参见

外部资源

© 2025 realvirtual GmbH https://realvirtual.io - 版权所有。未经出版商事先书面许可,不得以任何形式或任何方式(包括打印、保存、复印、录制或其他电子或机械方法)复制、分发或传播本出版物的任何部分。