Motor_MonitorServer/src/com/modbus/data/MyModbusMaster.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Motor_MonitorServer/src/com/modbus/data/MyModbusUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Motor_MonitorServer/src/com/motor/conn/Motor_SocketClient_Thread.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Motor_MonitorServer/src/com/motor/conn/Motor_Task_SQL.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Motor_MonitorServer/src/com/sql/Sql_Mysql.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Motor_MonitorServer/src/com/version_inf/version_inf.txt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Motor_MonitorServer/src/main/main_MonitorServer_Motor.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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 @@ -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)); } } Motor_MonitorServer/src/com/modbus/data/MyModbusUtils.java
@@ -147,10 +147,18 @@ public static BatchResults<Integer> readMutilRegisters(BatchRead<Integer> batch,MyModbusMaster master){ batch.setContiguousRequests(false); boolean isSuccess = true; try { return master.getMaster().send(batch); } catch (ModbusTransportException | ErrorResponseException e) { e.printStackTrace(); isSuccess = false; } finally { if(isSuccess) { master.clearError(); }else { master.addErrorCount(); } } return null; } Motor_MonitorServer/src/com/motor/conn/Motor_SocketClient_Thread.java
@@ -83,6 +83,8 @@ //System.err.println((end.getTime()-start.getTime())); } //System.err.println(Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)); Motor_Task_SQL.insertOrUpdateMotor_ControlTable(conn_pool, control); if(runCount%10 == 0) { //更新当前设备ip master.setTarget_ip(motor.motor_ip); Motor_MonitorServer/src/com/motor/conn/Motor_Task_SQL.java
@@ -7,6 +7,7 @@ import java.util.List; import com.base.Com; import com.modbus.data.MyModbusMaster; import com.modbus.historydata.Motor_HistoryData_Record_Thread_SQL; import com.motor.alarm.Motor_Alarm; import com.motor.data.Load_motor_state; @@ -513,4 +514,37 @@ sql.close_con(); } } /** * 插入或更新当前设备的连接状态 * @param pool * @param dev_id * @param master */ public static void insertOrUpdateDeviceConnectState(MysqlConnPool pool,int dev_id,MyModbusMaster master) { String sql_str_sel = " SELECT * FROM "+Sql_Mysql.Tb_Device_ConnectState+" WHERE dev_id = " + dev_id; String sql_str_ins = " INSERT INTO "+Sql_Mysql.Tb_Device_ConnectState+"(dev_id,connect_en,record_time) values("+dev_id+","+master.getConnectState()+",'"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)+"');"; String sql_str_upd = " UPDATE "+Sql_Mysql.Tb_Device_ConnectState+" SET connect_en = "+master.getConnectState()+",record_time='"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)+"' WHERE dev_id = " + dev_id; Sql_Mysql sql = new Sql_Mysql(pool.getConn()); ResultSet res = null; try { res = sql.sqlMysqlQuery(sql_str_sel); if(res.next()) { sql.sqlMysqlExecute(sql_str_upd); }else { sql.sqlMysqlExecute(sql_str_ins); } } catch (SQLException e) { e.printStackTrace(); } finally { if(res != null) { try { res.close(); } catch (SQLException e) { e.printStackTrace(); } sql.close_con(); } } } } Motor_MonitorServer/src/com/sql/Sql_Mysql.java
@@ -33,6 +33,8 @@ final public static String DB_DynamicSystem = "`db_dynamicsystem`"; final public static String DB_Elemachinery = "`db_elemachinery`"; final public static String DB_Motor_Realhistory = "`db_motor_realhistory`"; final public static String DB_Electric2MWSystem = "`db_electric2mwsystem`"; //--------------------------------------------------------------------------------------------// public final static String TB_HardDevSmsState = "tb_hard_dev_sms_state"; //--------------------------------------------------------------------------------------------// @@ -169,6 +171,8 @@ public final static String Tb_Devalarm_History = DB_Elemachinery + ".tb_devalaram_history"; //电机历史告警记录表 public final static String Tb_Motor_Readdata = DB_Motor_Realhistory + ".tb_motor_readdata_"; //电机历史实时记录表 public final static String Tb_Device_ConnectState = DB_Electric2MWSystem+".tb_device_connectstate"; //设备通讯状态表 //--------------------------------------------------------------------------------------------// //--------------------------------------------------------------------------------------------// public Connection mysql_con; Motor_MonitorServer/src/com/version_inf/version_inf.txt
@@ -2,4 +2,7 @@ 电机加载通讯程序 V1.102 at 2020-08-05 lijun 添加历史实时数据记录功能 添加历史实时数据记录功能 V1.202 at 2020-09-19 lijun 添加设备连接状态记录功能 Motor_MonitorServer/src/main/main_MonitorServer_Motor.java
@@ -22,7 +22,7 @@ /**************************************************************************/ /**************************************************************************/ public final static boolean app_debug = false; public final static double m_VersionNum = 1.102; public final static double m_VersionNum = 1.202; public final static String m_Version = "Welcome To Use main_MonitorServer_Motor V" + m_VersionNum ; /**************************************************************************/