上位机通过MX component version4组件与三菱PLC通信解决办法,最新MX component version5支持X64

  • 第一节:MX Component Version软件与手册下载
  • 第二节:MX Component Version 软件的使用与通信测试
    • 2.1 PLC以太网地址设置:
      • 2.11 查询电脑的IP地址:
      • 2.12 打开GX works2 与PLC进行通信测试
      • 2.13 测试PLC IP地址:
    • 2.2 打开MX Version4 软件进行组件与PLC间通信测试
      • 2.21 MX Version4软件
  • 第三节:C# 与PLC通信测试
    • 3.1 以太网连接用到的参数列表:
      • 1.ActCpuType:
      • 2.ActUnitType:
      • 3.ActProtocolType
      • 4.ActTimeOut
      • 5.ActHostAddress
      • 6.ActDestinationPortNumber
    • 3.2 C# winform界面
      • 3.21 C# 程序实现组件引用
      • 3.22 C# Demo样例窗体:
      • 结束语

注1:适用编程语言: VC/C++、VB、C#、LabView等
注2:本说明仅提供C#编写的样板实例及原代码,仅用于通信测试,而其它编程语言请参考C#实例的参数设置,自行研习:

第一节:MX Component Version软件与手册下载

下载地址:
三菱MXComponent Version4

三菱MXComponent Version5

可供下载的是:MX组件版本4/5(中文版)
手册位置:

注3:本说明主要使用的是MX组件版本4编程手册(英文版),通信要用到的参数请在此手册中去查询.该手册支持FX5U相关参数,如有需要中文版本,可在三菱中文官网上自行下载.

第二节:MX Component Version 软件的使用与通信测试

在与上位机通信测试之前,首先与MX Component Version软件进行通信测试。

注:以下测试步骤Mx Component Version4与Mx Component Version5 没有多大区别

2.1 PLC以太网地址设置:

2.11 查询电脑的IP地址:

在win7 系统左下方,点击开始按钮,然后在搜索程序和文件选框中输入CMD,打开命令提示符窗口;

在命令提示符中输入 ipconfig,然后按回车键:
显示当前电脑的IP地址:

因为当前样例的电脑IP为192.168.1.171;那么设置PLC的IP段则在192.168.1.0~192.168.1.255这个范围里。

注4:必须与电脑IP区别开来,不能写成一样的

2.12 打开GX works2 与PLC进行通信测试

注5:使用USB或串口(不能用网线)与电脑直连进行PLC的IP设置

打开GX Works2软件,然后点击新建(Ctrl+N):

选择与目标PLC相同的型号,然后点击确定:

注6:本样例是以Q26UDV为例来测试.

然后在导航栏选定连接目标,然后双击Connection1:

打开连接目标设置Connection1窗口进行设置:

双击计算机侧I/F的 Serial USB 图标:

选择USB连接选项,然后点击确定。
双击可编程控制器侧I/F栏 PLC Module图标:


在CPU模式的下拉选框里,选择QCPU(Q模式),然后点击确定。
双击其他站指定栏 No Specification 图标:
根据需要来设定,然后点击确定。

注7:无特殊要求的话,选择默认即可

以上的设置完成后,然后单击通信测试(T)按钮,如果弹出以下的提示,则说明USB连接成功:

点击确定后,退出该设置界面。
然后在导航栏选定工程,然后双击PLC参数:

打开PLC参数设置界面,选择内置以太网端口设置,如下图所示:

当前样例的IP地址设置为192.168.1.39,其它的选择默认。

注8:保证IP地址的范围在【192.168.1.0~192.168.1.255】之间,且不与电脑IP相同即可

如果不确定你的输入是否与其它PLC地址有冲突,可点击检查进行确认。
如果输入无冲突将会有如下提示:

确认无误后,点击设置结束按钮退出PLC参数设置界面。

点击转换/编译(C),选择转换+编译(C)或者按F4快捷键进行编译转换。

然后点击PLC写入(W)按钮进行地址写入:

然后选择参数+程序选项,点击执行进行写入操作:

操作完成后,关闭GX Works2软件。拔掉USB线,换上网线,然后进行下一步操作。

2.13 测试PLC IP地址:

在命令提示符中输入 ping 192.168.1.39 测试连接状态:

出现以上的信息,则说是电脑与PLC连接成功。

2.2 打开MX Version4 软件进行组件与PLC间通信测试

