使用C#与三菱PLC通讯

  • 一、三菱PLC驱动程序安装
  • 二、建立PLC连接与关闭连接
  • 三、读写PLC数据
  • 参考文档

一、三菱PLC驱动程序安装

编写上位机程序与三菱PLC进行通讯,首先应该下载驱动安装程序,程序安装之后可以首先对PLC进行测试,如果通讯功能正常,说明硬件配置无误,可以参照安装目录下的示例代码编写程序。
三菱驱动程序在三菱官网即可下载,下载地址为https://www.mitsubishielectric-fa.cn/。
进入官网后点击上方菜单栏中的资料中心,然后选择控制器——可编程控制器——软件,进入软件下载界面。

在软件下载界面选择GX Works3 及 MX Component两个软件(下载需要注册及登录三菱官网
),其中GX Works3提供了PLC编程的可视化界面,而MX Component提供了PLC连接的配置工具及示例代码。在安装MX Component过程中如遇到错误,可上网查询解决方法也可以在解压之后的安装包里的Manual文件夹内浏览安装说明文档,查找错误解决方法。安装过程中需要输入序列号,安装序列号为:117-610768844。

二、建立PLC连接与关闭连接

在MX Component程序安装目录下可以找到MX_PLC_Samples文件夹,文件夹内有VBA、Vb、Vc、C#语言编写的示例代码,其中Vcs.NET——Sample2010文件夹内为C#语言编写的示例代码。
打开示例代码可以发现,建立PLC连接共有两种方式,分别为ActProgType连接和ActUtlType连接。
ActUtlType连接需要先使用Communication Setup Utility程序(在开始菜单程序目录下),以管理员身份运行,预先建立一个PLC连接,并设置LogicalStationNumber,详情见三菱PLC(FX5U)与C#通信说明。建立连接后,再使用代码进行连接,示例代码如下:

                    using AxActUtlTypeLib;...AxActUtlType axActUtlType1 = new AxActUtlType();axActUtlType1.ActLogicalStationNumber = 0;//0为LogicalStationNumberint returnCode = axActUtlType1.Open();//返回类型为int类型if (returnCode == 0){MessageBox.Show("连接成功");return;}else{MessageBox.Show("连接错误");return;}

ActProgType连接不需要预先进行Communication Setup Utility程序进行设置,连接也不需要LogicalStationNumber参数,但需要在代码中设置连接类型,并且根据连接类型设置一些参数,例如计算机与PLC通过串口连接,那么需要设置串口号等,如果通过网线连接,那么需要设置IP地址、连接模块等参数。
以网线连接、连接模块为CPU_FX5为例,示例代码如下:

                    using AxActProgTypeLib;...AxActProgType axActProgType1 = new AxActProgType();axActProgType1.ActUnitType = 0x2001;//Connect module:CPU module(FX5)axActProgType1.ActProtocolType = 0x0005;//PC side I/F:Ethernet boardaxActProgType1.ActHostAddress = value01;//IPAddressint returnCode = axActProgType1.Open();if (returnCode == 0){MessageBox.Show("连接成功");return;}else{MessageBox.Show("连接错误");return;}

关闭连接示例代码如下:

                    int returnCode = axActProgType1.Close();if (returnCode == 0){MessageBox.Show("连接已断开");return;}else{MessageBox.Show("断开连接时发生错误");return;}returnCode = axActUtlType1.Close();if (returnCode == 0){MessageBox.Show("连接已断开");return;}else{MessageBox.Show("断开连接时发生错误");return;}

三、读写PLC数据

读取PLC的软元件数据的函数共有四种,分别为
1、int ReadDeviceBlock(string szDevice, int lSize, out int lplData);
2、int ReadDeviceBlock2(string szDevice, int lSize, out short lpsData);
3、int ReadDeviceRandom(string szDeviceList, int lSize, out int lplData);
4、int ReadDeviceRandom2(string szDeviceList, int lSize, out short lpsData);
其中1与2函数读取的数据位数不同,所以输出类型也不同,3与4同理。而写入PLC数据的函数也共有四种,与四种读取函数相对应,这里不再一一列举,下面给出ActProgType类型读写PLC数据的示例代码:

short Result=0;
int iReturnCode = axActProgType1.ReadDeviceBlock2("E0",1, out Result);
if (iReturnCode == 0)
{MessageBox.Show(Result.ToString());
}
short Data=100;
iReturnCode = axActProgType1.WriteDeviceBlock2("E0",1, ref Data);
if (iReturnCode == 0)
{MessageBox.Show("写入成功");
}

参考文档

三菱PLC(FX5U)与C#通信说明
C# 通过网络和三菱的PLC通信
【MX Component】三菱自带网口与上位机通讯实例全过程图解
上位机通过c#调用MX component实现与三菱PLC通讯。附源代码

