diff --git a/Modbus_RTU_Master_jlibmodbus/MasterRTU.java b/Modbus_RTU_Master_jlibmodbus/MasterRTU.java new file mode 100644 index 0000000..c572398 --- /dev/null +++ b/Modbus_RTU_Master_jlibmodbus/MasterRTU.java @@ -0,0 +1,75 @@ +package org.example; + +import com.intelligt.modbus.jlibmodbus.Modbus; +import com.intelligt.modbus.jlibmodbus.master.ModbusMaster; +import com.intelligt.modbus.jlibmodbus.master.ModbusMasterFactory; +import com.intelligt.modbus.jlibmodbus.exception.ModbusIOException; +import com.intelligt.modbus.jlibmodbus.serial.*; +import jssc.SerialPortList; + +public class MasterRTU { + + static public void main(String[] arg) { + SerialParameters sp = new SerialParameters(); + Modbus.setLogLevel(Modbus.LogLevel.LEVEL_DEBUG); + + try { + //Вывод доступных портов + String[] dev_list = SerialPortList.getPortNames(); + + System.out.println("Доступные порты:"); + + for (int n = 0; n < dev_list.length; n++) { + System.out.println(dev_list[n]); + } + + if (dev_list.length > 0) { + //Настройка + sp.setDevice(dev_list[1]); + sp.setBaudRate(SerialPort.BaudRate.BAUD_RATE_9600); + sp.setDataBits(8); + sp.setParity(SerialPort.Parity.NONE); + sp.setStopBits(1); + + //Создание и подключение через jssc + SerialUtils.setSerialPortFactory(new SerialPortFactoryJSSC()); + ModbusMaster m = ModbusMasterFactory.createModbusMasterRTU(sp); + m.connect(); + + int slaveId = 1; // id устройства slave + int offset = 0; // Начальный адресс + int quantity = 10; //Количество условных портов + + try { + int[] registerValues = m.readHoldingRegisters(slaveId, offset, quantity); // Настройка тип регситра(в данном случае установлены регистры хранения) + + //Вывод + for (int value : registerValues) { + System.out.println("Адресс: " + offset + ", Значение: " + value); + + if (offset == 0 && value == 101) { + System.out.println("Hello"); + } + + offset++; + } + + } catch (RuntimeException e) { + throw e; + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + m.disconnect(); + } catch (ModbusIOException e1) { + e1.printStackTrace(); + } + } + } + } catch (RuntimeException e) { + throw e; + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/Modbus_RTU_Master_jlibmodbus/jssc-2.9.4.jar b/Modbus_RTU_Master_jlibmodbus/jssc-2.9.4.jar new file mode 100644 index 0000000..a754a20 Binary files /dev/null and b/Modbus_RTU_Master_jlibmodbus/jssc-2.9.4.jar differ diff --git a/Modbus_RTU_Master_jlibmodbus/pom.xml b/Modbus_RTU_Master_jlibmodbus/pom.xml new file mode 100644 index 0000000..9dbe8b6 --- /dev/null +++ b/Modbus_RTU_Master_jlibmodbus/pom.xml @@ -0,0 +1,31 @@ + + + 4.0.0 + + org.example + ModbusMasterJlibModbus + 1.0-SNAPSHOT + + + 20 + 20 + UTF-8 + + + + + com.intelligt.modbus + jlibmodbus + 1.2.9.7 + + + + org.slf4j + slf4j-api + 2.0.0-alpha0 + + + + \ No newline at end of file