diff --git a/Modbus_RTU_Master/ModbusRTUMaster.java b/Modbus_RTU_Master/ModbusRTUMaster.java new file mode 100644 index 0000000..b4e1c57 --- /dev/null +++ b/Modbus_RTU_Master/ModbusRTUMaster.java @@ -0,0 +1,53 @@ +package org.example; + +import com.ghgande.j2mod.modbus.ModbusException; +import com.ghgande.j2mod.modbus.facade.ModbusSerialMaster; +import com.ghgande.j2mod.modbus.procimg.InputRegister; +import com.ghgande.j2mod.modbus.procimg.Register; +import com.ghgande.j2mod.modbus.procimg.SimpleRegister; +import com.ghgande.j2mod.modbus.util.SerialParameters; + +public class ModbusRTUMaster { + + public static void main(String[] args) { + // Установка параметров порта + SerialParameters parameters = new SerialParameters(); + parameters.setPortName("COM3"); // Имя порта + parameters.setBaudRate(9600); // Скорость передачи + parameters.setDatabits(8); // Биты данных, в нашем случае передается по 8 битов + parameters.setParity("None"); // Без бита четности + parameters.setStopbits(1); // Стоповый бит 1 + parameters.setEncoding("rtu"); // Кодирование RTU + parameters.setEcho(false); // Лок. эхо выкл + + // Создание экземпляра ModbusSerialMaster + ModbusSerialMaster modbusMaster = new ModbusSerialMaster(parameters); + + try { + modbusMaster.connect(); // Подключение к устройству + + int slaveId = 1; // ID устройства slave + int registerAddress = 0; // Адрес регистра + + // Чтение значения из регистра + InputRegister[] registers = modbusMaster.readInputRegisters(slaveId, registerAddress, 1); + int value = registers[0].toUnsignedShort(); + System.out.println("Значение регистра: " + value); + + // Запись значения в регистр + int newValue = 123; + SimpleRegister register = new SimpleRegister(newValue); + modbusMaster.writeSingleRegister(slaveId, registerAddress, register); + System.out.println("Значение успешно записано в регистр."); + + modbusMaster.disconnect(); // Отключение от устройства + }catch (ModbusException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} + + + diff --git a/Modbus_RTU_Master/pom.xml b/Modbus_RTU_Master/pom.xml new file mode 100644 index 0000000..b305470 --- /dev/null +++ b/Modbus_RTU_Master/pom.xml @@ -0,0 +1,49 @@ + + + 4.0.0 + + org.example + ModbusV3 + 1.0-SNAPSHOT + + + 20 + 20 + UTF-8 + + + + + com.ghgande + j2mod + 3.1.1 + + + + org.slf4j + slf4j-api + 1.7.5 + + + org.slf4j + slf4j-simple + 1.6.4 + + + + net.wimpi + jamod + 1.2 + + + + com.intelligt.modbus + jlibmodbus + 1.2.9.7 + + + + + \ No newline at end of file