V1.109  2024-11-27 lijun
1.新增紫晶DCDC电源数据解析[界面展示为直流配电柜和高频开关柜]
第一套电源协议名称: ZJDYDDPS
第一套电源协议名称: ZJDYDDPS2
3个文件已修改
215 ■■■■■ 已修改文件
IEC61850_ForPowerSupply_ForNW/src/com/power/alarm/PwrDeviceAlarm_Thread.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
IEC61850_ForPowerSupply_ForNW/src/com/power/comm/Power_61850_SocketClient.java 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IEC61850_ForPowerSupply_ForNW/src/com/version_inf/version_inf.txt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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...");
        
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() {
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.添加"协转与电源通信故障告警",方便排查现场问题