From eb38174bb11f3076902aeb9812df08c2ac9aabeb Mon Sep 17 00:00:00 2001 From: DELL <1525436766@qq.com> Date: 星期四, 28 十一月 2024 14:26:03 +0800 Subject: [PATCH] V1.109 2024-11-27 lijun 1.新增紫晶DCDC电源数据解析[界面展示为直流配电柜和高频开关柜] 第一套电源协议名称: ZJDYDDPS 第一套电源协议名称: ZJDYDDPS2 --- IEC61850_ForPowerSupply_ForNW/src/com/power/alarm/PwrDeviceAlarm_Thread.java | 2 IEC61850_ForPowerSupply_ForNW/src/com/power/comm/Power_61850_SocketClient.java | 209 ++++++++++++++++++++++++++++++++------------------- IEC61850_ForPowerSupply_ForNW/src/com/version_inf/version_inf.txt | 4 3 files changed, 134 insertions(+), 81 deletions(-) diff --git a/IEC61850_ForPowerSupply_ForNW/src/com/power/alarm/PwrDeviceAlarm_Thread.java b/IEC61850_ForPowerSupply_ForNW/src/com/power/alarm/PwrDeviceAlarm_Thread.java index b305eaa..0aaa0e5 100644 --- a/IEC61850_ForPowerSupply_ForNW/src/com/power/alarm/PwrDeviceAlarm_Thread.java +++ b/IEC61850_ForPowerSupply_ForNW/src/com/power/alarm/PwrDeviceAlarm_Thread.java @@ -258,7 +258,7 @@ public void run() { - int waittime = PwrDeviceAlarm_Data.COMM_ERR_TIME_INTERVAL+15; + int waittime = PwrDeviceAlarm_Data.COMM_ERR_TIME_INTERVAL + 30; logger.info("PwrDeviceAlarm_Thread start After " + waittime + " Seconds..."); diff --git a/IEC61850_ForPowerSupply_ForNW/src/com/power/comm/Power_61850_SocketClient.java b/IEC61850_ForPowerSupply_ForNW/src/com/power/comm/Power_61850_SocketClient.java index c480f04..bef7962 100644 --- a/IEC61850_ForPowerSupply_ForNW/src/com/power/comm/Power_61850_SocketClient.java +++ b/IEC61850_ForPowerSupply_ForNW/src/com/power/comm/Power_61850_SocketClient.java @@ -226,7 +226,7 @@ rand_index++; */ if(pwrDev_rtData.PowerDevProtocolName.contains("DDPS")) { - //DCDC电源数据 + //紫晶DCDC电源数据 if(devIndex%3 == 0) { if(PowerData_RT.PowerCabinet_EXIST == this.pwrDev_rtData.is_highfreq_cabinet) { read_DCDC_Power(); @@ -282,9 +282,9 @@ DataSet ds = null; //************ 遥测量 ************** //---------------------------------Log Level.TRACE-------------------------------------// - logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dscV)", dcdcDeviceName); + logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsMeasure1)", dcdcDeviceName); ///-------------------------------------------------------------------------------------// - ds = m_ServerModel.getDataSet(dcdcDeviceName + "/LLN0.dscV"); + ds = m_ServerModel.getDataSet(dcdcDeviceName + "/LLN0.dsMeasure1"); if(null == ds) { setErrCommCountInc(0); return; @@ -380,9 +380,9 @@ DataSet ds = null; //************ 遥信量 ************** //---------------------------------Log Level.TRACE-------------------------------------// - logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dscAla)", dcdcDeviceName); + logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsState1)", dcdcDeviceName); //-------------------------------------------------------------------------------------// - ds = m_ServerModel.getDataSet(dcdcDeviceName + "/LLN0.dscAla"); + ds = m_ServerModel.getDataSet(dcdcDeviceName + "/LLN0.dsState1"); if(null == ds) { setErrCommCountInc(0); return; @@ -446,66 +446,6 @@ PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DCout2_UnderV_ID, 0, timeout_tag,dt); } - }else if(fc_model_str.contains("/gswGGIO1.Alm.stVal")) { //第1路输入开关跳闸 - origin_val = pwrDev_rtData.m_dcData.is_in1_swtrip; - pwrDev_rtData.m_dcData.is_in1_swtrip = ((BdaBoolean)fc_mode).getValue(); -// pwrDev_rtData.m_dcData.is_in1_swtrip = readBooleanNodeData(dcDeviceName + "/gswGGIO1.Alm.stVal", Fc.ST, pwrDev_rtData.m_dcData.is_in1_swtrip); - if(origin_val==false && pwrDev_rtData.m_dcData.is_in1_swtrip==true) { - Date dt = ((BdaTimestamp)fc_mode_t).getDate(); -// Date dt = readNodeTimeStamp(dcDeviceName + "/gswGGIO1.Alm.t", Fc.ST); - timeout_tag = checkIfBoolNodeTimeOut(dt); - - PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DcIn1_Trip_ID, 0, timeout_tag,dt); - } - }else if(fc_model_str.contains("/gswGGIO2.Alm.stVal")) { //第2路输入开关跳闸 - origin_val = pwrDev_rtData.m_dcData.is_in2_swtrip; - pwrDev_rtData.m_dcData.is_in2_swtrip = ((BdaBoolean)fc_mode).getValue(); -// pwrDev_rtData.m_dcData.is_in2_swtrip = readBooleanNodeData(dcDeviceName + "/gswGGIO2.Alm.stVal", Fc.ST, pwrDev_rtData.m_dcData.is_in2_swtrip); - if(origin_val==false && pwrDev_rtData.m_dcData.is_in2_swtrip==true) { - Date dt = ((BdaTimestamp)fc_mode_t).getDate(); -// Date dt = readNodeTimeStamp(dcDeviceName + "/gswGGIO2.Alm.t", Fc.ST); - timeout_tag = checkIfBoolNodeTimeOut(dt); - - PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DcIn2_Trip_ID, 0, timeout_tag,dt); - } - }else if(fc_model_str.contains("/fsw1GGIO") && fc_model_str.contains("Alm.stVal")) { - //System.out.println(fc_model_str + "===" + fsw1_Trip_idx); - - origin_val = pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx]; - pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx] = ((BdaBoolean)fc_mode).getValue(); - //pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx] = readBooleanNodeData(dcDeviceName + ref, Fc.ST, pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx]); - if(origin_val==false && pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx]==true) { - Date dt = ((BdaTimestamp)fc_mode_t).getDate(); - //Date dt = readNodeTimeStamp(dcDeviceName + reft, Fc.ST); - timeout_tag = checkIfBoolNodeTimeOut(dt); - - PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DC1_SW_N_Trip_ID, (fsw1_Trip_idx+1), timeout_tag,dt); - } - fsw1_Trip_idx ++; - }else if(fc_model_str.contains("/fsw2GGIO") && fc_model_str.contains("Alm.stVal")) { - //System.out.println(fc_model_str + "===" + fsw2_Trip_idx); - origin_val = pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[fsw2_Trip_idx]; - pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[fsw2_Trip_idx] = ((BdaBoolean)fc_mode).getValue(); -// pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[i] = readBooleanNodeData(dcDeviceName + ref, Fc.ST, pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[i]); - if(origin_val==false && pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[fsw2_Trip_idx]==true) { - Date dt = ((BdaTimestamp)fc_mode_t).getDate(); - //Date dt = readNodeTimeStamp(dcDeviceName + reft, Fc.ST); - timeout_tag = checkIfBoolNodeTimeOut(dt); - - PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DC2_SW_N_Trip_ID, (fsw2_Trip_idx+1), timeout_tag,dt); - } - fsw2_Trip_idx ++; - }else if(fc_model_str.contains("/etmGGIO1.Alm.stVal")) { - origin_val = pwrDev_rtData.m_dcData.is_tempalarm; - pwrDev_rtData.m_dcData.is_tempalarm = ((BdaBoolean)fc_mode).getValue(); -// pwrDev_rtData.m_dcData.is_tempalarm = readBooleanNodeData(dcDeviceName + "/etmGGIO.Alm.stVal", Fc.ST, pwrDev_rtData.m_dcData.is_tempalarm); - if(origin_val==false && pwrDev_rtData.m_dcData.is_tempalarm==true) { - Date dt = ((BdaTimestamp)fc_mode_t).getDate(); -// Date dt = readNodeTimeStamp(dcDeviceName + "/etmGGIO.Alm.t", Fc.ST); - timeout_tag = checkIfBoolNodeTimeOut(dt); - - PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_TempAlarm_ID, 0, timeout_tag,dt); - } }else if(fc_model_str.contains("/dbmGGIO.Ind3.stVal")) { origin_val = pwrDev_rtData.m_dcData.is_dc_monitorerr; pwrDev_rtData.m_dcData.is_dc_monitorerr = ((BdaBoolean)fc_mode).getValue(); @@ -517,19 +457,7 @@ PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_MonitorErr_ID, 0, timeout_tag,dt); } - }else if(fc_model_str.contains("/calmGGIO1.Alm.stVal")) { - origin_val = pwrDev_rtData.m_dcData.is_total_alarm; - pwrDev_rtData.m_dcData.is_total_alarm = ((BdaBoolean)fc_mode).getValue(); -// pwrDev_rtData.m_dcData.is_total_alarm = readBooleanNodeData(dcDeviceName + "/calmGGIO.Alm.stVal", Fc.ST, pwrDev_rtData.m_dcData.is_total_alarm); - if(origin_val==false && pwrDev_rtData.m_dcData.is_total_alarm==true) { - Date dt = ((BdaTimestamp)fc_mode_t).getDate(); -// Date dt = readNodeTimeStamp(dcDeviceName + "/calmGGIO.Alm.t", Fc.ST); - timeout_tag = checkIfBoolNodeTimeOut(dt); - - PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_TolalAlarm_ID, 0, timeout_tag,dt); - } - } - + } else if(fc_model_str.contains("/chmGGIO1.Ind2.stVal")) {//模块1关机 origin_val = pwrDev_rtData.m_acdcData.is_acdcMod_off[0]; pwrDev_rtData.m_acdcData.is_acdcMod_off[0] = ((BdaBoolean)fc_mode).getValue(); @@ -845,6 +773,131 @@ logger.error(e.toString(), e); } + + try { + + DataSet ds = null; + //************ 告警量 ************** + //---------------------------------Log Level.TRACE-------------------------------------// + logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsAlm1)", dcdcDeviceName); + //-------------------------------------------------------------------------------------// + ds = m_ServerModel.getDataSet(dcdcDeviceName + "/LLN0.dsAlm1"); + if(null == ds) { + setErrCommCountInc(0); + return; + } + ds = ds.copy(); + int size_cnt = ds.getMembers().size(); + m_Association.getDataSetValues(ds); + int m = 0; + int fsw1_Trip_idx = 0; + int fsw2_Trip_idx = 0; + + for (int n = 0; n<size_cnt; n++) { + if(null == ds.getMembers().get(n).getChild("stVal")) { + continue; + } + FcModelNode fc_mode = (FcModelNode) ds.getMembers().get(n).getChild("stVal"); + + FcModelNode fc_mode_t = (FcModelNode) ds.getMembers().get(n).getChild("t"); + + if(null != fc_mode){ + String fc_model_str = fc_mode.toString1(); + if(fc_model_str.contains("/gswGGIO1.Alm.stVal")) { //第1路输入开关跳闸 + origin_val = pwrDev_rtData.m_dcData.is_in1_swtrip; + pwrDev_rtData.m_dcData.is_in1_swtrip = ((BdaBoolean)fc_mode).getValue(); +// pwrDev_rtData.m_dcData.is_in1_swtrip = readBooleanNodeData(dcDeviceName + "/gswGGIO1.Alm.stVal", Fc.ST, pwrDev_rtData.m_dcData.is_in1_swtrip); + if(origin_val==false && pwrDev_rtData.m_dcData.is_in1_swtrip==true) { + Date dt = ((BdaTimestamp)fc_mode_t).getDate(); +// Date dt = readNodeTimeStamp(dcDeviceName + "/gswGGIO1.Alm.t", Fc.ST); + timeout_tag = checkIfBoolNodeTimeOut(dt); + + PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DcIn1_Trip_ID, 0, timeout_tag,dt); + } + }else if(fc_model_str.contains("/gswGGIO2.Alm.stVal")) { //第2路输入开关跳闸 + origin_val = pwrDev_rtData.m_dcData.is_in2_swtrip; + pwrDev_rtData.m_dcData.is_in2_swtrip = ((BdaBoolean)fc_mode).getValue(); +// pwrDev_rtData.m_dcData.is_in2_swtrip = readBooleanNodeData(dcDeviceName + "/gswGGIO2.Alm.stVal", Fc.ST, pwrDev_rtData.m_dcData.is_in2_swtrip); + if(origin_val==false && pwrDev_rtData.m_dcData.is_in2_swtrip==true) { + Date dt = ((BdaTimestamp)fc_mode_t).getDate(); +// Date dt = readNodeTimeStamp(dcDeviceName + "/gswGGIO2.Alm.t", Fc.ST); + timeout_tag = checkIfBoolNodeTimeOut(dt); + + PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DcIn2_Trip_ID, 0, timeout_tag,dt); + } + }else if(fc_model_str.contains("/fsw1GGIO") && fc_model_str.contains("Alm.stVal")) { + //System.out.println(fc_model_str + "===" + fsw1_Trip_idx); + + origin_val = pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx]; + pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx] = ((BdaBoolean)fc_mode).getValue(); + //pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx] = readBooleanNodeData(dcDeviceName + ref, Fc.ST, pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx]); + if(origin_val==false && pwrDev_rtData.m_dcData.is_fsw1_Trip_SW[fsw1_Trip_idx]==true) { + Date dt = ((BdaTimestamp)fc_mode_t).getDate(); + //Date dt = readNodeTimeStamp(dcDeviceName + reft, Fc.ST); + timeout_tag = checkIfBoolNodeTimeOut(dt); + + PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DC1_SW_N_Trip_ID, (fsw1_Trip_idx+1), timeout_tag,dt); + } + fsw1_Trip_idx ++; + }else if(fc_model_str.contains("/fsw2GGIO") && fc_model_str.contains("Alm.stVal")) { + //System.out.println(fc_model_str + "===" + fsw2_Trip_idx); + origin_val = pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[fsw2_Trip_idx]; + pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[fsw2_Trip_idx] = ((BdaBoolean)fc_mode).getValue(); +// pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[i] = readBooleanNodeData(dcDeviceName + ref, Fc.ST, pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[i]); + if(origin_val==false && pwrDev_rtData.m_dcData.is_fsw2_Trip_SW[fsw2_Trip_idx]==true) { + Date dt = ((BdaTimestamp)fc_mode_t).getDate(); + //Date dt = readNodeTimeStamp(dcDeviceName + reft, Fc.ST); + timeout_tag = checkIfBoolNodeTimeOut(dt); + + PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_DC2_SW_N_Trip_ID, (fsw2_Trip_idx+1), timeout_tag,dt); + } + fsw2_Trip_idx ++; + }else if(fc_model_str.contains("/etmGGIO1.Alm.stVal")) { + origin_val = pwrDev_rtData.m_dcData.is_tempalarm; + pwrDev_rtData.m_dcData.is_tempalarm = ((BdaBoolean)fc_mode).getValue(); +// pwrDev_rtData.m_dcData.is_tempalarm = readBooleanNodeData(dcDeviceName + "/etmGGIO.Alm.stVal", Fc.ST, pwrDev_rtData.m_dcData.is_tempalarm); + if(origin_val==false && pwrDev_rtData.m_dcData.is_tempalarm==true) { + Date dt = ((BdaTimestamp)fc_mode_t).getDate(); +// Date dt = readNodeTimeStamp(dcDeviceName + "/etmGGIO.Alm.t", Fc.ST); + timeout_tag = checkIfBoolNodeTimeOut(dt); + + PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_TempAlarm_ID, 0, timeout_tag,dt); + } + }else if(fc_model_str.contains("/calmGGIO1.Alm.stVal")) { + origin_val = pwrDev_rtData.m_dcData.is_total_alarm; + pwrDev_rtData.m_dcData.is_total_alarm = ((BdaBoolean)fc_mode).getValue(); +// pwrDev_rtData.m_dcData.is_total_alarm = readBooleanNodeData(dcDeviceName + "/calmGGIO.Alm.stVal", Fc.ST, pwrDev_rtData.m_dcData.is_total_alarm); + if(origin_val==false && pwrDev_rtData.m_dcData.is_total_alarm==true) { + Date dt = ((BdaTimestamp)fc_mode_t).getDate(); +// Date dt = readNodeTimeStamp(dcDeviceName + "/calmGGIO.Alm.t", Fc.ST); + timeout_tag = checkIfBoolNodeTimeOut(dt); + + PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_DC_TolalAlarm_ID, 0, timeout_tag,dt); + } + }else if(fc_model_str.contains("/commGGIO1.Ind1.stVal")) { + //协转与高频开关柜通信故障 + origin_val = pwrDev_rtData.m_acdcData.is_comm_err; + pwrDev_rtData.m_acdcData.is_comm_err = ((BdaBoolean)fc_mode).getValue(); + //System.out.println("is_comm_err:"+pwrDev_rtData.m_acdcData.is_comm_err); + if(origin_val==false && pwrDev_rtData.m_acdcData.is_battgroup1_fuse==true) { + Date dt = ((BdaTimestamp)fc_mode_t).getDate(); + //Date dt = readNodeTimeStamp(acdcDeviceName + "/gswGGIO4.Alm.t", Fc.ST); + timeout_tag = checkIfBoolNodeTimeOut(dt); + + PowerData_RT_SQL.make_TimeOutTag(m_ConnPool, pwrDev_rtData.PowerDevDeviceId, PwrDeviceAlarm_Data.ALM_TYPE_PWRDEV_CommErr_ID, 0, timeout_tag,dt); + } + } + + } + } + pwrDev_rtData.setCommSuccessCountInc(); + pwrDev_rtData.SetPwrDeviceCommErrState(false); + resetErrCommCount("read_DC_LD.dsDcswibYx"); + } catch (Exception e) { + setErrCommCountInc(0); + logger.error(e.toString(), e); + } + } private void read_ACDC_LD() { diff --git a/IEC61850_ForPowerSupply_ForNW/src/com/version_inf/version_inf.txt b/IEC61850_ForPowerSupply_ForNW/src/com/version_inf/version_inf.txt index a5e6b50..08f1660 100644 --- a/IEC61850_ForPowerSupply_ForNW/src/com/version_inf/version_inf.txt +++ b/IEC61850_ForPowerSupply_ForNW/src/com/version_inf/version_inf.txt @@ -12,8 +12,8 @@ V1.109 2024-11-27 lijun 1.新增紫晶DCDC电源数据解析[界面展示为直流配电柜和高频开关柜] - 第一套电源协议名称: WATTGY01DDPS - 第一套电源协议名称: WATTGY01DDPS1 + 第一套电源协议名称: ZJDYDDPS + 第一套电源协议名称: ZJDYDDPS2 V1.108 2024-10-23 lijun 1.添加"协转与电源通信故障告警",方便排查现场问题 -- Gitblit v1.9.1