三菱fx5u系列plc如何实现ModbusTCP服务器 点击:1598 | 回复:0



Leon_XD

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:103帖 | 0回
  • 年度积分:126
  • 历史总积分:333
  • 注册:2021年5月10日
发表于:2021-05-18 20:06:36
楼主

三菱fx5u系列plc如何实现Modbus TCP服务器,

硬件:三菱fx5u             一个 

 串口转以太网模块CHNet-FX  一台

CHNet-FX模块太网口它支持8个连接,那么也就是说,当我们plc做ModbusTCP服务器的时候可以有同时8个Modbus TCP客户端。同时和他进行通讯,

我们所需要的一些软件这个以太网调试助手,用来调试这个调试这个plc这个服务器,调试程序,然后我们还会用到这个Modbus poll可以来模拟,ModbusTCP服务器,ModbusRTU主站,以及Modbus ASC主站,接下来我们继续说一下这个三菱FX5U他实现Modbus TCP这个组态过程,下面就是我们做好的一个这个工程,

图片1.png

要实现他这个Modbus TCP他这个过程呢,首先呢第一步用FX5U PLC 与CHNet-FX连接

1. 新建 FX3U/FX3UC 工程,双击导航栏中的连接目标:Connection

图片2.png

2.跳出的选项板后,在计算机侧选择双击“EthernetBoard”选项,随后提醒中点击“是”;在可编程控制器侧双击“PLModule”;

图片3.png

3. 在随后的跳出的设置中,点击“搜索网络上的 FXCPU(S)”后,会搜索到 CHNet-FX所连接的 FX3UC

按图中标号依次选择后,最后点击确认;

图片4.png

4.在上述中选择好 IP 地址后,点击“通信测试”,即可提示与 FX3UCCPU 连接成

6.png

5.随后即可“在线”选项栏中,进行 PLC 的读取、写入和监视等操作。

Modbus分配地址

7.png

8.png

5.png

PLC配置

9.png

设置的这个参数,通讯手段默认ModbusTCP,可编程IP地址就是前面设置的,192.168.161端口号就是502端口,作为服务器需要设置的参数,

这个逻辑程序D0、D1D2D3分别付了初值是K0K1K2K3在初始化的时候我们对D4、D5D6D7进行个清零操作

10.png

使用了一个特殊标志位,每一分钟我们会对D0、D1D2D3作一个加一操作,看看能不能做一个加一操作,然后会实时的判断,当D0、D1D2D3各自的值大于6000的时候分别各自清零,也就说d0d1d2d3的值他会每一分钟都会发生改变,并且d0d1d23d3的纸最终它是会在零到6000之间发生一个变化,(包括0和6000)

这么做的目的是为了客户端去读取PLC的寄存器的时候,D0、D1D2D3是变化的方便我们观察变化。这就是一小段逻辑程序

进入程序监视

11.png

此时D0、D1D2D3分别是0123;过1分钟就会进行一下+1操作下面就可以测PLC程序了

先用以太网调试助手进行测试



13.png

适配器是PLC通过CHNet-FX网线连接到路由器,电脑通过无线网卡连接到路由器

协议模式:客户端 Client

目标IP:CHNet-FX用户自定义IP地址

1.可以去读它的四路保持寄存器

14.png

比如说D0-D3的值是3456

15.png

清空之后发送报文,读取成功

16.png

2.写保持寄存器

把PLC D4的值设置为1

我们要发送的命令就是

55 66 00 00 00 06 01 06 00 04 00 01

17.png


接收区服务器原样返回,此时D4的值就是1,写入成功

3. 读取PLC的离散输入

比如说要读取X0-X7的状态   02功能码

77 88 00 00 00 06 01 02 00 00 00 08

接收区显示的数据是00  

表明X0-X7的状态全部为0

打开程序监视

PLC返回数据是00  说明Y0-Y7的状态是0

4.读线圈   Y0-Y7的状态  01功能码

PLC返回数据是00  说明Y0-Y7的状态是0

读取成功,

5.执行写操作,把Y0置位,PLC原路返回 


看下监控的数值

现在Y0、Y1同时置位

图片5.png

现在Y0、Y1同时置位

二. 下面在用Modbus Poll调试助手测试

1.读取离散输入    1区   用02功能码   从X0开始读起

PLC 从站地址  1

Function:读离散输入

X0开始读    读8位   X0-X7

29.png

现在离散输入的状态都为0的状态

2.接着上面开始读线圈   0区  01功能码

30.png

Y0、Y1分别都为1

3. 写线圈把Y2线圈的值置位   写线圈


置位成功

可用05(单路)、15(多路线圈)功能码对线圈进行写操作 


3. 读保持寄存器  4区  03功能码

以为程序里每分钟数值都是改变的,所以数值不是固定的

5.写保持寄存器    0616功能码   写D6

写入成功

用16功能码写多路保持寄存器,吧D0-D6全部复位/置位

另外客户端我们用以太网调试助手,当然这个客户端我们还可以用这个比如说组态软件,触摸屏,或者其他的比如安卓手机组态软件等等都是可以的















楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师