From 455401679935a41e16f8f71a8b62dd9af47b934a Mon Sep 17 00:00:00 2001 From: whyclj <1525436766@qq.com> Date: 星期三, 14 十月 2020 17:09:03 +0800 Subject: [PATCH] 受试电机有符号位数修复 --- Motor_MonitorServer/src/com/modbus/data/MyModbusMaster.java | 51 +++++++++++---------------------------------------- 1 files changed, 11 insertions(+), 40 deletions(-) diff --git a/Motor_MonitorServer/src/com/modbus/data/MyModbusMaster.java b/Motor_MonitorServer/src/com/modbus/data/MyModbusMaster.java index 3b1c97b..9916da0 100644 --- a/Motor_MonitorServer/src/com/modbus/data/MyModbusMaster.java +++ b/Motor_MonitorServer/src/com/modbus/data/MyModbusMaster.java @@ -1,18 +1,17 @@ package com.modbus.data; -import com.serotonin.modbus4j.BatchRead; -import com.serotonin.modbus4j.BatchResults; import com.serotonin.modbus4j.ModbusMaster; -import com.serotonin.modbus4j.code.DataType; import com.serotonin.modbus4j.ip.IpParameters; public class MyModbusMaster { public final static int SLAVEID_DEFAULT = 2; public final static int MAX_ERROR_COUNT = 2; //最大连续错误计数 + public final static int LOSE_CONNECT_COUNT = 20; //通讯中断最大计数 + private ModbusMaster master; private int errcount; //错误计数 错误连续超过三个时重新获取master - private int totalerr; //总的错误计数 //用于判别设备是否掉线 + private int totalerr = 31; //总的错误计数[默认失去连接] 用于判别设备是否掉线 private String target_ip; //目标ip private int slaveId; //设备ID @@ -42,7 +41,7 @@ } public void reConnect() { - System.out.println(target_ip); + //System.out.println(target_ip); IpParameters params = new IpParameters(); params.setHost(target_ip); if(this.master != null) { @@ -86,6 +85,13 @@ } + public int getConnectState() { + if(this.totalerr < LOSE_CONNECT_COUNT) { + return 1; + } + return 0; + } + public int getTotalerr() { return totalerr; } @@ -127,40 +133,5 @@ public String toString() { return "MyModbusMaster [SLAVEID_DEFAULT=" + SLAVEID_DEFAULT + ", master=" + master + ", errcount=" + errcount + ", target_ip=" + target_ip + ", slaveId=" + slaveId + "]"; - } - - - public static void main(String[] args) { - MyModbusMaster master = new MyModbusMaster("192.168.2.22", 2); - //float t1 = MyModbusUtils.readShortToFloat(MyModbusUtils.readHoldingRegister(1119, DataType.TWO_BYTE_INT_SIGNED, master)); - BatchRead<Integer> batch = new BatchRead<Integer>(); - batch.addLocator(0,MyModbusUtils.createBaseLocator(58, DataType.TWO_BYTE_INT_SIGNED, master)); //加载功率给定 58 - batch.addLocator(1,MyModbusUtils.createBaseLocator(364, DataType.TWO_BYTE_INT_SIGNED, master)); //加载转矩给定 364 - batch.addLocator(2,MyModbusUtils.createBaseLocator(366, DataType.TWO_BYTE_INT_UNSIGNED_SWAPPED, master)); //加载电机转速限制 366 - batch.addLocator(3,MyModbusUtils.createBaseLocator(367, DataType.TWO_BYTE_INT_SIGNED, master)); //加载电机转矩限制 367 - batch.addLocator(4,MyModbusUtils.createBaseLocator(505, DataType.TWO_BYTE_INT_UNSIGNED, master)); //加载步长 505 - batch.addLocator(5,MyModbusUtils.createBaseLocator(1006, DataType.TWO_BYTE_INT_UNSIGNED, master)); //加载电机水冷进水风温1006 - batch.addLocator(6,MyModbusUtils.createBaseLocator(1008, DataType.TWO_BYTE_INT_UNSIGNED, master)); //加载电机水冷出水风温1008 - batch.addLocator(7,MyModbusUtils.createBaseLocator(1096, DataType.TWO_BYTE_INT_SIGNED, master)); //加载电机电流 1096 - batch.addLocator(8,MyModbusUtils.createBaseLocator(1099, DataType.TWO_BYTE_INT_SIGNED, master)); //加载电机功率 1099 - batch.addLocator(9,MyModbusUtils.createBaseLocator(1101, DataType.TWO_BYTE_INT_SIGNED, master)); //加载电机转速 1101 - batch.addLocator(10,MyModbusUtils.createBaseLocator(1103, DataType.TWO_BYTE_INT_SIGNED, master)); //加载电机电压 1103 -// batch.addLocator(11,MyModbusUtils.createBaseLocator(1119, DataType.TWO_BYTE_INT_SIGNED, master)); //加载电机绕组温度1 1119 -// batch.addLocator(12,MyModbusUtils.createBaseLocator(1120, DataType.TWO_BYTE_INT_SIGNED, master)); //加载电机绕组温度2 1120 -// batch.addLocator(13,MyModbusUtils.createBaseLocator(1121, DataType.TWO_BYTE_INT_SIGNED, master)); //加载电机绕组温度3 1121 -// batch.addLocator(14,MyModbusUtils.createBaseLocator(1122, DataType.TWO_BYTE_INT_SIGNED, master)); //加载电机轴承温度1 1122 -// batch.addLocator(15,MyModbusUtils.createBaseLocator(1123, DataType.TWO_BYTE_INT_SIGNED, master)); //加载电机轴承温度2 1123 -// batch.addLocator(16,MyModbusUtils.createBaseLocator(1250, DataType.TWO_BYTE_INT_SIGNED, master)); //加载电机出口温度 1250 -// batch.addLocator(17,MyModbusUtils.createBaseLocator(1124, DataType.TWO_BYTE_INT_SIGNED, master)); //加载电机进口温度 1124 - batch.addLocator(18,MyModbusUtils.createBaseLocator(1251, DataType.TWO_BYTE_INT_SIGNED, master)); //加载电机转矩 1251 - batch.addLocator(19,MyModbusUtils.createBaseLocator(5680, master)); //加载电机启动 5680 - batch.addLocator(20,MyModbusUtils.createBaseLocator(5681, master)); //加载电机停机 5681 - batch.addLocator(21,MyModbusUtils.createBaseLocator(8000, master)); //加载 8000 - batch.addLocator(22,MyModbusUtils.createBaseLocator(8001, master)); //减载 8001 - batch.addLocator(23,MyModbusUtils.createBaseLocator(8040, master)); //手动加载 8040 - batch.addLocator(24,MyModbusUtils.createBaseLocator(16005, master)); //加载电机紧停 16005 - batch.addLocator(25,MyModbusUtils.createBaseLocator(17082, master)); //加载电机风机状态 17082 - BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master); - System.out.println(res.getValue(0)); } } -- Gitblit v1.9.1