modbus slave java_Java接口开发及Modbus Slave仿真使用 Modbus TCP协议

本文详细介绍了ModbusTcp协议的基础知识,包括Modbus RTU与TCP的区别以及报文解析。通过示例展示了如何使用Java进行Modbus Slave接口开发,同时提供了一个ModbusTCP的读取保持寄存器内容的函数,并给出了报文的发送与响应解析过程。
摘要由CSDN通过智能技术生成

一、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[

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值