MODBUSTCP通信协议有哪几个指令完成,分别起什么作用?

MODBUSTCP通信协议有哪几个指令完成,分别起什么作用?,第1张

MODBUSTCP通信协议指令及作用如下:

1、指令

MB_CLIENT(作为Modbus TCP客户端)。

MB_SERVER(作为Modbus TCP服务器)。

MB_CLIENT 表示MODBUS SCLIENT。

2、作用

“MB_CLIENT”指令作为 Modbus TCP 客户端通过 S7-1200 CPU 的 PROFINET  连接进行通信。使用该指令,无需其它任何硬件模块。通过“MB_CLIENT”指令,可以在客户端和服务器之间建立连接、发送请求、接收响应并控制 Modbus TCP  服务器的连接终端。

MB_SERVER表示MODBUS SERVER

“MB_SERVER”指令作为 Modbus TCP 服务器通过 S7-1200 CPU 的 PROFINET  连接进行通信。使用该指令,无需其它任何硬件模块。“MB_SERVER”指令将处理 Modbus TCP 客户端的连接请求、接收 Modbus  功能的请求并发送响应。

Modbus通讯协议

Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。

Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。

Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。

另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus协议的可靠性较好。

对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。

因为你手机创建的TCP服务器地址通常都是127001,这个IP地址是用作本地调试用的。不会被路由器转发,外部设备是无法找到这个地址的,另外,就算你用路由器上网,也无法创建一个可供其他设备连接的TCP服务器,道理是一样的,路由器分配给你的IP通常是192开头的,这也是私有IP,无法在公网上寻址的!除非你手机的上网方式是公网IP,否者手机是不可能建立TCP服务器的!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10750428.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存