包含javajamod的词条
今天给各位分享javajamod的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
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;
}
}
关于javajamod和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-27,除非注明,否则均为
原创文章,转载请注明出处。