資源簡介
對寄存器 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個文件信息
評論
共有 條評論