「java实现modbus」java实现modbus所需包

博主:adminadmin 2023-01-09 15:09:08 911

本篇文章给大家谈谈java实现modbus,以及java实现modbus所需包对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

请问你如何用java实现的ModbusRTU485串口发送报文的,能提供一下代码吗,万分感谢

发送就是像流中写入16进制数据,java中用byte[]数组表示,至于数组怎么存放数据要看接受端的要求了,这就要协议来控制,比如数据开头是什么,数据长度,校验位什么的。发数据要看接受端,两端需要统一,不能随便发送。读写数据很简单,关键是处理分析数据,调试最难了,有时候还会遇到数据大小端不一致,数据解析乱码。

请问您是怎么使用java语言实现modbus tcp协议的?麻烦提点提点 拜托了

使用套接字通信就可以了 如果是485的就不一样了 我只做过c#的 modbus 通信

java 实现modbus-tcp协议的实现代码,即用java 实现modbus-tcp协议,然后通过网络通信,而非串口通信

按照TCP/ip协议 编程即可,使用某端口,直接连接设备的端口,建立TCP连接,其他的按照协议格式发送即可。

java jamod实现modbus 如何读取浮点数据

package com.zsc;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import com.battery.bean.CommunityExceptionRecord;

import com.serotonin.modbus4j.ModbusFactory;

import com.serotonin.modbus4j.ModbusMaster;

import com.serotonin.modbus4j.exception.ModbusInitException;

import com.serotonin.modbus4j.exception.ModbusTransportException;

import com.serotonin.modbus4j.ip.IpParameters;

import com.serotonin.modbus4j.msg.ModbusRequest;

import com.serotonin.modbus4j.msg.ModbusResponse;

import com.serotonin.modbus4j.msg.ReadHoldingRegistersRequest;

import com.serotonin.modbus4j.msg.WriteRegistersRequest;

import com.serotonin.modbus4j.msg.WriteRegistersResponse;

import com.serotonin.util.queue.ByteQueue;

public class ReadAWriteUtil {

public static void modbusWTCP(String ip, int port, int slaveId, int start, short[] values) {

ModbusFactory modbusFactory = new ModbusFactory();

//

设备

ModbusTCP

Ip

与端口,如果不设定端口则默认为

502

IpParameters params = new IpParameters();

params.setHost(ip);

if (502 != port) {

params.setPort(port);

}//

设置端口,默认

502

ModbusMaster tcpMaster = null;

//

参数

1

IP

和端口信息参数

2

:保持连接激活

tcpMaster = modbusFactory.createTcpMaster(params, true);

try {

tcpMaster.init();

System.out.println("===============" + 1111111);

} catch (ModbusInitException e) {

// System.out.println("11111111111111=="+"

此处出现问题了啊

!");

//

如果出现了通信异常信息,则保存到数据库中

CommunityExceptionRecord cer = new CommunityExceptionRecord();

cer.setDate(new Date());

cer.setIp(ip);

// cer.setRemark(bgName+"

出现连接异常

");

// batteryGroupRecordService.saveCommunityException(cer);

}

try {

WriteRegistersRequest

request

=

new

WriteRegistersRequest(slaveId,

start,

values);

WriteRegistersResponse

response

=

(WriteRegistersResponse)

tcpMaster.send(request);

if (response.isException())

System.out.println("Exception

response:

message="

+

response.getExceptionMessage());

else

System.out.println("Success");

} catch (ModbusTransportException e) {

e.printStackTrace();

}

}

public static ByteQueue modbusTCP(String ip, int port, int start,int readLenth) {

ModbusFactory modbusFactory = new ModbusFactory();

//

设备

ModbusTCP

Ip

与端口,如果不设定端口则默认为

502

IpParameters params = new IpParameters();

params.setHost(ip);

if(502!=port){params.setPort(port);}//

设置端口,默认

502

ModbusMaster tcpMaster = null;

tcpMaster = modbusFactory.createTcpMaster(params, true);

try {

tcpMaster.init();

System.out.println("==============="+1111111);

} catch (ModbusInitException e) {

return null;

}

ModbusRequest modbusRequest=null;

try {

modbusRequest

=

new

ReadHoldingRegistersRequest(1,

start,

readLenth);//

功能码

03

} catch (ModbusTransportException e) {

e.printStackTrace();

}

ModbusResponse modbusResponse=null;

try {

modbusResponse = tcpMaster.send(modbusRequest);

} catch (ModbusTransportException e) {

e.printStackTrace();

ByteQueue byteQueue= new ByteQueue(12);

modbusResponse.write(byteQueue);

System.out.println("

功能码

:"+modbusRequest.getFunctionCode());

System.out.println("

从站地址

:"+modbusRequest.getSlaveId());

System.out.println("

收到的响应信息大小

:"+byteQueue.size());

System.out.println("

收到的响应信息值

:"+byteQueue);

return byteQueue;

}

}

Java modbus tcp 编程有懂得吗?给个示例看看。。。十分感谢。

modbus 就是一种规约而已

至于tcp 就是 tcp socket

你用java nio 或 mina就可以了 收到数据以后 按modbus 规约解析就是了

至于解析内容,可以自己定义。

关于java实现modbus和java实现modbus所需包的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。