若三菱FX5S PLC使用MX Component连接上位机失败,可按照以下步骤排查和解决:
一、检查硬件连接与配置
确认物理连接
使用GX Works3软件设置PLC的IP地址(如
192.168.1.10
),确保与上位机IP在同一网段(如上位机IP为192.168.1.20
)。避免IP冲突,可通过命令提示符输入
ping 192.168.1.10
测试网络连通性。网线连接:确保PLC与上位机通过网线直连,或通过交换机/路由器在同一局域网内。
端口状态:检查PLC的以太网端口指示灯是否亮起,确认物理连接正常。
IP地址设置:
检查PLC运行状态
确保PLC处于
RUN
模式,而非STOP
或DEBUG
模式。在GX Works3中确认PLC的通信参数(如端口号、协议类型)与MX Component设置一致。
二、MX Component软件配置
安装与注册
从三菱官网下载最新版MX Component(如V5.0),按提示安装并输入序列号(如
117-570766844
)。安装完成后,以管理员身份运行
Communication Setup Utility
,避免权限不足导致配置失败。设置逻辑站点
打开
Communication Setup Utility
,点击Wizard
创建新站点。设置逻辑站点号(如
1
),选择PC端接口为Ethernet board
,PLC端选择CPU module
。输入PLC的IP地址(如
192.168.1.10
),协议选择TCP
,超时时间设为10000ms
。测试连接
在
Connection Test
选项卡中点击Test
,若返回Communication test is successful
且Result=0
,则连接成功。若失败,检查防火墙设置,确保未阻止MX Component的通信端口(如默认端口
5562
)。
三、上位机程序配置(以C#为例)
引用MX Component库
在Visual Studio项目中引用
AxInterop.ActUtlTypeLib.dll
和Interop.ActUtlTypeLib.dll
(位于MX Component安装目录)。添加命名空间:
csharpusing AxACTUTLLib;using System.Runtime.InteropServices;
初始化连接对象
创建MX Component对象并设置参数:
csharpAxActUtlType axActUtlType1 = new AxActUtlType();axActUtlType1.ActCpuType = 0xD5; // FX5S CPU类型axActUtlType1.ActUnitType = 0x002C; // 以太网连接axActUtlType1.ActProtocolType = 0x0005; // TCP协议axActUtlType1.ActHostAddress = "192.168.1.10"; // PLC IPaxActUtlType1.ActLogicalStationNumber = 1; // 与MX Component设置的站点号一致
打开连接并读写数据
尝试连接PLC并读取数据:
csharpint result = axActUtlType1.Open();if (result == 0){// 读取D100的值short value;axActUtlType1.GetDevice("D100", out value);Console.WriteLine($"D100的值: {value}");axActUtlType1.Close();}else{Console.WriteLine($"连接失败,错误码: {result}");}
四、常见问题与解决
错误码
0x80040154 (REGDB_E_CLASSNOTREG)
原因:开发平台设置为
AnyCPU
,导致32位/64位不兼容。解决:在Visual Studio中右键项目→属性→生成,将目标平台改为
x86
。连接超时或拒绝
使用
ping
命令测试网络连通性。临时关闭防火墙或添加MX Component为信任程序。
检查PLC的IP地址是否被其他设备占用。
原因:IP地址错误、网络不通或防火墙拦截。
解决:
PLC无响应
确认PLC处于
RUN
模式。尝试用GX Works3直接连接PLC,测试通信功能是否正常。
原因:PLC未运行或通信模块故障。