「java实现modbus」java实现modbus所需包
本篇文章给大家谈谈java实现modbus,以及java实现modbus所需包对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、请问你如何用java实现的ModbusRTU485串口发送报文的,能提供一下代码吗,万分感谢
- 2、请问您是怎么使用java语言实现modbus tcp协议的?麻烦提点提点 拜托了
- 3、java 实现modbus-tcp协议的实现代码,即用java 实现modbus-tcp协议,然后通过网络通信,而非串口通信
- 4、java jamod实现modbus 如何读取浮点数据
- 5、Java modbus tcp 编程有懂得吗?给个示例看看。。。十分感谢。
请问你如何用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所需包的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。