当前位置: 首页 > 软件库 > 程序开发 > 网络工具包 >

easymodbus4j

基于netty的modbus协议快速开发工具
授权协议 Apache
开发语言 Java
所属分类 程序开发、 网络工具包
软件类型 开源软件
地区 国产
投 递 者 弓俊晖
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

easymodbus4j 是一个高性能和易用的 Modbus 协议的 Java 实现,基于 Netty 开发,可用于 Modbus 4 的客户端和服务器开发。

easymodbus4j运行效果图截屏

easymodbus4j 特点:
1、Netty NIO high performance高性能.
2、Modbus Function sync/aync 同步/异步非阻塞。
3、Modbus IoT Data Connector Supports工业物联网平台IoT支持。
4、完全支持4种部署模式: 服务器master,客户端slave,服务器slave,客户端master。
5、友好的调试以及日志支持bit\bitset\byte\short\int\float\double。
6、Supports Function Codes:
Read Coils (FC1)
Read Discrete Inputs (FC2)
Read Holding Registers (FC3)
Read Input Registers (FC4)
Write Single Coil (FC5)
Write Single Register (FC6)
Write Multiple Coils (FC15)
Write Multiple Registers (FC16)
Read/Write Multiple Registers (FC23)

Repositories Central Sonatype Mvnrepository easymodbus4j

快速开发Quick Start:
第一步step1:
maven:
<dependency>
<groupId>com.github.zengfr</groupId>
<artifactId>easymodbus4j</artifactId>
<version>0.0.3</version>
</dependency>

第二步step2:
2.1 if master 实现implement ResponseHandler接口 see easymodbus4j-example:ModbusMasterResponseHandler.java 
2.2 if slave 实现implement RequestHandler接口 see easymodbus4j-example:ModbusSlaveRequestHandler.java 

第三步step3:
modbusServer = ModbusServerFactory.getInstance().createServer4Master(port, responseHandler);
modbusClient = ModbusClientFactory.getInstance().createClient4Slave(host,port, requestHandler);

modbusClient = ModbusClientFactory.getInstance().createClient4Master(host, port, responseHandler);
modbusServer = ModbusServerFactory.getInstance().createServer4Slave(port, requestHandler);

