tcp转rtu抓包分析

目录

1.搭建硬件环境

2.软件配置

3.抓包分析

4.TCP server 和 client 通讯抓包

总结


参考博客原址:https://blog.csdn.net/u011041241/article/details/109575586?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162648494416780265458256%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162648494416780265458256&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-5-109575586.first_rank_v2_pc_rank_v29&utm_term=modbus+rtu+%E8%BD%ACtcp&spm=1018.2226.3001.4187需要的软件modbus poll modbus slave,Wireshark和网络调试助手。

1.搭建硬件环境

先搭建硬件环境,需要用到以太网转485的设备,实物以及连接如下:

 

注:

(a)EE11直接将以太网的数据部分通过485发送出来,去掉了TCP/IP的包头。

(b)ee11输出的485通过 485 转usb模块 接到电脑usb上。

2.软件配置

A.对poll 设置EE11的IP地址和端口号。(此处省略EE11的配置)

B.poll采用读线圈的操作。

C.设置slave。

3.抓包分析

Modbus 主从软件启动并配置,读取线圈正常后,后用Wireshark 软件抓取包

抓到如下包

图片描述:169.254.1.1 是TCP转RTU 模块的地址(EE11的地址),169.254.195.252 是电脑网卡地址。上图中Data(12 bytes) 就是modbus 传输的协议内容。如下黄色为modbus相关的代码。

34 ea e7 1f e2 12 54 04 a6 79 78 55 08 00 45 00   4.....T..yxU..E.

00 34 0b 4f 40 00 40 06 00 00 a9 fe c3 fc a9 fe   .4.O@.@.........

01 01 21 47 27 0f 99 d3 01 24 00 00 4a 81 50 18   ..!G'....$..J.P.

fa 04 19 21 00 00 04 3e 00 00 00 06 01 01 00 00   ...!...>........

00 0a

根据modbus tcp协议知

请求:

04 3e为此次通信事务处理标识符,一般每次通信之后将被要求加1以区别不同的通信数据报文;

00 00表示协议标识符,00 00为modbus协议;

00 06为数据长度,用来指示接下来数据的长度,单位字节;

01为设备地址,用以标识连接在串行线或者网络上的远程服务端的地址。以上七个字节也被称为modbus报文头;

01为功能码,01为读取线圈状态;

00 00为起始地址;

00 01为寄存器数量。

 

 

 

对应该包的响应为

54 04 a6 79 78 55 34 ea e7 1f e2 12 08 00 45 00   T..yxU4.......E.

00 33 07 10 00 00 ff 06 9b ba a9 fe 01 01 a9 fe   .3..............

c3 fc 27 0f 21 47 00 00 4a 81 99 d3 01 30 50 18   ..'.!G..J....0P.

04 bc 5c ac 00 00 04 3e 00 00 00 05 01 01 02 40   ..\....>.......@

00                                                .

响应:

04 3e为此次通信事务处理标识符,应答报文要求与先前对应的请求保持一致;

00 00为协议标识符,与先前对应的请求保持一致;

00 05为数据长度,用来指示接下来数据的长度,单位字节;

01为设备地址,应答报文要求与先前对应的请求保持一致;

01为功能码,正常情况下应答报文要求与先前对应的请求保持一致,如果出错则返回80h+先前的功能码;

02指示接下来数据的字节长度;

40 00为被读取的保持寄存器中的数据值,即要求被读取的地址为00 00的保持寄存器中的数值为40 00 h。第六位为高。

 

 

其它的协议 

以太网 2 的协议头

IP4 的目的IP和源Ip

端口号和 其它协议位

 

4.TCP server 和 client 通讯抓包

用网络调试助手建立连接

抓包后如下

与modbus通讯 对比,只是数据格式内容不同。其它协议一致。

总结

(1)Modbus tcp 是在tcp的数据包中定义一些数据的特定用途(定义为Modbus格式 ), 其它部分同tcp通讯一模一样。

(2)EE11 将tcp转为rtu后,modbus tcp的报文头并未从EE11的485输出,EE11 内部处理报文头(去掉了TCP/IP的包头),不需要单片机处理,单片机不用处理IP地址和端口号等等。

 

 

支持Modbus TCPModubus RTURTU可以为RS232或者RS485。 支持RTU做主站或者Modubs TCP做主站。 支持多主机访问支持,最多连接100个TCP客户端。 支持所有的Modubus功能码和寄存器范围。 同时也可以做普通串口服务器使用。 ZLAN5142 概述 ZLAN5142 Modbus网关是上海卓岚信息科技有限公司开发的一款在Modbus TCP和Modbus RTU之间进行协议化的换器,其中Modbus RTU可以是RS485也可以是RS232接口。 ZLAN5142具备了强大的多主机访问支持功能和RS485总线冲突控制功能。所谓多主机功能是指,ZLAN5142作为Modbus TCP服务器时可以支持多达100个TCP客户端同时连接,多个TCP连接可以随机性的访问,ZLAN5142能够分别对不同的连接给出正确应答,保证数据稳定不丢包。相对于RS485总线只能够有一个主机进行访问,ZLAN5142实现了“多主机”功能。ZLAN5142实现了RS485总线的冲突控制,防止了多主机时的串口总线抢占问题。 另外,将ZLAN5142的“化协议”选择为“无”,也可以当作普通的透明传输的串口服务器使用。但是不同于普通的串口服务器例如ZLAN5102,ZLAN5142即使作为普通串口服务器模式下也可以支持“多主机”功能,可解决多个计算机或主站如何同时监控一个串口设备的难题。 特点 支持Modbus TCPModubus RTURTU可以为RS232或者RS485。 支持RTU做主站或者TCP做主站。 支持多主机访问支持,最多连接100个TCP客户端。 支持1200~460800波特率。 支持RS485总线冲突调度机制,防止总线冲突。 支持所有的Modubus功能码和寄存器范围。 可作为普通的透传串口服务器使用,具备ZLAN5102相同功能。 小于1W的低功耗设计。 内嵌485防雷保护功能,适合室外485通信。 支持DNS,满足通过域名实现通信的要求。支持DHCP。 2KV网络浪涌保护。 外壳采用抗辐射的SECC板,保证在高电磁辐射区也能够正常工作。 规格 网络界面 以太网 10/100 Mbps, RJ45 保护 内建2KV电磁隔离 串口界面 界面 RS-232/485 串口数 1 校验位 None, Even, Odd, Space, Mark 数据位 5~9 停止位 1,2 流控 RTS/CTS,DTR/DCR, XON/XOFF 速率 1200bps~460800bps 软件特性 协议 TCP,HTTP,UDP,ICMP,ARP,IP,DNS,DHCP 虚拟串口平台 Windows 95/98/ME/NT/2000/XP/WIN7/WIN8 配置方式 Web浏览器、卓岚ZLVirCom、串口类AT命令 电器特性 电压输入 DC9~24V,100mA 机械特性 外壳材料 抗电磁材料SECC钢板 尺寸 长×宽×高=9.4cm×6.5cm×2.5cm 工作环境 工作温度,湿度 -45~85℃,5~95% RH 储存温度,湿度 -45~165℃,5~95% RH W
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值