资源简介
通过modbus协议读取和写入寄存器数据java详细demo,如果是modbus TCP只需要看com.rib.cdm.utils.ModbusTcpUtils这个类就行了,这个类是详细的读取以及写入demo。如果需要modbus RTU,那么只需要看com.dn9x.modbus.controller.WriteToModbus这个类就行了,这个是modbus RTU的读写demo
代码片段和文件信息
package com.dn9x.modbus.controller;
import java.util.Arrays;
import com.serotonin.io.serial.SerialParameters;
import com.serotonin.modbus4j.ModbusFactory;
import com.serotonin.modbus4j.ModbusMaster;
import com.serotonin.modbus4j.exception.ModbusTransportException;
import com.serotonin.modbus4j.msg.ReadDiscreteInputsRequest;
import com.serotonin.modbus4j.msg.ReadDiscreteInputsResponse;
import com.serotonin.modbus4j.msg.ReadHoldingRegistersRequest;
import com.serotonin.modbus4j.msg.ReadHoldingRegistersResponse;
import com.serotonin.modbus4j.msg.WriteRegistersRequest;
import com.serotonin.modbus4j.msg.WriteRegistersResponse;
public class WriteToModbus {
// MODBUS网络上从站地址
private final static int SLAVE_ADDRESS = 5;
// 串行口波特率
private final static int BAUD_RATE = 9600;
public static void main(String[] args) throws Exception {
SerialParameters serialParameters = new SerialParameters();
// 设定MODBUS通讯的串行口
serialParameters.setCommPortId(“COM3“);
// 设定成无奇偶校验
serialParameters.setParity(0);
// 设定成数据位是8位
serialParameters.setDataBits(8);
// 设定为1个停止位
serialParameters.setStopBits(1);
serialParameters.setPortOwnerName(“Numb nuts“);
// 串行口上的波特率
serialParameters.setBaudRate(BAUD_RATE);
ModbusFactory modbusFactory = new ModbusFactory();
ModbusMaster master = modbusFactory.createRtuMaster(serialParameters);
try {
master.init();
readDiscreteInputTest(master SLAVE_ADDRESS 0 8);
writeRegistersTest(master SLAVE_ADDRESS 0 new short[] { 0x31 0xb 0xc 0xd 0xe
0x9 0x8 0x7 0x6 });
readHoldingRegistersTest(master SLAVE_ADDRESS 0 8);
} finally {
master.destroy();
}
}
/**
* 读开关量型的输入信号
*
* @param master
* 主站
* @param slaveId
* 从站地址
* @param start
* 起始偏移量
* @param len
* 待读的开关量的个数
*/
private static void readDiscreteInputTest(ModbusMaster master int slaveId int start int len) {
try {
ReadDiscreteInputsRequest request = new ReadDiscreteInputsRequest(slaveId start len);
ReadDiscreteInputsResponse response = (ReadDiscreteInputsResponse) master.send(request);
if (response.isException())
System.out.println(“Exception response: message=“ + response.getExceptionMessage());
else
System.out.println(Arrays.toString(response.getBooleanData()));
} catch (ModbusTransportException e) {
e.printStackTrace();
}
}
/**
* 读保持寄存器上的内容
*
* @param master
* 主站
* @param slaveId
* 从站地址
* @param start
* 起始地址的偏移量
* @param len
* 待读寄存器的个数
*/
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-08-16 15:20 modbus\
目录 0 2017-08-16 15:20 modbus\modbus\
文件 1513 2017-08-21 16:50 modbus\modbus\.classpath
目录 0 2017-08-16 15:20 modbus\modbus\.idea\
目录 0 2017-08-16 15:20 modbus\modbus\.idea\artifacts\
文件 299 2017-07-13 15:04 modbus\modbus\.idea\artifacts\modbus_war.xm
文件 1247 2017-07-13 15:04 modbus\modbus\.idea\artifacts\modbus_war_exploded.xm
文件 1188 2017-07-13 15:04 modbus\modbus\.idea\compiler.xm
目录 0 2017-08-16 15:20 modbus\modbus\.idea\copyright\
文件 76 2017-07-13 15:03 modbus\modbus\.idea\copyright\profiles_settings.xm
文件 301 2017-08-16 14:26 modbus\modbus\.idea\encodings.xm
目录 0 2017-08-16 15:20 modbus\modbus\.idea\libraries\
文件 551 2017-07-13 15:04 modbus\modbus\.idea\libraries\Maven__com_infiniteautomation_modbus4j_2_0_7.xm
文件 564 2017-07-13 15:04 modbus\modbus\.idea\libraries\Maven__com_serotonin_serotonin_timer_2_0_6.xm
文件 564 2017-07-13 15:04 modbus\modbus\.idea\libraries\Maven__com_serotonin_serotonin_utils_2_1_7.xm
文件 572 2017-07-13 15:04 modbus\modbus\.idea\libraries\Maven__commons_logging_commons_logging_1_1_1.xm
文件 556 2017-07-13 15:04 modbus\modbus\.idea\libraries\Maven__org_apache_commons_commons_lang3_3_0.xm
文件 1185 2017-07-13 15:07 modbus\modbus\.idea\misc.xm
文件 252 2017-08-10 18:03 modbus\modbus\.idea\modules.xm
文件 65006 2017-08-16 14:34 modbus\modbus\.idea\workspace.xm
文件 1215 2017-08-16 15:07 modbus\modbus\.project
目录 0 2017-08-16 15:20 modbus\modbus\.settings\
文件 575 2017-06-20 21:47 modbus\modbus\.settings\.jsdtscope
文件 430 2017-06-20 21:47 modbus\modbus\.settings\org.eclipse.jdt.core.prefs
文件 90 2017-08-16 15:59 modbus\modbus\.settings\org.eclipse.m2e.core.prefs
文件 659 2017-06-21 15:16 modbus\modbus\.settings\org.eclipse.wst.common.component
文件 252 2017-06-20 21:47 modbus\modbus\.settings\org.eclipse.wst.common.project.facet.core.xm
文件 49 2017-06-20 21:47 modbus\modbus\.settings\org.eclipse.wst.jsdt.ui.superType.container
文件 6 2017-06-20 21:47 modbus\modbus\.settings\org.eclipse.wst.jsdt.ui.superType.name
文件 50 2017-06-20 21:47 modbus\modbus\.settings\org.eclipse.wst.validation.prefs
目录 0 2017-08-16 15:20 modbus\modbus\lib\
............此处省略63个文件信息
相关资源
- 完整版modbus+tcp+ java开发代码
- modbus4j完整源码
- Modbus_Android
- JAVA写的利用ModbusTCP协议控制现场设备
- Android程序开发使用Modbus,Modbus4j读写
- 基于Java的Modbus通讯
- 西门子s7-200 Smart plc modbus tcp 通讯代码
- modbus的读写java实现
- modbus4j.jar 和 seroUtils.jar
- java与plc通讯
- modbus4j 2019-3最新jar包
- java实现MODBUS通讯
- 安卓版Modbus通用通讯软件
- Modbus4j最新Maven工程源码+seroUtils
- modbus采集jar包
- Java_Modbus的操作()
- modbus4j-3.0.4-SNAPSHOT.jar
- modbus4j 相关jar包 3.0.5-SNAPSHOT.jar
- jamod和modbus4J
- Java应用程序的Modbus4j串口通讯
- Android 通过USB与PLC设备通信(USB转串口
- modbus+seroutils+2.0.2+rxtx-2.1-7一套解决j
- modbus4jDemo
- Android通过串口操控Modbus设备
- modbusTCP协议java实现带注释
- 读写modbus协议的java包
- modbus4j全部jar包
- android Modbus Rtu 通讯
评论
共有 条评论