V3.328 edit by lijun @ 2022-07-15
1.记录充放电数据时保存上一次设置的放电参数
New file |
| | |
| | | 协转版本【紫晶版本】 |
| | | 顺畅ukey加密版本,无除硫养护,无均衡供电标准版本节点
|
| | |
|
| | |
|
| | |
|
| | | 佛山版本 佛山标准版
|
| | | 均衡供电(旧版本)
|
| | | 除硫模块
|
| | | 均衡电流
|
| | |
|
| | | 韶关版本【无互控/无离线养护】
|
| | | 均衡供电(旧版本)
|
| | | 除硫模块
|
| | | 均衡电流
|
| | | |
| | | 1.109 edit lijun at 2019-11-19
|
| | | 该版本的程序包括获取均衡电流,除硫养护,离线养护,重启设备等功能
|
| | | |
| | | |
| | | 1.200 edit lijun at
|
| | | 该版本初次添加系统参数修改
|
| | | |
| | | 3.109 edit lijun |
| | | 该版本在在如下1个类中判断了当前设备的ID
|
| | | BTS61850_Task_Thread
|
| | | |
| | | 3.110 edit lijun at 2020-05-19
|
| | | 该版本在修改ip地址时因协转修改,只支持永久修改ip并且支持修改指定网口的ip,子网掩码和网关。
|
| | | 全版本影响
|
| | | |
| | | 3.300 edit by mxpopstar at 2020-08-21
|
| | | 1:优化了BTS_61850_SocketClient与设备的通信逻辑,提高了通信效率。
|
| | | 2:实时数据都从dsMeasure数据集里面读取,设备状态和核容容量从dsDevState数据集里面读取。
|
| | | 3:优化了public boolean checkIfDataNeedStore()函数,使其支持设备处于核容状态时,核容电流起来之前,后台就启动数据记录
|
| | | 4:优化了核容历史数据的存储功能,最后一笔的核容电流与单体数据保持与倒数第二笔相同,并存入数据库。
|
| | | |
| | | 全版本影响
|
| | | |
| | | V3.302 edit by mxpopstar at 2020-09-04
|
| | | 1: 增加了放电参数中的“充电电流”与“升压上限”的设置。
|
| | | 2:将协转版本读取移动到while循环开始前。
|
| | | 3:将“充电电流”与“升压上限”的回读移动到getDischargeParam命令里面。
|
| | | |
| | | 全版本影响
|
| | |
|
| | | V3.303 edit by lijun at 2020-09-06
|
| | | 1:历史实时数据存储按照月存储,并且修改最大存储时长为3*366天
|
| | | 2.添加首次启动时读取协转的主从机功能使能和干接点功能使能
|
| | | |
| | | 全版本影响
|
| | |
|
| | | V3.310 edit by mxpopstar @ 2020-09-08
|
| | | 1:支持新增蓄电池组和BTSE设备,而无需重启主程序的功能。
|
| | | 2:支持核容过程中重启主程序和不中断数据存储的功能。
|
| | | |
| | | 全版本影响
|
| | | |
| | | V3.320 edit by mxpopstar @ 2020-10-02
|
| | | 1:使用log4j记录输出日志到batt_61850_dev_x64_log文件夹,同时把WARN级别以上的日志同步存储到数据库db_app_sys.tb_batt_61850_dev_x64_log4j。
|
| | | 2:batt_61850_dev_x64_log文件夹自动滚动存储10个日志文件,数据库tb_batt_61850_dev_x64_log4j最多滚动存储50000条WARN以上级别的数据,方便维护。
|
| | | 3:数据库滚动存储的实现在main_BTS_APP_IEC61850主类中实现。
|
| | | 4:发布的时候必须将设计好的log4j.properties文件一同放在batt_61850_dev_x64.exe的同一目录。
|
| | | |
| | | 全版本影响
|
| | | |
| | | V3.321 edit by lijun @ 2021-08-17 |
| | | 1.记录历史放电数据时,同时记录当前电池组的内阻数据
|
| | | 2.修复记录历史实时数据时记录默认会插入一笔数据为0的数据-------------->battData.mTestData.newDataRecordTime不能初始化当前时间
|
| | |
|
| | | V3.322 edit by lijun @ 2021-09-01
|
| | | 1.佛山二期版本新增均衡参数读取和设置命令
|
| | | 2.之前读取集合方式修改为单个点位数据读取
|
| | | |
| | | V3.323 edit by lijun @ 2021-09-10
|
| | | 1. 历史实时数据检测线程中;循环删除检测统计查询占用MySQL资源大且频繁查询,已修改成24小时定期检测删除指定天数之前的历史实时表
|
| | | 2. 均衡电压设置修改为浮点数修改
|
| | | |
| | | V3.324 edit by lijun @ 2021-10-22
|
| | | 1.佛山二期修改,新增兼容两组BTS,修改设置UKEY点位信息动态传递
|
| | | |
| | | V3.325 edit by lijun @ 2021-10-22
|
| | | 1.修复:记录放电数据时,记录一笔内阻数据时test_record_count = 0
|
| | | |
| | | V3.326 edit by lijun @ 2021-12-13
|
| | | 1.升级log4j开源JAR,修复开源包BUG
|
| | | |
| | | V3.327 edit by lijun @ 2022-04-12
|
| | | 1.修复历史数据记录时不显示bug
|
| | | |
| | | V3.328 edit by lijun @ 2022-07-15
|
| | | 1.记录放电数据时保存上一次设置的放电参数 |
| | | |
| | | |
| | |
| | | |
| | | <root> |
| | | <mysql_ramdb_recreate_en>false</mysql_ramdb_recreate_en> |
| | | <mysql_server_ip>192.168.10.79</mysql_server_ip> |
| | | <mysql_server_ip>127.0.0.1</mysql_server_ip> |
| | | <!--SOURCE_BATTDATA_TYPE_FBSDEV = 0--> |
| | | <!--SOURCE_BATTDATA_TYPE_SQLSERVER = 1--> |
| | | <!--SOURCE_BATTDATA_TYPE_C_INTERFACE = 2--> |
| | |
| | |
|
| | | import com.base.Com;
|
| | | import com.dec.fbs9100.BattResStorePro_Thread;
|
| | | import com.dec.fbs9100.FBS9100_batt_testparam;
|
| | | import com.dec.fbs9100.MysqlConnPool;
|
| | | import com.dec.fbs9100.Sql_Mysql;
|
| | |
|
| | |
| | | String sql_str = " ";
|
| | | BattStatData tmp_test_data = rt_data.mTestData.clone();
|
| | | tmp_test_data.test_stoptype = test_stoptype_t;
|
| | | |
| | | System.out.println("MysqlRecordInf_Exist:"+rt_data.MysqlRecordInf_Exist);
|
| | | if(false == rt_data.MysqlRecordInf_Exist)
|
| | | {
|
| | | sql_str = "INSERT INTO " + Sql_Mysql.BattTestDataInf_Table
|
| | |
| | | *
|
| | | */
|
| | | BattResStorePro_Thread.insertMonDataToResTable(pool, rt_data, tmp_test_data.startTestTime, BattStatData.BATTDATA_RES);
|
| | | |
| | | /**
|
| | | * 2022-07-14 @lijun 记录放电之前设置的放电参数
|
| | | * |
| | | */
|
| | | recordTestParam(pool,rt_data);
|
| | | }
|
| | | else
|
| | | {
|
| | |
| | | return sql_str;
|
| | | }
|
| | |
|
| | | |
| | | /**
|
| | | * 插入记录放电数据之前的放电参数
|
| | | * @param pool
|
| | | * @param rt_data
|
| | | */
|
| | | private static void recordTestParam(MysqlConnPool pool, BattData_RT rt_data) {
|
| | | String sql_str_sel = " SELECT * " + |
| | | " FROM " + Sql_Mysql.Batt_TestParam_Table + rt_data.BattGroupId +
|
| | | " WHERE BattGroupId = " + rt_data.BattGroupId + " AND test_record_count = " + rt_data.mTestData.testRecordCount; |
| | | ResultSet res = null;
|
| | | String sql_str = "";
|
| | | Sql_Mysql sql = new Sql_Mysql(pool);
|
| | | FBS9100_batt_testparam param = rt_data.mTestData.test_param;
|
| | | if(null != param) { |
| | | try {
|
| | | res = sql.sqlMysqlQuery(sql_str_sel);
|
| | | if(null != res && res.next()) {
|
| | | //更新当前参数
|
| | | sql_str = " UPDATE " + Sql_Mysql.Batt_TestParam_Table + rt_data.BattGroupId + |
| | | " SET op_cmd = " + param.op_cmd +
|
| | | ",TestCmd = " + param.TestCmd +
|
| | | ",record_time = '" + Com.getDateTimeFormat(param.record_time, Com.DTF_YMDhms) + "'" + |
| | | ",HourRate = " + param.HourRate +
|
| | | ",DisCurr = " + param.DisCurr +
|
| | | ",DisCap = " + param.DisCap +
|
| | | ",DisTime = " + param.DisTime +
|
| | | ",GroupVol_LOW = " + param.GroupVol_LOW +
|
| | | ",MonomerVol_LOW = " + param.MonomerVol_LOW +
|
| | | ",MonomerLowCount = " + param.MonomerLowCount +
|
| | | ",BattGroupNum = " + param.BattGroupNum +
|
| | | ",OnlineVolLowAction = " + param.OnlineVolLowAction +
|
| | | ",DCVolHighLimit = " + param.DCVolHighLimit +
|
| | | ",ChargeCurrSet = " + param.ChargeCurrSet +
|
| | | ",MonomerTmp_High = " + param.MonomerTmp_High +
|
| | | ",AutoTestStartVol = " + param.AutoTestStartVol +
|
| | | ",OnLineVol_Low = " + param.OnLineVol_Low +
|
| | | ",OffLineYH_Cycle = " + param.OffLineYH_Cycle +
|
| | | ",OffLineYHstarttime = '" + Com.getDateTimeFormat(param.OffLineYHstarttime, Com.DTF_YMDhms) + "'"+
|
| | | ",OffLineYHTimes = " + param.OffLineYHTimes +
|
| | | ",OffLineYHOnceCycle = " + param.OffLineYHOnceCycle +
|
| | | ",MonCount = " + param.MonCount +
|
| | | ",MonVol = " + param.MonVol +
|
| | | ",DisPower = " + param.DisPower +
|
| | | ",DisPreRes = " + param.DisPreRes +
|
| | | ",CharCap = " + param.CharCap +
|
| | | ",CharTimeLong = " + param.CharTimeLong +
|
| | | ",FloatCharTimeLong = " + param.FloatCharTimeLong +
|
| | | ",CharSotpCurr = " + param.CharSotpCurr +
|
| | | ",MonVolHightLimit = " + param.MonVolHightLimit +
|
| | | ",MonVolHightLimitCount = " + param.MonVolHightLimitCount +
|
| | | ",CharHighTmp = " + param.CharHighTmp +
|
| | | ",DisWaitTime = " + param.DisWaitTime +
|
| | | ",CharWaitTime = " + param.CharWaitTime +
|
| | | ",FlowOver_Count = " + param.FlowOver_Count +
|
| | | ",FlowOver_CharCurr_1 = " + param.FlowOver_CharCurr_1 +
|
| | | ",FlowOver_CharCurr_2 = " + param.FlowOver_CharCurr_2 +
|
| | | ",FlowOver_CharCurr_3 = " + param.FlowOver_CharCurr_3 +
|
| | | ",FlowOver_CharTime_1 = " + param.FlowOver_CharTime_1 +
|
| | | ",FlowOver_CharTime_2 = " + param.FlowOver_CharTime_2 +
|
| | | ",FlowOver_CharTime_3 = " + param.FlowOver_CharTime_3 +
|
| | | ",ChargeVolt = " + param.ChargeVolt +
|
| | | ",C_ProtectVol1 = " + param.C_ProtectVol1 +
|
| | | ",C_ProtectVol2 = " + param.C_ProtectVol2 +
|
| | | ",C_ProtectVol3 = " + param.C_ProtectVol3 +
|
| | | ",C_mon_uppervol1 = " + param.C_mon_uppervol1 +
|
| | | ",C_mon_uppervol2 = " + param.C_mon_uppervol2 +
|
| | | ",C_mon_uppervol3 = " + param.C_mon_uppervol3 +
|
| | | ",C_mon_uppernum1 = " + param.C_mon_uppernum1 +
|
| | | ",C_mon_uppernum2 = " + param.C_mon_uppernum2 +
|
| | | ",C_mon_uppernum3 = " + param.C_mon_uppernum3 +
|
| | | ",HV_charge_num = " + param.HV_charge_num +
|
| | | ",HV_charge_Vol1 = " + param.HV_charge_Vol1 +
|
| | | ",HV_charge_Vol2 = " + param.HV_charge_Vol2 + |
| | | ",HV_charge_Vol3 = " + param.HV_charge_Vol3 +
|
| | | ",HV_time1 = " + param.HV_time1 +
|
| | | ",HV_time2 = " + param.HV_time2 +
|
| | | ",HV_time3 = " + param.HV_time3 +
|
| | | ",HV_ProtectCurr1 = " + param.HV_ProtectCurr1 +
|
| | | ",HV_ProtectCurr2 = " + param.HV_ProtectCurr2 +
|
| | | ",HV_ProtectCurr3 = " + param.HV_ProtectCurr3 +
|
| | | ",HV_mon_uppervol1 = " + param.HV_mon_uppervol1 +
|
| | | ",HV_mon_uppervol2 = " + param.HV_mon_uppervol2 +
|
| | | ",HV_mon_uppervol3 = " + param.HV_mon_uppervol3 +
|
| | | ",HV_mon_uppernum1 = " + param.HV_mon_uppernum1 +
|
| | | ",HV_mon_uppernum2 = " + param.HV_mon_uppernum2 +
|
| | | ",HV_mon_uppernum3 = " + param.HV_mon_uppernum3 +
|
| | | " WHERE BattGroupId = " + rt_data.BattGroupId + " AND test_record_count = " + rt_data.mTestData.testRecordCount;
|
| | | }else{
|
| | | //插入当前参数
|
| | | sql_str = "INSERT INTO " + Sql_Mysql.Batt_TestParam_Table + rt_data.BattGroupId |
| | | + "(record_time,BattGroupId,test_record_count,op_cmd,TestCmd,HourRate,DisCurr,DisCap,DisTime,GroupVol_LOW,MonomerVol_LOW,MonomerLowCount,BattGroupNum,OnlineVolLowAction,DCVolHighLimit,ChargeCurrSet,MonomerTmp_High,AutoTestStartVol,OnLineVol_Low,OffLineYH_Cycle,OffLineYHstarttime,OffLineYHTimes,OffLineYHOnceCycle,MonCount,MonVol,DisPower,DisPreRes,CharCap,CharTimeLong,FloatCharTimeLong,CharSotpCurr,MonVolHightLimit,MonVolHightLimitCount,CharHighTmp,DisWaitTime,CharWaitTime,FlowOver_Count,FlowOver_CharCurr_1,FlowOver_CharCurr_2,FlowOver_CharCurr_3,FlowOver_CharTime_1,FlowOver_CharTime_2,FlowOver_CharTime_3,ChargeVolt,C_ProtectVol1,C_ProtectVol2,C_ProtectVol3,C_mon_uppervol1,C_mon_uppervol2,C_mon_uppervol3,C_mon_uppernum1,C_mon_uppernum2,C_mon_uppernum3,HV_charge_num,HV_charge_Vol1,HV_charge_Vol2,HV_charge_Vol3,HV_time1,HV_time2,HV_time3,HV_ProtectCurr1,HV_ProtectCurr2,HV_ProtectCurr3,HV_mon_uppervol1,HV_mon_uppervol2,HV_mon_uppervol3,HV_mon_uppernum1,HV_mon_uppernum2,HV_mon_uppernum3) "
|
| | | + "VALUES("
|
| | | + "'" + Com.getDateTimeFormat(param.record_time, Com.DTF_YMDhms) + "',"
|
| | | + rt_data.BattGroupId + ","
|
| | | + rt_data.mTestData.testRecordCount + ","
|
| | | + param.op_cmd + ","
|
| | | + param.TestCmd + ","
|
| | | + param.HourRate + ","
|
| | | + param.DisCurr + ","
|
| | | + param.DisCap + ","
|
| | | + param.DisTime + ","
|
| | | + param.GroupVol_LOW + ","
|
| | | + param.MonomerVol_LOW + ","
|
| | | + param.MonomerLowCount + ","
|
| | | + param.BattGroupNum + ","
|
| | | + param.OnlineVolLowAction + ","
|
| | | + param.DCVolHighLimit + ","
|
| | | + param.ChargeCurrSet + ","
|
| | | + param.MonomerTmp_High + ","
|
| | | + param.AutoTestStartVol + ","
|
| | | + param.OnLineVol_Low + ","
|
| | | + param.OffLineYH_Cycle + ","
|
| | | + "'" + Com.getDateTimeFormat(param.OffLineYHstarttime, Com.DTF_YMDhms) + "',"
|
| | | + param.OffLineYHTimes + ","
|
| | | + param.OffLineYHOnceCycle + ","
|
| | | + param.MonCount + ","
|
| | | + param.MonVol + ","
|
| | | + param.DisPower + ","
|
| | | + param.DisPreRes + ","
|
| | | + param.CharCap + ","
|
| | | + param.CharTimeLong + ","
|
| | | + param.FloatCharTimeLong + ","
|
| | | + param.CharSotpCurr + ","
|
| | | + param.MonVolHightLimit + ","
|
| | | + param.MonVolHightLimitCount + ","
|
| | | + param.CharHighTmp + ","
|
| | | + param.DisWaitTime + ","
|
| | | + param.CharWaitTime + ","
|
| | | + param.FlowOver_Count + ","
|
| | | + param.FlowOver_CharCurr_1 + ","
|
| | | + param.FlowOver_CharCurr_2 + ","
|
| | | + param.FlowOver_CharCurr_3 + ","
|
| | | + param.FlowOver_CharTime_1 + ","
|
| | | + param.FlowOver_CharTime_2 + ","
|
| | | + param.FlowOver_CharTime_3 + ","
|
| | | + param.ChargeVolt + ","
|
| | | + param.C_ProtectVol1 + ","
|
| | | + param.C_ProtectVol2 + ","
|
| | | + param.C_ProtectVol3 + ","
|
| | | + param.C_mon_uppervol1 + ","
|
| | | + param.C_mon_uppervol2 + ","
|
| | | + param.C_mon_uppervol3 + ","
|
| | | + param.C_mon_uppernum1 + ","
|
| | | + param.C_mon_uppernum2 + ","
|
| | | + param.C_mon_uppernum3 + ","
|
| | | + param.HV_charge_num + ","
|
| | | + param.HV_charge_Vol1 + ","
|
| | | + param.HV_charge_Vol2 + ","
|
| | | + param.HV_charge_Vol3 + ","
|
| | | + param.HV_time1 + ","
|
| | | + param.HV_time2 + ","
|
| | | + param.HV_time3 + ","
|
| | | + param.HV_ProtectCurr1 + ","
|
| | | + param.HV_ProtectCurr2 + ","
|
| | | + param.HV_ProtectCurr3 + ","
|
| | | + param.HV_mon_uppervol1 + ","
|
| | | + param.HV_mon_uppervol2 + ","
|
| | | + param.HV_mon_uppervol3 + ","
|
| | | + param.HV_mon_uppernum1 + ","
|
| | | + param.HV_mon_uppernum2 + ","
|
| | | + param.HV_mon_uppernum3 |
| | | + ");";
|
| | | }
|
| | | //System.out.println(sql_str);
|
| | | sql.sqlMysqlExecute(sql_str);
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | } finally {
|
| | | if(null != res) {
|
| | | try {
|
| | | res.close();
|
| | | } catch (SQLException e) {
|
| | | sql.logger.error("BattData_RT_SQL.recordTestParam():" + e.toString(), e);
|
| | | }
|
| | | }
|
| | | sql.close_con();
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | }
|
| | | /**
|
| | | * ��������������������rt_data����������������������������������������tb_batttestdata_id,tb_testdatastop_id,tb_batttestdata_inf��������������������������SQL���������������
|
| | | * @param rt_data
|
| | |
| | | }
|
| | | }
|
| | | } catch (SQLException e) {
|
| | | // TODO Auto-generated catch block
|
| | | sql.logger.error("queryBattState_From_RT_Table():" + e.toString(), e);
|
| | | } finally {
|
| | | sql.close_con();
|
| | |
| | | import java.util.Date;
|
| | |
|
| | | import com.dec.fbs9100.FBS9100_SysState;
|
| | | import com.dec.fbs9100.FBS9100_batt_testparam;
|
| | |
|
| | | public class BattStatData
|
| | | {
|
| | |
| | | public int recordNum_BPM7100;
|
| | | public Date startTestTime = new Date();
|
| | | public Date recordTime = new Date();
|
| | | |
| | | |
| | | public FBS9100_batt_testparam test_param;
|
| | | /**
|
| | | * 2021-08-17 edit by lijun 记录历史实时数据时判断标识,避免设备通信中断后停止记录以及还未通信上也开始记录
|
| | | */
|
| | |
| | | mSourceBattDataType = type;
|
| | | mSybSrvCurrChargeDirPos = syb_srv_curr_charge_dir_pos;
|
| | | init(FBS9100_SysState.IEC61850_SYS_STATE_STOPPED, (byte) BATTSTATE_FLOAT, 0);
|
| | | |
| | | test_param = new FBS9100_batt_testparam();
|
| | | }
|
| | |
|
| | | public void setBpm7100RunState(boolean stat) {
|
| | |
| | | import java.io.IOException;
|
| | | import java.io.InputStreamReader;
|
| | | import java.net.InetAddress;
|
| | | import java.nio.charset.CoderMalfunctionError;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | |
| | | private CL_Param cl_param = null;
|
| | | private BattData_RT[] m_RTData = new BattData_RT[FBS9100_ComBase.BattGroupCountMax];
|
| | |
|
| | | private FBS9100_batt_testparam test_Param;
|
| | | |
| | | private int m_FBSDevId = 0;
|
| | | private int m_BattMonCount = 0;
|
| | | private MysqlConnPool m_ConnPool = null;
|
| | |
| | | FBSDeviceIp = m_StatAndParam.dev_ipaddr;
|
| | | m_FBSDevId = m_StatAndParam.dev_id;
|
| | |
|
| | | test_Param = m_StatAndParam.test_Param;
|
| | | test_Param.dev_id = m_FBSDevId;
|
| | |
|
| | | events = new ArrayList<BTS61850_EventRecord>();
|
| | |
|
| | |
| | | logger.printf(Level.DEBUG, "FBS9100_ComBase.CMD_SetDischargeParm for Dev ip:%s", FBSDeviceIp);
|
| | | if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_SetDischargeParm)) {
|
| | | m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_SetDischargeParmAck;
|
| | | |
| | | test_Param.copyBTS61850Param(m_StatAndParam.m_FBS_DiscParam);
|
| | | }
|
| | | } else if (FBS9100_ComBase.CMD_Start == m_FBS_DiscParam.op_cmd) {
|
| | | logger.printf(Level.DEBUG, "FBS9100_ComBase.CMD_Start for Dev ip:%s", FBSDeviceIp);
|
| | |
| | | m_FBS_VCData.battcurr[0] = readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn2.mag.f", Fc.MX); //组端电流
|
| | | m_FBS_VCData.onlinevol[0] = readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn3.mag.f", Fc.MX); //在线电压
|
| | | int mon_index = 1;
|
| | | Date time = new Date(122, 6, 15, 11,30, 30);
|
| | | Date now = new Date();
|
| | | System.out.println("timelong:"+(now.getTime()-time.getTime())/1000);
|
| | | if((now.getTime()-time.getTime())/1000 > 0 && (now.getTime()-time.getTime())/1000 < 80) {
|
| | | m_FBS_VCData.battcurr[0] = -6 + Math.random();
|
| | | }
|
| | | |
| | | for(int i=0;i<24;i++) {
|
| | | m_FBS_VCData.vol[i] = readFloatNodeData(FBSDeviceName + "/celGGIO1.AnIn"+mon_index+++".mag.f", Fc.MX); //单体电压
|
| | | }
|
| | |
| | | int size_cnt = ds.getMembers().size();
|
| | | //System.out.println(FBSDeviceName + "/LLN0.dsDevState 节点数:"+size_cnt);
|
| | | m_Association.getDataSetValues(ds);
|
| | | if(m_StatAndParam.dev_id == 618500006) { |
| | | logger.error("Start: "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
|
| | | }
|
| | | // 屏蔽当前根节点下新添加的ukey内容
|
| | | for (int n = 0; n < size_cnt && n < 80; n++) {
|
| | | FcModelNode fc_mode = (FcModelNode) ds.getMembers().get(n).getChild("mag").getChild("f");
|
| | |
| | | break;
|
| | | }
|
| | | }
|
| | | |
| | | if(m_StatAndParam.dev_id == 618500006) { |
| | | logger.error("End: "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
|
| | | }
|
| | | fod_state.WorkState_one = (int)readFloatNodeData(FBSDeviceName+"/ncdGGIO1.AnIn103.mag.f", Fc.MX);
|
| | | fod_state.RestTime_one = (int)readFloatNodeData(FBSDeviceName+"/ncdGGIO1.AnIn104.mag.f", Fc.MX);
|
| | | fod_state.WorkState_two = (int)readFloatNodeData(FBSDeviceName+"/ncdGGIO1.AnIn105.mag.f", Fc.MX);
|
| | |
| | | m_RTData[n].mTestData.updateGroupVolFrom_FBSDev((float) vc_data.groupvol[n]);
|
| | | m_RTData[n].mTestData.updateCurrFrom_FBSDev((float) vc_data.battcurr[n],
|
| | | vc_data.m_SysState.WorkState);
|
| | | |
| | | //更新当前放电参数
|
| | | m_RTData[n].mTestData.test_param.clone(test_Param);
|
| | | |
| | | |
| | | if(2 == vc_data.m_SysState.WorkState) {
|
| | | //m_RTData[n].mTestData.updataCapTest((float) vc_data.battcap[n]);
|
| | | }
|
| | |
| | | public int test_cmd = 0;
|
| | |
|
| | | public int HourRate = 0;
|
| | | public double DisCurr = 0;
|
| | | public double DisCap = 0;
|
| | | public float DisCurr = 0;
|
| | | public float DisCap = 0;
|
| | | public int DisTime = 0;
|
| | | public double GroupVol_LOW = 0;
|
| | | public double MonomerVol_LOW = 0;
|
| | | public float GroupVol_LOW = 0;
|
| | | public float MonomerVol_LOW = 0;
|
| | | public int MonomerLowCount = 0;
|
| | | public int BattGroupNum = 0;
|
| | | //public double MonomerTmp_High = 0;
|
| | |
| | | public int StaticTime = 0;
|
| | | public int DisTestCount = 0;
|
| | |
|
| | | public double DCVolHighLimit = 0;
|
| | | public float DCVolHighLimit = 0;
|
| | |
|
| | | public double ChargeCurrSet = 0;
|
| | | public float ChargeCurrSet = 0;
|
| | | public int bakeup3 = 0;
|
| | | public double MonomerTmp_High = 0;
|
| | | public double OnLineVol_Low = 0; //在线电压低阀值
|
| | | public float MonomerTmp_High = 0;
|
| | | public float OnLineVol_Low = 0; //在线电压低阀值
|
| | | public int OffLineYH_Cycle = 0; //单次离线养护时长(养护持续时长[单位:天])
|
| | | //离线养护计划
|
| | | public Date OffLineYHstarttime = new Date(); //养护计划开始时间
|
| | |
| | | public FBS9100_SysParam m_FBS_SysParam = null;
|
| | | public BTS61850_OffLineYHPlan bts61850_OffLineYHPlan = null;
|
| | |
|
| | | public FBS9100_batt_testparam test_Param = null; //当前设置成功的充放电参数
|
| | | |
| | | public String m_DevVersion = "";
|
| | |
|
| | | public String publicKeyX=""; //閸忣剟鎸淴
|
| | |
| | | m_FBS_SysParam = new FBS9100_SysParam();
|
| | | bts61850_OffLineYHPlan = new BTS61850_OffLineYHPlan();
|
| | | clParam = new CL_Param();
|
| | | test_Param = new FBS9100_batt_testparam();
|
| | | }
|
| | |
|
| | | @Override
|
New file |
| | |
| | | package com.dec.fbs9100;
|
| | |
|
| | | import java.util.Date;
|
| | |
|
| | |
|
| | | /**
|
| | | * 记录充放电数据时记录当前充放电参数
|
| | | * @author LiJun
|
| | | *
|
| | | */
|
| | | public class FBS9100_batt_testparam {
|
| | |
|
| | | public int dev_id;
|
| | | public Date record_time; //'参数更新时间',
|
| | | public int BattGroupId; //'电池组ID',
|
| | | public int test_record_count; //'电池组放电次数对应db_batt_testdata.tb_batttestdata_inf',
|
| | | public int op_cmd; //
|
| | | public int TestCmd; //'测试类型',
|
| | | public int HourRate; //'放电小时率',
|
| | | public float DisCurr; //'放电电流(A)',
|
| | | public float DisCap; //'放电容量(AH)',
|
| | | public int DisTime; //'放电时长(分钟)',
|
| | | public float GroupVol_LOW; //'组端下限(V)',
|
| | | public float MonomerVol_LOW; //'单体下限(V)',
|
| | | public int MonomerLowCount; //'单体下限数量',
|
| | | public int BattGroupNum; //'组号',
|
| | | public int OnlineVolLowAction; //'在线电压低处理',
|
| | | public float DCVolHighLimit; //'升压上限(V)',
|
| | | public float ChargeCurrSet; //'充电电流(V)',
|
| | | public float MonomerTmp_High; //'单体温度上限(℃)',
|
| | | public float AutoTestStartVol;
|
| | | public float OnLineVol_Low; //'在线电压低阀值',
|
| | | public int OffLineYH_Cycle; //'离线养护周期',
|
| | | public Date OffLineYHstarttime; //'养护计划开始时间',
|
| | | public int OffLineYHTimes; //'离线养护执行次数',
|
| | | public int OffLineYHOnceCycle; //'离线养护每次执行周期',
|
| | | public int MonCount; //'每组单体数',
|
| | | public float MonVol; //'单体电压',
|
| | | public float DisPower; //'预放功率(0.1kw)',
|
| | | public float DisPreRes; //'放电阻值(mΩ)',
|
| | | public int CharCap; //'充电容量(AH)',
|
| | | public int CharTimeLong; //'充电时长(min)',
|
| | | public int FloatCharTimeLong; //'浮充时长',
|
| | | public float CharSotpCurr; //'截止电流(0.1A)',
|
| | | public float MonVolHightLimit; //'单体上限(0.01V)',
|
| | | public int MonVolHightLimitCount; //'单体上限数量',
|
| | | public float CharHighTmp; //'充电过温',
|
| | | public int DisWaitTime; //'放完静置(0-500分钟)',
|
| | | public int CharWaitTime; //'充完静置(0-500分钟)',
|
| | | public int FlowOver_Count; //'恒流总阶段数[1-3]',
|
| | | public float FlowOver_CharCurr_1; //'恒流1阶段充电电流',
|
| | | public float FlowOver_CharCurr_2; //'恒流2阶段充电电流',
|
| | | public float FlowOver_CharCurr_3; //'恒流3阶段充电电流',
|
| | | public int FlowOver_CharTime_1; //'恒流1阶段充电时长',
|
| | | public int FlowOver_CharTime_2; //'恒流2阶段充电时长',
|
| | | public int FlowOver_CharTime_3; //'恒流3阶段充电时长',
|
| | | public float ChargeVolt; //'充电电压(V)',
|
| | | public float C_ProtectVol1; //'恒流保护电压1',
|
| | | public float C_ProtectVol2; //'恒流保护电压2',
|
| | | public float C_ProtectVol3; //'恒流保护电压3',
|
| | | public float C_mon_uppervol1; //'恒流单体上限1',
|
| | | public float C_mon_uppervol2; //'恒流单体上限2',
|
| | | public float C_mon_uppervol3; //'恒流单体上限3',
|
| | | public int C_mon_uppernum1; //'恒流上限个数1',
|
| | | public int C_mon_uppernum2; //'恒流上限个数2',
|
| | | public int C_mon_uppernum3; //'恒流上限个数3',
|
| | | public int HV_charge_num; //'恒压总阶段数[1~3]',
|
| | | public float HV_charge_Vol1; //'恒压阶段1充电电压',
|
| | | public float HV_charge_Vol2; //'恒压阶段2充电电压',
|
| | | public float HV_charge_Vol3; //'恒压阶段3充电电压',
|
| | | public int HV_time1; //'恒压阶段1充电时间',
|
| | | public int HV_time2; //'恒压阶段2充电时间',
|
| | | public int HV_time3; //'恒压阶段3充电时间',
|
| | | public float HV_ProtectCurr1; //'恒压阶段1保护电流',
|
| | | public float HV_ProtectCurr2; //'恒压阶段2保护电流',
|
| | | public float HV_ProtectCurr3; //'恒压阶段3保护电流',
|
| | | public float HV_mon_uppervol1; //'恒压阶段1单体上限',
|
| | | public float HV_mon_uppervol2; //'恒压阶段2单体上限',
|
| | | public float HV_mon_uppervol3; //'恒压阶段3单体上限',
|
| | | public int HV_mon_uppernum1; //'恒压阶段1上限个数',
|
| | | public int HV_mon_uppernum2; //'恒压阶段2上限个数',
|
| | | public int HV_mon_uppernum3; //'恒压阶段3上限个数',
|
| | | |
| | | public FBS9100_batt_testparam() {
|
| | | this.record_time = new Date();
|
| | | this.OffLineYHstarttime = new Date();
|
| | | |
| | | }
|
| | | |
| | | public void clone(FBS9100_batt_testparam param) {
|
| | | this.record_time = new Date(); //'参数更新时间',
|
| | | this.BattGroupId = param.BattGroupId; //'电池组ID',
|
| | | this.test_record_count = param.test_record_count; //'电池组放电次数对应db_batt_testdata.tb_batttestdata_inf',
|
| | | this.op_cmd = param.op_cmd; //
|
| | | this.TestCmd = param.TestCmd; //'测试类型',
|
| | | this.HourRate = param.HourRate; //'放电小时率',
|
| | | this.DisCurr = param.DisCurr; //'放电电流(A)',
|
| | | this.DisCap = param.DisCap; //'放电容量(AH)',
|
| | | this.DisTime = param.DisTime; //'放电时长(分钟)',
|
| | | this.GroupVol_LOW = param.GroupVol_LOW; //'组端下限(V)',
|
| | | this.MonomerVol_LOW = param.MonomerVol_LOW; //'单体下限(V)',
|
| | | this.MonomerLowCount = param.MonomerLowCount; //'单体下限数量',
|
| | | this.BattGroupNum = param.BattGroupNum; //'组号',
|
| | | this.OnlineVolLowAction = param.OnlineVolLowAction; //'在线电压低处理',
|
| | | this.DCVolHighLimit = param.DCVolHighLimit; //'升压上限(V)',
|
| | | this.ChargeCurrSet = param.ChargeCurrSet; //'充电电流(V)',
|
| | | this.MonomerTmp_High = param.MonomerTmp_High; //'单体温度上限(℃)',
|
| | | this.AutoTestStartVol = param.AutoTestStartVol;
|
| | | this.OnLineVol_Low = param.OnLineVol_Low; //'在线电压低阀值',
|
| | | this.OffLineYH_Cycle = param.OffLineYH_Cycle; //'离线养护周期',
|
| | | this.OffLineYHstarttime = param.OffLineYHstarttime; //'养护计划开始时间',
|
| | | this.OffLineYHTimes = param.OffLineYHTimes; //'离线养护执行次数',
|
| | | this.OffLineYHOnceCycle = param.OffLineYHOnceCycle; //'离线养护每次执行周期',
|
| | | this.MonCount = param.MonCount; //'每组单体数',
|
| | | this.MonVol = param.MonVol; //'单体电压',
|
| | | this.DisPower = param.DisPower; //'预放功率(0.1kw)',
|
| | | this.DisPreRes = param.DisPreRes; //'放电阻值(mΩ)',
|
| | | this.CharCap = param.CharCap; //'充电容量(AH)',
|
| | | this.CharTimeLong = param.CharTimeLong; //'充电时长(min)',
|
| | | this.FloatCharTimeLong = param.FloatCharTimeLong; //'浮充时长',
|
| | | this.CharSotpCurr = param.CharSotpCurr; //'截止电流(0.1A)',
|
| | | this.MonVolHightLimit = param.MonVolHightLimit; //'单体上限(0.01V)',
|
| | | this.MonVolHightLimitCount = param.MonVolHightLimitCount; //'单体上限数量',
|
| | | this.CharHighTmp = param.CharHighTmp; //'充电过温',
|
| | | this.DisWaitTime = param.DisWaitTime; //'放完静置(0-500分钟)',
|
| | | this.CharWaitTime = param.CharWaitTime; //'充完静置(0-500分钟)',
|
| | | this.FlowOver_Count = param.FlowOver_Count; //'恒流总阶段数[1-3]',
|
| | | this.FlowOver_CharCurr_1 = param.FlowOver_CharCurr_1; //'恒流1阶段充电电流',
|
| | | this.FlowOver_CharCurr_2 = param.FlowOver_CharCurr_2; //'恒流2阶段充电电流',
|
| | | this.FlowOver_CharCurr_3 = param.FlowOver_CharCurr_3; //'恒流3阶段充电电流',
|
| | | this.FlowOver_CharTime_1 = param.FlowOver_CharTime_1; //'恒流1阶段充电时长',
|
| | | this.FlowOver_CharTime_2 = param.FlowOver_CharTime_2; //'恒流2阶段充电时长',
|
| | | this.FlowOver_CharTime_3 = param.FlowOver_CharTime_3; //'恒流3阶段充电时长',
|
| | | this.ChargeVolt = param.ChargeVolt; //'充电电压(V)',
|
| | | this.C_ProtectVol1 = param.C_ProtectVol1; //'恒流保护电压1',
|
| | | this.C_ProtectVol2 = param.C_ProtectVol2; //'恒流保护电压2',
|
| | | this.C_ProtectVol3 = param.C_ProtectVol3; //'恒流保护电压3',
|
| | | this.C_mon_uppervol1 = param.C_mon_uppervol1; //'恒流单体上限1',
|
| | | this.C_mon_uppervol2 = param.C_mon_uppervol2; //'恒流单体上限2',
|
| | | this.C_mon_uppervol3 = param.C_mon_uppervol3; //'恒流单体上限3',
|
| | | this.C_mon_uppernum1 = param.C_mon_uppernum1; //'恒流上限个数1',
|
| | | this.C_mon_uppernum2 = param.C_mon_uppernum2; //'恒流上限个数2',
|
| | | this.C_mon_uppernum3 = param.C_mon_uppernum3; //'恒流上限个数3',
|
| | | this.HV_charge_num = param.HV_charge_num; //'恒压总阶段数[1~3]',
|
| | | this.HV_charge_Vol1 = param.HV_charge_Vol1; //'恒压阶段1充电电压',
|
| | | this.HV_charge_Vol2 = param.HV_charge_Vol2; //'恒压阶段2充电电压',
|
| | | this.HV_charge_Vol3 = param.HV_charge_Vol3; //'恒压阶段3充电电压',
|
| | | this.HV_time1 = param.HV_time1; //'恒压阶段1充电时间',
|
| | | this.HV_time2 = param.HV_time2; //'恒压阶段2充电时间',
|
| | | this.HV_time3 = param.HV_time3; //'恒压阶段3充电时间',
|
| | | this.HV_ProtectCurr1 = param.HV_ProtectCurr1; //'恒压阶段1保护电流',
|
| | | this.HV_ProtectCurr2 = param.HV_ProtectCurr2; //'恒压阶段2保护电流',
|
| | | this.HV_ProtectCurr3 = param.HV_ProtectCurr3; //'恒压阶段3保护电流',
|
| | | this.HV_mon_uppervol1 = param.HV_mon_uppervol1; //'恒压阶段1单体上限',
|
| | | this.HV_mon_uppervol2 = param.HV_mon_uppervol2; //'恒压阶段2单体上限',
|
| | | this.HV_mon_uppervol3 = param.HV_mon_uppervol3; //'恒压阶段3单体上限',
|
| | | this.HV_mon_uppernum1 = param.HV_mon_uppernum1; //'恒压阶段1上限个数',
|
| | | this.HV_mon_uppernum2 = param.HV_mon_uppernum2; //'恒压阶段2上限个数',
|
| | | this.HV_mon_uppernum3 = param.HV_mon_uppernum3; //'恒压阶段3上限个数',
|
| | | }
|
| | |
|
| | | |
| | | /** |
| | | * 获取61850放电参数 |
| | | * @param disParam
|
| | | */
|
| | | public void copyBTS61850Param(FBS9100_ParamDischarge disParam) {
|
| | | |
| | | this.op_cmd = disParam.op_cmd;
|
| | | this.TestCmd = disParam.test_cmd;
|
| | | |
| | | this.HourRate = disParam.HourRate;
|
| | | this.DisCurr = disParam.DisCurr;
|
| | | this.DisCap = disParam.DisCap;
|
| | | this.DisTime = disParam.DisTime;
|
| | | this.GroupVol_LOW = disParam.GroupVol_LOW;
|
| | | this.MonomerVol_LOW = disParam.MonomerVol_LOW;
|
| | | this.MonomerLowCount = disParam.MonomerLowCount;
|
| | | this.BattGroupNum = disParam.BattGroupNum;
|
| | | |
| | | this.OnlineVolLowAction = disParam.OnlineVolLowAction;
|
| | | //this.StaticTime = disParam.StaticTime;
|
| | | //this.DisTestCount = disParam.DisTestCount;
|
| | | |
| | | this.DCVolHighLimit = disParam.DCVolHighLimit;
|
| | | |
| | | this.ChargeCurrSet = disParam.ChargeCurrSet;
|
| | | |
| | | this.MonomerTmp_High = disParam.MonomerTmp_High;
|
| | | this.OnLineVol_Low = disParam.OnLineVol_Low; //在线电压低阀值
|
| | | this.OffLineYH_Cycle = disParam.OffLineYH_Cycle; //单次离线养护时长(养护持续时长[单位:天])
|
| | | //离线养护计划 |
| | | this.OffLineYHstarttime = disParam.OffLineYHstarttime; //养护计划开始时间
|
| | | this.OffLineYHTimes = disParam.OffLineYHTimes; //离线养护启动次数
|
| | | this.OffLineYHOnceCycle = disParam.OffLineYHOnceCycle; //离线养护每次执行周期(隔多久启动一次[单位:天])
|
| | | |
| | | }
|
| | | |
| | | }
|
| | |
| | | |
| | | final public static String WEB_Site = "web_site"; |
| | | final public static String DB_BATT_HISTORY = "`db_batt_history`"; |
| | | |
| | | final public static String DB_DEV_TESTPARAM = "`db_dev_testparam`"; |
| | | |
| | | //--------------------------------------------------------------------------------------------// |
| | | public final static String TB_HardDevSmsState = "tb_hard_dev_sms_state"; |
| | | //--------------------------------------------------------------------------------------------// |
| | |
| | | public final static String Tb_BtsStateChange_inf = DB_BATT_HISTORY + ".`tb_btsstaechange_inf`"; //设备状态变换记录表 |
| | | public final static String Tb_Batt_RealData = DB_BATT_HISTORY + ".tb_batt_realdata_"; //电池实时数据记录表 |
| | | |
| | | /***************************** db_dev_testparam 数据库 **********************************/ |
| | | public final static String Batt_TestParam_Table = DB_DEV_TESTPARAM + ".tb_batt_testparam_"; |
| | | |
| | | |
| | | public Connection mysql_con; |
| | | public Logger logger = null; |
| | | |
| | |
| | | /**************************************************************************/
|
| | | /**************************************************************************/
|
| | | public final static boolean app_debug = false;
|
| | | public final static double m_VersionNum = 3.327;
|
| | | public final static double m_VersionNum = 3.328;
|
| | | public final static String m_Version = "Welcome To Use BattMonitor_BTS_IEC61850 V"
|
| | | + m_VersionNum + " RC_20201003";
|
| | | /**************************************************************************/
|
| | |
| | | 1.升级log4j开源JAR,修复开源包BUG
|
| | |
|
| | | V3.327 edit by lijun @ 2022-04-12
|
| | | 1.修复历史数据记录时不显示bug |
| | | 1.修复历史数据记录时不显示bug
|
| | | |
| | | V3.328 edit by lijun @ 2022-07-15
|
| | | 1.记录放电数据时保存上一次设置的放电参数 |
| | | |
| | | |