资源简介
对寄存器 hoilding request 读写操作,对线圈 coil request读写操作。
代码片段和文件信息
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
* 待读寄存器的个数
*/
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1842 2018-10-31 11:09 modbus\.classpath
文件 299 2017-07-13 15:04 modbus\.idea\artifacts\modbus_war.xm
文件 1247 2017-07-13 15:04 modbus\.idea\artifacts\modbus_war_exploded.xm
文件 1188 2017-07-13 15:04 modbus\.idea\compiler.xm
文件 76 2017-07-13 15:03 modbus\.idea\copyright\profiles_settings.xm
文件 301 2017-08-16 14:26 modbus\.idea\encodings.xm
文件 572 2017-07-13 15:04 modbus\.idea\libraries\Maven__commons_logging_commons_logging_1_1_1.xm
文件 551 2017-07-13 15:04 modbus\.idea\libraries\Maven__com_infiniteautomation_modbus4j_2_0_7.xm
文件 564 2017-07-13 15:04 modbus\.idea\libraries\Maven__com_serotonin_serotonin_timer_2_0_6.xm
文件 564 2017-07-13 15:04 modbus\.idea\libraries\Maven__com_serotonin_serotonin_utils_2_1_7.xm
文件 556 2017-07-13 15:04 modbus\.idea\libraries\Maven__org_apache_commons_commons_lang3_3_0.xm
文件 1185 2017-07-13 15:07 modbus\.idea\misc.xm
文件 252 2017-08-10 18:03 modbus\.idea\modules.xm
文件 65006 2017-08-16 14:34 modbus\.idea\workspace.xm
文件 1215 2017-08-16 15:07 modbus\.project
文件 575 2017-06-20 21:47 modbus\.settings\.jsdtscope
文件 430 2018-10-31 10:15 modbus\.settings\org.eclipse.jdt.core.prefs
文件 90 2017-08-16 15:59 modbus\.settings\org.eclipse.m2e.core.prefs
文件 659 2017-06-21 15:16 modbus\.settings\org.eclipse.wst.common.component
文件 252 2018-10-31 10:15 modbus\.settings\org.eclipse.wst.common.project.facet.core.xm
文件 49 2017-06-20 21:47 modbus\.settings\org.eclipse.wst.jsdt.ui.superType.container
文件 6 2017-06-20 21:47 modbus\.settings\org.eclipse.wst.jsdt.ui.superType.name
文件 50 2017-06-20 21:47 modbus\.settings\org.eclipse.wst.validation.prefs
文件 434678 2016-08-08 15:29 modbus\lib\commons-lang3-3.4.jar
文件 61829 2015-10-27 20:14 modbus\lib\commons-logging-1.2.jar
文件 127513 2014-12-03 11:57 modbus\lib\modbus4j-2.0.2.jar
文件 136633 2017-06-20 21:33 modbus\lib\modbus4j-2.0.7.jar
文件 7995879 2017-06-20 21:33 modbus\lib\modbus4j-2.0.7.zip
文件 42977 2014-12-03 11:57 modbus\lib\serotonin-timer-2.0.6.jar
文件 454711 2014-12-03 11:57 modbus\lib\serotonin-utils-2.1.7.jar
............此处省略68个文件信息
评论
共有 条评论