使用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连接设备数据相关推荐

  1. 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 ...

  2. atitit. java jsoup html table的读取解析 总结

    atitit. java jsoup html table的读取解析 总结 1. 两个大的parser ,,,jsoup 跟个   htmlparser 1 2. 资料比较 1 3. jsoup越佳. ...

  3. 在 Java 中,如何批量读取本项目资源目录下的所有文件

    在 Java 中,如何批量读取本项目资源目录下的所有文件 读取资源目录下的指定文件 方法 1:使用 JDK 中原始 API 方法 2:借助 Spring 附录 将 InputStream 转化为 by ...

  4. java 0x5_java - 从Java中的COM端口读取,错误0x5在.. \ rxtx \ src \ termios.c(892) - 堆栈内存溢出...

    我正在用Java编写一个小应用程序来读取COM端口,因为我们使用64位系统,所以我不得不使用RXTX. 问题是,当我尝试运行我的应用程序时,我收到以下错误: "错误0x5在.. \\ rxt ...

  5. 串口如何接收数据_原创分享 | S71200通过串口服务器读取MODBUS RTU设备

    此项目使用S7-1200的TCP通讯功能读取远程MODBUS RTU仪表,利用原有的串口服务器,克服了485总线传输距离的问题. 所用设备:S7-1212C ,NP3016T(三旺16口串口服务器 4 ...

  6. java中使用字符(字节)读取文本内容

    package test;import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.Fi ...

  7. Java中使用字符流读取UTF-8和写出txt文件 乱码 问题

    乱码问题一直都是非常难受的问题,本文解决Java中使用字符流读取UTF-8和写出txt文件 乱码 话不多说,直接上图 输出结果: 使用代码: 解决:

  8. java文件乱码_Java文件读取乱码问题解决

    使用java读取磁盘文件内容容易出现乱码, 问题是由于java使用的编码和被读取文件的编码不一致导致的. 假设有一个test.txt的文本文件,文件内容为:"测试java读取中文字符串乱码问 ...

  9. poi导出excel写入公式_【java poi 写入Excel后读取公式值问题】poi导入excel

    java poi 写入Excel后读取公式值问题 不用改公式,只需要用cell.getNumericCellValue()获取,读出来就是正确的值了,如果你读出来的还有问题,说明你其他的地方写的还有问 ...

最新文章

  1. centos php 开启libgdgd_Linux下开启PHP GD库支持
  2. Flink 架构:三层架构体系、运行时组件
  3. python之多线程编程(一):基本介绍
  4. Effective Java之抛出与抽象相应的异常(六十一)
  5. gitee怎么仓库间传文件_实现一个简单的基于码云(Gitee) 的 Storage
  6. openresty nginx php,diy 你的nginx-OpenResty
  7. 公司的终极目的不是营利:贝佐斯商业新哲学
  8. 2015/8/29 Python基础(3):数值
  9. 【iOS】Ambiguous reference to member 'tableView(_:numberOfRowsInSection:)'
  10. dos窗口运行java程序时中文乱码的解决方法
  11. 父爱如山,催泪微电影感动全网
  12. excel多窗口显示设置
  13. 51单片机:数码管动态显示
  14. Nginx到底能干嘛?!Nginx是做什么用的?通俗易懂,前端必看!
  15. leng dw $ -string汇编语言
  16. 《2019全国互联网行业程序员就业报告》出炉,程序员平均月薪为1.8W
  17. 2016百度之星总结帖
  18. oracle两表子查询,Oracle02-查询(多表,子查询)
  19. Python 实战系列-微信或网页远程控制电脑
  20. Prolog教程 7

热门文章

  1. 计算机对测绘领域的应用,GPS技术在测绘工程领域中的应用
  2. 以太坊区块链也拥堵_后以太坊1.0众生相:DeFi拥堵,突围Layer2
  3. 如何充实地度过大学四年?
  4. Logstash:如何逐步构建自定义 grok 模式
  5. url中传递中文参数时的转码与解码
  6. 【软考中级】多媒体应用设计师复习笔记第六章
  7. java按钮按行放置_java 放置按钮
  8. 在jupter中利用Python编程查看pkl文件内容的步骤
  9. 非985 非211二本生的万字面试经历流水账
  10. 蓄电池充放电一体机(铅酸电池组和铁锂电池组)放电、充电、循环充电设备应用