Java实现使用Modbus4j+seroUtils读取Mudbus RTU/ASCII Over TCP/IP连接设备数据
使用Modbus4j+seroUtils读取风速风向仪数据,现有设备IP,端口号,从机地址,寄存器读取开始地址,读取的寄存器数量。没有上述jar包可以自行搜索,网上资源挺多
/*** @author chengy*/
@Component
public class ModbusUtil {private static ModbusFactory modbusFactory;static {if (modbusFactory == null) {modbusFactory = new ModbusFactory();}}/*** @param ip 远程服务机地址* @param port 端口号* @param slaveId 从机地址* @param offset 寄存器读取开始地址* @param quantity 读取的寄存器数量* @return*/public static short[] getValueByRTU(String ip, int port, int slaveId, int offset, int quantity){short[] result = new short[2];IpParameters params = new IpParameters();params.setHost(ip);params.setPort(port);//这个属性确定了协议帧是否是通过tcp封装的RTU结构,采用modbus tcp/ip时,要设为false, 采用modbus rtu over tcp/ip时,要设为trueparams.setEncapsulated(true);com.serotonin.modbus4j.ModbusMaster master = modbusFactory.createTcpMaster(params, true);// TCP 协议try {//设置超时时间master.setTimeout(1000);//设置重连次数master.setRetries(3);//初始化master.init();try {ReadHoldingRegistersRequest request = null;request = new ReadHoldingRegistersRequest(slaveId, offset, quantity);ReadHoldingRegistersResponse response = (ReadHoldingRegistersResponse) master.send(request);if (response.isException())System.out.println("读取风速设备数据失败," + response.getExceptionMessage());elseresult = response.getShortData();} catch (ModbusTransportException e) {throw new RuntimeException("读取风速设备数据失败");}} catch (ModbusInitException e) {throw new RuntimeException("建立风速设备连接失败");}return result;}
}
相关文章:Java实现ModbusTCP通信
Java实现使用Modbus4j+seroUtils读取Mudbus RTU/ASCII Over TCP/IP连接设备数据相关推荐
- JAVA加密解密→术语、密码分类、OSI与TCP/IP安全体系、Base64、消息摘要算法MD/SHA/MAC、对称加密算法DES/AES/PBE、非对称加密算法DH/RSA/EIGamaI
术语 密码分类 OSI与TCP/IP安全体系 JAVA安全 Base64算法 消息摘要算法MD 消息摘要算法MD图解 消息摘要算法SHA 消息摘要算法SHA图解 消息摘要算法MAC 消息摘要算法MAC ...
- atitit. java jsoup html table的读取解析 总结
atitit. java jsoup html table的读取解析 总结 1. 两个大的parser ,,,jsoup 跟个 htmlparser 1 2. 资料比较 1 3. jsoup越佳. ...
- 在 Java 中,如何批量读取本项目资源目录下的所有文件
在 Java 中,如何批量读取本项目资源目录下的所有文件 读取资源目录下的指定文件 方法 1:使用 JDK 中原始 API 方法 2:借助 Spring 附录 将 InputStream 转化为 by ...
- java 0x5_java - 从Java中的COM端口读取,错误0x5在.. \ rxtx \ src \ termios.c(892) - 堆栈内存溢出...
我正在用Java编写一个小应用程序来读取COM端口,因为我们使用64位系统,所以我不得不使用RXTX. 问题是,当我尝试运行我的应用程序时,我收到以下错误: "错误0x5在.. \\ rxt ...
- 串口如何接收数据_原创分享 | S71200通过串口服务器读取MODBUS RTU设备
此项目使用S7-1200的TCP通讯功能读取远程MODBUS RTU仪表,利用原有的串口服务器,克服了485总线传输距离的问题. 所用设备:S7-1212C ,NP3016T(三旺16口串口服务器 4 ...
- java中使用字符(字节)读取文本内容
package test;import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.Fi ...
- Java中使用字符流读取UTF-8和写出txt文件 乱码 问题
乱码问题一直都是非常难受的问题,本文解决Java中使用字符流读取UTF-8和写出txt文件 乱码 话不多说,直接上图 输出结果: 使用代码: 解决:
- java文件乱码_Java文件读取乱码问题解决
使用java读取磁盘文件内容容易出现乱码, 问题是由于java使用的编码和被读取文件的编码不一致导致的. 假设有一个test.txt的文本文件,文件内容为:"测试java读取中文字符串乱码问 ...
- poi导出excel写入公式_【java poi 写入Excel后读取公式值问题】poi导入excel
java poi 写入Excel后读取公式值问题 不用改公式,只需要用cell.getNumericCellValue()获取,读出来就是正确的值了,如果你读出来的还有问题,说明你其他的地方写的还有问 ...
最新文章
- centos php 开启libgdgd_Linux下开启PHP GD库支持
- Flink 架构:三层架构体系、运行时组件
- python之多线程编程(一):基本介绍
- Effective Java之抛出与抽象相应的异常(六十一)
- gitee怎么仓库间传文件_实现一个简单的基于码云(Gitee) 的 Storage
- openresty nginx php,diy 你的nginx-OpenResty
- 公司的终极目的不是营利:贝佐斯商业新哲学
- 2015/8/29 Python基础(3):数值
- 【iOS】Ambiguous reference to member 'tableView(_:numberOfRowsInSection:)'
- dos窗口运行java程序时中文乱码的解决方法
- 父爱如山,催泪微电影感动全网
- excel多窗口显示设置
- 51单片机:数码管动态显示
- Nginx到底能干嘛?!Nginx是做什么用的?通俗易懂,前端必看!
- leng dw $ -string汇编语言
- 《2019全国互联网行业程序员就业报告》出炉,程序员平均月薪为1.8W
- 2016百度之星总结帖
- oracle两表子查询,Oracle02-查询(多表,子查询)
- Python 实战系列-微信或网页远程控制电脑
- Prolog教程 7