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 中,可通过以下方式添加到场景:
- 菜单方式:选择 Tools > realvirtual > Add Interface > Mitsubishi McpX (Pro)
- 手动方式:将
MitsubishiMcpXInterface脚本添加到空的 GameObject 上
接口文件位于:Assets/realvirtual/Interfaces/Mitsubishi/
属性

连接设置
- 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 连接:
- GX Works3 配置:
- 在 GX Works3 中打开您的项目
- 导航到 Project > Parameter > Ethernet Configuration
- 在端口 5001 上启用 MC Protocol(3E 帧的标准端口)
- 将通信数据代码设置为 Binary(3E 帧格式必需)
- 配置允许的操作(读/写)
- 网络设置:
- 确保 PLC 和 Unity PC 在同一网络中
- 适当配置 IP 地址和子网掩码
- 使用 ping 命令测试连通性
- 安全设置:
- MC Protocol 通常不需要认证
- 确保防火墙允许在配置端口上通信
- 某些 PLC 可能需要启用外部通信
设备注释导出
从 GX Works3 导出设备注释以供导入:
- 导出流程:
- 打开您的 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 列,允许您为每个设备覆盖默认信号方向。当标准基于设备类型的方向不符合您的应用需求时,此功能非常有用。
支持的列标题:InputOutput、Input/Output 或 IO(不区分大小写)
带 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 视角):
| 设备类型 | 默认方向 | 描述 |
|---|---|---|
| X | Input | PLC 输入(传感器)- Unity 模拟传感器,发送给 PLC |
| Y | Output | PLC 输出(执行器)- PLC 发送命令给 Unity |
| M, D, T, C, S | Output | 大多数设备默认从 PLC 读取 |
| SM, SD | Output | 特殊设备从 PLC 只读 |
谨慎使用:为具有明确定义行为的设备类型设置错误的方向可能导致意外结果。例如,Y 设备 (PLC 输出) 不应设置为 "Input",因为它们代表 PLC 的执行器命令。同样,SM/SD (特殊设备) 是系统只读寄存器。只有在完全理解对特定应用的影响时才覆盖方向。
手动信号创建
为精确控制信号配置,您可以手动创建单个 PLC 信号。接口会自动从信号名称解析设备类型和地址。
基本设置流程
- 将接口添加到场景:
- 创建一个空的 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 | 信号组件 | 方向 | 注释 |
|---|---|---|---|---|
| ConveyorStartButton | X0 | PLCInputBool | Input | 传感器 → PLC |
| MotorContactor | Y0 | PLCOutputBool | Output | PLC → 执行器 |
| SystemReady | M100 | PLCOutputBool | Output | 从 PLC 读取标志 |
| SpeedSetpoint | D200 | PLCInputFloat | Input | 向 PLC 发送设定值 |
| ActualSpeed | D201 | PLCOutputFloat | Output | 从 PLC 读取值 |
| DelayTimer | T0 | PLCOutputBool | Output | 从 PLC 读取定时器状态 |
配置总结
- GameObject 名称:在 Unity 层级中便于识别的描述性名称
- Signal Name:Mitsubishi 设备格式 (X100, D200 等) - 用于 PLC 通信
- Comment:关于信号用途和使用的附加文档
CSV 导入
CSV 导入功能支持从 GX Works3 设备注释导出文件快速创建信号,可大幅减少大型系统的设置时间。
在 GX Works3 中准备 CSV 文件
- 导出设备注释:
- 打开您的 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 中的导入流程
- 选择 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:
- 验证 PLC IP 地址是否正确
- 检查 PLC 上是否已启用 MC Protocol
- 使用 ping 命令测试:
ping 192.168.3.39 - 验证防火墙设置是否允许端口 5001
- 检查网线和交换机
连接超时:
- 增加 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 | 物理输入 | Bit | X0-X7FF (hex) |
| Y | 物理输出 | Bit | Y0-Y7FF (hex) |
| M | 内部继电器 | Bit | M0-M8191 |
| L | 锁存继电器 | Bit | L0-L8191 |
| F | 信号继电器 | Bit | F0-F2047 |
| V | 边沿继电器 | Bit | V0-V2047 |
| B | 链接继电器 | Bit | B0-B1FFF (hex) |
| D | 数据寄存器 | Word | D0-D12287 |
| W | 链接寄存器 | Word | W0-W1FFF (hex) |
| T | 定时器触点/当前值 | Bit/Word | T0-T511 |
| C | 计数器触点/当前值 | Bit/Word | C0-C255 |
| S | 状态继电器 | Bit | S0-S4095 |
| SM | 特殊继电器 | Bit | SM0-SM2047 |
| SD | 特殊寄存器 | Word | SD0-SD2047 |
| R | 文件寄存器 | Word | R0-R32767 |
| ZR | 文件寄存器 | Word | ZR0-ZR65535 |
另请参见
外部资源
- McpX Library GitHub - MC Protocol 实现
- Mitsubishi MC Protocol 手册 - 官方协议文档
- GX Works3 文档 - PLC 编程软件
© 2025 realvirtual GmbH https://realvirtual.io - 版权所有。未经出版商事先书面许可,不得以任何形式或任何方式(包括打印、保存、复印、录制或其他电子或机械方法)复制、分发或传播本出版物的任何部分。