山西太原电源的通信程序【在用】
2.去掉初始运行时会删除表,然后重新创建
'db_pwrdev_data_rt.tb_pwrdev_acdata'
'db_pwrdev_data_rt.tb_pwrdev_acdcdata'
'db_pwrdev_data_rt.tb_pwrdev_dcdata'
3.电源告警使能逻辑修改,原表'db_pwrdev_alarm.tb_pwrdev_alarm_param_forsx'表中字段'alarm_en_node'
之前为'告警来源是点位时告警使能[0:不启用;1:启用]'-修改后为->'告警检测总使能[0:不启用;1:启用]-无论来源生效'
5个文件已修改
110 ■■■■■ 已修改文件
IEC61850_ForPowerSupply/src/com/power/alarm/PwrDeviceAlarm_Data.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IEC61850_ForPowerSupply/src/com/power/alarm/PwrDeviceAlarm_Thread.java 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IEC61850_ForPowerSupply/src/com/power/data/PowerData_RT_SQL.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IEC61850_ForPowerSupply/src/com/power/mysql/Sql_Mysql.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IEC61850_ForPowerSupply/src/com/version_inf/version_inf.txt 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IEC61850_ForPowerSupply/src/com/power/alarm/PwrDeviceAlarm_Data.java
@@ -175,6 +175,9 @@
    public final static int    Alm_Effect_High         = 1;                            //上限有效
    public final static int    Alm_Effect_Lower        = 2;                            //下限有效
    
    public final static int Alm_CheckEnable_Off        = 0;                            //告警检测使能-关闭
    public final static int Alm_CheckEnable_On        = 1;                            //告警检测使能-开启
    
    
    public final static int COMM_ERR_TIME_INTERVAL = 180; //S
