三菱FX3U PLC利用RS指令实现Modbus RTU通信

发布时间:2024-04-07  

图片

在了解了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中。

图片

六、程序整体浏览

图片


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>