Modbus TCP通讯协议 Modbus TCP和Modbus Rtu的区别

modbus\u534f\u8bae\u4e0etcp\u534f\u8bae\u6709\u4ec0\u4e48\u5173\u7cfb\uff1f

Modbusrtu\u548cModbus tcp\u4e24\u4e2a\u534f\u8bae\u7684\u672c\u8d28\u90fd\u662fMODBUS\u534f\u8bae\uff0c\u90fd\u662f\u9760MODBUS\u5bc4\u5b58\u5668\u5730\u5740\u6765\u4ea4\u6362\u6570\u636e\uff1b\u4f46\u6240\u7528\u7684\u786c\u4ef6\u63a5\u53e3\u4e0d\u4e00\u6837\uff0cModbus RTU\u4e00\u822c\u91c7\u7528\u4e32\u53e3RS232C\u6216RS485/422\uff0c\u800cModbus TCP\u4e00\u822c\u91c7\u7528\u4ee5\u592a\u7f51\u53e3\u3002
Modbus\u5141\u8bb8\u591a\u4e2a (\u5927\u7ea6240\u4e2a) \u8bbe\u5907\u8fde\u63a5\u5728\u540c\u4e00\u4e2a\u7f51\u7edc\u4e0a\u8fdb\u884c\u901a\u4fe1\uff0c\u4e3e\u4e2a\u4f8b\u5b50\uff0c\u4e00\u4e2a\u7531\u6d4b\u91cf\u6e29\u5ea6\u548c\u6e7f\u5ea6\u7684\u88c5\u7f6e\uff0c\u5e76\u4e14\u5c06\u7ed3\u679c\u53d1\u9001\u7ed9\u8ba1\u7b97\u673a\u3002\u5728\u6570\u636e\u91c7\u96c6\u4e0e\u76d1\u89c6\u63a7\u5236\u7cfb\u7edf\uff08SCADA\uff09\u4e2d\uff0cModbus\u901a\u5e38\u7528\u6765\u8fde\u63a5\u76d1\u63a7\u8ba1\u7b97\u673a\u548c\u8fdc\u7a0b\u7ec8\u7aef\u63a7\u5236\u7cfb\u7edf\uff08RTU\uff09\u3002

\u6269\u5c55\u8d44\u6599\uff1a
\u5bf9\u4e8e\u901a\u8fc7TCP/IP\uff08\u4f8b\u5982\u4ee5\u592a\u7f51\uff09\u7684\u8fde\u63a5\uff0c\u5b58\u5728\u591a\u4e2aModbus/TCP\u53d8\u79cd\uff0c\u8fd9\u79cd\u65b9\u5f0f\u4e0d\u9700\u8981\u6821\u9a8c\u548c\u8ba1\u7b97\u3002
\u5bf9\u4e8e\u6240\u6709\u7684\u8fd9\u4e09\u79cd\u901a\u4fe1\u534f\u8bae\u5728\u6570\u636e\u6a21\u578b\u548c\u529f\u80fd\u8c03\u7528\u4e0a\u90fd\u662f\u76f8\u540c\u7684\uff0c\u53ea\u6709\u5c01\u88c5\u65b9\u5f0f\u662f\u4e0d\u540c\u7684\u3002
TCP\u4e3a\u4e86\u4fdd\u8bc1\u62a5\u6587\u4f20\u8f93\u7684\u53ef\u9760\uff0c\u5c31\u7ed9\u6bcf\u4e2a\u5305\u4e00\u4e2a\u5e8f\u53f7\uff0c\u540c\u65f6\u5e8f\u53f7\u4e5f\u4fdd\u8bc1\u4e86\u4f20\u9001\u5230\u63a5\u6536\u7aef\u5b9e\u4f53\u7684\u5305\u7684\u6309\u5e8f\u63a5\u6536\u3002\u7136\u540e\u63a5\u6536\u7aef\u5b9e\u4f53\u5bf9\u5df2\u6210\u529f\u6536\u5230\u7684\u5b57\u8282\u53d1\u56de\u4e00\u4e2a\u76f8\u5e94\u7684\u786e\u8ba4(ACK)\uff1b\u5982\u679c\u53d1\u9001\u7aef\u5b9e\u4f53\u5728\u5408\u7406\u7684\u5f80\u8fd4\u65f6\u5ef6(RTT)\u5185\u672a\u6536\u5230\u786e\u8ba4\uff0c\u90a3\u4e48\u5bf9\u5e94\u7684\u6570\u636e\uff08\u5047\u8bbe\u4e22\u5931\u4e86\uff09\u5c06\u4f1a\u88ab\u91cd\u4f20\u3002
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1--TCP
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1--Modbus\u901a\u8baf\u534f\u8bae

Modbus TCP\u548cRTU\u6709\u4ec0\u4e48\u533a\u522b\uff1f\u5e26\u4f60\u6da8\u77e5\u8bc6~

1、首先每个MODBUS数据包都由以下5个部分组成。

2、 MODBUS数据包中功能码长度为一个字节,用以通知从站应当执行何种操作,从站响应数据包中应当包含主站所请求操作的相同功能码字节。

3、如果主站发送了一个非法的数据包或者是主站请求一个无效的数据寄存器时,异常的数据响应就会产生。这个异常数据响应由从站地址、功能码、故障码和校验域组成。

4、主机读取仪表测量值UA(A相电压),假设现测量到A相电压为220.0V。UA的地址编码是0x4000(十六进制),因为UA是长整型数据(4字节),占用2个数据寄存器,220.0V电压转换对应的十六进制数据是:0x00000898(2200)。

5、假设将温控表温度值SV修改为150(写入设定值SV),SV的地址编码是0x2000(十六进制),因为SV是整数(2字节),占用1个数据寄存器。将十进制整数150转换为十六进制数为0x0096。



上面这段报文是从站返回的响应报文,正文从第七个字节开始
01是从站号
03是功能码,表示这些数据是4区的
1C 是数据长度
后面的都是数据

主站读数据的格式如下:00 00 00 00 00 06 09 03 00 00 00 01
前面6个是报头,正文从第七个字节开始的;09是从站号,03是功能码表示读4区,00 00 是起始地址,00 01是读数据长度

主站写数据的格式如下:00 00 00 00 00 06 09 10 00 00 00 0A 后面接10个字节的数据

Modbus协议属于应用层(OSI模型第7层)协议,TCP/UDP协议属于传输层(OSI模型第4层)协议,两者层级不是并列关系。
打个比喻,Modbus协议就像公司里的总经理,TCP/UDP协议就像公司里的轿车、商务车。某天总经理要到机场去乘飞机,他可以选择:1)自己开轿车去,2)让司机开商务车送去,3)搭的士/公交车过去。若选择1),那就是总经理-轿车的关系,Modbus TCP协议就形同这种关系。若选择3),就形同另外的Modbus RTU/ASCII协议的关系。
如果一端用的是Modbus TCP协议,而另一端用TCP协议,这样只能说数据包可以到达另一端,但数据包并没有得到处理,所以通信的目标还没有完成。就像总经理虽到了机场,但他没有进行安检、验票、登机流程,乘飞机的目标就无法达成了。

Modbus网络只有一个主机,所有通信都由他发出。网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。采用这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。



扩展阅读:modbus三种通讯协议 ... modbus通讯地址对照表 ... modbus-rtu通讯协议 ... modbus tcp主站和从站 ... modbus tcp通讯实例 ... modbus tcp协议 地址 ... modbus tcp通讯协议报文 ... 标准modbus tcp协议 ... modbus tcp是以太网通讯吗 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网