2.21 MX Version4软件

在win7 系统左下方,点击开始按钮,然后单击所有程序,在下拉菜单中选择MELSOFT-MX Component-Communication Setup Utility,打开软件设置窗口:

注:以下软件测试步骤Mx Component Version4与Mx Component Version5 没有多大区别。

注9:为防止出现不必要的权限问题,请右键以管理员权限运行

打开如下图所示:

点击Wizard按钮,将出现以下界面:

Logical station number输入数字1即可,然后点击Next。

在PC side I/F 选择Ethernet board,如上图所示:

在Connect module 下拉选框中选择 CPU module,如上图所示,

在 Protocol 下拉选框中选择TCP。
下面的Time Out的值 默认值就可以了,也可以选填为10000ms
然后点击NEXT按钮,弹出如下图所示:

可以在Host(IP Address)一栏中输入192.168.1.39,或者点击Find CPU(Built-in Ethernet port) on network 按钮进行自动查找。出现如下图所示:

选中目标PLC的型号,然后点击OK.

注10:如有多个同时连接的话,请注意所选目标PLC是否匹配

如进行Find CPU(Built-in Ethernet port)这个动作的话,下图所示的界面的相关参数会自动填写,如没有,则需要手动进行选择。

注11:如有多个CPU同时组合的话,请确定当前目标放在几号位置,如只有单个的话,默认为None.


与之前的的Logical station number 保持一致。点击Finish按钮,返回。

在connetion test 界面,点击Test按钮 进行测试,如出现以下信息,则说明通信连接成功。


完成上面所示操作,如果流程没有出错,且出现上图所示信息,说明MX Component Version4/5的组件完全可用于上位机上。

第三节:C# 与PLC通信测试

3.1 以太网连接用到的参数列表:

ActCpuType CPU型号 int类型
ActUnitType 设备连接方式 int类型(即设备型号)
ActProtocolType TCP/UDP int类型
ActTimeOut 连接超时时间 int类型
ActHostAddress 设备IP地址 string类型
ActDestinationPortNumber 端口号 int类型
本样例以Q26UDV为例,可在MX Component Version4 编程手册中查询相关参数信息:

1.ActCpuType:

查手册可得:
ActCpuType=0xD5; 转换成十进制 ActCpuType=213

2.ActUnitType:

查手册可得:
ActCpuType=0x2c; 转换成十进制 ActCpuType=44

3.ActProtocolType

查手册可得:
ActProtocolType=0x05; 转换成十进制 ActProtocolType =5

4.ActTimeOut

查手册可得:
ActTimeOut=10000 ms;

5.ActHostAddress

之前设置的PLC的IP地址为:192.168.1.39;

6.ActDestinationPortNumber

查手册可得:
ActDestinationPortNumber=5562;默认值为0;可以自己设定,但是对数据进行读写操作时,端口号要保持一致.

注:以上参数可通用,Mx Component Version4与Mx Component Version5 不同在于dll的引用方法不一样,具体方法可借鉴官方样例文档。
注:官方样例路径在 C:\MELSEC\Act\Samples\Vcs.NET\Act_2019文件夹下

3.2 C# winform界面

3.21 C# 程序实现组件引用

32位引用方法:

与PLC通信相关的组件具体两个文件在文件夹中体现的是:

工具箱中添加选项卡:


选择ActProgType Control v1.0 组件

点击确定后,在工具箱中会多出如下图所示的控件:

将如上图所示的控件用鼠标拖到窗体中,系统将自动引用如下图所示的两个组件:

其他的具体参考样例原代码

64位引用:

右键点击引用,选择浏览,找到上面的ActProgType64.exe文件,点击确定,将出现以下组件:

注I:如以上操作在文件执行时出现异常,强烈建议关闭杀毒软件;
注II:如在类库中引用此ActProgType64.exe文件,生成可引用的dll时,请将目标平台设成Any CPU,不要设置成X64(如果您现在使用的是最新的VS2022,请无视此注);

3.22 C# Demo样例窗体:


样例程序代码如下:

