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 />
|