「java接收modbus」java接收控制台输入

博主:adminadmin 2022-12-06 22:21:07 64

本篇文章给大家谈谈java接收modbus,以及java接收控制台输入对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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

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

关于MODBUS通讯,JAVA实现协议的发送和接收怎么写?

有现成的,去MODBUS组织的官网上找吧,有个技术资源页,列出了很多资源。

.Net有开源的,用过,还不错。Java没用过,所以没注意,印象中是有的。

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

modbus 就是一种规约而已

至于tcp 就是 tcp socket

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

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

JAVA 如何 Modbus协议 进行通讯?

Modbus协议很简单,你需要的数据可以用3号功能码读取,但本人是用VC++,不懂JAVA。

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和java接收控制台输入的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-06,除非注明,否则均为首码项目网原创文章,转载请注明出处。