• 大小: 8.51MB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2023-11-03
  • 语言: Java
  • 标签: modbusTcp  

资源简介

对寄存器 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.xml

     文件       1247  2017-07-13 15:04  modbus\.idea\artifacts\modbus_war_exploded.xml

     文件       1188  2017-07-13 15:04  modbus\.idea\compiler.xml

     文件         76  2017-07-13 15:03  modbus\.idea\copyright\profiles_settings.xml

     文件        301  2017-08-16 14:26  modbus\.idea\encodings.xml

     文件        572  2017-07-13 15:04  modbus\.idea\libraries\Maven__commons_logging_commons_logging_1_1_1.xml

     文件        551  2017-07-13 15:04  modbus\.idea\libraries\Maven__com_infiniteautomation_modbus4j_2_0_7.xml

     文件        564  2017-07-13 15:04  modbus\.idea\libraries\Maven__com_serotonin_serotonin_timer_2_0_6.xml

     文件        564  2017-07-13 15:04  modbus\.idea\libraries\Maven__com_serotonin_serotonin_utils_2_1_7.xml

     文件        556  2017-07-13 15:04  modbus\.idea\libraries\Maven__org_apache_commons_commons_lang3_3_0.xml

     文件       1185  2017-07-13 15:07  modbus\.idea\misc.xml

     文件        252  2017-08-10 18:03  modbus\.idea\modules.xml

     文件      65006  2017-08-16 14:34  modbus\.idea\workspace.xml

     文件       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.xml

     文件         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个文件信息

评论

共有 条评论