1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package com.htyg.manger.controller;
- import com.alibaba.fastjson.JSONObject;
- import com.ghgande.j2mod.modbus.io.ModbusSerialTransaction;
- import com.ghgande.j2mod.modbus.msg.ReadMultipleRegistersRequest;
- import com.ghgande.j2mod.modbus.msg.ReadMultipleRegistersResponse;
- import com.ghgande.j2mod.modbus.net.SerialConnection;
- import com.ghgande.j2mod.modbus.util.SerialParameters;
- public class ModbusReader1 {
- private static final String PORT_NAME = "COM3"; // 更改为你的串口名称
- private static final int BAUD_RATE = 9600;
- private static final int DATA_BITS = 8;
- private static final int STOP_BITS = 1;
- private static final int PARITY = 0; // 无校验位
- public static void main(String[] args) {
- JSONObject jsonObject=new JSONObject();
- getData(jsonObject);
- }
- //1605 水箱温度
- public static void getData(JSONObject jsonObject) {
- SerialParameters parameters = new SerialParameters();
- parameters.setPortName(PORT_NAME);
- parameters.setBaudRate(BAUD_RATE);
- parameters.setDatabits(DATA_BITS);
- parameters.setStopbits(STOP_BITS);
- parameters.setParity(PARITY);
- SerialConnection connection = new SerialConnection(parameters);
- try {
- connection.open();
- ModbusSerialTransaction transaction = new ModbusSerialTransaction(connection);
- ReadMultipleRegistersRequest request = new ReadMultipleRegistersRequest();
- request.setUnitID(1); // Modbus设备的ID,通常为1
- request.setReference(1600); // 寄存器起始地址
- // 读取连续6个单字节(每个字节占用一个寄存器)
- request.setWordCount(20);
- transaction.setRequest(request);
- transaction.execute();
- ReadMultipleRegistersResponse response = (ReadMultipleRegistersResponse) transaction.getResponse();
- if (response != null) {
- for (int i = 0; i < response.getWordCount(); i++) {
- // 每个字节占用一个寄存器,直接读取寄存器值即可
- int value = response.getRegisterValue(i);
- // 处理读取到的数据
- System.out.println("Register " + (i + 1600) + ": " + value);
- jsonObject.put(Integer.valueOf(i + 1600).toString(),value/10.0);
- }
- } else {
- System.out.println("Response is null.");
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- if (connection != null) {
- connection.close();
- }
- }
- }
- }
|