[三菱] 三菱FX5U系列MODBUS/TCP通信帧格式(上)

[复制链接]
查看77860 | 回复0 | 2024-4-1 16:35:32 | 显示全部楼层 |阅读模式
MODBUS/TCP协议是工业中常用的开放式协议,其覆盖了使用TCP/IP协议的“Intranet”和“Internet”环境。FX5U支持PLC作为服务器或者客户端,当PLC作为客户端时,使用Socket通信功能和服务器通信。当PLC作为服务器时,上位机通过发送符合MODBUS/TCP协议的报文来读取PLC的信息,我们本次着重讲解如何通过MODBUS/TCP协议读写PLC的X,Y,M,D位寄存器和字寄存器等状态。

FX5U中将PLC设置为服务器主要需要设置本机的IP地址和设定MODBUS/TCP通信的端口号。

设置PLC的IP地址



设置MODBUS/TCP通信的端口号



将参数设置好后点击应用,然后将工程下载进PLC,重新上电后PLC在MODBUS/TCP通信中作为服务器使用。

将PLC在MODBUS/TCP通信中作为服务器使用设定完成后,PLC底层会自动的将X,Y,M,D位寄存器和字寄存器和MODBUS/TCP通信中的MODBUS软元件号进行关联,这个关联我们也可以自己去做调整。



对于表中软元件Y和X的MODBUS软元件号都是从0-1024,很多朋友会感到疑惑,这个是重复了么,其实这两个是不同的区间,一个是线圈,一个是输入,从下表的MODBUS标准功能一览表也可以看出:



从该表中可以看出,使用01H功能码读取Y点的值,0FH功能码置位Y点。通过02H功能码读取X点的值。

   知道X,Y,M,D位寄存器和字寄存器在MODBUS/TCP通信中的MODBUS软元件号后我们来看下MODBUS/TCP协议的格式

MODBUS/TCP协议的帧格式如下图



MODBUS协议数据部根据不同的功能码会有不同。

使用01H功能码读取Y点时:

请求报文格式(客户端→服务器):



正常返回报文格式(服务器→客户端):



使用02H功能码读取X点时:

请求报文格式(客户端→服务器):



正常返回报文格式(服务器→客户端):



使用03H功能码读取D寄存器时:

请求报文格式(客户端→服务器):



正常返回报文格式(服务器→客户端):



使用0FH功能码置位Y点时:

请求报文格式(客户端→服务器):



正常返回报文格式(服务器→客户端):



使用10H功能码赋值D寄存器时:

请求报文格式(客户端→服务器):



正常返回报文格式(服务器→客户端):



由于篇幅有限,本次先和大家探讨MODBUS/TCP协议帧的格式问题,下一篇我们来实际应用一下,使用网络调试助手来模拟客户端和作为服务器的FX5U走MODBUS/TCP通信。

兴东机电设备(深圳)有限公司

三菱工控产品特级代理商

三菱工控产品技术培训中心

三菱工控产品维修中心

欢迎关注此公众号,如有三菱产品需求、技术问题,可以联系我公司:0755-82984881。   
<img   />

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则