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

 我来答
千锋教育
2016-09-30 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
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;

}
}
追问
我用的是jamod不是modbus4j
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式