山西太原电源的通信程序【在用】
V1.006  2023-05-22
1.新增所有电源告警参数以及使能配置功能
2.web_site.tb_thread_util 表中 可让当前线程自动加载电源告警参数
thread_id = 2019003
3个文件已修改
1个文件已添加
100 ■■■■■ 已修改文件
IEC61850_ForPowerSupply/src/com/main/main_PowerDev_IEC61850.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
IEC61850_ForPowerSupply/src/com/power/alarm/PwrDeviceAlarm_Thread.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IEC61850_ForPowerSupply/src/com/power/alarm/PwrDeviceAlarm_Thread_SQL.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IEC61850_ForPowerSupply/src/com/version_inf/version_inf.txt 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
IEC61850_ForPowerSupply/src/com/main/main_PowerDev_IEC61850.java
@@ -17,7 +17,7 @@
public class main_PowerDev_IEC61850 {
    
    public final static boolean app_debug = false;
    public final static double m_VersionNum = 1.005;
    public final static double m_VersionNum = 1.006;
    public final static String m_Version = "Welcome To Use Monitor_PowerDev_IEC61850 V" 
                                            + m_VersionNum + " RC_20201216";
    
IEC61850_ForPowerSupply/src/com/power/alarm/PwrDeviceAlarm_Thread.java
@@ -19,6 +19,10 @@
public class PwrDeviceAlarm_Thread extends Thread {
    public static final int ALMPARAM_READ         = 1;
    public static final int ALMPARAM_READ_ACK     = 2;
    
    private PowerData_RT_Array m_AL_Data;
    private MysqlConnPool m_Conn_Pool;
@@ -117,6 +121,14 @@
        
    }
    
    /**
     *     查询是否存在当前实时电源告警
     * @param dev_id
     * @param alm_type_id
     * @param sql
     * @return
     * @throws SQLException
     */
    public PwrDeviceAlarm_Data JudgeAlarmIfExists(int dev_id,int alm_type_id, Sql_Mysql sql) throws SQLException {
        
        //Sql_Mysql sql = new Sql_Mysql(m_Conn_Pool.getConn());
@@ -409,7 +421,9 @@
                }            
            }            
        }
        /*if(dev_id == 110000001 && alm_type_id == 110120) {
            System.out.println("alm_st:"+alm_st + "\t"+adata);
        }*/
        
        
        if((adata==null || adata.alm_cleared_type == 1) && (alm_st == true)) {
@@ -419,8 +433,7 @@
            }
            InsertPwrDevAlarmToTable(RecId,dev_id,alm_type_id,default_almlevel,alm_val,sql,alm_trigger);
            
        }
        else if((adata!=null) && (alm_st == false)) {
        }else if((adata != null) && (alm_st == false)) {
            ChangeRT_AlarmToHistoryAlarm(dev_id,alm_type_id,sql);
        }else if((adata!=null) && (adata.alm_level != default_almlevel)) {
            updatePwrDevAlarmLevelToTable( m_Conn_Pool,adata ,default_almlevel);
@@ -619,6 +632,7 @@
        
        logger.info("PwrDeviceAlarm_Thread start!!!");
        Date last = new Date(0);
        int read_AlmParam = ALMPARAM_READ_ACK;
        while(true){            
            try {
                sleep(1000);
@@ -627,6 +641,8 @@
            }
            Date now = new Date();
            long timelong = (now.getTime()-last.getTime())/(1000*60);
            read_AlmParam = PwrDeviceAlarm_Thread_SQL.quereyAlarmThreadParam(m_Conn_Pool);
            
            //System.out.println("timelong:"+timelong);
            for(int n=0;n<m_AL_Data.getItemCount();n++) {
@@ -638,9 +654,13 @@
                
                PowerData_RT rtpd = m_AL_Data.getItem(n);
                
                if(ALMPARAM_READ == read_AlmParam) {
                    readPwrDeviceAlarm(m_Conn_Pool, rtpd);
                }
                
                if(timelong >= 3) {
                    //加载电源告警参数[每隔4分钟重载电源告警参数]
                    //加载电源告警参数[每隔3分钟重载电源告警参数]
                    readPwrDeviceAlarm(m_Conn_Pool, rtpd);
                    last = now;
                }
@@ -648,6 +668,11 @@
                makePowerDeviceAlarm(rtpd);
                
            }
            if(ALMPARAM_READ == read_AlmParam) {
                read_AlmParam = ALMPARAM_READ_ACK;
                PwrDeviceAlarm_Thread_SQL.updateAlarmThreadParam(m_Conn_Pool, read_AlmParam);
            }
        }
    }
    
IEC61850_ForPowerSupply/src/com/power/alarm/PwrDeviceAlarm_Thread_SQL.java
New file
@@ -0,0 +1,60 @@
package com.power.alarm;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.power.mysql.MysqlConnPool;
import com.power.mysql.Sql_Mysql;
public class PwrDeviceAlarm_Thread_SQL {
    /**
     *     读取是否需要更新电源告警参数
     * @param pool
     * @return
     */
    public static int quereyAlarmThreadParam(MysqlConnPool pool) {
        int thread_en = 0;
        String sql_str = "SELECT * FROM web_site.tb_thread_util WHERE thread_id = 2019003";
        ResultSet res = null;
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            res = sql.sqlMysqlQuery(sql_str);
            if(res.next()) {
                thread_en = res.getInt("thread_en");
            }
        } catch (SQLException e) {
            sql.logger.error(e.toString(), e);
        } finally {
            if(null != res) {
                try {
                    res.close();
                } catch (SQLException e) {
                    sql.logger.error(e.toString(), e);
                }
            }
            sql.close_con();
        }
        return thread_en;
    }
    /**
     *     读取是否需要更新电源告警参数
     * @param pool
     * @return
     */
    public static int updateAlarmThreadParam(MysqlConnPool pool,int thread_en) {
        String sql_str = " UPDATE web_site.tb_thread_util" +
                         " SET thread_en = " + thread_en +
                         " WHERE thread_id = 2019003";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            sql.logger.error(e.toString(), e);
        } finally {
            sql.close_con();
        }
        return thread_en;
    }
}
IEC61850_ForPowerSupply/src/com/version_inf/version_inf.txt
@@ -1,5 +1,10 @@
山西太原   电源通信程序
V1.006  2023-05-22
    1.新增所有电源告警参数以及使能配置功能
    2.web_site.tb_thread_util 表中 可让当前线程自动加载电源告警参数
         thread_id = 2019003
V1.005  2023-04-10
    1.新增电源历史实时数据记录功能
        'db_pwrdev_data_history_gw'-国网电源历史实时数据库,将数据库中字段修改为小写