关于Java通过MODBUSTCP协议连接硬件设备
物联网平台开发中经常会需要使用各种协议去和硬件设备进行通讯,例如常见的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,第二参数为寄存器起始地址,第三参数为寄存器个数。
返回的数组中的值即是寄存器内读到的值。