namespace Demo
{public partial class Form1 : Form{ActProg actprog = new ActProg();public Form1(){InitializeComponent();}private void TB_CpuType_TextChanged(object sender, EventArgs e){actprog.CpuType = Convert.ToInt32(TB_CpuType.Text.Trim());}private void TB_UnitType_TextChanged(object sender, EventArgs e){actprog.UnitType = Convert.ToInt32(TB_UnitType.Text.Trim());}private void TB_HostAddress_TextChanged(object sender, EventArgs e){actprog.HostAddress = TB_HostAddress.Text.Trim();}private void TB_ProtocolType_TextChanged(object sender, EventArgs e){actprog.ProtocolType = Convert.ToInt32(TB_ProtocolType.Text.Trim());}private void TB_TimeOut_TextChanged(object sender, EventArgs e){actprog.TimeOut = Convert.ToInt32(TB_TimeOut.Text.Trim());}private void button1_Click(object sender, EventArgs e){if (actprog.Open()==0){MessageBox.Show("连接成功");}else{MessageBox.Show("连接失败");}}private void button2_Click(object sender, EventArgs e){actprog.Open();textBox1.Text= actprog.Read("D1000");actprog.Close();}private void button3_Click(object sender, EventArgs e){actprog.Open();string send= actprog.Write(textBox2.Text.Trim(),"D1000");MessageBox.Show(send);actprog.Close();}private void TB_DestinationPortNumber_TextChanged(object sender, EventArgs e){actprog.DestinationPortNumber = Convert.ToInt32(TB_DestinationPortNumber.Text.Trim());}}
}

测试连接结果如下:

写发送:

读接收:

ActProgTypeLib类使用代码如下:

namespace CL_Enet
{public class ActProg{private ActProgTypeClass Aptc= new ActProgTypeClass();      #region //定义参数private int _cpuType;[Description("CPU型号")]public int CpuType{get { return _cpuType; }set { _cpuType = value; }}private int _unitType;[Description("设备连接方式")]public int UnitType{get { return _unitType; }set { _unitType = value; }}private int _protocolType;[Description("TCP/UDP")]public int ProtocolType{get { return _protocolType; }set { _protocolType = value; }}private int _timeOut;[Description("连接超时时间")]public int TimeOut{get { return _timeOut; }set { _timeOut = value; }}private string _hostAddress;[Description("设备IP地址")]public string HostAddress{get { return _hostAddress; }set { _hostAddress = value; }}#endregionprivate int _destinationPortNumber;public int DestinationPortNumber{get { return _destinationPortNumber; }set { _destinationPortNumber = value; }}#region //定义连接状态//int CpuType, int UnitType, int ProtocolType,int TimeOut,string HostAddresspublic int Open(){try{Aptc.ActCpuType = _cpuType;Aptc.ActUnitType = _unitType;Aptc.ActProtocolType = _protocolType;Aptc.ActTimeOut = _timeOut;Aptc.ActHostAddress = _hostAddress;Aptc.ActDestinationPortNumber = _destinationPortNumber;return Aptc.Open();}catch (System.Exception ex){return -1;}  }public int Close(){return Aptc.Close();}public string Read(string RegiseterName){int iReturnCode = -1;//返回值=0表示读取成功int length = System.Text.RegularExpressions.Regex.Split(RegiseterName, "\n").Length;int iNumberOfData = length;int[] iData = new int[length];//读取软元件值iReturnCode = Aptc.ReadDeviceRandom(RegiseterName, iNumberOfData, out iData[0]);if (iReturnCode == 0){return iData[0].ToString();}else{return "";}}public string Write(string value,string RegiseterName){int iReturnCode = -1;//返回值=0表示写入成功string[] strArray = System.Text.RegularExpressions.Regex.Split(value, "\n");//拆分写入寄存器列表int iNumberOfData = strArray.Length;//szLabel.IndexOf("\n", 0) + 1;//写入点数int[] iData = new int[strArray.Length];//写入软元件值for (int i = 0; i < strArray.Length; i++){iData[i] = Int32.Parse(strArray[i]);}iReturnCode = Aptc.WriteDeviceRandom(RegiseterName, iNumberOfData, ref iData[0]);if (iReturnCode == 0){return value;}else{return "error";}}#endregion}
}

结束语

此样例仅提供思路参考,上述样例代码仅适用三菱PLC与上位机软件

上位机通过MX component version 组件与三菱PLC通信解决办法,最新MX component version5支持X64相关推荐

  1. 上位机通过MX component version4 组件与三菱PLC通信解决办法

    引用:https://blog.csdn.net/txb13145826106/article/details/115007885 上位机通过MX component version4 组件与三菱PL ...

