山西太原电源的通信程序【在用】
4.新增上上限使能,以及下下限使能,用于可以主动关闭或开启上上限或下下限检测
4个文件已修改
84 ■■■■■ 已修改文件
IEC61850_ForPowerSupply/src/com/power/alarm/PwrDeviceAarmParam.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IEC61850_ForPowerSupply/src/com/power/alarm/PwrDeviceAlarm_Thread.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IEC61850_ForPowerSupply/src/com/version_inf/version_inf.txt 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
IEC61850_ForPowerSupply/src/log4j2_batt_comm_power_x64.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IEC61850_ForPowerSupply/src/com/power/alarm/PwrDeviceAarmParam.java
@@ -1,20 +1,23 @@
package com.power.alarm;
public class PwrDeviceAarmParam {
    public int PowerDeviceId;            //'电源id',
    public int alm_id;                    //'告警id',
    public int alm_level;                //'告警等级',
    public float alarm_limitH;            //'告警上限阈值',
    public boolean alarm_limitH_EN;        //'上限告警使能',
    public float alarm_limitL;            //'告警下限阈值',
    public boolean alarm_limitL_EN;        //'告警下限使能',
    public int alarm_source;            //'告警数据来源[0-设备告警点位判断;1-当前阈值判断]',
    public String alarm_name;            //'当前告警描述',
    public int alarm_type;                //'0-上下限有效  1-上限有效  2-下限有效',
    public int alarm_en_node;            //告警来源是点位时告警使能[0:不启用;1:启用]
    public int PowerDeviceId;                //'电源id',
    public int alm_id;                        //'告警id',
    public int alm_level;                    //'告警等级',
    public float alarm_limitH;                //'告警上限阈值',
    public boolean alarm_limitH_EN;            //'上限告警使能',
    public float alarm_limitL;                //'告警下限阈值',
    public boolean alarm_limitL_EN;            //'告警下限使能',
    public int alarm_source;                //'告警数据来源[0-设备告警点位判断;1-当前阈值判断]',
    public String alarm_name;                //'当前告警描述',
    public int alarm_type;                    //'0-上下限有效  1-上限有效  2-下限有效',
    public int alarm_en_node;                //告警来源是点位时告警使能[0:不启用;1:启用]
    
    public float alarm_limitH_upper;    //告警上上限阈值
    public float alarm_limitL_lower;    //告警下下限阈值
    public float alarm_limitH_upper;        //告警上上限阈值
    public float alarm_limitL_lower;        //告警下下限阈值
    public boolean alarm_limitH_upper_en;    //告警上上限阈值使能
    public boolean alarm_limitL_lower_en;    //告警下下限阈值使能
    
    public PwrDeviceAarmParam() {
        
IEC61850_ForPowerSupply/src/com/power/alarm/PwrDeviceAlarm_Thread.java
@@ -398,38 +398,45 @@
                    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;
                            }
                            alm_st = true;
                        }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;
                            }
                            alm_st = true;
                        }else {
                            alm_st = false;
                        }
                        if(almParam.alarm_limitH_upper_en && alm_val > almParam.alarm_limitH_upper) {
                            alm_st = true;
                            alm_severity = PwrDeviceAlarm_Data.Alm_Severity_Exigency;
                        }else if(almParam.alarm_limitL_lower_en && alm_val < almParam.alarm_limitL_lower) {
                            alm_st = true;
                            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;
                        }
                        if(almParam.alarm_limitH_upper_en && alm_val > almParam.alarm_limitH_upper) {
                            alm_st = true;
                            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;
                            }
                            alm_st = true;
                        }else {
                            alm_st = false;
                        }
                        if(alm_val < almParam.alarm_limitL_lower) {
                            alm_st = true;
                            alm_severity = PwrDeviceAlarm_Data.Alm_Severity_Exigency;
                        }
                    }                
                    alm_trigger = almParam.alarm_source;
                }/*else {
@@ -756,6 +763,8 @@
                param.alarm_limitH_upper = res.getFloat("alarm_limitH_upper");            //'告警上上限阈值',
                param.alarm_limitL_lower = res.getFloat("alarm_limitL_lower");            //'告警下下限阈值',
                
                param.alarm_limitH_upper_en = res.getBoolean("alarm_limitH_upper_en");    //'告警上上限阈值使能',
                param.alarm_limitL_lower_en = res.getBoolean("alarm_limitL_lower_en");    //'告警下下限阈值使能',
                
                rtpd.almParams.put(param.alm_id, param);
            }
IEC61850_ForPowerSupply/src/com/version_inf/version_inf.txt
@@ -2,12 +2,14 @@
V1.007  2023-06-12
    1.新增电源告警根据通信电源规范新增上上限告警以及下下限告警[平台显示时标识的紧急告警即为上上限或下下限告警]
    2.去掉初始运行时会删除表,然后重新创建
    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:启用]-无论来源生效'
    4.新增上上限使能,以及下下限使能,用于可以主动关闭或开启上上限或下下限检测
V1.006  2023-05-22
    1.新增所有电源告警参数以及使能配置功能
IEC61850_ForPowerSupply/src/log4j2_batt_comm_power_x64.xml
@@ -37,7 +37,17 @@
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="20MB"/>
            </Policies>
            <DefaultRolloverStrategy max="9"/>
           <DefaultRolloverStrategy max="15">
                <Delete basePath="${LOG_HOME}/" maxDepth="2">
                    <IfFileName glob="*.log.gz" >
                        <IfAny>
                          <IfAccumulatedFileCount exceeds="14" />
                        </IfAny>
                    </IfFileName>
                    <!--!Note: 这里的age必须和filePattern协调, 后者是精确到dd, 这里就要写成xd, xD就不起作用,另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->
                    <!--30天-->
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
        
    </Appenders>