
Java modbus tcp 编程有懂得吗?给个示例看看。。。十分感谢。
此问题已解决谢谢!如下:publicstaticByteQueuemodbusTCP(Stringip,intport,intstart,intreadLenth){Mo...
此问题已解决谢谢!如下:
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();
} 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);
return byteQueue;
}
但是得下载两个jar包。modbus4j.jar和seroUtils.jar 展开
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();
} 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);
return byteQueue;
}
但是得下载两个jar包。modbus4j.jar和seroUtils.jar 展开
展开全部
modbus 就是一种规约而已
至于tcp 就是 tcp socket
你用java nio 或 mina就可以了 收到数据以后 按modbus 规约解析就是了
至于解析内容,可以自己定义。
至于tcp 就是 tcp socket
你用java nio 或 mina就可以了 收到数据以后 按modbus 规约解析就是了
至于解析内容,可以自己定义。
追问
得先向主机发送请求,获取响应。。。
关键是发送请求不太明白,不知怎么写啊?是用modbus4j.jar吗?。。。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2024-10-17 广告
ZigBee 协议属于高级通信协议,是基于上世界的IEEE协会制定的802协议,主要约束了网路的无线协议、通讯协议、安全协议和应用需求等方面的标准,其有效转播速率可以达到300Kbps (千比特率)。 和计算机通信的模式类似,ZigBee的...
点击进入详情页
本回答由晓网科技提供
展开全部
楼主懂了吗?我现在也在学这个,能帮帮忙吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询