设备控制协议:Modbus Tcp

设备控制协议:Modbus Tcp


一、ModbusTcp简介什么是ModbusTcp?

1、Modbus rtu和Modbus tcp两个协议的本质都是MODBUS协议,都是靠MODBUS寄存器地址来交换数据;
2、但所用的硬件接口不一样,Modbus RTU一般采用串口RS232C或RS485/422,而Modbus TCP一般采用以太网口。
3、现在市场上有很多协议转换器,可以轻松的将这些不同的协议相互转换 如:Intesisbox可以把modbus rtu转换成Modbus tcp实际上Modbus协议包括ASCII、RTU、TCP。
4、标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式。
5、Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验.
6、ModbusTCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。
7、TCP和RTU协议非常类似,只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。
二、报文解析
本报文以电力逆变器设备的报文做解析1、查询指令
(发送)00 00 00 00 00 06[k1] 01[k2] 03[k3] 00[k4] 00[k5] 00[k6] 00[k7]
[k1]起始字符组,长度,代表后面还有6个字节
[k2]设备地址
[k3]读指令
[k4]寄存器地址高8位
[k5]寄存器地址低8位
[k6]寄存器数量高8位
[k7]寄存器数量低8位
(返回)00 00 00 00 00 25[k1] 01[k2] 03[k3] 22[k4] (自定义功能码字节区)
[k1]起始字符组,长度,代表后面还有25个字节
[k2]设备地址
[k3]读指令
[k4]表示接下来数据字节的长度
2、控制指令(启动/停止)
(发送)00 00 00 00 00 06[k1] 01[k2] 06[k3] 00 12 00 01[k4]
[k1]起始字符组,长度,代表后面还有6个字节
[k2]设备地址
[k3]写指令
[k4]00=停止/01=启动
(返回)同上

3、逆变功率设定指令
(发送)00 00 00 00 00 06[k1] 01[k2] 06[k3] 00 13 00[k4] 00[k5]
[k1]起始字符组,长度,代表后面还有6个字节
[k2]设备地址
[k3]写指令
[k4]功率设定高字节
[k5]功率设定低字节
(返回)同上

猜你喜欢

转载自blog.csdn.net/qq_31042143/article/details/103544877