V2.602 at 2021-07-05
1.修复单体告警监测功能bug
| | |
| | | V2.601 at 2020-10-26
|
| | | 1.添加霍尔电流事件采集以及霍尔量程读取和修改功能
|
| | |
|
| | | V2.602 at 2021-07-05
|
| | | 1.修复单体告警监测功能bug
|
| | |
|
| | |
| | | public long record_id;
|
| | |
|
| | | public int alm_id = 0;
|
| | | |
| | | public int alm_id_high;
|
| | | public int alm_id_low;
|
| | | public int alm_signal_id = 0;
|
| | | public int alm_signal_level = 0;
|
| | | public Date alm_start_time = new Date();
|
| | |
| | |
|
| | | public BattAlarmData(int dt_count_max,
|
| | | int bg_id_t, int mon_num_t, int alm_id_t,
|
| | | int alm_id_high_t,int alm_id_low_t,
|
| | | int alm_signal_id_high_t, int alm_signal_id_low_t,
|
| | | int alm_level_high_t, int alm_level_low_t)
|
| | | {
|
| | |
| | | mon_num = mon_num_t;
|
| | |
|
| | | alm_id = alm_id_t;
|
| | | alm_id_high = alm_id_high_t;
|
| | | alm_id_low = alm_id_low_t;
|
| | | ALM_signal_id_high = alm_signal_id_high_t;
|
| | | ALM_signal_id_low = alm_signal_id_low_t;
|
| | | ALM_level_high = alm_level_high_t;
|
| | |
| | |
|
| | | public BattAlarmData(int dt_count_max,
|
| | | int bg_id_t, int mon_num_t, int alm_id_t,int alm_signal_id_t ,
|
| | | int alm_id_high_t,int alm_id_low_t,
|
| | | int alm_signal_id_high_t, int alm_signal_id_low_t,
|
| | | int alm_level_high_t, int alm_level_low_t)
|
| | | {
|
| | |
| | | battgroup_id = bg_id_t;
|
| | | mon_num = mon_num_t;
|
| | |
|
| | | |
| | | alm_id = alm_id_t;
|
| | | |
| | | alm_id_high = alm_id_high_t;
|
| | | alm_id_low = alm_id_low_t;
|
| | | alm_signal_id = alm_signal_id_t;
|
| | | ALM_signal_id_high = alm_signal_id_high_t;
|
| | | ALM_signal_id_low = alm_signal_id_low_t;
|
| | |
| | | {
|
| | | BattAlarmData alm_data = new BattAlarmData(ALM_TAG_DELAY_COUNT_MAX,
|
| | | battgroup_id, mon_num, alm_id,
|
| | | alm_id_high,alm_id_low,
|
| | | ALM_signal_id_high, ALM_signal_id_low,
|
| | | ALM_level_high, ALM_level_low);
|
| | | alm_data.record_id = record_id;
|
| | |
| | | alm_data.alm_is_confirmed = alm_is_confirmed;
|
| | | alm_data.alm_confirmed_Time.setTime(alm_confirmed_Time.getTime());
|
| | | alm_data.usr_id = usr_id;
|
| | | |
| | | alm_data.alm_id_high = alm_id_high;
|
| | | alm_data.alm_id_low = alm_id_low;
|
| | | return alm_data;
|
| | | }
|
| | |
|
| | |
| | | if(ALM_signal_id_high != alm_signal_id && ALM_signal_id_low != alm_signal_id)
|
| | | {
|
| | |
|
| | | //System.out.println("isNew:"+ALM_signal_id_high);
|
| | | //System.out.println("isNew:"+ALM_signal_id_high+"\talm_id:"+this.alm_id);
|
| | |
|
| | | alm_signal_id = ALM_signal_id_high;
|
| | | |
| | | alm_id = alm_id_high;
|
| | | alarm_high_delay_count = 0;
|
| | | alm_signal_level = param.alm_High_Level;
|
| | | alm_value = data_value;
|
| | |
| | | alm_cleared_type = ALM_CLEARED_TYPE_NULL;
|
| | | alm_is_confirmed = false;
|
| | | record_id = UUID.randomUUID().getLeastSignificantBits();
|
| | | |
| | | BattAlarmData alm = cloneBattAlarmData();
|
| | | alm.alm_id = alm_id_high;
|
| | | AL_alarmdata.add(cloneBattAlarmData());
|
| | | }
|
| | | } else {
|
| | |
| | | alm_cleared_type = ALM_CLEARED_TYPE_AUTO;
|
| | | alm_end_time = new Date();
|
| | | AL_alarmdata.add(cloneBattAlarmData());
|
| | | |
| | | alm_id = 0;
|
| | | alm_signal_id = ALM_SIGNAL_ID_Null;
|
| | | alarm_high_delay_count = 0;
|
| | | }
|
| | |
| | | }
|
| | | if(true == param.alm_Low_EN)
|
| | | {
|
| | | int alm_id = this.alm_id +1;
|
| | | if(data_value < param.alm_Low)
|
| | | {
|
| | | if(ALM_signal_id_low != alm_signal_id && ALM_signal_id_high != alm_signal_id)
|
| | | {
|
| | | alarm_high_delay_count = 0;
|
| | |
|
| | | //System.out.println("isNew:"+ALM_signal_id_low+"\talm_id:"+this.alm_id);
|
| | | |
| | | alm_id = alm_id_low;
|
| | | alm_signal_id = ALM_signal_id_low;
|
| | | alm_signal_level = param.alm_Low_Level;
|
| | | alm_value = data_value;
|
| | |
| | | record_id = UUID.randomUUID().getLeastSignificantBits();
|
| | |
|
| | | BattAlarmData alm = cloneBattAlarmData();
|
| | | alm.alm_id = alm_id;
|
| | | alm.alm_id = alm_id_low;
|
| | | AL_alarmdata.add(alm);
|
| | | }
|
| | | } else {
|
| | |
| | | alm_end_time = new Date();
|
| | | //AL_alarmdata.add(cloneBattAlarmData());
|
| | | BattAlarmData alm = cloneBattAlarmData();
|
| | | alm.alm_id = alm_id;
|
| | | alm.alm_id = alm_id_low;
|
| | | AL_alarmdata.add(alm);
|
| | |
|
| | | alm_id = 0;
|
| | | alm_signal_id = ALM_SIGNAL_ID_Null;
|
| | | alarm_low_delay_count = 0;
|
| | | }
|
| | |
| | | {
|
| | | monVol_AlarmData = new BattAlarmData(dt_count_max,
|
| | | battgroup_id, mon_num, BattAlarmData.ALM_TYPE_MonVol_High_ID,
|
| | | BattAlarmData.ALM_TYPE_MonVol_High_ID,BattAlarmData.ALM_TYPE_MonVol_Low_ID,
|
| | | BattAlarmData.ALM_SIGNAL_ID_MonVolHigh, BattAlarmData.ALM_SIGNAL_ID_MonVolLow,
|
| | | param.alm_MonVol.alm_High_Level, param.alm_MonVol.alm_Low_Level);
|
| | |
|
| | | monTmp_AlarmData = new BattAlarmData(dt_count_max,
|
| | | battgroup_id, mon_num, BattAlarmData.ALM_TYPE_MonTmp_High_ID,
|
| | | BattAlarmData.ALM_TYPE_MonTmp_High_ID,BattAlarmData.ALM_TYPE_MonTmp_Low_ID,
|
| | | BattAlarmData.ALM_SIGNAL_ID_MonTmpHigh, BattAlarmData.ALM_SIGNAL_ID_MonTmpLow,
|
| | | param.alm_MonTmp.alm_High_Level, param.alm_MonTmp.alm_Low_Level);
|
| | |
|
| | | monRes_AlarmData = new BattAlarmData(dt_count_max,
|
| | | battgroup_id, mon_num, BattAlarmData.ALM_TYPE_MonRes_High_ID,
|
| | | BattAlarmData.ALM_TYPE_MonRes_High_ID,BattAlarmData.ALM_TYPE_MonRes_Low_ID,
|
| | | BattAlarmData.ALM_SIGNAL_ID_MonResHigh, BattAlarmData.ALM_SIGNAL_ID_MonResLow,
|
| | | param.alm_MonRes.alm_High_Level, param.alm_MonRes.alm_Low_Level);
|
| | |
|
| | |
| | |
|
| | | monVol_AlarmData = new BattAlarmData(dt_count_max,
|
| | | battgroup_id, mon_num, monVol_AlarmData.alm_id,monVol_AlarmData.alm_signal_id,
|
| | | BattAlarmData.ALM_TYPE_MonVol_High_ID,BattAlarmData.ALM_TYPE_MonVol_Low_ID,
|
| | | BattAlarmData.ALM_SIGNAL_ID_MonVolHigh, BattAlarmData.ALM_SIGNAL_ID_MonVolLow,
|
| | | param.alm_MonVol.alm_High_Level, param.alm_MonVol.alm_Low_Level);
|
| | | monVol_AlarmData.alm_signal_id = monVol_AlarmData.alm_signal_id;
|
| | |
|
| | | monTmp_AlarmData = new BattAlarmData(dt_count_max,
|
| | | battgroup_id, mon_num, monTmp_AlarmData.alm_id,monTmp_AlarmData.alm_signal_id,
|
| | | BattAlarmData.ALM_TYPE_MonTmp_High_ID,BattAlarmData.ALM_TYPE_MonTmp_Low_ID,
|
| | | BattAlarmData.ALM_SIGNAL_ID_MonTmpHigh, BattAlarmData.ALM_SIGNAL_ID_MonTmpLow,
|
| | | param.alm_MonTmp.alm_High_Level, param.alm_MonTmp.alm_Low_Level);
|
| | |
|
| | | monRes_AlarmData = new BattAlarmData(dt_count_max,
|
| | | battgroup_id, mon_num, monRes_AlarmData.alm_id,monRes_AlarmData.alm_signal_id,
|
| | | BattAlarmData.ALM_TYPE_MonRes_High_ID,BattAlarmData.ALM_TYPE_MonRes_Low_ID,
|
| | | BattAlarmData.ALM_SIGNAL_ID_MonResHigh, BattAlarmData.ALM_SIGNAL_ID_MonResLow,
|
| | | param.alm_MonRes.alm_High_Level, param.alm_MonRes.alm_Low_Level);
|
| | |
|
| | |
| | |
|
| | | public class Batt_RealDataRecord_Thread implements Runnable{
|
| | | public static final int TESTDATA_RECORD_INTERVAL = 2; //记录数据间隔
|
| | | public static final int MAX_SAVE_DAY_COUNT = 30;
|
| | | public static final int MAX_SAVE_DAY_COUNT = 30*3;
|
| | |
|
| | |
|
| | | public MysqlConnPool pool;
|
| | |
| | | if(timelong >= TESTDATA_RECORD_INTERVAL) {
|
| | | if(batt.getBattState()>0) {
|
| | | //通讯正常
|
| | | |
| | | Batt_RealDataRecord_Thread_SQL.insertBatt_RealDataTable(pool, batt, now);
|
| | | last = now;
|
| | | }
|
| | |
| | | import com.battmonitor.sql.MysqlConnPool;
|
| | |
|
| | | public class FBS9600S_BattAlarm_Thread implements Runnable{
|
| | | public final static int BattAlarmClearedDelay = 10;
|
| | | public final static int BattAlarmClearedDelay = 1;
|
| | |
|
| | | public final static int ALM_TYPE_MonVol_High_ID = 139001; //单体电压高
|
| | | public final static int ALM_TYPE_MonVol_Low_ID = 139002; //单体电压低
|
| | |
| | | alarm.alm_id = rs.getInt("alm_id");
|
| | | alarm.alm_signal_id = rs.getInt("alm_signal_id");
|
| | | alarm.alm_cleared_type = rs.getInt("alm_cleared_type");
|
| | | alarm.mon_num = rs.getInt("monnum");
|
| | | alarm.mon_num = rs.getInt("MonNum");
|
| | | alarm.record_id = rs.getLong("Record_Id");
|
| | | alarms.add(alarm);
|
| | | //System.out.println(alarm.record_id);
|
| | |
| | | continue;
|
| | | }
|
| | | battdata.al_MonVol.get(alarm.mon_num-1).monVol_AlarmData.alm_id = alarm.alm_id;
|
| | | battdata.al_MonVol.get(alarm.mon_num-1).monVol_AlarmData.alm_id_high = FBS9600S_BattAlarm_Thread.ALM_TYPE_MonVol_High_ID;
|
| | | battdata.al_MonVol.get(alarm.mon_num-1).monVol_AlarmData.alm_id_low = FBS9600S_BattAlarm_Thread.ALM_TYPE_MonVol_Low_ID;
|
| | | battdata.al_MonVol.get(alarm.mon_num-1).monVol_AlarmData.alm_cleared_type = alarm.alm_cleared_type;
|
| | | battdata.al_MonVol.get(alarm.mon_num-1).monVol_AlarmData.alm_signal_id = alarm.alm_signal_id;
|
| | | }break;
|
| | |
| | | continue;
|
| | | }
|
| | | battdata.al_MonVol.get(alarm.mon_num-1).monTmp_AlarmData.alm_id = alarm.alm_id;
|
| | | battdata.al_MonVol.get(alarm.mon_num-1).monTmp_AlarmData.alm_id_high = FBS9600S_BattAlarm_Thread.ALM_TYPE_MonTmp_High_ID;
|
| | | battdata.al_MonVol.get(alarm.mon_num-1).monTmp_AlarmData.alm_id_low = FBS9600S_BattAlarm_Thread.ALM_TYPE_MonTmp_Low_ID;
|
| | | battdata.al_MonVol.get(alarm.mon_num-1).monTmp_AlarmData.alm_cleared_type = alarm.alm_cleared_type;
|
| | | battdata.al_MonVol.get(alarm.mon_num-1).monTmp_AlarmData.alm_signal_id = alarm.alm_signal_id;
|
| | | }break;
|
| | |
| | | continue;
|
| | | }
|
| | | battdata.al_MonVol.get(alarm.mon_num-1).monRes_AlarmData.alm_id = alarm.alm_id;
|
| | | battdata.al_MonVol.get(alarm.mon_num-1).monRes_AlarmData.alm_id_high = FBS9600S_BattAlarm_Thread.ALM_TYPE_MonRes_High_ID;
|
| | | battdata.al_MonVol.get(alarm.mon_num-1).monRes_AlarmData.alm_id_low = FBS9600S_BattAlarm_Thread.ALM_TYPE_MonRes_Low_ID;
|
| | | battdata.al_MonVol.get(alarm.mon_num-1).monRes_AlarmData.alm_cleared_type = alarm.alm_cleared_type;
|
| | | battdata.al_MonVol.get(alarm.mon_num-1).monRes_AlarmData.alm_signal_id = alarm.alm_signal_id;
|
| | | }break;
|
| | |
| | | }
|
| | |
|
| | | String ip_str = this.socket.getInetAddress().getHostAddress();
|
| | | System.err.println("ip_str:"+ip_str+"电池组总数:"+battData.getItemCount());
|
| | | |
| | | S_thread_run_flag = false;
|
| | | for(int i=0;i<battData.getItemCount();i++) {
|
| | | BattData_RT rdData = battData.getItem(i);
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | |
| | | System.err.println("ip_str:"+ip_str+"电池组单体总数:"+m_BattMonCount);
|
| | | //System.out.println("总单体总数为:"+m_BattMonCount);
|
| | | sysState = new FBS9600S_SystemState(dev_id,dev_ip);
|
| | | nowParam = new FBS9600S_SystemParam();
|
| | |
| | | cmd = new FBS9600S_Cmd(dev_addr,FBS9600S_ComBase.CMD_READ_MODBUS,FBS9600S_ComBase.CMD_SystemState_Addr,FBS9600S_SystemState.REGCOUNT);
|
| | | SocketComm(cmd,cmd.createByteBuffer(FBS9600S_SystemState.REGCOUNT));
|
| | | sleep(10);
|
| | | |
| | | if(readBattParamOk) {
|
| | | //已读取成功过的汇集器跳过
|
| | | dev_addr ++;
|
| | |
| | | BattData_RT[n].updata_BattRtData_To_RamDb();
|
| | | BattData_RT[n].updata_BattRtSate_To_RamDb();
|
| | | //---------------------------------------------------------------------------//
|
| | | |
| | | FBS9600S_SocketClient_Thread_SQL.UpdateFBS9600StateByDev_id(mysql_pool,sysState);
|
| | | break;
|
| | | }
|
| | |
| | | V2.601 at 2020-10-26
|
| | | 1.添加霍尔电流事件采集以及霍尔量程读取和修改功能
|
| | |
|
| | | V2.602 at 2021-07-05
|
| | | 1.修复单体告警监测功能bug
|
| | |
|
| | |
| | | /**************************************************************************/
|
| | | public final static boolean app_debug = false;
|
| | |
|
| | | public final static double m_VersionNum = 2.601;
|
| | | public final static double m_VersionNum = 2.602;
|
| | | public final static String m_Version = "Welcome To Use main_MonitorServer_FBS9600SMore V"
|
| | | + m_VersionNum + " RC_20190112";
|
| | | /**************************************************************************/
|