ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electric_2Kw_TestData_Thread.java
New file @@ -0,0 +1,84 @@ package com.electrical.TwoKW; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.base.Com; import com.sql.MysqlConnPool; public class Electric_2Kw_TestData_Thread implements Runnable{ public static final int TESTDATA_RECORD_INTERVAL = 10; //记录数据间隔 public MysqlConnPool pool; public List<TestData_Record_Thread> threads; public List<Electric_inf_2kw> einfs; public Electric_2Kw_TestData_Thread(MysqlConnPool pool,List<Electric_inf_2kw> einfs){ this.pool = pool; this.einfs = einfs; threads = new ArrayList<>(); } @Override public void run() { System.out.println("Electric_2Kw_TestData_Thread Start at "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)); while(true) { try { for(int i=0;i<einfs.size();i++) { boolean isExist = false; Electric_inf_2kw einf = einfs.get(i); for(int k=0;k<threads.size();k++) { if(threads.get(k).einf.electric2KW_id == einf.electric2KW_id) { isExist = true; break; } } if(!isExist) { TestData_Record_Thread thread = new TestData_Record_Thread(pool, einf); threads.add(thread); new Thread(thread).start(); } } Thread.sleep(3000); } catch (Exception e) { try { Thread.sleep(5000); } catch (InterruptedException e1) { e1.printStackTrace(); } e.printStackTrace(); } } } class TestData_Record_Thread implements Runnable{ public MysqlConnPool pool; public Electric_inf_2kw einf; public TestData_Record_Thread(MysqlConnPool pool,Electric_inf_2kw einf) { this.pool = pool; this.einf = einf; } @Override public void run() { Date last = new Date(0); //上一次测试的时间 Date now = null; //当前时间 while(true) { try { now = new Date(); long timelong = (now.getTime()-last.getTime())/1000; if(timelong >= TESTDATA_RECORD_INTERVAL) { } Thread.sleep(500); } catch (Exception e) { e.printStackTrace(); } } } } } ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electric_State_2kw.java
@@ -69,9 +69,9 @@ this.brachdcvol = (float)res.getValue(0); //分直流电压 this.brachdccurr = (float)res.getValue(1); //分直流电流 this.alldcvol = (float)res.getValue(2); //总直流电压 this.alldccurr = (float)res.getValue(3); //总直流电流 this.stopchargevol_one = (float)res.getValue(4); //第1阶段充电终止电压 this.stopchargevol_two = (float)res.getValue(5); //第2阶段充电终止电压 this.alldccurr = (float)res.getValue(3); //总直流电流 this.stopchargevol_one = (float)res.getValue(4); //第1阶段充电终止电压 this.stopchargevol_two = (float)res.getValue(5); //第2阶段充电终止电压 this.stopchargevol_three = (float)res.getValue(6); //第3阶段充电终止电压 this.stopchargevol_four = (float)res.getValue(7); //第4阶段充电终止电压 this.stopchargevol_five = (float)res.getValue(8); //第5阶段充电终止电压 ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electric_inf_2kw.java
@@ -8,7 +8,9 @@ public int electric2KW_type ; //'2' COMMENT '电源类型', public String note ;//'', public Electric_State_2kw state; public Electric_Rt_2kw rt; public Electric_Control_Single_2kw control; public int getNum() { return num; @@ -21,6 +23,9 @@ } public void setElectric2KW_id(int electric2kw_id) { electric2KW_id = electric2kw_id; state = new Electric_State_2kw(electric2kw_id); rt = new Electric_Rt_2kw(electric2kw_id); control = new Electric_Control_Single_2kw(electric2kw_id); } public String getElectric2KW_ip() { return electric2KW_ip; ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electrical_2KWTask_SQL.java
@@ -430,6 +430,43 @@ } } /** * 创建历史实时记录表 * @param pool * @param electric_id */ public static void createTb_electric2mw_realdata(MysqlConnPool pool,int electric_id,Date time) { String time_str = Com.getDateTimeFormat(time, Com.DTF_Y_M_D); String sql_str = "CREATE TABLE IF NOT EXISTS "+Sql_Mysql.Tb_electric2MW_realdata+electric_id+"_"+time_str+" (" + " num bigint(20) NOT NULL AUTO_INCREMENT," + " electric2KW_id int(11) NOT NULL DEFAULT '0' COMMENT 'id'," + " record_time datetime NOT NULL DEFAULT '2000-01-01 00:00:00' COMMENT '测试结束时间'," + " brachdcvol float NOT NULL DEFAULT '0' COMMENT '分直流电压'," + " brachdccurr float NOT NULL DEFAULT '0' COMMENT '分直流电流'," + " alldcvol float NOT NULL DEFAULT '0' COMMENT '总直流电压'," + " alldccurr float NOT NULL DEFAULT '0' COMMENT '总直流电流'," + " controlangle float NOT NULL DEFAULT '0' COMMENT '控制角'," + " localgivevol float NOT NULL DEFAULT '0' COMMENT '当前给定电压'," + " localgivecurr float NOT NULL DEFAULT '0' COMMENT '当前给定电流'," + " note varchar(255) NOT NULL DEFAULT '' COMMENT '备用'," + " PRIMARY KEY (num)," + " KEY index_electric2Kw_id (electric2KW_id) USING BTREE," + " KEY index_record_time (record_time) USING BTREE" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8;"; Sql_Mysql sql = new Sql_Mysql(pool.getConn()); try { sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { e.printStackTrace(); } finally { sql.close_con(); } } public static void insertTb_electric2mw_realdata() { String sql_str = " INSERT INTO db_electric2mwsystem.tb_electric2mw_realdata_6001_2020_09_21(electric2KW_id,record_time,brachdcvol,brachdccurr,alldcvol,alldccurr,controlangle,localgivevol,localgivecurr) " + " VALUES();"; } //更新2mw电源控制信息表 public static void update_Electric_Control_2KW(MysqlConnPool pool,Electric_Control_Single_2kw econ) { ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electrical_2KW_SocketClient_Thread.java
@@ -26,9 +26,15 @@ this.conn_pool = conn_pool; this.einf = winf; state = einf.state; ert = einf.rt; econ = einf.control; /* state = new Electric_State_2kw(einf.electric2KW_id); ert = new Electric_Rt_2kw(einf.electric2KW_id); econ = new Electric_Control_Single_2kw(einf.electric2KW_id); */ master = new MyModbusMaster(einf.getElectric2KW_ip(), MyModbusMaster.SLAVEID_DEFAULT); listAlarm=new ArrayList<Electric_2MW_alarm>(); eAlarm=new Electric_2MW_alarm(einf.electric2KW_id); ElectricalSystem_MonitorServer_2KW/src/com/sql/Sql_Mysql.java
@@ -188,6 +188,8 @@ public final static String Tb_electric2MW_inf = DB_Electric2MWSystem + ".tb_electric2MW_inf"; public final static String Tb_electric2MW_control = DB_Electric2MWSystem + ".tb_electric2MW_control"; public final static String Tb_electric2MW_realdata = DB_Electric2MWSystem + ".tb_electric2mw_realdata_"; //2MW设备历史实时记录表 public final static String Tb_Device_ConnectState = DB_Electric2MWSystem+".tb_device_connectstate"; //设备通讯状态表 public final static String Tb_Electric_2MW_alarm = DB_Electric2MWSystem+".tb_Electric_2MW_alarm"; //2MW实时告警 public final static String Tb_Electric_2MW_alarm_history = DB_Electric2MWSystem+".tb_Electric_2MW_alarm_history";//2MW历史告警