iec61852_forQGN/bin/com/battdata_rt/BattData_RT$InsertDataToMysql_Task.classBinary files differ
iec61852_forQGN/bin/com/battdata_rt/BattData_RT.classBinary files differ
iec61852_forQGN/bin/com/battdata_rt/BattData_RT_RamDB_Thread_SQL.classBinary files differ
iec61852_forQGN/bin/com/battdata_rt/BattData_RT_SQL.classBinary files differ
iec61852_forQGN/bin/com/battdata_rt/MonVolData.classBinary files differ
iec61852_forQGN/bin/com/dec/fbs9100/BTS61851_Task_Thread_SQL.classBinary files differ
iec61852_forQGN/bin/com/dec/fbs9100/BTS_61851_SocketClient.classBinary files differ
iec61852_forQGN/bin/com/dec/fbs9100/FBS9100_ComBase.classBinary files differ
iec61852_forQGN/bin/com/dec/fbs9100/FBS9100_StatAndParam.classBinary files differ
iec61852_forQGN/bin/com/dec/fbs9100/FBS9100_Task_Thread_SQL.classBinary files differ
iec61852_forQGN/bin/com/dec/fbs9100/FBS9100_VCData.classBinary files differ
iec61852_forQGN/bin/com/dec/fbs9100/Sql_Mysql.classBinary files differ
iec61852_forQGN/bin/com/dec/fbs9100/main_BTS_APP_IEC61852.classBinary files differ
iec61852_forQGN/bin/com/version_inf/version_inf.txt
@@ -1,6 +1,9 @@ 全功能逆变假负载设备带61850 通信程序 设备ID 618520001 V10.204 edit lijun at 2024-07-02 1.新增全功能61850点位中的告警遥调设置命令 2.新增全功能61850点位中的告警遥信数据读取以及更新至数据库 V10.203 edit lijun at 2023-11-15 1.核容参数点位修改 iec61852_forQGN/bin/config.xml
@@ -2,7 +2,7 @@ <root> <mysql_ramdb_recreate_en>false</mysql_ramdb_recreate_en> <mysql_server_ip>192.168.10.79</mysql_server_ip> <mysql_server_ip>127.0.0.1</mysql_server_ip> <!--SOURCE_BATTDATA_TYPE_FBSDEV = 0--> <!--SOURCE_BATTDATA_TYPE_SQLSERVER = 1--> <!--SOURCE_BATTDATA_TYPE_C_INTERFACE = 2--> iec61852_forQGN/config.xml
@@ -2,7 +2,7 @@ <root> <mysql_ramdb_recreate_en>false</mysql_ramdb_recreate_en> <mysql_server_ip>192.168.10.79</mysql_server_ip> <mysql_server_ip>127.0.0.1</mysql_server_ip> <!--SOURCE_BATTDATA_TYPE_FBSDEV = 0--> <!--SOURCE_BATTDATA_TYPE_SQLSERVER = 1--> <!--SOURCE_BATTDATA_TYPE_C_INTERFACE = 2--> iec61852_forQGN/src/com/battdata_rt/BattData_RT.java
@@ -102,6 +102,10 @@ BattData_RT_SQL.updateBattData_RT_RamDB_Table(m_Conn_Pool, this); } /*********************************************************************************/ public void updata_BattRtAlARM_To_RamDb() { BattData_RT_SQL.updateBattAlarm_RT_RamDB_Table(m_Conn_Pool, this); } /*********************************************************************************/ public BattData_RT updata_SetIp() { return BattData_RT_SQL.selectRT_BttInf_Table(m_Conn_Pool, this); } iec61852_forQGN/src/com/battdata_rt/BattData_RT_SQL.java
@@ -1054,4 +1054,79 @@ } } /************************************************************************************************/ /************************************************************************************************/ public static void updateBattAlarm_RT_RamDB_Table(MysqlConnPool conn_pool, BattData_RT bd_rt) { Sql_Mysql sql = new Sql_Mysql(conn_pool); try { String sql_str = "UPDATE " + Sql_Mysql.BattRtAlarm_Table + " SET " + " record_time='" + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms) + "'"; boolean tmp_dt = false; String sql_str_vol = " "; for(int n=0; n<bd_rt.MonCount; n++) { tmp_dt = bd_rt.al_MonVol.get(n).monvol_alm; sql_str_vol += " WHEN " + (n+1) + " THEN " + tmp_dt; } if(sql_str_vol.trim().length() > 1) { sql_str_vol = ", monvol_alm = CASE mon_num " + sql_str_vol + " ELSE monvol_alm END "; } String sql_str_tmp = " "; for(int n=0; n<bd_rt.MonCount; n++) { tmp_dt = bd_rt.al_MonVol.get(n).montmp_alm; sql_str_tmp += " WHEN " + (n+1) + " THEN " + tmp_dt; } if(sql_str_tmp.trim().length() > 1) { sql_str_tmp = ", montmp_alm = CASE mon_num " + sql_str_tmp + " ELSE montmp_alm END "; } String sql_str_res = " "; for(int n=0; n<bd_rt.MonCount; n++) { tmp_dt = bd_rt.al_MonVol.get(n).monres_alm; sql_str_res += " WHEN " + (n+1) + " THEN " + tmp_dt; } if(sql_str_res.trim().length() > 1) { sql_str_res = ", monres_alm = CASE mon_num " + sql_str_res + " ELSE monres_alm END "; } String sql_str_cap = " "; for(int n=0; n<bd_rt.MonCount; n++) { tmp_dt = bd_rt.al_MonVol.get(n).monrestcap_alm; sql_str_cap += " WHEN " + (n+1) + " THEN " + tmp_dt; } if(sql_str_cap.trim().length() > 1) { sql_str_cap = ", monrestcap_alm = CASE mon_num " + sql_str_cap + " ELSE monrestcap_alm END "; } String sql_str_2 = sql_str_vol + sql_str_tmp + sql_str_res + sql_str_cap ; if(sql_str_2.trim().length() > 1) { sql_str_2 += " WHERE BattGroupId=" + bd_rt.BattGroupId; /* + " AND mon_num IN ("; for(int n=0; n<brt.MonCount; n++) { if(n > 0) { sql_str_2 += ","; } sql_str_2 += (n+1); } sql_str_2 += ")"; */ } else { sql_str_2 = " WHERE BattGroupId=" + bd_rt.BattGroupId; } sql_str += sql_str_2; //System.out.println(bd_rt.MonCount); //System.out.println(sql_str); sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { // TODO Auto-generated catch block sql.logger.error("updateBattAlarm_RT_RamDB_Table():" + e.toString(), e); } finally { sql.close_con(); } } /************************************************************************************************/ } iec61852_forQGN/src/com/battdata_rt/MonVolData.java
@@ -12,7 +12,14 @@ public float monRes = 0; public float monSer = 0; public float connRes = 0; public float mon_JH_curr = 0; public float mon_JH_curr = 0; //均衡电流 public float mon_LY_vol = 0; //漏液电压 public float mon_rest_cap = 0; //剩余容量 public boolean monvol_alm; //单体电压告警 public boolean monres_alm; //单体内阻告警 public boolean montmp_alm; //单体温度告警 public boolean monrestcap_alm; //单体剩余容量告警 //--------------------------------// public MonVolData() { @@ -44,6 +51,14 @@ vdata.monRes = monRes; vdata.connRes = connRes; vdata.mon_JH_curr = mon_JH_curr; vdata.mon_LY_vol = mon_LY_vol; //漏液电压 vdata.mon_rest_cap = mon_rest_cap; //单体剩余容量 vdata.monvol_alm = monvol_alm; //单体电压告警 vdata.monres_alm = monres_alm; //单体内阻告警 vdata.montmp_alm = montmp_alm; //单体温度告警 vdata.monrestcap_alm = monrestcap_alm; //单体剩余容量告警 return vdata; } } iec61852_forQGN/src/com/dec/fbs9100/BTS61851_Task_Thread_SQL.java
@@ -4,6 +4,7 @@ import java.sql.SQLException; import java.util.Date; import com.base.Com; import com.battdata_rt.BattData_RT; public class BTS61851_Task_Thread_SQL { @@ -133,4 +134,28 @@ sql.close_con(); } } public static void updateBattRtState_Table(MysqlConnPool pool,FBS9100_VCData vc_data,BattData_RT[] battdata) { for(int i=0;i<battdata.length;i++) { if(null == battdata[i]) { continue; } String sql_str = " UPDATE " + Sql_Mysql.BattRsAlarm_Table + "" + " SET record_time = '"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)+"'" + ",groupvol_alm = " + vc_data.groupvolalm[i] + ",test_end_cap=" + vc_data.test_end_cap[i] + ",test_end_vol=" + vc_data.test_end_vol[i] + ",test_timelong= " + vc_data.test_timelong[i] + " WHERE BattGroupId = " + battdata[i].BattGroupId; Sql_Mysql sql = new Sql_Mysql(pool); try { sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { sql.logger.error("BTS61850_Task_Thread_SQL.updateBattRtState_Table():" + e.toString(), e); } finally { sql.close_con(); } } } } iec61852_forQGN/src/com/dec/fbs9100/BTS_61851_SocketClient.java
@@ -43,6 +43,10 @@ private FBS9100_VCData m_FBS_VCData = null; private FBS9100_ParamDischarge m_FBS_DiscParam = null; private FBS9100_ParamDischarge m_FBS_DiscParamFromDev = null; private FBS9100_AlarmParam m_FBS_AlmParam = null; private FBS9100_AlarmParam m_FBS_AlmParamFromDev = null; private FBS9100_SysParam m_FBS_SysParam = null; private FBS9100_StatAndParam m_StatAndParam = null; FBS9100_JHPowerState fbs9100_jhpowerState = null; @@ -80,6 +84,8 @@ private ServerModel m_ServerModel; private Logger logger = null; private int bg_num = 1; /*********************************************************************************************/ /*********************************************************************************************/ @@ -102,6 +108,9 @@ test_Param = m_StatAndParam.test_Param; test_Param.dev_id = m_FBSDevId; m_FBS_AlmParam = m_StatAndParam.m_FBS_AlmParam; m_FBS_AlmParamFromDev = m_StatAndParam.m_FBS_AlmParamFromDev; events = new ArrayList<BTS61851_EventRecord>(); @@ -168,9 +177,13 @@ if(this.FBSDeviceName.indexOf("BTSE")>0) { //适配各个不同协议名称的61851设备通信[读取放电参数时用到] ZJDYCPSS = this.FBSDeviceName.replace("BTSE", "CPSS"); if(ZJDYCPSS.contains("2")) { //标识第二组 bg_num = 2; } } logger.debug("Successfully connected to ied server " + FBSDeviceIp + " " + FBSDeviceName + "\t CPSS:"+ZJDYCPSS); logger.info("Successfully connected to ied server " + FBSDeviceIp + " " + FBSDeviceName + "\t CPSS:"+ZJDYCPSS); logger.debug("IP:" + FBSDeviceIp + " - BTS_IEC61851_Client retrieving model..."); /* try { @@ -201,6 +214,8 @@ m_FBS_VCData.m_SysState.resetErrCommCount(); FBS9100_Task_Thread_SQL.inseartOrUpdateFBS9100SFODParam(m_ConnPool, m_StatAndParam.clParam, m_StatAndParam); FBS9100_Task_Thread_SQL.inseartDev_6185_AlmParam(m_ConnPool, m_StatAndParam.dev_id); FBS9100_Task_Thread_SQL.queryBTS61851OffLineyhPlanOnRam(m_ConnPool, m_StatAndParam); @@ -222,6 +237,8 @@ FBS9100_Task_Thread_SQL.queryFbsCL9100SetParamBydev_id(m_ConnPool, m_StatAndParam); // 查询离线养护参数 FBS9100_Task_Thread_SQL.queryFBS9100SysParamBydev_id(m_ConnPool, m_StatAndParam); // 查询系统参数 FBS9100_Task_Thread_SQL.queryDev6185AlmParamBydev_id(m_ConnPool, m_StatAndParam); // 查询告警参数 } } @@ -371,6 +388,28 @@ } FBS9100_Task_Thread_SQL.updateCL9100SetParamCmdBydev_id(m_ConnPool, m_StatAndParam); } if (FBS9100_ComBase.CMD_NULL != m_FBS_AlmParam.op_cmd) { if (FBS9100_ComBase.CMD_ReadAlarmParam == m_FBS_AlmParam.op_cmd) { System.out.println("读取告警参数"+m_FBS_AlmParam.op_cmd); //读取告警参数 if (true == BTS_IEC61851_SocketComm(FBS9100_ComBase.CMD_ReadAlarmParam)) { m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_ReadAlarmParam_ACK; FBS9100_Task_Thread_SQL.UpdateDev61850AlmParam(m_ConnPool,m_StatAndParam.m_FBS_AlmParamFromDev, m_StatAndParam); }else { m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_Fail; } }else if(FBS9100_ComBase.CMD_WriteAlarmParam == m_FBS_AlmParam.op_cmd) { //设置告警参数 if (true == BTS_IEC61851_SocketComm(FBS9100_ComBase.CMD_WriteAlarmParam)) { m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_WriteAlarmParam_ACK; }else { m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_Fail; } } FBS9100_Task_Thread_SQL.updateDev61850AlmParamCmdBydev_id(m_ConnPool, m_StatAndParam); } // -----------------------------------------------------------------------------------// // -----------------------------------------------------------------------------------// @@ -869,9 +908,11 @@ } } } //m_FBS_VCData.m_SysState.AlarmState = (int)readInt64NodeData(FBSDeviceName + "/btgGGIO1.AnIn28.mag.i",Fc.MX); //核容启动失败原因 } //操作失败原因 m_FBS_VCData.m_SysState.AlarmState = (int)readInt64NodeData(FBSDeviceName + "/btgGGIO1.AnIn28.mag.i",Fc.MX); //核容启动失败原因 //System.out.println("AlarmState:"+m_FBS_VCData.m_SysState.AlarmState); m_FBS_VCData.m_SysState.setCommCountInc(); ds = null; } @@ -1222,6 +1263,185 @@ //----------------- 读到状态数据后再更新数据库数据 --------------------// getFBS9100MonVolData(m_FBS_VCData); ds = null; } if(0 == (numberDevState%6)) { //---------------------------------Log Level.TRACE-------------------------------------// logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsDevAlarm1)", FBSDeviceName); //-------------------------------------------------------------------------------------// comm_res = true; DataSet ds = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevAlarm1"); if(null == ds) { return false; } DataSet ds_stat = ds.copy(); boolean[] alm = new boolean[] {false,false,false,false,false}; int size_cnt_stat = ds.getMembers().size(); m_Association.getDataSetValues(ds_stat); int mon_alm_idx = 0; for (int n = 0; n < size_cnt_stat; n++) { if(null == ds_stat.getMembers().get(n).getChild("stVal")) { System.err.println(ds_stat.getMembers().get(n).getChild("mag").toString1()); continue; } FcModelNode fc_mode = (FcModelNode) ds_stat.getMembers().get(n).getChild("stVal"); if(fc_mode instanceof BdaBoolean) { //JTextField tf_t = (JTextField) data.getValueField(); String fc_mode_str = fc_mode.toString1(); //System.out.println("n:"+n+" "+fc_mode_str+"=="+((BdaBoolean)fc_mode).getValue()); if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm1")){ //通信蓄电池远程核容装置常闭接触器K1告警 alm[0] = ((BdaBoolean)fc_mode).getValue(); }else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm2")){ //通信蓄电池远程核容装置通讯告警 alm[1] = ((BdaBoolean)fc_mode).getValue(); }else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm3")){ //通信蓄电池远程核容装置过温告警 alm[2] = ((BdaBoolean)fc_mode).getValue(); }else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm4")){ //通信蓄电池远程核容装置二极管D1告警 alm[3] = ((BdaBoolean)fc_mode).getValue(); }else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO") && fc_mode_str.contains(".Alm5")){ //干接点输入故障-10个干接点点位有一个告警即触发干接点告警 alm[4] = (alm[4] || ((BdaBoolean)fc_mode).getValue()); }else if(fc_mode_str.contains(FBSDeviceName + "/btgGGIO1.Alm1")) { //电池组端电压告警 m_FBS_VCData.groupvolalm[0] = ((BdaBoolean)fc_mode).getValue(); }else if(fc_mode_str.contains(FBSDeviceName + "/celGGIO1.Alm")) { //System.out.println("mon_alm_idx:"+mon_alm_idx+" "+fc_mode_str+"=="+((BdaBoolean)fc_mode).getValue()); //电池组单体告警 if(0 <= mon_alm_idx && mon_alm_idx < 120) { //单体电压告警 m_FBS_VCData.monvol_alm[mon_alm_idx] = ((BdaBoolean)fc_mode).getValue(); } mon_alm_idx ++; } } } String sb = String.format("%b,%b,%b,%b,%b",alm[0],alm[1],alm[2],alm[3],alm[4]); m_FBS_VCData.m_SysState.last_dev_61850alam = m_FBS_VCData.m_SysState.dev_61850alam; // 记录上一次告警状态 m_FBS_VCData.m_SysState.dev_61850alam = sb; checkEventChange(); // 记录当前的告警 m_FBS_VCData.m_SysState.setCommCountInc(); ds_stat = null; //System.out.println("alm:" + Arrays.toString(alm)); } if(1 == (numberDevState%6)) { //---------------------------------Log Level.TRACE-------------------------------------// logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsDevAlarm2)", FBSDeviceName); //-------------------------------------------------------------------------------------// comm_res = true; DataSet ds = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevAlarm2"); if(null == ds) { return false; } DataSet ds_stat = ds.copy(); int size_cnt_stat = ds_stat.getMembers().size(); m_Association.getDataSetValues(ds_stat); int mon_alm_idx = 0; for (int n = 0; n < size_cnt_stat; n++) { if(null == ds_stat.getMembers().get(n).getChild("stVal")) { System.err.println(ds_stat.getMembers().get(n).getChild("mag").toString1()); continue; } FcModelNode fc_mode = (FcModelNode) ds_stat.getMembers().get(n).getChild("stVal"); if(fc_mode instanceof BdaBoolean) { //JTextField tf_t = (JTextField) data.getValueField(); String fc_mode_str = fc_mode.toString1(); //System.out.println("n:"+n+" "+fc_mode_str+"=="+((BdaBoolean)fc_mode).getValue()); if(fc_mode_str.contains(FBSDeviceName + "/celGGIO2.Alm")) { //System.out.println("mon_alm_idx:"+mon_alm_idx+" "+fc_mode_str+"=="+((BdaBoolean)fc_mode).getValue()); //电池组单体内阻告警 if(0 <= mon_alm_idx && mon_alm_idx < 120) { //单体内阻告警 m_FBS_VCData.monres_alm[mon_alm_idx] = ((BdaBoolean)fc_mode).getValue(); } mon_alm_idx ++; } } } //System.out.println("alm:" + Arrays.toString(alm)); m_FBS_VCData.m_SysState.setCommCountInc(); ds_stat = null; } if(2 == (numberDevState%6)) { //---------------------------------Log Level.TRACE-------------------------------------// logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsDevAlarm3)", FBSDeviceName); //-------------------------------------------------------------------------------------// comm_res = true; DataSet ds = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevAlarm3"); if(null == ds) { return false; } DataSet ds_stat = ds.copy(); int size_cnt_stat = ds_stat.getMembers().size(); m_Association.getDataSetValues(ds_stat); int mon_alm_idx = 0; for (int n = 0; n < size_cnt_stat; n++) { if(null == ds_stat.getMembers().get(n).getChild("stVal")) { System.err.println(ds_stat.getMembers().get(n).getChild("mag").toString1()); continue; } FcModelNode fc_mode = (FcModelNode) ds_stat.getMembers().get(n).getChild("stVal"); if(fc_mode instanceof BdaBoolean) { //JTextField tf_t = (JTextField) data.getValueField(); String fc_mode_str = fc_mode.toString1(); //System.out.println("n:"+n+" "+fc_mode_str+"=="+((BdaBoolean)fc_mode).getValue()); if(fc_mode_str.contains(FBSDeviceName + "/celGGIO3.Alm")) { //System.out.println("mon_alm_idx:"+mon_alm_idx+" "+fc_mode_str+"=="+((BdaBoolean)fc_mode).getValue()); //电池组单体内阻告警 if(0 <= mon_alm_idx && mon_alm_idx < 120) { //单体内阻告警 m_FBS_VCData.montmp_alm[mon_alm_idx] = ((BdaBoolean)fc_mode).getValue(); } mon_alm_idx ++; } } } //System.out.println("alm:" + Arrays.toString(alm)); m_FBS_VCData.m_SysState.setCommCountInc(); ds_stat = null; } if(3 == (numberDevState%6)) { //---------------------------------Log Level.TRACE-------------------------------------// logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsDevAlarm4)", FBSDeviceName); //-------------------------------------------------------------------------------------// comm_res = true; DataSet ds = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevAlarm4"); if(null == ds) { return false; } DataSet ds_stat = ds.copy(); int size_cnt_stat = ds_stat.getMembers().size(); m_Association.getDataSetValues(ds_stat); int mon_alm_idx = 0; for (int n = 0; n < size_cnt_stat; n++) { if(null == ds_stat.getMembers().get(n).getChild("stVal")) { System.err.println(ds_stat.getMembers().get(n).getChild("mag").toString1()); continue; } FcModelNode fc_mode = (FcModelNode) ds_stat.getMembers().get(n).getChild("stVal"); if(fc_mode instanceof BdaBoolean) { //JTextField tf_t = (JTextField) data.getValueField(); String fc_mode_str = fc_mode.toString1(); //System.out.println("n:"+n+" "+fc_mode_str+"=="+((BdaBoolean)fc_mode).getValue()); if(fc_mode_str.contains(FBSDeviceName + "/celGGIO4.Alm")) { //System.out.println("mon_alm_idx:"+mon_alm_idx+" "+fc_mode_str+"=="+((BdaBoolean)fc_mode).getValue()); //电池组单体内阻告警 if(0 <= mon_alm_idx && mon_alm_idx < 120) { //单体内阻告警 m_FBS_VCData.moncap_alm[mon_alm_idx] = ((BdaBoolean)fc_mode).getValue(); } mon_alm_idx ++; } } } getFBS9100MonAlmData(m_FBS_VCData); //System.out.println("alm:" + Arrays.toString(alm)); m_FBS_VCData.m_SysState.setCommCountInc(); ds_stat = null; } //m_FBS_VCData.m_SysState.resetErrCommCount(); @@ -1776,6 +1996,51 @@ //均衡停止电流阀值 writeNodeData(FBSDeviceName + "/btgGGIO1.Para5.setMag.f", "SP",(float)m_FBS_SysParam.JunHeng_StCurr); }else if(FBS9100_ComBase.CMD_ReadAlarmParam == cmd) { //读取告警参数 m_FBS_AlmParamFromDev.groupvol_high_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para1.setMag.f", Fc.SP); m_FBS_AlmParamFromDev.groupvol_low_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para2.setMag.f", Fc.SP); m_FBS_AlmParamFromDev.monvol_high_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para3.setMag.f", Fc.SP); m_FBS_AlmParamFromDev.monvol_low_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para4.setMag.f", Fc.SP); m_FBS_AlmParamFromDev.monres_high_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para5.setMag.f", Fc.SP); m_FBS_AlmParamFromDev.monres_low_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para6.setMag.f", Fc.SP); m_FBS_AlmParamFromDev.montmp_high_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para7.setMag.f", Fc.SP); m_FBS_AlmParamFromDev.montmp_low_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para8.setMag.f", Fc.SP); m_FBS_AlmParamFromDev.moncap_high_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para9.setMag.f", Fc.SP); m_FBS_AlmParamFromDev.moncap_low_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para10.setMag.f", Fc.SP); System.out.println(m_FBS_AlmParamFromDev); }else if(FBS9100_ComBase.CMD_WriteAlarmParam == cmd) { //设置告警参数 if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para1.setMag.f")); writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para1.setMag.f", "SP", m_FBS_AlmParam.groupvol_high_val); if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para2.setMag.f")); writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para2.setMag.f", "SP", m_FBS_AlmParam.groupvol_low_val); if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para3.setMag.f")); writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para3.setMag.f", "SP", m_FBS_AlmParam.monvol_high_val); if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para4.setMag.f")); writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para4.setMag.f", "SP", m_FBS_AlmParam.monvol_low_val); if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para5.setMag.f")); writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para5.setMag.f", "SP", m_FBS_AlmParam.monres_high_val); if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para6.setMag.f")); writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para6.setMag.f", "SP", m_FBS_AlmParam.monres_low_val); if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para7.setMag.f")); writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para7.setMag.f", "SP", m_FBS_AlmParam.montmp_high_val); if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para8.setMag.f")); writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para8.setMag.f", "SP", m_FBS_AlmParam.montmp_low_val); if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para9.setMag.f")); writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para9.setMag.f", "SP", m_FBS_AlmParam.moncap_high_val); if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para10.setMag.f")); writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para10.setMag.f", "SP", m_FBS_AlmParam.moncap_low_val); } comm_res = true; } catch (Exception e) { @@ -2198,7 +2463,36 @@ public static void main(String[] args) { System.out.println(getUKEYRootDomStr("ZJDYBTSE2")); } /** * 更新电池组数据 * * @param vc_data */ private void getFBS9100MonAlmData(FBS9100_VCData vc_data) { { int mon_index = 0; for (int n = 0; n < FBS9100_ComBase.BattGroupCountMax; n++) { if (null != m_RTData[n]) { for (int index = 0; index < m_RTData[n].MonCount; index++) { if (mon_index >= FBS9100_ComBase.MonomerCountMax) { break; } m_RTData[n].al_MonVol.get(index).monvol_alm = vc_data.monvol_alm[mon_index]; m_RTData[n].al_MonVol.get(index).monres_alm = vc_data.monres_alm[mon_index]; m_RTData[n].al_MonVol.get(index).montmp_alm = vc_data.montmp_alm[mon_index]; m_RTData[n].al_MonVol.get(index).monrestcap_alm = vc_data.moncap_alm[mon_index]; mon_index++; } m_RTData[n].updata_BattRtAlARM_To_RamDb(); BTS61851_Task_Thread_SQL.updateBattRtState_Table(m_ConnPool,vc_data,m_RTData); // ---------------------------------------------------------------------------// } } } } /*********************************************************************************************/ } /********************************* iec61852_forQGN/src/com/dec/fbs9100/FBS9100_AlarmParam.java
New file @@ -0,0 +1,61 @@ package com.dec.fbs9100; public class FBS9100_AlarmParam implements Cloneable { private final int BYTE_LEN = 44; public int op_cmd; public float groupvol_high_val; //'组端电压高阈值', public float groupvol_low_val; //'组端电压低阈值', public float monvol_high_val; //'单体电压高阈值', public float monvol_low_val; //'单体电压低阈值', public float montmp_high_val; //'单体温度高阈值', public float montmp_low_val; //'单体温度低阈值', public float monres_high_val; //'单体内阻高阈值', public float monres_low_val; //'单体内阻低阈值', public float moncap_high_val; //'单体容量高阈值', public float moncap_low_val; //'单体容量低阈值', public FBS9100_AlarmParam clone() { FBS9100_AlarmParam obj = null; try { obj = (FBS9100_AlarmParam)super.clone(); } catch(CloneNotSupportedException e) { e.printStackTrace(); } return obj; } public void clear() { this.groupvol_high_val = 0; //'组端电压高阈值', this.groupvol_low_val = 0; //'组端电压低阈值', this.monvol_high_val = 0; //'单体电压高阈值', this.monvol_low_val = 0; //'单体电压低阈值', this.montmp_high_val = 0; //'单体温度高阈值', this.montmp_low_val = 0; //'单体温度低阈值', this.monres_high_val = 0; //'单体内阻高阈值', this.monres_low_val = 0; //'单体内阻低阈值', this.moncap_high_val = 0; //'单体容量高阈值', this.moncap_low_val = 0; //'单体容量低阈值', } @Override public String toString() { return "FBS9100_ParamCharge [BYTE_LEN=" + BYTE_LEN + ", op_cmd=" + op_cmd + ", groupvol_high_val=" + groupvol_high_val + ", groupvol_low_val=" + groupvol_low_val + ", monvol_high_val=" + monvol_high_val + ", monvol_low_val=" + monvol_low_val + ", montmp_high_val=" + montmp_high_val + ", montmp_low_val=" + montmp_low_val + ", monres_high_val=" + monres_high_val + ", monres_low_val=" + monres_low_val + ", moncap_high_val=" + moncap_high_val + ", moncap_low_val=" + moncap_low_val + "]"; } } /*************************************************************************************** **************************** end of file (FBS_ChargeParam) ***************************** ***************************************************************************************/ iec61852_forQGN/src/com/dec/fbs9100/FBS9100_ComBase.java
@@ -6,6 +6,7 @@ public static final int MonomerCountMax = 480; //---------------------------------------------------------------------------- public static final int CMD_NULL = 0x00; public static final int CMD_Fail = -1; //---------------------------------------------------------------------------- //------------ ������������FBS9100������ ------------------------------------------------ public static final int CMD_ResetSystem = 0x10; @@ -169,6 +170,15 @@ public static final int CMD_ClearSysAlarm = 0xB8; //清除告警 public static final int CMD_ClearSysAlarm_ACK = 0xB9; //清除告警成功 //------------------------------------------------------------------------ //------------- 核容6185专属告警参数 ----------------------------------------------------------- public static final int CMD_ReadAlarmParam = 0xC5; //读取告警 public static final int CMD_ReadAlarmParam_ACK = 0xC6; //读取告警成功 public static final int CMD_WriteAlarmParam = 0xC7; //设置告警 public static final int CMD_WriteAlarmParam_ACK = 0xC8; //设置告警成功 //------------------------------------------------------------------------ //------------------------------------------------------------------------------ public static byte changeIntToByte(int data) { iec61852_forQGN/src/com/dec/fbs9100/FBS9100_StatAndParam.java
@@ -19,6 +19,10 @@ public FBS9100_SysParam m_FBS_SysParam = null; public BTS61850_OffLineYHPlan bts61850_OffLineYHPlan = null; public FBS9100_AlarmParam m_FBS_AlmParam = null; public FBS9100_AlarmParam m_FBS_AlmParamFromDev = null; public FBS9100_batt_testparam test_Param = null; //当前设置成功的充放电参数 public String m_DevVersion = ""; @@ -50,6 +54,9 @@ clParam = new CL_Param(); test_Param = new FBS9100_batt_testparam(); m_FBS_AlmParam = new FBS9100_AlarmParam(); m_FBS_AlmParamFromDev = new FBS9100_AlarmParam(); } @Override iec61852_forQGN/src/com/dec/fbs9100/FBS9100_Task_Thread_SQL.java
@@ -821,7 +821,7 @@ } } /****************************************************************************************************/ /****************************************************************************************************/ public static void inseartOrUpdateFBS9100SFODParam(MysqlConnPool con_pool,CL_Param fodparam,FBS9100_StatAndParam param){ String sql_str_base = Sql_Mysql.FBS9100SetDLParam_Table + " SET " @@ -873,6 +873,67 @@ sql.logger.error("FBS9100_Task_Thread_SQL.inseartOrUpdateFBS9100SFODParam():" + e.toString(), e); } } sql.close_con(); } } /****************************************************************************************************/ public static void inseartDev_6185_AlmParam(MysqlConnPool con_pool,int dev_id){ String sql_str_base = Sql_Mysql.Dev_6185_AlmParam + " SET " + " dev_id=" + dev_id; String sql_str_ins = " insert into " + Sql_Mysql.Dev_6185_AlmParam+ "(dev_id) values(" + dev_id +");"; Sql_Mysql sql = new Sql_Mysql(con_pool); ResultSet res = null; try { res = sql.sqlMysqlQuery("SELECT num FROM " + Sql_Mysql.Dev_6185_AlmParam + " WHERE dev_id = " + dev_id); if(!res.next()) { sql.sqlMysqlExecute(sql_str_ins); } } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.inseartDev_6185_AlmParam():" + e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.inseartOrUpdateFBS9100SFODParam():" + e.toString(), e); } } sql.close_con(); } } /****************************************************************************************************/ public static void UpdateDev61850AlmParam(MysqlConnPool con_pool,FBS9100_AlarmParam almparam,FBS9100_StatAndParam param){ String sql_str_base = Sql_Mysql.Dev_6185_AlmParam + " SET " + "dev_id=" + param.dev_id + ", " + "groupvol_high_val=" + almparam.groupvol_high_val + ", " + "groupvol_low_val=" + almparam.groupvol_low_val + ", " + "monvol_high_val=" + almparam.monvol_high_val + ", " + "monvol_low_val=" + almparam.monvol_low_val + ", " + "montmp_high_val=" + almparam.montmp_high_val + ", " + "montmp_low_val=" + almparam.montmp_low_val + ", " + "monres_high_val=" + almparam.monres_high_val + ", " + "monres_low_val=" + almparam.monres_low_val + ", " + "moncap_high_val=" + almparam.moncap_high_val + ", " + "moncap_low_val=" + almparam.moncap_low_val ; String sql_str_update = "UPDATE " + sql_str_base + " WHERE dev_id=" + param.dev_id; Sql_Mysql sql = new Sql_Mysql(con_pool); ResultSet res = null; try { sql.sqlMysqlExecute(sql_str_update); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.inseartOrUpdateFBS9100SFODParam():" + e.toString(), e); } finally { sql.close_con(); } } @@ -1024,6 +1085,31 @@ } param.clParam.op_cmd = param.op_cmd; param.op_cmd = FBS9100_ComBase.CMD_NULL; } } public static void updateDev61850AlmParamCmdBydev_id(MysqlConnPool con_pool, FBS9100_StatAndParam param) { if((param.op_cmd == FBS9100_ComBase.CMD_ReadAlarmParam_ACK) || (param.op_cmd == FBS9100_ComBase.CMD_Fail) || (param.op_cmd == FBS9100_ComBase.CMD_WriteAlarmParam_ACK)) { String sql_str_base = Sql_Mysql.Dev_6185_AlmParam + " SET " + " dev_id=" + param.dev_id + ", " + " op_cmd=" + param.op_cmd + " " + " where dev_id = "+param.dev_id; String sql_str_update = "UPDATE " + sql_str_base; Sql_Mysql sql = new Sql_Mysql(con_pool); try { sql.sqlMysqlExecute(sql_str_update); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.updateDev61850AlmParamCmdBydev_id():" + e.toString(), e); } finally { sql.close_con(); } param.m_FBS_AlmParam.op_cmd = param.op_cmd; param.op_cmd = FBS9100_ComBase.CMD_NULL; } } @@ -1389,6 +1475,54 @@ } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.queryFBS9100SysParamBydev_id():" + e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.queryFBS9100SysParamBydev_id():" + e.toString(), e); } } sql.close_con(); } } /** * 查询设备的告警参数 * @param con_pool * @param param */ public static void queryDev6185AlmParamBydev_id(MysqlConnPool con_pool, FBS9100_StatAndParam param) { String sql_str = "SELECT * FROM " + Sql_Mysql.Dev_6185_AlmParam + " where dev_id = " + param.dev_id; Sql_Mysql sql = new Sql_Mysql(con_pool); ResultSet res = sql.sqlMysqlQuery(sql_str); try { if(res.next()) { if(null != param) { param.m_FBS_AlmParam.op_cmd = res.getInt("op_cmd"); param.m_FBS_AlmParam.groupvol_high_val = res.getFloat("groupvol_high_val");; //'组端电压高阈值', param.m_FBS_AlmParam.groupvol_low_val = res.getFloat("groupvol_low_val"); //'组端电压低阈值', param.m_FBS_AlmParam.monvol_high_val = res.getFloat("monvol_high_val"); //'单体电压高阈值', param.m_FBS_AlmParam.monvol_low_val = res.getFloat("monvol_low_val"); //'单体电压低阈值', param.m_FBS_AlmParam.montmp_high_val = res.getFloat("montmp_high_val"); //'单体温度高阈值', param.m_FBS_AlmParam.montmp_low_val = res.getFloat("montmp_low_val"); //'单体温度低阈值', param.m_FBS_AlmParam.monres_high_val = res.getFloat("monres_high_val"); //'单体内阻高阈值', param.m_FBS_AlmParam.monres_low_val = res.getFloat("monres_low_val"); //'单体内阻低阈值', param.m_FBS_AlmParam.moncap_high_val = res.getFloat("moncap_high_val"); //'单体容量高阈值', param.m_FBS_AlmParam.moncap_low_val = res.getFloat("moncap_low_val"); //'单体容量低阈值', } } } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.queryDev6185AlmParamBydev_id():" + e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.queryDev6185AlmParamBydev_id():" + e.toString(), e); } } sql.close_con(); } } iec61852_forQGN/src/com/dec/fbs9100/FBS9100_VCData.java
@@ -40,6 +40,16 @@ public double tmp[] = new double[FBS9100_ComBase.MonomerCountMax]; public double mon_JH[] = new double[FBS9100_ComBase.MonomerCountMax]; public boolean[] groupvolalm = new boolean[FBS9100_ComBase.BattGroupCountMax]; //组端电压告警 public double[] test_end_vol = new double[FBS9100_ComBase.BattGroupCountMax]; //测试终止电压 public double[] test_end_cap = new double[FBS9100_ComBase.BattGroupCountMax]; //测试终止容量 public double[] test_timelong = new double[FBS9100_ComBase.BattGroupCountMax]; //测试终止时间 public boolean[] monvol_alm = new boolean[FBS9100_ComBase.MonomerCountMax]; //单体电压告警 public boolean[] monres_alm = new boolean[FBS9100_ComBase.MonomerCountMax]; //单体内阻告警 public boolean[] montmp_alm = new boolean[FBS9100_ComBase.MonomerCountMax]; //单体温度告警 public boolean[] moncap_alm = new boolean[FBS9100_ComBase.MonomerCountMax]; //单体容量告警 public FBS9100_VCData clone() { FBS9100_VCData obj = new FBS9100_VCData(); iec61852_forQGN/src/com/dec/fbs9100/Sql_Mysql.java
@@ -54,6 +54,10 @@ public final static String BattRtData_Table = DB_RamDB + ".`tb_batt_rtdata`"; public final static String BattRtState_Table = DB_RamDB + ".`tb_batt_rtstate`"; public final static String BattRtAlarm_Table = DB_RamDB + ".`tb_batt_rtalarm`"; public final static String BattRsAlarm_Table = DB_RamDB + ".`tb_batt_rsalarm`"; public final static String CInterfaceState_Table = DB_RamDB + ".`tb_cinterface_state`"; public final static String HardDevSmsState_Table = DB_RamDB + ".`tb_hard_dev_sms_state`"; @@ -76,6 +80,7 @@ public final static String FBS9100_61850_jhstate_Table = DB_RamDB + ".`tb_61850_jhstate`"; public final static String FBS9100_offlineyhplan = DB_RamDB + ".tb_fbs9100_offlineyhplan"; //61850离线养护计划参数表 public final static String Dev_6185_AlmParam = DB_RamDB + ".tb_dev_6185_almparam"; //6185告警参数表 //--------------------------------------------------------------------------------------------// //--------------------------------------------------------------------------------------------// public final static String AppSys_Table = DB_AppSys + ".`tb_app_sys`"; iec61852_forQGN/src/com/dec/fbs9100/main_BTS_APP_IEC61852.java
@@ -28,7 +28,7 @@ /**************************************************************************/ /**************************************************************************/ public final static boolean app_debug = false; public final static double m_VersionNum = 10.203; public final static double m_VersionNum = 10.204; public final static String m_Version = "Welcome To Use BattMonitor_BTS_IEC61851 V" + m_VersionNum + " RC_20201003"; /**************************************************************************/ iec61852_forQGN/src/com/version_inf/version_inf.txt
@@ -1,6 +1,9 @@ 全功能逆变假负载设备带61850 通信程序 设备ID 618520001 V10.204 edit lijun at 2024-07-02 1.新增全功能61850点位中的告警遥调设置命令 2.新增全功能61850点位中的告警遥信数据读取以及更新至数据库 V10.203 edit lijun at 2023-11-15 1.核容参数点位修改