关于Java通过MODBUSTCP协议连接硬件设备

createh55个月前 (12-25)技术教程57


物联网平台开发中经常会需要使用各种协议去和硬件设备进行通讯,例如常见的TCP/IP协议,MODBUS协议等等,今日我会使用Java简单介绍一下如何用MODBUSTCP协议对硬件进行通讯。

第一步,配置环境依赖,在这我使用jlibmodbus依赖包进行通讯,相关版本对应JDK版本自行添加,兼容即可 。

之后,创建Master主站,采用TcpParameters创建tcp参数对象,设置Host(IP地址),Port(端口号),Keepalivetime(长连接)后调用ModbusMasterFactory工厂类的createModbusMasterTCP方法,将tcp参数对象传入,得到ModBUSMaster,至此,Master主站建立完成,调用connect方法尝试连接。

//Tcp设置

TcpParameters tcpParameters = new TcpParameters();

tcpParameters.setHost(add);

tcpParameters.setPort(port);

tcpParameters.setKeepAlive(keepalive);

//创建主站

ModbusMaster master = ModbusMasterFactory.createModbusMasterTCP(tcpParameters);

if (!master.isConnected()) {

// 开启连接

try {

master.connect();

} catch (ModbusIOException e) {

e.printStackTrace();

}

}

ModBUSMaster的readHoldingRegisters方法可以读取保持寄存器中的数据,其中有三个参数需要填写,第一参数为从机ID,第二参数为寄存器起始地址,第三参数为寄存器个数。

返回的数组中的值即是寄存器内读到的值。

相关文章

3000字讲讲TCP协议,握手挥手不是你想的那么简单

专注于Java领域优质技术,欢迎关注作者: tobe 来自:tobe的呓语上一次讲了 UDP 协议,从这次开始,就要讲 TCP 协议了,因为 TCP 协议涉及到的东西很多,一篇文章概括不完,所以我把...

用 Wireshark 让你看见 TCP 到底是什么样

前言当你看到这篇文章时,你只能看到已经渲染好的文字和图像,而网络数据的交互对我们来说,却是看不见的,所以学习计算机网络原理的时候就会觉得非常的抽象,这一度让我苦恼。而且网络数据交换真实的模样,到底是不...

TCP协议的3次握手与4次挥手过程详解

前言尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器...

面试突击67:说一下 TCP/IP 协议?以及每层的作用?

TCP/IP 包含四层模型,从上层往下层分别是:应用层、传输层、网络层、数据链路层。有些资料也会说 TCP/IP 是五层模型,所谓的五层模型指的是在数据链路层下面还有一个物理层,而作为软件工程师一般不...

一文带你搞定TCP面试(一) tcp面经

摘要TCP头部格式TCPTCP三次握手分片SYN攻击TCP头部格式序列号:建立连接时会生成一个随机数初始化该值,然后通过SYN包发送给接收端,每发送一次数据就累加一次数据字节数的大小,序列号主要用来解...