Первая версия Modbus master
Используется библеотека j2mod. pom.xml добавлен для того, что бы эта библиотека работала. Сборка на maven SDK проекта: openjdk-20
This commit is contained in:
parent
354b39bdd8
commit
52c755cbd4
53
Modbus_RTU_Master/ModbusRTUMaster.java
Normal file
53
Modbus_RTU_Master/ModbusRTUMaster.java
Normal file
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
49
Modbus_RTU_Master/pom.xml
Normal file
49
Modbus_RTU_Master/pom.xml
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<groupId>org.example</groupId>
|
||||||
|
<artifactId>ModbusV3</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<maven.compiler.source>20</maven.compiler.source>
|
||||||
|
<maven.compiler.target>20</maven.compiler.target>
|
||||||
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.ghgande</groupId>
|
||||||
|
<artifactId>j2mod</artifactId>
|
||||||
|
<version>3.1.1</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-api</artifactId>
|
||||||
|
<version>1.7.5</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-simple</artifactId>
|
||||||
|
<version>1.6.4</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>net.wimpi</groupId>
|
||||||
|
<artifactId>jamod</artifactId>
|
||||||
|
<version>1.2</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.intelligt.modbus</groupId>
|
||||||
|
<artifactId>jlibmodbus</artifactId>
|
||||||
|
<version>1.2.9.7</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
Loading…
Reference in New Issue
Block a user