IEC61850_ForPowerSupply/src/com/power/alarm/PwrDeviceAlarm_Thread.java
@@ -389,53 +389,59 @@
        int alm_severity = PwrDeviceAlarm_Data.Alm_Severity_Importance;        //默认为重要告警
        int alm_trigger = PwrDeviceAlarm_Data.Alm_Trigger_Node;                //默认告警来源
        if(null != almParam) {
            //default_almlevel = almParam.alm_level;        //当前告警等级
            if(PwrDeviceAlarm_Data.Alm_Trigger_Param == almParam.alarm_source) {
                //触发条件为告警参数触发时
                if(PwrDeviceAlarm_Data.Alm_Effect_Total == almParam.alarm_type) {
                    //上下限有效
                    if(almParam.alarm_limitH_EN && alm_val > almParam.alarm_limitH) {
                        alm_st = true;
                        if(alm_val > almParam.alarm_limitH_upper) {
                            alm_severity = PwrDeviceAlarm_Data.Alm_Severity_Exigency;
            if(PwrDeviceAlarm_Data.Alm_CheckEnable_Off == almParam.alarm_en_node) {
                alm_st = false;
            }else {
                //default_almlevel = almParam.alm_level;        //当前告警等级
                if(PwrDeviceAlarm_Data.Alm_Trigger_Param == almParam.alarm_source) {
                    //触发条件为告警参数触发时
                    if(PwrDeviceAlarm_Data.Alm_Effect_Total == almParam.alarm_type) {
                        //上下限有效
                        if(almParam.alarm_limitH_EN && alm_val > almParam.alarm_limitH) {
                            alm_st = true;
                            if(alm_val > almParam.alarm_limitH_upper) {
                                alm_severity = PwrDeviceAlarm_Data.Alm_Severity_Exigency;
                            }
                        }else if(almParam.alarm_limitL_EN && alm_val < almParam.alarm_limitL) {
                            alm_st = true;
                            if(alm_val < almParam.alarm_limitL_lower) {
                                alm_severity = PwrDeviceAlarm_Data.Alm_Severity_Exigency;
                            }
                        }else {
                            alm_st = false;
                        }
                    }else if(almParam.alarm_limitL_EN && alm_val < almParam.alarm_limitL) {
                        alm_st = true;
                        if(alm_val < almParam.alarm_limitL_lower) {
                            alm_severity = PwrDeviceAlarm_Data.Alm_Severity_Exigency;
                    }else if(PwrDeviceAlarm_Data.Alm_Effect_High == almParam.alarm_type) {
                        //上限有效
                        if(almParam.alarm_limitH_EN && alm_val > almParam.alarm_limitH) {
                            alm_st = true;
                            if(alm_val > almParam.alarm_limitH_upper) {
                                alm_severity = PwrDeviceAlarm_Data.Alm_Severity_Exigency;
                            }
                        } else {
                            alm_st = false;
                        }
                    }else {
                        alm_st = false;
                    }
                }else if(PwrDeviceAlarm_Data.Alm_Effect_High == almParam.alarm_type) {
                    //上限有效
                    if(almParam.alarm_limitH_EN && alm_val > almParam.alarm_limitH) {
                        alm_st = true;
                        if(alm_val > almParam.alarm_limitH_upper) {
                            alm_severity = PwrDeviceAlarm_Data.Alm_Severity_Exigency;
                    }else if(PwrDeviceAlarm_Data.Alm_Effect_Lower == almParam.alarm_type) {
                        //下限有效
                        if(almParam.alarm_limitL_EN && alm_val < almParam.alarm_limitL) {
                            alm_st = true;
                            if(alm_val < almParam.alarm_limitL_lower) {
                                alm_severity = PwrDeviceAlarm_Data.Alm_Severity_Exigency;
                            }
                        }else {
                            alm_st = false;
                        }
                    } else {
                        alm_st = false;
                    }
                }else if(PwrDeviceAlarm_Data.Alm_Effect_Lower == almParam.alarm_type) {
                    //下限有效
                    if(almParam.alarm_limitL_EN && alm_val < almParam.alarm_limitL) {
                        alm_st = true;
                        if(alm_val < almParam.alarm_limitL_lower) {
                            alm_severity = PwrDeviceAlarm_Data.Alm_Severity_Exigency;
                        }
                    }else {
                        alm_st = false;
                    }
                }
                alm_trigger = almParam.alarm_source;
            }else {
                    }
                    alm_trigger = almParam.alarm_source;
                }/*else {
                //2023-06-13 以前逻辑当前使能是点位触发时的使能,后面为当前告警总使能
                //触发条件点位触发时看使能是否启用
                if(almParam.alarm_en_node == 0) {
                    //当前告警未启用
                    alm_st = false;            
                }            
            }
            }*/
            }
        }
        /*if(dev_id == 110000001 && alm_type_id == 110120) {
            System.out.println("alm_st:"+alm_st + "\t"+adata);
IEC61850_ForPowerSupply/src/com/power/data/PowerData_RT_SQL.java
@@ -26,7 +26,7 @@
                + " (PowerDeviceId)" 
                + " VALUES " + "(" + dev_id + ");";
        
        logger.info(sqlstr);
        //logger.info(sqlstr);
                
        boolean recordexists = false;
        
@@ -41,7 +41,7 @@
            if(rs_t.next()) {
                recordexists = true;
                
                logger.info("recordexists = true");
                //logger.info("recordexists = true");
            }
            
            if(false == recordexists) {
IEC61850_ForPowerSupply/src/com/power/mysql/Sql_Mysql.java
@@ -471,8 +471,8 @@
                        + "`alm_confirmed_time` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', "
                        + "`alm_cleared_type` INT NOT NULL DEFAULT 0, "
                        + "`usr_Id` INT NOT NULL DEFAULT 0, "
                        + "`alm_trigger` int(11) NOT NULL DEFAULT '0' COMMENT '告警来源[0-来源于点表;1-来源于电源告警参数]' "
                        + "`alm_severity` int(11) NOT NULL DEFAULT '0' COMMENT '告警重要等级[0:重要;1:紧急]' "
                        + "`alm_trigger` int(11) NOT NULL DEFAULT '0' COMMENT '告警来源[0-来源于点表;1-来源于电源告警参数]', "
                        + "`alm_severity` int(11) NOT NULL DEFAULT '0' COMMENT '告警重要等级[0:重要;1:紧急]', "
                        + "INDEX index_record_id (`record_id`), "
                        + "INDEX index_pwrdev_id (`PowerDeviceId`), "
                        + "INDEX index_alm_type (`alm_type`), "
@@ -519,9 +519,12 @@
        //logger.info(table_3);
        //logger.info(table_4);
        
        sqlMysqlExecute(table_2_0);
        sqlMysqlExecute(table_3_0);
        sqlMysqlExecute(table_4_0);
        /**
         * 2023-06-13 初始时默认删除已存在的表,重新创建
         */
        //sqlMysqlExecute(table_2_0);
        //sqlMysqlExecute(table_3_0);
        //sqlMysqlExecute(table_4_0);
        
        sqlMysqlExecute(table_1);
        sqlMysqlExecute(table_5);
IEC61850_ForPowerSupply/src/com/version_inf/version_inf.txt
@@ -2,6 +2,12 @@
V1.007  2023-06-12
    1.新增电源告警根据通信电源规范新增上上限告警以及下下限告警[平台显示时标识的紧急告警即为上上限或下下限告警]
    2.去掉初始运行时会删除表,然后重新创建
        'db_pwrdev_data_rt.tb_pwrdev_acdata'
        'db_pwrdev_data_rt.tb_pwrdev_acdcdata'
        'db_pwrdev_data_rt.tb_pwrdev_dcdata'
    3.电源告警使能逻辑修改,原表'db_pwrdev_alarm.tb_pwrdev_alarm_param_forsx'表中字段'alarm_en_node'
        之前为'告警来源是点位时告警使能[0:不启用;1:启用]'-修改后为->'告警检测总使能[0:不启用;1:启用]-无论来源生效'
V1.006  2023-05-22
    1.新增所有电源告警参数以及使能配置功能