使用C#与三菱PLC通讯相关推荐

  1. PLC通讯实现-C#实现三菱PLC通讯(三)

    PLC通讯实现-C#实现三菱PLC通讯MXComponent(三) 背景 抽象设计 三菱PLC通讯实现MXComponent 背景 本人近十年的工作都与工业软件相关.其中工控系统开发过程中有一个必要环 ...

  2. 使用python写一个计算机与三菱PLC通讯的代码

    好的.首先,你需要确保你已经安装了适用于 Python 的三菱 PLC 通讯库,例如 pyMELSEC. 然后,你可以使用以下代码来连接三菱 PLC 并读取一个地址的值: import pyMELSE ...

  3. Labview通讯三菱Q PLC,Labvew TCP通讯三菱PLC ,MCTCP,三菱PLC连接LabVIEW,LabVIEW和三菱PLC 通讯

    Labview通讯三菱Q PLC,Labvew TCP通讯三菱PLC ,MCTCP,三菱PLC连接LabVIEW,LabVIEW和三菱PLC 通讯 三菱官方MC协议,简单方便,完胜OPC协议. ,源码 ...

  4. tk6071iq怎么恢复出厂设置_威纶触摸屏TK6071IQ与三菱PLC通讯怎么设置

    威纶触摸屏TK6071IQ与三菱PLC通讯怎么设置威纶通触摸屏和三菱PLC通讯不上,老是提示PLC没反应,该怎么设置呢? 解决思路: 你设置同样的波特率,同样的位数,同样的停止位,站号不能相同,就是说 ...

  5. 编程软件和三菱PLC通讯不上是什么原因

    编程软件和三菱PLC通讯不上是什么原因 [1]PLC的输出是不带电源的吗?比如说我要控制个110V继电器.是不是要加个电源?怎么接线? 答:PLC的输出端口仅仅是一个驱动负载的开关,本身是不带电源的, ...

  6. 使用MFC来和三菱PLC通讯 MXComponent控件ACTPROGTYPE 支持win7-win10

    使用MFC来和三菱PLC通讯 MXComponent控件ACTPROGTYPE 支持win7-win10 由于以前的代码是在win7上使用 用的ActFXCPU控件 但是一直不支持win10 今天研究 ...

  7. LabVIEW视觉尺寸测量 范例包含尺寸测量和数据库工具带三菱plc通讯

    LabVIEW视觉尺寸测量 范例包含尺寸测量和数据库工具带三菱plc通讯. 包含一份软件调试说明书及调试操作视频! 现有:69100614186286191苏州工控代理商

  8. C#上位机与PLC通讯源码 C#与三菱PLC通讯MC协议

    C#上位机与PLC通讯源码 C#与三菱PLC通讯MC协议 ID:696642996063203

  9. 三菱PLC 通讯 python代码

    前几天,需要使用到激光传感器,需要PLC来控制.就学习了一下PC与PLC通讯. 学的不深,可能有很多问题,欢迎指正. PLC那一端是电气的同事帮忙弄的,使用的是MC协议. 一开始,我是用的是二进制方式 ...

  10. 三菱PLC与第三方设备TCP通讯_【原创干货】一台威纶通触摸屏与多台三菱PLC通讯案例,欢迎收藏!...

    到这里为止,我们触摸屏和PLC的设置及程序就全部完成了.大家可以照着操作下载一遍,原理是不是很简单呢? 在实际项目应用中,我们经常需要使用一台触摸屏对多台设备进行监控操作.这就是我们常说的一屏多机.它 ...

最新文章

  1. 图像配准的前世今生:从人工设计特征到深度学习
  2. 失手打死请自己吃饭的酒友 嫌疑人在深圳落网
  3. Python 技术篇-容易被忽略的尾差问题
  4. 数据挖掘 —— 无监督学习(关联)
  5. 三态门三个状态vhdl_人防门是什么?为什么会侵线导致重庆地铁事故
  6. [raywenderlich教程]
  7. css3实现的the Sexy Buttons
  8. WSGI Application/Framework
  9. 速更新!流行的开源邮件客户端 Mozilla Thunderbird 91.3修复多个高危缺陷
  10. 防火墙虚拟系统互访配置实例
  11. 传奇私服DBC2000合并数据库时删除重复Name关键字SQL指令
  12. 最大流(Dinic算法)
  13. Stanford机器人D-H坐标系
  14. 威漫哨兵机器人_漫威哨兵机器人真的可以模仿所有超能力吗?
  15. iOS之Category和Extention的区别
  16. 0055-【生物数据库】-如何进行RNA差异基因KEGG注释分析-kobas在线分析
  17. 从单机到多机:多机一定比单机快吗?秒杀系统到底有没有必要用分布式锁?
  18. Hive数据仓库数据分析
  19. python程序应用经典实例-Python实例应用经典讲解
  20. 减字 浣溪沙-听歌有感 (清)况周颐

热门文章

  1. 象棋正确的学习步骤是什么?入门和提高方法全都教给你!
  2. 【预测模型-RBF】基于径向基神经网络实现数据分类附matlab代码
  3. matlab555定时器,数字电子时钟课程设计报告-电工
  4. 编程语言和javascript
  5. 【深扒】深入理解 JavaScript 中的异步编程
  6. 用SQL备份数据库表
  7. SQL Server数据库
  8. .Net6项目部署IIS步骤
  9. 【Linux下载安装jdk8】
  10. 编译器vc6 新手使用教程(C、C++)