【开源视频联动物联网平台】J2mod库写一个Modbus RTU 服务器

简介: 【开源视频联动物联网平台】J2mod库写一个Modbus RTU 服务器

J2Mod是一个Java编写的Modbus通信库,可以用于实现Modbus RTU服务器。以下是一个简单的示例,演示如何使用J2Mod库创建一个Modbus RTU服务器:


  1. 添加J2Mod库依赖项: 首先,确保在项目中包含J2Mod库。你可以将J2Mod库添加到项目中,方法取决于你使用的构建工具(比如Maven或Gradle)。


如果使用Maven,可以在pom.xml文件中添加以下依赖项:


<dependency>
    <groupId>com.ghgande.j2mod</groupId>
    <artifactId>j2mod</artifactId>
    <version>3.1.3</version> <!-- 使用最新版本 -->
</dependency>

如果使用Gradle,可以在build.gradle文件中添加以下依赖项:

implementation 'com.ghgande.j2mod:j2mod:3.1.3' // 使用最新版本


创建Modbus RTU服务器

下面是一个简单的Modbus RTU服务器示例,监听在COM3串口上,地址为1:

import com.ghgande.j2mod.modbus.Modbus;
import com.ghgande.j2mod.modbus.procimg.SimpleDigitalIn;
import com.ghgande.j2mod.modbus.procimg.SimpleDigitalOut;
import com.ghgande.j2mod.modbus.procimg.SimpleProcessImage;
import com.ghgande.j2mod.modbus.serial.SerialParameters;
import com.ghgande.j2mod.modbus.serial.SerialPort;
import com.ghgande.j2mod.modbus.serial.SerialUtils;
import com.ghgande.j2mod.modbus.serial.SerialPortException;
import com.ghgande.j2mod.modbus.serial.SerialPortFactory;
import com.ghgande.j2mod.modbus.ModbusCoupler;
 
public class ModbusRTUServerExample {
 
    public static void main(String[] args) {
        try {
            // Create a process image with a single coil at address 0
            SimpleProcessImage spi = new SimpleProcessImage();
            spi.addDigitalOut(new SimpleDigitalOut(true)); // Coil at address 0
            spi.addDigitalIn(new SimpleDigitalIn(false)); // Input at address 1
 
            // Set up the serial parameters
            SerialParameters serialParameters = new SerialParameters();
            serialParameters.setCommPortId("COM3");
            serialParameters.setBaudRate(SerialPort.BAUD_9600);
            serialParameters.setDatabits(8);
            serialParameters.setParity(SerialPort.PARITY_NONE);
            serialParameters.setStopbits(1);
            serialParameters.setEncoding(Modbus.SERIAL_ENCODING_RTU);
            serialParameters.setEcho(false);
 
            // Create the Modbus RTU serial port
            SerialPort serialPort = SerialPortFactory.create(serialParameters);
            serialPort.open();
 
            // Set the serial port for ModbusCoupler
            ModbusCoupler.getReference().setMaster(false);
            ModbusCoupler.getReference().setUnitID(1);
            ModbusCoupler.getReference().setProcessImage(spi);
            ModbusCoupler.getReference().setSerialPort(serialPort);
 
            // Start the Modbus RTU server
            ModbusCoupler.getReference().start();
 
            System.out.println("Modbus RTU server is running...");
 
            // Wait forever (you can add your own logic here)
            while (true) {
                Thread.sleep(1000);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


  1. 请注意,此示例中使用的串口是"COM3",你可能需要根据你的系统配置更改串口。确保你有足够的权限访问该串口。


j2mod完整案例开源项目

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
5天前
|
XML 编解码 JSON
【开源视频联动物联网平台】协议包管理
【开源视频联动物联网平台】协议包管理
44 1
|
5天前
|
Windows
LabVIEW中ActiveX控件、ActiveX服务器和类型库注册
LabVIEW中ActiveX控件、ActiveX服务器和类型库注册
12 4
|
5天前
|
安全 Linux 网络安全
Windows搭建Emby媒体库服务器,无公网IP远程访问本地影音文件
Windows搭建Emby媒体库服务器,无公网IP远程访问本地影音文件
18 0
|
5天前
本地部署Jellyfin影音服务器并实现远程访问影音库-2
本地部署Jellyfin影音服务器并实现远程访问影音库
|
5天前
|
Linux 网络安全 文件存储
本地部署Jellyfin影音服务器并实现远程访问影音库-1
本地部署Jellyfin影音服务器并实现远程访问影音库
|
5天前
|
安全 算法 Linux
【专栏】Linux 服务器还有漏洞?OpenVAS 是一款开源的漏洞扫描工具,用于全面评估 Linux 服务器安全
【4月更文挑战第28天】OpenVAS 是一款开源的漏洞扫描工具,用于全面评估 Linux 服务器安全。它具有全面性、准确性和实时性的特点,能扫描各种设备并及时发现安全漏洞。使用 OpenVAS 包括安装、配置和执行扫描,以及分析结果并采取修复措施。在使用过程中应注意扫描时间、范围和策略的选择。通过定期检查和修复漏洞,结合其他安全措施,可以提升服务器安全性。OpenVAS 是保障 Linux 服务器安全的重要工具,但安全维护也需要持续学习和适应新挑战。
|
5天前
|
中间件 Go API
Golang深入浅出之-Go语言标准库net/http:构建Web服务器
【4月更文挑战第25天】Go语言的`net/http`包是构建高性能Web服务器的核心,提供创建服务器和发起请求的功能。本文讨论了使用中的常见问题和解决方案,包括:使用第三方路由库改进路由设计、引入中间件处理通用逻辑、设置合适的超时和连接管理以防止资源泄露。通过基础服务器和中间件的代码示例,展示了如何有效运用`net/http`包。掌握这些最佳实践,有助于开发出高效、易维护的Web服务。
29 1
|
5天前
|
Linux 网络安全 文件存储
本地部署Jellyfin影音服务器并实现远程访问内网影音库
本地部署Jellyfin影音服务器并实现远程访问内网影音库
|
5天前
|
Go 开发工具 git
推荐一个开源流媒体服务器-livgo
推荐一个开源流媒体服务器-livgo
55 0
|
5天前
|
编解码 缓存 网络协议
EasyDarwin开源流媒体服务器
EasyDarwin开源流媒体服务器
76 0

热门文章

最新文章