电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册
搜索: 您现在的位置: 电子开发网 >> 电子开发 >> 其他PLC >> 三菱PLC >> 正文

三菱PLC的modbus通讯_三菱FX3U PLC利用RS指令实现Modbus RTU通信

作者:佚名    文章来源:网络整理    点击数:    更新时间:2024/5/21

 

在了解了Modbus通信的基本格式后,本期将通过仿真的方式实现Modbus RTU通信协议在三菱FX3U PLC上的应用。

指令介绍

一、软件准备

  • 虚拟串口工具
  • Modbus Slave
  • 凌一PLC仿真器
  • GX works2编程软件

二、RS指令

RS指令是在执行串口通信时用来接收和发送数据的指令,使用该指令时需要在PLC上插入FX3U-485-BD通信模块。

1)基本格式

 

其中m(发生数据的个数)和n(接收数据的个数)需要根据外部设备的报文格式指令,不能随便设置。

2)示例

 

X0: RS指令触发条件,当X0位ON时RS指令进入发送或接收数据的等待状态。

D10: 发送数据的起始寄存器。

K8: 发送数据的个数,表示每次发送D10~D17范围内八个寄存器的数据。

D20: 接收数据的起始寄存器。

K7: 接收数据的个数,表示将外部设备返回的数据存入D20~D26范围内的七个寄存器里。

三、特殊辅助继电器

1)M8161 数据处理位数标志继电器

当M8161=OFF时处理16位数据。

 

当M8161=ON时处理低8位数据。

 

2)M8122 数据发送标志继电器

当RS指令处于发送或接收数据的等待状态时置位M8122,此时RS指令中发送数据寄存器里的数据将会被发送给外部设备。数据发送完成后系统会自动复位M8122,不能使用程序对其进行复位操作。

 

3)M8123 数据接收标志继电器

RS指令将数据发送完成后,进入接收数据状态。此时M8123被置位为ON,并对接收到的数据进行处理,数据处理完成后需要将M8123复位为OFF,否则无法接收下一轮的数据。

 

四、通信参数设置

通信参数既可以在PLC系统设置中直接设置,也可以通过改变D8120的值进行设置,两种设置方式任选一种即可(本文主要介绍通过D8120进行设置)。

1)直接设置

依次单击参数列表中的“PLC参数”→“PLC系统设置2” →勾选“进行通信设置”,然后根据实际需求设置通信参数,设置完成并检查无误后单击“设置结束”按钮保存设置。

 

2)通过D8120设置

根据下表给定的参数并结合实际需求设置b0~b15的值,并转换成十六进制数传送给D8120,实现通信参数设置。

 

3)示例

将通信参数设置按如下要求进行设置:数据长度为8位、偶校验、停止位为1位、波特率为9600、无报头报尾,控制线为无协议的RS-485接口。

 

编辑程序将参数传入D8120。

 

五、CRC指令

CRC指令的作用是计算Modbus RTU通信报文的校验码。

 

在低8位模式下(M8161=ON),当X0为ON时CRC指令计算出D10~D15六个寄存器产生的效验码,并将计算结果的高八位存入D16,低八位存入D17。

指令运用

一、项目要求

按下X0按钮读取1号从站保持寄存器40000的值,按下X1将100写入1号从站保持寄存器40002中,通信参数与上文示例中保持一致。

二、编辑程序

1)初始化

在初始化程序中需要将M8161设置为处理低8位数据模式(M8161=ON),将通信参数传入特殊寄存器D8120以及复位程序中用到的寄存器。

 

2)添加RS指令

如果每次处理的数据长度一致,那么只需添加一次RS指,并且让RS指令一直处于等待发送或接收数据状。

发送或接收的数据长度需要根据外部设备的要求进行设置,此处外部设备为Modbus Slave,其报文格式与标准报文格式一致,所以此处发送和接收的数据长度分别为K8和K7。

 

3)编辑读取程序

a)计算读取程序报文

可以借助串口调试助手自动生成报文,其中84 0A为CRC校验码。

 

b)编辑报文传送程序

当检测到X0的上升沿时将生成的报文传入用来发送数据的寄存器D10~D15中。

报文需要用十六进制表示。

 

c)添加CRC指令

CRC指令将根据前六个报文计算出校验码,并将结果的高八位存入D16,低八位存入D17。

 

由于仿真中CRC指令时好时坏,所以本项目不使用CRC指令,而是将校验码直接传入D16和D17。

 

d)发送数据

当检测到X0的下降沿时置位M8122完成数据的发送。

 

e)接收并处理读取回来的数据

从站返回的数据如同所示,通过分析报文可得从站返回的数据高八位和低八位分别储存在D23和D24中。

 

 

通过计算把D23和D24的数据合并,然后存放到D31中。

 

4)编辑写入程序

a)编辑报文传送程序

参照读取程序的编辑方式。

 

 

 

b)发送数据

 

c)接收数据

由于不需要接收从站返回的数据所以直接复位M8123。

 

仿真环境配置

一、添加虚拟串口

需要添加两对虚拟串口,一对用来实现GX works2和凌一PLC仿真器的连接,另一对用实现凌一PLC仿真器和Modbus Slave的连接

 

二、配置凌一仿真器

配置完成后需要打开下载口和开启扩展通信,并让PLC处于运行状态。

 

三、配置GX works2

其配置方式与连接实体PLC时的方式一致,主要选择端口号。设置完成后单击“通信测试”,测试成功后单击“确定”保存设置,并将程序下载到仿真器中。

 

四、配置Modbus Slave

1) 配置Modbus Slave连接

连接参数需要与D8120中的通信参数保持一致。
 

2)配置Modbus Slave从站功能

如图所示设置从站功能,并修改寄存器40000的值。

 

五、仿真演示

配置好仿真环境后,将程序下载到仿真器中,并进入监视状态。

1)读取演示

单击仿真器中的X0按钮,观察D31的值是否与Modbus Slave中保持寄存器40000设置的值一致。

 

2)写入演示

单击仿真器中的X1按钮,观察100是否被写入到从站的保持寄存器40002中。

 

六、程序整体浏览

 

Tags:FX3U,MODBUS通讯,三菱PLC  
责任编辑:admin
请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
1分 2分 3分 4分 5分

还可以输入 200 个字
[ 查看全部 ] 网友评论
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
返回顶部
刷新页面
下到页底
晶体管查询