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(); } } }