ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electric_2MW_alarm.java
New file @@ -0,0 +1,152 @@ package com.electrical.TwoKW; import java.io.Serializable; import java.util.Date; import com.modbus.data.MyModbusMaster; import com.modbus.data.MyModbusUtils; import com.serotonin.modbus4j.BatchRead; import com.serotonin.modbus4j.BatchResults; public class Electric_2MW_alarm implements Serializable{ public int num; public int electric_id; public int alarm_id; public String alarm_name; public Date alarm_starttime; public Date alarm_endtime; public int alarm_confirm; public Date alarm_confirmtime; public String note; public int synchro_cycle_fault; public int main_cabinet_fault_one; public int main_cabinet_fault_two; public int dcover_curr; public int synchro_lose; public int dcover_vol; public int case_pulse_block; public int case_transA_overcurr; public int case_transB_overcurr; public int case_transC_overcurr; public int case_cuurfeedback_lose; public int case_trip; public int high_vol_switch_off; public int emergency_button_pressed; public int cabinet_door_protection; public int tran_overtmp; public int tran_overhightmp_trip; public Electric_2MW_alarm(int electric_id) { super(); this.electric_id=electric_id; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } public int getElectric_id() { return electric_id; } public void setElectric_id(int electric_id) { this.electric_id = electric_id; } public int getAlarm_id() { return alarm_id; } public void setAlarm_id(int alarm_id) { this.alarm_id = alarm_id; } public String getAlarm_name() { return alarm_name; } public void setAlarm_name(String alarm_name) { this.alarm_name = alarm_name; } public Date getAlarm_starttime() { return alarm_starttime; } public void setAlarm_starttime(Date alarm_starttime) { this.alarm_starttime = alarm_starttime; } public Date getAlarm_endtime() { return alarm_endtime; } public void setAlarm_endtime(Date alarm_endtime) { this.alarm_endtime = alarm_endtime; } public int getAlarm_confirm() { return alarm_confirm; } public void setAlarm_confirm(int alarm_confirm) { this.alarm_confirm = alarm_confirm; } public Date getAlarm_confirmtime() { return alarm_confirmtime; } public void setAlarm_confirmtime(Date alarm_confirmtime) { this.alarm_confirmtime = alarm_confirmtime; } public String getNote() { return note; } public void setNote(String note) { this.note = note; } @Override public String toString() { return "Electric_2MW_alarm [num=" + num + ", electric_id=" + electric_id + ", alarm_id=" + alarm_id + ", alarm_name=" + alarm_name + ", alarm_starttime=" + alarm_starttime + ", alarm_endtime=" + alarm_endtime + ", alarm_confirm=" + alarm_confirm + ", alarm_confirmtime=" + alarm_confirmtime + ", note=" + note + "]"; } //读取2MW故障信息 public BatchRead<Integer> createBatchRead(MyModbusMaster master) { BatchRead<Integer> batch = new BatchRead<Integer>(); batch.addLocator(0,MyModbusUtils.createBaseLocator(192, master));//机箱同步周期故障 batch.addLocator(1,MyModbusUtils.createBaseLocator(193, master));//机箱1号主柜快熔断 batch.addLocator(2,MyModbusUtils.createBaseLocator(194, master));//机箱2号主柜快熔断 batch.addLocator(3,MyModbusUtils.createBaseLocator(200, master));//机箱直流过流 batch.addLocator(4,MyModbusUtils.createBaseLocator(201, master));//机箱同步丢失 batch.addLocator(5,MyModbusUtils.createBaseLocator(202, master));//箱直流过压 batch.addLocator(6,MyModbusUtils.createBaseLocator(203, master));//机箱脉冲封锁 batch.addLocator(7,MyModbusUtils.createBaseLocator(204, master));//机箱A相过流 batch.addLocator(8,MyModbusUtils.createBaseLocator(205, master));//机箱B相过流 batch.addLocator(9,MyModbusUtils.createBaseLocator(206, master));//机箱C相过流 batch.addLocator(10,MyModbusUtils.createBaseLocator(207, master));//机箱直流反馈丢失 batch.addLocator(11,MyModbusUtils.createBaseLocator(4000, master));//机箱跳闸 batch.addLocator(12,MyModbusUtils.createBaseLocator(4002, master));//高压开关断开 batch.addLocator(13,MyModbusUtils.createBaseLocator(4003, master));//急停按钮按下 batch.addLocator(14,MyModbusUtils.createBaseLocator(4004, master));//变压器柜门保护 batch.addLocator(15,MyModbusUtils.createBaseLocator(4005, master));//变压器超温 batch.addLocator(16,MyModbusUtils.createBaseLocator(4006, master));//变压器超高温跳闸 return batch; } //解析2MW故障信息 public void putBatchResult(BatchResults<Integer> res) { if(res!=null) { this.synchro_cycle_fault=MyModbusUtils.readBooleanToInt(res.getValue(0)); this.main_cabinet_fault_one=MyModbusUtils.readBooleanToInt(res.getValue(1)); this.main_cabinet_fault_two=MyModbusUtils.readBooleanToInt(res.getValue(2)); this.dcover_curr=MyModbusUtils.readBooleanToInt(res.getValue(3)); this.synchro_lose=MyModbusUtils.readBooleanToInt(res.getValue(4)); this.dcover_vol=MyModbusUtils.readBooleanToInt(res.getValue(5)); this.case_pulse_block=MyModbusUtils.readBooleanToInt(res.getValue(6)); this.case_transA_overcurr=MyModbusUtils.readBooleanToInt(res.getValue(7)); this.case_transB_overcurr=MyModbusUtils.readBooleanToInt(res.getValue(8)); this.case_transC_overcurr=MyModbusUtils.readBooleanToInt(res.getValue(9)); this.case_cuurfeedback_lose=MyModbusUtils.readBooleanToInt(res.getValue(10)); this.case_trip=MyModbusUtils.readBooleanToInt(res.getValue(11)); this.high_vol_switch_off=MyModbusUtils.readBooleanToInt(res.getValue(12)); this.emergency_button_pressed=MyModbusUtils.readBooleanToInt(res.getValue(13)); this.cabinet_door_protection=MyModbusUtils.readBooleanToInt(res.getValue(14)); this.tran_overtmp=MyModbusUtils.readBooleanToInt(res.getValue(15)); this.tran_overhightmp_trip=MyModbusUtils.readBooleanToInt(res.getValue(16)); } } } ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electric_2MW_alarm_history.java
New file @@ -0,0 +1,78 @@ package com.electrical.TwoKW; import java.io.Serializable; import java.util.Date; public class Electric_2MW_alarm_history implements Serializable{ public int num; public int electric_id; public int alarm_id; public String alarm_name; public Date alarm_starttime; public Date alarm_endtime; public int alarm_confirm; public Date alarm_confirmtime; public String note; public int getNum() { return num; } public void setNum(int num) { this.num = num; } public int getElectric_id() { return electric_id; } public void setElectric_id(int electric_id) { this.electric_id = electric_id; } public int getAlarm_id() { return alarm_id; } public void setAlarm_id(int alarm_id) { this.alarm_id = alarm_id; } public String getAlarm_name() { return alarm_name; } public void setAlarm_name(String alarm_name) { this.alarm_name = alarm_name; } public Date getAlarm_starttime() { return alarm_starttime; } public void setAlarm_starttime(Date alarm_starttime) { this.alarm_starttime = alarm_starttime; } public Date getAlarm_endtime() { return alarm_endtime; } public void setAlarm_endtime(Date alarm_endtime) { this.alarm_endtime = alarm_endtime; } public int getAlarm_confirm() { return alarm_confirm; } public void setAlarm_confirm(int alarm_confirm) { this.alarm_confirm = alarm_confirm; } public Date getAlarm_confirmtime() { return alarm_confirmtime; } public void setAlarm_confirmtime(Date alarm_confirmtime) { this.alarm_confirmtime = alarm_confirmtime; } public String getNote() { return note; } public void setNote(String note) { this.note = note; } @Override public String toString() { return "Electric_2MW_alarm_history [num=" + num + ", electric_id=" + electric_id + ", alarm_id=" + alarm_id + ", alarm_name=" + alarm_name + ", alarm_starttime=" + alarm_starttime + ", alarm_endtime=" + alarm_endtime + ", alarm_confirm=" + alarm_confirm + ", alarm_confirmtime=" + alarm_confirmtime + ", note=" + note + "]"; } } ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electrical_2KWTask_SQL.java
@@ -31,6 +31,10 @@ createTb_electric2MW_state(pool); createTb_Device_ConnectState(pool); createTb_Electric_Alarm(pool); createTb_Electric_Alarm_History(pool); } @@ -375,6 +379,56 @@ } } /* 创建电源故障表 * @param pool */ public static void createTb_Electric_Alarm(MysqlConnPool pool) { String sql_str = " CREATE TABLE IF NOT EXISTS " + Sql_Mysql.Tb_Electric_2MW_alarm+ " (" + " num bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键'," + " electric_id int(11) NOT NULL DEFAULT '4001' COMMENT '设备id'," + " alarm_id int(11) NOT NULL DEFAULT '10001' COMMENT '告警id'," + " alarm_starttime datetime NOT NULL DEFAULT '2000-01-01 00:00:00' COMMENT '告警开始时间'," + " alarm_endtime datetime NOT NULL DEFAULT '2000-01-01 00:00:00' COMMENT '告警结束时间'," + " alarm_confirm int(11) NOT NULL DEFAULT '0' COMMENT '告警确认'," + " alarm_confirmtime datetime NOT NULL DEFAULT '2000-01-01 00:00:00' COMMENT '告警确认时间'," + " note varchar(255) NOT NULL DEFAULT ''," + " PRIMARY KEY (num),"+ " index electric_id_key(electric_id) " + ") 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(); } } /* 创建电源故障历史表 * @param pool */ public static void createTb_Electric_Alarm_History(MysqlConnPool pool) { String sql_str = " CREATE TABLE IF NOT EXISTS " + Sql_Mysql.Tb_Electric_2MW_alarm_history+ " (" + " num bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键'," + " electric_id int(11) NOT NULL DEFAULT '4001' COMMENT '设备id'," + " alarm_id int(11) NOT NULL DEFAULT '10001' COMMENT '告警id'," + " alarm_starttime datetime NOT NULL DEFAULT '2000-01-01 00:00:00' COMMENT '告警开始时间'," + " alarm_endtime datetime NOT NULL DEFAULT '2000-01-01 00:00:00' COMMENT '告警结束时间'," + " alarm_confirm int(11) NOT NULL DEFAULT '0' COMMENT '告警确认'," + " alarm_confirmtime datetime NOT NULL DEFAULT '2000-01-01 00:00:00' COMMENT '告警确认时间'," + " note varchar(255) NOT NULL DEFAULT ''," + " PRIMARY KEY (num),"+ " index electric_id_key(electric_id) " + ") 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(); } } //更新2mw电源控制信息表 @@ -590,6 +644,48 @@ } } } //更新2MW电源故障数据库 public static void insertOrUpdateEle_alarmTable(MysqlConnPool conn_pool, List<Electric_2MW_alarm> list) { if(list!=null&&list.size()>0) { for (Electric_2MW_alarm ealarm : list) { String sql_str_sel = " select * from " + Sql_Mysql.Tb_Electric_2MW_alarm + " where electric_id = " + ealarm.getElectric_id()+" and alarm_id="+ealarm.getAlarm_id(); String sql_str_ins = " INSERT INTO " + Sql_Mysql.Tb_Electric_2MW_alarm + "(electric_id,alarm_id,alarm_starttime,alarm_endtime,alarm_confirm,alarm_confirmtime) " +" VALUES("+ealarm.electric_id+","+ealarm.alarm_id+",'"+Com.getDateTimeFormat(ealarm.alarm_starttime,Com.DTF_YMDhms)+"','"+Com.getDateTimeFormat(ealarm.getAlarm_endtime(),Com.DTF_YMDhms)+"',"+ealarm.alarm_confirm+",'"+Com.getDateTimeFormat(ealarm.alarm_confirmtime,Com.DTF_YMDhms)+"');"; String sql_str_update= " update " + Sql_Mysql.Tb_Electric_2MW_alarm + " set alarm_starttime='"+Com.getDateTimeFormat(ealarm.alarm_starttime,Com.DTF_YMDhms)+ "',alarm_endtime='"+Com.getDateTimeFormat(ealarm.getAlarm_endtime(),Com.DTF_YMDhms)+ "',alarm_confirm="+ealarm.alarm_confirm+ //",alarm_confirmtime='"+Com.getDateTimeFormat(ealarm.getAlarm_confirmtime(),Com.DTF_YMDhms)+"'"+ " where electric_id="+ealarm.electric_id+ " and alarm_id="+ealarm.alarm_id; ResultSet res = null; Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn()); try { res = sql.sqlMysqlQuery(sql_str_sel); if(res.next()) { //更新当前控制状态 sql.sqlMysqlExecute(sql_str_update); }else { sql.sqlMysqlExecute(sql_str_ins); } } catch (Exception e) { e.printStackTrace(); } finally { if(res != null) { try { res.close(); } catch (SQLException e) { e.printStackTrace(); } } sql.close_con(); } } } } } ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electrical_2KW_SocketClient_Thread.java
@@ -1,5 +1,7 @@ package com.electrical.TwoKW; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.modbus.data.MyModbusMaster; @@ -17,6 +19,8 @@ public Electric_State_2kw state; public Electric_Control_Single_2kw econ; public MyModbusMaster master; public Electric_2MW_alarm eAlarm; public List<Electric_2MW_alarm> listAlarm; public Electrical_2KW_SocketClient_Thread(Electric_inf_2kw winf,MysqlConnPool conn_pool) { this.conn_pool = conn_pool; @@ -26,7 +30,8 @@ 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); } @@ -193,12 +198,11 @@ } /*if(runCount %4 == 0) { if(runCount %4 == 0) { //*************************** 读取2MW信息故障 ******************************//* //readWaterAlarmData(master,walarm); readMutilWaterAlarmData(master, walarm); Water_Task_SQL.insertOrUpdateWater_alarmTable(conn_pool, listAlarm); }*/ readMutilEleAlarmData(master, eAlarm); Electrical_2KWTask_SQL.insertOrUpdateEle_alarmTable(conn_pool, listAlarm); } //System.out.println(master.getTotalerr()+"##############"+master.getConnectState()); @@ -223,6 +227,169 @@ } } } //读取2MW电源的故障信息 private void readMutilEleAlarmData(MyModbusMaster master, Electric_2MW_alarm eAlarm) { BatchRead<Integer> batch = eAlarm.createBatchRead(master); BatchResults<Integer> res = MyModbusUtils.readMutilRegisters(batch, master); eAlarm.putBatchResult(res); if(res!=null) { if(eAlarm.synchro_cycle_fault>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119001); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } if(eAlarm.main_cabinet_fault_one>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119002); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } if(eAlarm.main_cabinet_fault_two>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119003); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } if(eAlarm.dcover_curr>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119004); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } if(eAlarm.synchro_lose>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119005); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } if(eAlarm.dcover_vol>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119006); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } if(eAlarm.case_pulse_block>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119007); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } if(eAlarm.case_transA_overcurr>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119008); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } if(eAlarm.case_transB_overcurr>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119009); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } if(eAlarm.case_transC_overcurr>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119010); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } if(eAlarm.case_cuurfeedback_lose>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119011); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } if(eAlarm.case_trip>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119012); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } if(eAlarm.high_vol_switch_off>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119013); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } if(eAlarm.emergency_button_pressed>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119014); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } if(eAlarm.cabinet_door_protection>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119015); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } if(eAlarm.tran_overtmp>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119016); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } if(eAlarm.tran_overhightmp_trip>0) { Electric_2MW_alarm alarm=new Electric_2MW_alarm(eAlarm.electric_id); alarm.setAlarm_id(119017); alarm.setAlarm_starttime(new Date()); alarm.setAlarm_endtime(new Date()); alarm.setAlarm_confirm(0); alarm.setAlarm_confirmtime(new Date()); listAlarm.add(alarm); } } } /** * 更新2MW电源系统实时状态信息 * @param master ElectricalSystem_MonitorServer_2KW/src/com/sql/Sql_Mysql.java
@@ -189,6 +189,8 @@ public final static String Tb_electric2MW_control = DB_Electric2MWSystem + ".tb_electric2MW_control"; 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历史告警 //--------------------------------------------------------------------------------------------//