第四步step4:
4.1 how to send a request ?
ChannelSender sender = ChannelSenderFactory.getInstance().get(channel);
sender.readCoils(...)
sender.readDiscreteInputs(...)
sender.writeSingleRegister(...)
4.2 how to show log? 
see ModbusMasterResponseHandler.java
ModbusFrameUtil.showFrameLog(logger, channel, frame);
Example run startup:
1、unzip file easymodbus4j-release.zip.
2、for modbus master mode:open autosend.txt file in dir or autosend.txt rsourcefile in easymodbus4j.jar 
3、for modbus master mode:edit autosend.txt file
4、start startup.bat.
5、you also can edit *.bat for modbus master/salve mode: .
说明:
1、解压缩zip文件到文件夹
2、java程序 运行不了 则安装jdk8.
3、解压后4个bat文件  对应 服务器master,客户端slave,服务器slave,客户端master 4种模式.
4、Master模式 可以设置autosend.txt文件,定时发送读写请求。
5、记事本打开bat文件可以编辑相关参数,如定时延时发送时间以及详细日志开关。
  • easymodbus4j 日志工具类 https://github.com/zengfr/easymodbus4j https://gitee.com/zengfr/easymodbus4j wiki:https://github.com/zengfr/easymodbus4j/wiki/easymodbus4j-%E6%97%A5%E5%BF%97%E5%B7%A5%E5%85%B7%E7%B1

  • java使用modbus4j示例如下,特别注意: 如果想轮询去读数据,需要for循环调readHoldingRegistersTest(master,SLAVE_ADDRESS,0,100); 并且serialParameters.setStopBits(1); 修改为serialParameters.setStopBits(2); package com.test.modbus; import

  • modbus协议的一些基础知识我在另一篇文章里提到过 https://blog.csdn.net/m0_37547159/article/details/109689872 可以参考,今天主要说一下java和modbus的通信,之前和modbus通信主要采用的netty框架,通过netty构建tcp通信来实现,但是有个缺点,需要自己构建modbus的包和解析modbus返回的数据,虽然netty底

  • 本项目使用modbus4j-3.0.3.jar实现于PLC通讯。 实现与PLC连接并完成读写基本数据类型通讯测试不再赘述,本人参考了云逸的博客https://www.cnblogs.com/ioufev/p/10831289.html 直接进入主题,读写字符串 写入字符串 /**      * 测试程序      *      * @param slaveId      * @param offs

  • jar包版本 modbus4j-3.0.6.jar 示例代码 // 入库 @SneakyThrows private List<ElecDataVal> work(){ List<ElecDataVal> elecDataVals = new ArrayList<>(); Map<String, List<MPoint>> pMap = pointList

  • /* * ============================================================================ * GNU General Public License * ============================================================================ * * C

 相关资料
  • 问题内容: 我正在为Swift 编写本教程:https : //www.raywenderlich.com/125311/make- game-like-candy-crush-spritekit-swift- part-1 并遇到以下代码: 我正是这样写的,但是Xcode给了我这些错误: 我从苹果的文档中找到了以下代码:https : //developer.apple.com/document

  • 在这种类型的协议中,任何事务在获取适当的锁之前都无法读取或写入数据。 锁有两种类型: 1.共享锁: 它也称为只读锁。 在共享锁中,数据项只能由事务读取。 它可以在事务之间共享,因为当事务持有锁时,它无法更新数据项上的数据。 2.独占锁: 在独占锁中,数据项既可以是读取,也可以是事务写入。 这种锁是独占的,在此锁中,多个事务不会同时修改相同的数据。 有四种类型的锁定协议可用: 1. 简单的锁定协议

  • 本文向大家介绍python基于SMTP协议发送邮件,包括了python基于SMTP协议发送邮件的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python基于SMTP协议发送邮件的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 验证阶段也称为乐观并发控制技术。 在基于验证的协议中,事务在以下三个阶段中执行: 读阶段 :在此阶段,读取并执行事务T。它用于读取各种数据项的值并将它们存储在临时局部变量中。 它可以对临时变量执行所有写操作,而无需更新实际数据库。 验证阶段 :在此阶段,将根据实际数据验证临时变量值,以查看它是否违反了可串行性。 写入阶段 :如果验证了事务的验证,则将临时结果写入数据库或系统,否则将回滚事务。 这里

  • 问题内容: 我有一个符合多种协议的Objective-C变量。 我将如何在Swift中代表这种类型? 问题答案: 这应该工作: 注意,必须快速使用NSObjectProtocol而不是NSObject。 以下是一些其他示例: 符合多种协议的对象数组: 具有符合多种协议的参数的功能: 对于3.1之前的Swift版本,请使用:

  • 《HeyThings IoT服务平台开发者服务协议》(以下简称“本协议”)为广东欢太科技有限公司(以下简称“欢太”)与所有在HeyThings IoT服务平台(以下简称“服务平台”)上发布产品的开发者(以下简称“开发者”)就产品发布所签订的协议。 请开发者认真阅读、充分理解本协议各条款,特别是免除或者限制欢太及其关联公司责任的条款,对开发者的权利限制条款,争议解决和法律适用条款等,该类条款将以加粗

  • 开发人员协议 请务必认真阅读和理解本《360浏览器应用开放平台开发人员协议》(以下简称"协议")中规定的所有权利和限制。在您参与360浏览器应用开放平台并使用应用中心分发产品时,您首先应接受本《协议》条款,如果您不接受本协议或违反了协议,奇虎360有权采取以下措施:驳回应用审核、下线产品、删除帐户、拒绝访问等。 本《协议》是开发人员与北京奇虎科技有限公司(下称"奇虎360")之间关于利用360浏览

  • 问题内容: 我需要使一个类符合Swift中的协议,以实现委托。我该怎么办? 问题答案: 但是请注意,某些协议 要求 您实现委托方法。例如, 要求 您实施 和 如果那些不是由符合协议的类实现的,则Xcode会给您一个编译错误(始终检查协议声明,Cmd + Click将向您显示 必须 实现的方法)。