  2. C#上位机,控制台达四轴SCARA机器人,以太网通信

    C#上位机,控制台达四轴SCARA机器人,以太网通信 1.调用台达机器人SDK库,功能齐全,适合进行二次开发. ID:6910635479745371

  3. C#上位机基础学习_基于SOCKET实现与PLC服务器的TCP通信(二)

    C#上位机基础学习_基于SOCKET实现与PLC服务器的TCP通信(二) 测试软件: TIA PORTAL V15.1 S7-PLCSIM ADVANCED V3.0 Visual Studio 20 ...

  4. C#调用COM组件遇到的问题及解决办法

    C#调用COM组件遇到的问题及解决办法 参考文章: (1)C#调用COM组件遇到的问题及解决办法 (2)https://www.cnblogs.com/yuzhihui/p/9777323.html ...

  5. mx三菱plc安装报错_Qt使用 MX Component 插件与三菱PLC通信

    作者:billy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 MX Component 简介 MX Component 是三菱PLC官方上位机通讯中间件,通过使用该工 ...

  6. 程控电源CANoe上位机面板(CAN\ETH测试、RS232串口通信、编写设计思路)

    程控电源CANoe上位机面板 编写此面板的目的 编写思路 一.通讯方式 1.RS232串口连接 2.CANoe与RS232串口相关的函数 3.帧格式命令字 4.校验码 二.面板设计 1.所需文件说明 ...

  7. 三菱PLC与第三方设备TCP通讯_三菱PLC与PC通讯之MX Component

    在视觉检测项目中经常用到PC与PLC的通讯,本文主要介绍三菱PLC与PC通讯. 自由协议串口通讯 前期项目中三菱PLC与PC通讯的方式采用串口通讯,并在网上查找到三菱的串口通讯协议,即按照固定格式发送 ...

  8. 组件服务 我的电脑 不可用解决办法

    在"服务"里找到这三个服务,都启动就行了 Distributed Transaction Coordinator Remote Procedure Call (RPC) Secur ...

  9. 树莓派4b在miniconda下安装kivy,示例报错‘ImportError...libstdc++.so.6: version ‘GLIBCXX_3.4.29‘ not found‘解决办法

    感觉最近运气非常差,或者运气一直很差,为啥干啥都要踩坑呢?好的,又来坑,补吧. 因为想在树莓派4B装了Ubuntu22.04后,能配合我的触摸屏简单实现一些交互界面,所以选择在这上面安装kivy.上一 ...

最新文章

  1. LaTex in Markdown
  2. jQuery简单的Ajax调用示例
  3. gradle的下载与环境变量配置
  4. 动态密码卡TOTP算法
  5. 关于salt MD5
  6. SQLDump***.txt
  7. cmd下pip安装mysql_Windows下使用pip安装mysql-python
  8. debian搭建php mysql_Debian下MySQL安装经验分享
  9. how to add user into sudoers file?
  10. [转载] Python字符串常用操作命令
  11. CentOS 7配置Docker Storage
  12. 小金鱼呀 python-django-初识Form组件(Form类)
  13. linux系统安装wine关关采集,在Ubuntu 20.04系统上安装和使用Wine 5的方法
  14. 走进小作坊(九)----省时省力的二八法则
  15. 装了伽卡他卡打不开任务管理器的解决办法
  16. 飞腾PHYTIUM FT-1500a性能测试-内存-PCIe
  17. 如何提高思维能力(不止针对程序猿)
  18. 如何用html自动关机电脑,如何设置电脑完东西自动关机
  19. 系列之 H5+js 游戏 遍历象棋(待更新)
  20. 计算机三级网络app,‎App Store 上的“计算机三级网络技术题库”

热门文章

  1. 卡波姆对皮肤的作用副作用_卡波姆对皮肤的作用
  2. 《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.1节智能手机市场现状
  3. 中国(EV)电动汽车的“影子”(上)
  4. ex计算机绘图基础教程怎么画图,计算机绘图基础教程(第2版)
  5. 【手把手教】Android开发两种方式实现图片的上传下载
  6. 微商服务器维护,微商必备一键转发软件靠谱的有哪些?微商软件系列汇总,微商必看!...
  7. 百年前的京城,AI带你去穿越
  8. (点、6)精配准Iterative Closest Point(ICP)
  9. 目标检测的置信度和NMS
  10. 【图形设计】手把手教你如何画好时序图