BattMonitor_FBS9100S_Inverter/batt_ms_x64_fbsdev_logs/error.log
Diff too large BattMonitor_FBS9100S_Inverter/src/com/battmonitor/sql/Sql_Mysql.java
@@ -123,11 +123,18 @@ public final static String UserPermitGroupTable = DB_USER + ".`tb_user_permitgroup`"; public final static String UserPermitGroupDataTable = DB_USER + ".`tb_user_permitgroup_data`"; public final static String UserJieJiaRiTable = DB_USER + ".`tb_user_jiejiari`"; public final static String Tb_Batt_RealData = DB_BATT_HISTORY + ".tb_batt_realdata_"; //电池实时数据记录表 public final static String Tb_Batt_RealData = DB_BATT_HISTORY + ".tb_batt_realdata_"; //电池实时数据记录表 public final static String FBS9100s_stemnode_state_Table = DB_RamDB + ".`tb_fbs9100s_stemnode_state`"; //干节点状态表 public final static String FBS9100s_buscouple_state_Table = DB_RamDB + ".`tb_fbs9100s_buscouple_state`"; //母联开关状态表 public final static String FBS61850_jhstate_Table = DB_RamDB + ".`tb_61850_jhstate`"; //均衡供电模块信息 public final static String Li9130_Dcdc_Param_Table = DB_RamDB + ".`tb_li9130_dcdc_param`"; //锂电BTS的DCDC模块参数表 public final static String Li9130_Dcdc_Data_Table = DB_RamDB + ".`tb_li9130_dcdc_data`"; //锂电BTS的DCDC模块信息表 public final static String Li9130_Bms_State_Table = DB_RamDB + ".`tb_li9130_bms_state`"; //锂电BTS的BMS信息表 public final static String Li9130_Bms_Alm_Table = DB_RamDB + ".`tb_li9130_bms_alm`"; //锂电BTS的BMS告警信息表 //--------------------------------------------------------------------------------------------// //--------------------------------------------------------------------------------------------// public Connection mysql_con = null; BattMonitor_FBS9100S_Inverter/src/com/dev/btse/comm/FBS9100S_SocketClient2.java
@@ -24,14 +24,19 @@ import com.dev.btse.data.ComFn; import com.dev.btse.data.Ecb_Aes; import com.dev.btse.data.FBS9100S_BusCoupleState; import com.dev.btse.data.FBS9100S_LIBMS_AlarmState; import com.dev.btse.data.FBS9100S_LiBMS_AnalogData; import com.dev.btse.data.FBS9100S_NT_DCDC_Data; import com.dev.btse.data.FBS9100S_NT_DCDC_State; import com.dev.btse.data.FBS9100S_NiBian_Data; import com.dev.btse.data.FBS9100S_SX_DCDC_Data; import com.dev.btse.data.FBS9100S_SX_DCDC_Param; import com.dev.btse.data.FBS9100S_StemNode_State; import com.dev.btse.data.FBS9100_CMCC_Power; import com.dev.btse.data.FBS9100_Cmd; import com.dev.btse.data.FBS9100_ComBase; import com.dev.btse.data.FBS9100_ComBuf; import com.dev.btse.data.FBS9100_Crc16; import com.dev.btse.data.FBS9100_DeviceInf; import com.dev.btse.data.FBS9100_JHPowerState; import com.dev.btse.data.FBS9100_JuHengParam; @@ -84,6 +89,10 @@ private FBS9100S_StemNode_State mStemNode_State = null; private FBS9100S_BusCoupleState mBusCouple_State = null; private FBS9100S_SX_DCDC_Data[] m_SX_DCDC_DataList = null; private FBS9100S_LIBMS_AlarmState[] m_LiBMS_AlarmStates = null; private FBS9100S_LiBMS_AnalogData[] m_LiBMS_AnalogDatas = null; private FBS9100_JHPowerState mJHPowerState = null; private FBS9100_JuHengParam mJHParam = null; @@ -91,9 +100,9 @@ private Socket socket = null; private ByteBuffer bytebuffer_for_socket_RX = ByteBuffer.allocate(1500); private int m_BattMonCount = 0; private int m_BTSDevSoftWareVersion = 0; private int m_BTSDevSoftWareVersion = 0; private int m_BTSDevHardwareVersion = 0; private int m_BTSDevSoftType = 0; private int m_BTSDevSoftType = 0; //当前BTS版本 private static final String TAG = "FBS9100S_Thread"; private MysqlConnPool m_ConnPool = null; @@ -194,6 +203,10 @@ } if(true == reg_in_st) { //当前设备协议加密类型true:加密;false:不加密 logger.debug("dev_id:"+m_StatAndParam.dev_id+" Dev Encryp Type ------>" + this.DevFBS9100_Encry_en); logger.debug("dev_id:"+m_StatAndParam.dev_id+" Dev Type ------>" + this.m_BTSDevSoftType); if(m_Data.getItem(i).getDevRegCode().length() > 8) { if(m_StatAndParam.dev_reg_code.equals(m_Data.getItem(i).getDevRegCode())) { reg_in_st = true; @@ -282,10 +295,28 @@ FBS9100_Task_Thread_SQL.insertFBS9100SysParam_Table(m_ConnPool, m_StatAndParam.dev_id); int group_max = FBS9100_ComBase.BattGroupCountMax; for(int n=0; n<group_max; n++) { m_RTData[n] = null; } m_SX_DCDC_DataList = new FBS9100S_SX_DCDC_Data[FBS9100_ComBase.LIBTS_DCDC_CountMax]; m_LiBMS_AlarmStates = new FBS9100S_LIBMS_AlarmState[FBS9100_ComBase.LIBTS_DCDC_CountMax]; m_LiBMS_AnalogDatas = new FBS9100S_LiBMS_AnalogData[FBS9100_ComBase.LIBTS_DCDC_CountMax]; for(int i=0;i<m_SX_DCDC_DataList.length;i++) { m_SX_DCDC_DataList[i] = new FBS9100S_SX_DCDC_Data(); m_LiBMS_AlarmStates[i] = new FBS9100S_LIBMS_AlarmState(); m_LiBMS_AnalogDatas[i] = new FBS9100S_LiBMS_AnalogData(); } if(m_BTSDevSoftType == FBS9100_ComBase.BTSE_DevType_LIBTS) { //锂电BTS默认插入数据 FBS9100_Task_Thread_SQL.insertLi9130_Bms_Alm(m_ConnPool, m_StatAndParam.dev_id); FBS9100_Task_Thread_SQL.insertLi9130_Bms_State(m_ConnPool, m_StatAndParam.dev_id); FBS9100_Task_Thread_SQL.insertLi9130DcDcData_Table(m_ConnPool, m_StatAndParam.dev_id); FBS9100_Task_Thread_SQL.insertLi9130DcDcParam(m_ConnPool, m_StatAndParam.dev_id); } for(int n=0; n < AL_RTdata.getItemCount(); n++) { BattData_RT bt_data = AL_RTdata.getItem(n); @@ -569,23 +600,26 @@ } /** * 常规BTS新增均衡供电信息和均衡电流信息读取 * 2021-08-31 @lijun 假负载设备新增均衡供电模块状态读取 * 假负载设备新增均衡供电模块状态读取 */ if(0 == (DevReadCount%(15*DevReadCount_Rate))) { //读取均衡供电模块信息 //System.err.println("读取均衡供电模块信息"); SocketComm(FBS9100_ComBase.CMD_GetJunHengState, ByteBuffer.allocate(0), socket); } //--------------------------- 读取均衡电流数据 --------------------------------------// if(0 == (DevReadCount%(39*DevReadCount_Rate))) { //System.out.println("读取均衡电流"); SocketComm(FBS9100_ComBase.CMD_GetMonomerJHCUR, ByteBuffer.allocate(0), socket); } if(m_StatAndParam.dev_id/1000000 == 911) { /** * 2021-08-31 @lijun 假负载设备新增均衡供电模块状态读取 * 假负载设备新增均衡供电模块状态读取 */ if(0 == (DevReadCount%(15*DevReadCount_Rate))) { //读取均衡供电模块信息 //System.err.println("读取均衡供电模块信息"); SocketComm(FBS9100_ComBase.CMD_GetJunHengState, ByteBuffer.allocate(0), socket); } //--------------------------- 读取均衡电流数据 --------------------------------------// if(0 == (DevReadCount%(39*DevReadCount_Rate))) { //System.out.println("读取均衡电流"); SocketComm(FBS9100_ComBase.CMD_GetMonomerJHCUR, ByteBuffer.allocate(0), socket); } //假负载设备 //--------------------------- 读取漏液电压数据 --------------------------------------// if(0 == (DevReadCount%(40*DevReadCount_Rate))) { //System.out.println("读取漏液电压"); @@ -593,6 +627,64 @@ } } /****************** 锂电BTS ****************************************************************/ if(FBS9100_ComBase.BTSE_DevType_LIBTS == m_BTSDevSoftType) { /************** 锂电BTS的DCDC参数信息读取 ********************************************************/ FBS9100_Task_Thread_SQL.queryLi9130DcDcParamCmdBydev_id(m_ConnPool, m_StatAndParam); if(m_StatAndParam.op_cmd_ack == FBS9100_ComBase.CMD_NULL) { if(m_StatAndParam.op_cmd == FBS9100_ComBase.CMD_GetLiDCDCParam) { int read_cmd = FBS9100_ComBase.CMD_GetLiDCDCParam; if(m_StatAndParam.test_type == 1) { //读取铅酸DCDC参数 read_cmd = FBS9100_ComBase.CMD_GetPbDCDCParam; } SocketComm(read_cmd, ByteBuffer.allocate(0), socket); logger.warn("DevId:" + m_StatAndParam.dev_id + " 读取锂电DCDC模块参数"); }else if(m_StatAndParam.op_cmd == FBS9100_ComBase.CMD_SetLiDCDCParam) { int read_cmd = FBS9100_ComBase.CMD_SetLiDCDCParam; //设置锂电DCDC参数 if(m_StatAndParam.test_type == 1) { //设置铅酸DCDC参数 read_cmd = FBS9100_ComBase.CMD_SetPbDCDCParam; } FBS9100S_SX_DCDC_Param tmp_dcdc_param = new FBS9100S_SX_DCDC_Param(); FBS9100_Task_Thread_SQL.queryLiDCDCParamById(m_ConnPool,m_StatAndParam,tmp_dcdc_param); SocketComm(read_cmd, tmp_dcdc_param.getByteBuffer(), socket); tmp_dcdc_param = null; logger.warn("DevId:" + m_StatAndParam.dev_id + " 设置锂电BTS主机DCDC工作设置参数" + "\n param:" + tmp_dcdc_param); } } /************** 锂电BTS的DCDC模块信息读取 ********************************************************/ FBS9100_Task_Thread_SQL.queryLi9130DcDcDataCmdBydev_id(m_ConnPool, m_StatAndParam); if(m_StatAndParam.op_cmd_ack == FBS9100_ComBase.CMD_NULL) { if(m_StatAndParam.op_cmd == FBS9100_ComBase.CMD_GetSXDCDCData) { SocketComm(FBS9100_ComBase.CMD_GetSXDCDCData, ByteBuffer.allocate(0), socket); logger.warn("DevId:" + m_StatAndParam.dev_id + " 读取锂电DCDC模块信息"); } } /************** 锂电BTS的BMS模块信息读取 ********************************************************/ FBS9100_Task_Thread_SQL.queryLi9130_Bms_StateCmdBydev_id(m_ConnPool, m_StatAndParam); if(m_StatAndParam.op_cmd_ack == FBS9100_ComBase.CMD_NULL) { if(m_StatAndParam.op_cmd == FBS9100_ComBase.CMD_GetLiBMSData) { SocketComm(FBS9100_ComBase.CMD_GetLiBMSData, ByteBuffer.allocate(0), socket); logger.warn("DevId:" + m_StatAndParam.dev_id + " 读取锂电BMS状态信息"); } } sleep(10); /************** 锂电BTS的BMS模块告警信息读取 ********************************************************/ FBS9100_Task_Thread_SQL.queryLi9130_Bms_AlmCmdBydev_id(m_ConnPool, m_StatAndParam); if(m_StatAndParam.op_cmd_ack == FBS9100_ComBase.CMD_NULL) { if(m_StatAndParam.op_cmd == FBS9100_ComBase.CMD_GetLiBMSState) { logger.warn("DevId:" + m_StatAndParam.dev_id + " 读取锂电BMS状态告警信息"); SocketComm(FBS9100_ComBase.CMD_GetLiBMSState, ByteBuffer.allocate(0), socket); } } } //---------------------------------------------------------------------------------// if(DevReadCount >= (50*DevReadCount_Rate)) { @@ -679,6 +771,7 @@ if(aes_en) { cipher_tx_t = new byte[plain_tx_t.length]; my_aes.ecb_encrypt(plain_tx_t, cipher_tx_t, plain_tx_t.length); //System.out.println("发送加密数据:"+ComFn.bytesToHexString(cipher_tx_t, cipher_tx_t.length)); }else { cipher_tx_t = plain_tx_t; } @@ -747,7 +840,8 @@ // + " GPRS RF Level:" + m_StatAndParam.m_GPRS_CSQ); } } else { if(aes_en) { if(aes_en) { //System.out.println("接收数据:"+ComFn.bytesToHexString(cipher_buf,cipher_buf.length)); my_aes.ecb_decrypt(cipher_buf, plain_buf, cipher_buf.length); }else { plain_buf = cipher_buf; @@ -878,6 +972,7 @@ if(true == m_FBS_Cmd.putByteBuffer(bf)) { if((FBS9100_ComBase.CMD_StartDischarge == m_FBS_Cmd.CMD) ||(FBS9100_ComBase.CMD_StartResDischarge == m_FBS_Cmd.CMD) ||(FBS9100_ComBase.CMD_StartCharge == m_FBS_Cmd.CMD) @@ -1089,7 +1184,6 @@ if(true == deviceinf.putByteBuffer(bf)) { m_BTSDevSoftWareVersion = deviceinf.SoftwareVersion; m_BTSDevHardwareVersion = deviceinf.HardwareVersion; m_BTSDevSoftType = deviceinf.DeviceType; m_StatAndParam.m_DevVersion = String.format("D:%d,V%d.%02d.%02d", deviceinf.DeviceType, deviceinf.DeviceVersion, @@ -1100,6 +1194,8 @@ + deviceinf.BackUp5*256*256 + deviceinf.BackUp4*256 + deviceinf.BackUp3; m_BTSDevSoftType = deviceinf.getBTSDevSoftType(); String tmp_str = ""; for(int n=0; n<4; n++) { @@ -1160,7 +1256,6 @@ }else if(FBS9100_ComBase.CMD_ReadJunHengParam == m_FBS_Cmd.CMD) { //读取均衡参数成功 if(true == mJHParam.putByteBuffer(bf)) { System.out.println(""); m_StatAndParam.op_cmd_ack = FBS9100_ComBase.CMD_GetJuHengParamAck; FBS9100_Task_Thread_SQL.updateFbs9100JHParamBydev_id(m_ConnPool, m_StatAndParam, mJHParam); isSuccess = true; @@ -1174,6 +1269,56 @@ isSuccess = true; } tmp_jh_param = null; }else if(FBS9100_ComBase.CMD_GetLiDCDCParam == m_FBS_Cmd.CMD || FBS9100_ComBase.CMD_GetPbDCDCParam == m_FBS_Cmd.CMD) { FBS9100S_SX_DCDC_Param tmp_dcdc_param = new FBS9100S_SX_DCDC_Param(); if(tmp_dcdc_param.putByteBuffer(bf)) { //读取锂电BTS的DCDC参数成功 m_StatAndParam.op_cmd_ack = FBS9100_ComBase.CMD_GetLiDCDCParam_Ack; FBS9100_Task_Thread_SQL.updateLi_DCDCParamBydev_id(m_ConnPool, m_StatAndParam, tmp_dcdc_param); isSuccess = true; } tmp_dcdc_param = null; }else if(FBS9100_ComBase.CMD_SetLiDCDCParam == m_FBS_Cmd.CMD || FBS9100_ComBase.CMD_SetPbDCDCParam == m_FBS_Cmd.CMD) { FBS9100S_SX_DCDC_Param tmp_dcdc_param = new FBS9100S_SX_DCDC_Param(); if(tmp_dcdc_param.putByteBuffer(bf)) { //读取锂电BTS的DCDC参数成功 m_StatAndParam.op_cmd_ack = FBS9100_ComBase.CMD_SetLiDCDCParam_Ack; FBS9100_Task_Thread_SQL.updateLi_DCDCParamBydev_id(m_ConnPool, m_StatAndParam, tmp_dcdc_param); isSuccess = true; } tmp_dcdc_param = null; } else if(FBS9100_ComBase.CMD_GetSXDCDCData == m_FBS_Cmd.CMD) { getLiDCDCDataFromCommBuf(bf); m_StatAndParam.op_cmd_ack = FBS9100_ComBase.CMD_GetSXDCDCData_Ack; FBS9100_Task_Thread_SQL.updateLi9130_Dcdc_DataBydev_id(m_ConnPool, m_StatAndParam, m_SX_DCDC_DataList); isSuccess = true; } else if(FBS9100_ComBase.CMD_GetLiBMSData == m_FBS_Cmd.CMD) { getLiBMSANALOGDataFromCommBuf(bf); m_StatAndParam.op_cmd_ack = FBS9100_ComBase.CMD_GetLiBMSData_Ack; FBS9100_Task_Thread_SQL.updateLi9130_Bms_StateBydev_id(m_ConnPool, m_StatAndParam, m_LiBMS_AnalogDatas); isSuccess = true; /*FBS9100S_LiBMS_AnalogData tmp_bms_data = new FBS9100S_LiBMS_AnalogData(); System.err.println("读取BMS信息成功"); if(tmp_bms_data.putByteBuffer(bf)) { m_StatAndParam.op_cmd_ack = FBS9100_ComBase.CMD_GetLiBMSData_Ack; FBS9100_Task_Thread_SQL.updateLi9130_Bms_StateBydev_id(m_ConnPool, m_StatAndParam, tmp_bms_data); isSuccess = true; } tmp_bms_data = null;*/ }else if(FBS9100_ComBase.CMD_GetLiBMSState == m_FBS_Cmd.CMD) { getLiBMSAlarmDataFromCommBuf(bf); m_StatAndParam.op_cmd_ack = FBS9100_ComBase.CMD_GetLiBMSState_Ack; FBS9100_Task_Thread_SQL.updateLi9130_Bms_AlmBydev_id(m_ConnPool, m_StatAndParam, m_LiBMS_AlarmStates); isSuccess = true; /*FBS9100S_LIBMS_AlarmState tmp_bms_alm = new FBS9100S_LIBMS_AlarmState(); if(tmp_bms_alm.putByteBuffer(bf)) { m_StatAndParam.op_cmd_ack = FBS9100_ComBase.CMD_GetLiBMSState_Ack; FBS9100_Task_Thread_SQL.updateLi9130_Bms_AlmBydev_id(m_ConnPool, m_StatAndParam, tmp_bms_alm); isSuccess = true; } tmp_bms_alm = null;*/ } } return isSuccess; @@ -1341,7 +1486,52 @@ } } /*********************************************************************************************/ /***************** 解析锂电DCDC模块信息 ****************************************************************************/ private void getLiDCDCDataFromCommBuf(ByteBuffer bf){ System.out.println("开始读取锂电DCDC模块信息"+bf.limit()); System.err.println(ComFn.bytesToHexString(bf.array(), bf.array().length)); for(int i=0;i<m_SX_DCDC_DataList.length;i++){ if(null != m_SX_DCDC_DataList[i]) { m_SX_DCDC_DataList[i].putByteBuffer(bf); } } } /***************** 解析锂电4个BMS模块信息 ****************************************************************************/ private void getLiBMSANALOGDataFromCommBuf(ByteBuffer bf) { //System.out.println("开始读取BMS模块信息"+bf.limit()); ByteBuffer tmpbuf = bf; int crc0 = tmpbuf.getShort(FBS9100S_LiBMS_AnalogData.TOTAL_BYTE_LEN-2) & 0xFFFF; int crc1 = FBS9100_Crc16.CalCRC16(tmpbuf, FBS9100S_LiBMS_AnalogData.TOTAL_BYTE_LEN-2); if(crc0 != crc1) { //System.out.println(crc0 +"!="+crc1); return; } for(int i=0;i<m_LiBMS_AnalogDatas.length;i++){ if(null != m_LiBMS_AnalogDatas[i]) { m_LiBMS_AnalogDatas[i].putByteBuffer(bf); } } } /***************** 解析锂电4个BMS模块告警信息 ****************************************************************************/ private void getLiBMSAlarmDataFromCommBuf(ByteBuffer bf) { System.out.println("开始读取BMS模块告警信息"+bf.limit()); ByteBuffer tmpbuf = bf; int crc0 = tmpbuf.getShort(FBS9100S_LIBMS_AlarmState.TOTAL_BYTE_LEN-2) & 0xFFFF; int crc1 = FBS9100_Crc16.CalCRC16(tmpbuf, FBS9100S_LIBMS_AlarmState.TOTAL_BYTE_LEN-2); if(crc0 != crc1) { System.out.println(crc0+"=="+crc1); return; } for(int i=0;i<m_LiBMS_AlarmStates.length;i++){ if(null != m_LiBMS_AlarmStates[i]) { m_LiBMS_AlarmStates[i].putByteBuffer(bf); } } } /*********************************************************************************************/ private void getFBS9100MonResData(int cmd, FBS9100_ResCapData res_data) { int mon_index = 0; @@ -1373,8 +1563,7 @@ //漏液电压 m_RTData[n].al_MonVol.get(index).mon_LY_vol = (float) res_data.m_DATA[mon_index]; //System.out.println((m_RTData[n].al_MonVol)); } } mon_index++; } } BattMonitor_FBS9100S_Inverter/src/com/dev/btse/comm/FBS9100_Task_Thread_SQL.java
@@ -10,9 +10,13 @@ import com.battmonitor.sql.MysqlConnPool; import com.battmonitor.sql.Sql_Mysql; import com.dev.btse.data.FBS9100S_BusCoupleState; import com.dev.btse.data.FBS9100S_LIBMS_AlarmState; import com.dev.btse.data.FBS9100S_LiBMS_AnalogData; import com.dev.btse.data.FBS9100S_NT_DCDC_Data; import com.dev.btse.data.FBS9100S_NT_DCDC_State; import com.dev.btse.data.FBS9100S_NiBian_Data; import com.dev.btse.data.FBS9100S_SX_DCDC_Data; import com.dev.btse.data.FBS9100S_SX_DCDC_Param; import com.dev.btse.data.FBS9100S_StemNode_State; import com.dev.btse.data.FBS9100_CMCC_Power; import com.dev.btse.data.FBS9100_ComBase; @@ -2711,7 +2715,7 @@ if(res.next()) { if(null != jh_param) { //param.m_FBS_SystemParam.op_cmd = res.getInt("op_cmd"); jh_param.jhSetVolt = res.getInt("JunHeng_Enabled"); //均衡启用使能 jh_param.jhSetVolt = res.getDouble("JunHeng_Enabled"); //均衡启用使能 jh_param.jhVoltLimit = res.getDouble("JunHeng_StVol"); //均衡停止电压阀值 jh_param.jhCurrLimit = res.getDouble("JunHeng_StCurr"); //均衡停止电流阀值 } @@ -2723,4 +2727,598 @@ } } /************************************************************************************************/ /** * 插入当前设备的默认数据 * @param con_pool * @param dev_id */ public static void insertLi9130DcDcParam(MysqlConnPool con_pool, int dev_id) { String sql_str = " SELECT op_cmd from " + Sql_Mysql.Li9130_Dcdc_Param_Table + " WHERE dev_id = " + dev_id; Sql_Mysql sql = new Sql_Mysql(con_pool); ResultSet res = null; try { res = sql.sqlMysqlQuery(sql_str); if(!res.next()) { //插入默认数据 sql.sqlMysqlExecute(" INSERT INTO "+Sql_Mysql.Li9130_Dcdc_Param_Table+"(dev_id) values("+dev_id+");"); } } catch (Exception e) { sql.logger.error("FBS9100_Task_Thread_SQL.insertLi9130DcDcParam():" + e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.insertLi9130DcDcParam():" + e.toString(), e); } } sql.close_con(); } } /** * 读取锂电池dcdc参数读取指令 * @param con_pool * @param param */ public static void queryLi9130DcDcParamCmdBydev_id(MysqlConnPool con_pool, FBS9100_StatAndParam param) { String sql_str = " SELECT op_cmd,dev_type FROM " + Sql_Mysql.Li9130_Dcdc_Param_Table + " where dev_id = " + param.dev_id; Sql_Mysql sql = new Sql_Mysql(con_pool.getConn()); ResultSet res = sql.sqlMysqlQuery(sql_str); try { if(res.next()) { if(null != param) { param.op_cmd = res.getInt("op_cmd"); param.test_type = res.getInt("dev_type"); } } } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.queryLi9130DcDcParamCmdBydev_id():" + e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.queryLi9130DcDcParamCmdBydev_id():" + e.toString(), e); } } sql.close_con(); } } /** * 更新当前读取的锂电BTS的DCDC模块参数 * @param m_ConnPool * @param m_StatAndParam * @param param */ public static void updateLi_DCDCParamBydev_id(MysqlConnPool m_ConnPool, FBS9100_StatAndParam m_StatAndParam,FBS9100S_SX_DCDC_Param param) { String sql_str = " UPDATE " + Sql_Mysql.Li9130_Dcdc_Param_Table + " SET op_cmd = " + m_StatAndParam.op_cmd_ack + " ,setChgVol = " + param.SetChgVol + " ,setChgCurr = " + param.SetChgCurr + " ,setChgStopCurr = " + param.SetChgStopCurr + " ,setReChgVol = " + param.SetReChgVol + " ,setDisStartVol = " + param.SetDisStartVol + " ,setDisVol = " + param.SetDisVol + " ,setDisCurr = " + param.SetDisCurr + " ,setChgStartVol = " + param.SetChgStartVol + " ,ifSaveToFlash = " + param.ifSaveToFlash + " ,setWorkMode = " + param.SetWorkMode + " WHERE dev_id = " + m_StatAndParam.dev_id; Sql_Mysql sql = new Sql_Mysql(m_ConnPool); try { sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.updateLi_DCDCParamBydev_id():" + e.toString(), e); } finally { sql.close_con(); } m_StatAndParam.op_cmd_ack = FBS9100_ComBase.CMD_NULL; } /** * 查询锂电DCDC工作参数 * @param pool * @param m_StatAndParam * @param tmp_dcdc_param */ public static void queryLiDCDCParamById(MysqlConnPool pool, FBS9100_StatAndParam m_StatAndParam,FBS9100S_SX_DCDC_Param param) { String sql_str = " SELECT * FROM " + Sql_Mysql.Li9130_Dcdc_Param_Table + " WHERE dev_id = " + m_StatAndParam.dev_id; ResultSet res = null; Sql_Mysql sql = new Sql_Mysql(pool); try { res = sql.sqlMysqlQuery(sql_str); if(res.next()) { param.SetChgVol = res.getDouble("setChgVol"); //充电电压设置*0.1 param.SetChgCurr = res.getInt("setChgCurr"); //充电电流设置 param.SetChgStopCurr = res.getDouble("setChgStopCurr"); //充电截至电流设置*0.1 param.SetReChgVol = res.getDouble("setReChgVol"); //电压跌落再次充电阈值设置*0.1 param.SetDisStartVol = res.getDouble("setDisStartVol"); //母线放电电压阈值设置*0.1 param.SetDisVol = res.getDouble("setDisVol"); //放电电压设置*0.1 param.SetDisCurr = res.getInt("setDisCurr"); //放电电流设置 param.SetChgStartVol = res.getDouble("setChgStartVol"); //电池充电电压阈值设置*0.1 param.ifSaveToFlash = res.getInt("ifSaveToFlash"); //是否写Flash,1-写 0-不写 param.SetWorkMode = res.getInt("setWorkMode"); //工作模式:手动/自动 } } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.queryLiDCDCParamById():" + e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.queryLiDCDCParamById():" + e.toString(), e); } } sql.close_con(); } } /******************************************************************************************************/ /** * 插入当前设备的DCDC默认数据 * @param con_pool * @param dev_id */ public static void insertLi9130DcDcData_Table(MysqlConnPool con_pool, int dev_id) { String sql_str = " SELECT op_cmd from " + Sql_Mysql.Li9130_Dcdc_Data_Table + " WHERE dev_id = " + dev_id; Sql_Mysql sql = new Sql_Mysql(con_pool); ResultSet res = null; try { res = sql.sqlMysqlQuery(sql_str); if(!res.next()) { //插入默认数据 sql.sqlMysqlExecute("INSERT INTO "+Sql_Mysql.Li9130_Dcdc_Data_Table+"(dev_id,dcdc_index) values("+dev_id+",1);"); sql.sqlMysqlExecute("INSERT INTO "+Sql_Mysql.Li9130_Dcdc_Data_Table+"(dev_id,dcdc_index) values("+dev_id+",2);"); sql.sqlMysqlExecute("INSERT INTO "+Sql_Mysql.Li9130_Dcdc_Data_Table+"(dev_id,dcdc_index) values("+dev_id+",3);"); sql.sqlMysqlExecute("INSERT INTO "+Sql_Mysql.Li9130_Dcdc_Data_Table+"(dev_id,dcdc_index) values("+dev_id+",4);"); } } catch (Exception e) { sql.logger.error("FBS9100_Task_Thread_SQL.insertLi9130DcDcData_Table():" + e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.insertLi9130DcDcData_Table():" + e.toString(), e); } } sql.close_con(); } } /** * 读取锂电池dcdc参数读取指令 * @param con_pool * @param param */ public static void queryLi9130DcDcDataCmdBydev_id(MysqlConnPool con_pool, FBS9100_StatAndParam param) { String sql_str = " SELECT DISTINCT(op_cmd) FROM " + Sql_Mysql.Li9130_Dcdc_Data_Table + " where dev_id = " + param.dev_id; Sql_Mysql sql = new Sql_Mysql(con_pool.getConn()); ResultSet res = sql.sqlMysqlQuery(sql_str); try { if(res.next()) { if(null != param) { param.op_cmd = res.getInt("op_cmd"); } } } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.queryLi9130DcDcDataCmdBydev_id():" + e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.queryLi9130DcDcDataCmdBydev_id():" + e.toString(), e); } } sql.close_con(); } } /** * 更新当前读取的锂电BTS的DCDC模块信息 * @param m_ConnPool * @param m_StatAndParam * @param param */ public static void updateLi9130_Dcdc_DataBydev_id(MysqlConnPool m_ConnPool, FBS9100_StatAndParam param,FBS9100S_SX_DCDC_Data[] datas) { ArrayList<String> sql_strs = new ArrayList<>(); for(int i = 0;i < datas.length ; i++) { FBS9100S_SX_DCDC_Data data = datas[i]; sql_strs.add("UPDATE " + Sql_Mysql.Li9130_Dcdc_Data_Table + " SET op_cmd = " + param.op_cmd_ack + " ,dcdc_index = " + (i+1) + " ,powerState= " + data.PowerState + " ,imuxian= " + data.Imuxian + " ,vmuxian= " + data.Vmuxian + " ,ibatt= " + data.Ibatt + " ,vbatt= " + data.Vbatt + " ,currState= " + data.CurrState + " ,version= " + data.Version + " ,setChgVol= " + data.SetChgVol + " ,setChgCurr= " + data.SetChgCurr + " ,setChgStopCurr= " + data.SetChgStopCurr + " ,setReChgVol= " + data.SetReChgVol + " ,setDisStartVol= " + data.SetDisStartVol + " ,setDisVol= " + data.SetDisVol + " ,setDisCurr= " + data.SetDisCurr + " ,setChgStartVol= " + data.SetChgStartVol + " ,commTxCnt= " + data.CommTxCnt + " ,commRxCnt= " + data.CommRxCnt + " WHERE dev_id = " + param.dev_id + " AND dcdc_index = " + (i+1)); } Sql_Mysql sql = new Sql_Mysql(m_ConnPool); try { sql.makeManualCommit(sql_strs); } catch (Exception e) { sql.logger.error("FBS9100_Task_Thread_SQL.updateLi_DCDCParamBydev_id():" + e.toString(), e); } finally { sql.close_con(); } param.op_cmd_ack = FBS9100_ComBase.CMD_NULL; } /******************************************************************************************************/ /** * 读取锂电池dcdc参数读取指令 * @param con_pool * @param param */ public static void queryLi9130_Bms_StateCmdBydev_id(MysqlConnPool con_pool, FBS9100_StatAndParam param) { String sql_str = " SELECT distinct(op_cmd) FROM " + Sql_Mysql.Li9130_Bms_State_Table + " where dev_id = " + param.dev_id; Sql_Mysql sql = new Sql_Mysql(con_pool.getConn()); ResultSet res = sql.sqlMysqlQuery(sql_str); try { if(res.next()) { if(null != param) { param.op_cmd = res.getInt("op_cmd"); } } } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.queryLi9130_Bms_StateCmdBydev_id():" + e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.queryLi9130_Bms_StateCmdBydev_id():" + e.toString(), e); } } sql.close_con(); } } /** * 插入db_ram_db.tb_li9130_bms_state当前设备的默认数据 * @param con_pool * @param dev_id */ public static void insertLi9130_Bms_State(MysqlConnPool con_pool, int dev_id) { String sql_str = " SELECT op_cmd from " + Sql_Mysql.Li9130_Bms_State_Table + " WHERE dev_id = " + dev_id; Sql_Mysql sql = new Sql_Mysql(con_pool); ResultSet res = null; try { res = sql.sqlMysqlQuery(sql_str); if(!res.next()) { //插入默认数据 sql.sqlMysqlExecute(" INSERT INTO "+Sql_Mysql.Li9130_Bms_State_Table+"(dev_id,bms_idx) values("+dev_id+",1);"); sql.sqlMysqlExecute(" INSERT INTO "+Sql_Mysql.Li9130_Bms_State_Table+"(dev_id,bms_idx) values("+dev_id+",2);"); sql.sqlMysqlExecute(" INSERT INTO "+Sql_Mysql.Li9130_Bms_State_Table+"(dev_id,bms_idx) values("+dev_id+",3);"); sql.sqlMysqlExecute(" INSERT INTO "+Sql_Mysql.Li9130_Bms_State_Table+"(dev_id,bms_idx) values("+dev_id+",4);"); } } catch (Exception e) { sql.logger.error("FBS9100_Task_Thread_SQL.insertLi9130_Bms_State():" + e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.insertLi9130_Bms_State():" + e.toString(), e); } } sql.close_con(); } } /** * 更新当前读取的锂电BTS的DCDC模块参数 * @param m_ConnPool * @param m_StatAndParam * @param param */ public static void updateLi9130_Bms_StateBydev_id(MysqlConnPool m_ConnPool, FBS9100_StatAndParam m_StatAndParam,FBS9100S_LiBMS_AnalogData state) { String sql_str = " UPDATE " + Sql_Mysql.Li9130_Bms_State_Table + " SET op_cmd = " + m_StatAndParam.op_cmd_ack + " ,data_flag = " + state.data_flag + " ,pack_pos = " + state.pack_pos + " ,monomer_cnt = " + state.monomer_cnt + " ,mon_vol1 = " + state.monomer_vol[0] + " ,mon_vol2 = " + state.monomer_vol[1] + " ,mon_vol3 = " + state.monomer_vol[2] + " ,mon_vol4 = " + state.monomer_vol[3] + " ,mon_vol5 = " + state.monomer_vol[4] + " ,mon_vol6 = " + state.monomer_vol[5] + " ,mon_vol7 = " + state.monomer_vol[6] + " ,mon_vol8 = " + state.monomer_vol[7] + " ,mon_vol9 = " + state.monomer_vol[8] + " ,mon_vol10 = " + state.monomer_vol[9] + " ,mon_vol11 = " + state.monomer_vol[10] + " ,mon_vol12 = " + state.monomer_vol[11] + " ,mon_vol13 = " + state.monomer_vol[12] + " ,mon_vol14 = " + state.monomer_vol[13] + " ,mon_vol15 = " + state.monomer_vol[14] + " ,mon_vol16 = " + state.monomer_vol[15] + " ,tmp_cnt = " + state.temp_cnt + " ,mon_tmp1 = " + state.monomer_temp[0] + " ,mon_tmp2 = " + state.monomer_temp[1] + " ,mon_tmp3 = " + state.monomer_temp[2] + " ,mon_tmp4 = " + state.monomer_temp[3] + " ,env_temp = " + state.env_temp + " ,mos_temp = " + state.mos_temp + " ,current = " + state.current + " ,sum_vol = " + state.sum_vol + " ,rest_cap = " + state.rest_cap + " ,sum_cap = " + state.sum_cap + " ,cycle_times = " + state.cycle_times + " ,user_def_cnt = " + state.user_def_cnt + " WHERE dev_id = " + m_StatAndParam.dev_id; Sql_Mysql sql = new Sql_Mysql(m_ConnPool); try { System.err.println("更新BMS模块信息"+sql_str); sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.updateLi9130_Bms_StateBydev_id():" + e.toString(), e); } finally { sql.close_con(); } m_StatAndParam.op_cmd_ack = FBS9100_ComBase.CMD_NULL; } /** * 更新当前读取的锂电BTS的DCDC模块参数 * @param m_ConnPool * @param m_StatAndParam * @param param */ public static void updateLi9130_Bms_StateBydev_id(MysqlConnPool m_ConnPool, FBS9100_StatAndParam m_StatAndParam,FBS9100S_LiBMS_AnalogData[] states) { ArrayList<String> sql_strs = new ArrayList<>(); for(int i=0;i<states.length;i++) { FBS9100S_LiBMS_AnalogData state = states[i]; sql_strs.add(" UPDATE " + Sql_Mysql.Li9130_Bms_State_Table + " SET op_cmd = " + m_StatAndParam.op_cmd_ack + " ,data_flag = " + state.data_flag + " ,pack_pos = " + state.pack_pos + " ,monomer_cnt = " + state.monomer_cnt + " ,mon_vol1 = " + state.monomer_vol[0] + " ,mon_vol2 = " + state.monomer_vol[1] + " ,mon_vol3 = " + state.monomer_vol[2] + " ,mon_vol4 = " + state.monomer_vol[3] + " ,mon_vol5 = " + state.monomer_vol[4] + " ,mon_vol6 = " + state.monomer_vol[5] + " ,mon_vol7 = " + state.monomer_vol[6] + " ,mon_vol8 = " + state.monomer_vol[7] + " ,mon_vol9 = " + state.monomer_vol[8] + " ,mon_vol10 = " + state.monomer_vol[9] + " ,mon_vol11 = " + state.monomer_vol[10] + " ,mon_vol12 = " + state.monomer_vol[11] + " ,mon_vol13 = " + state.monomer_vol[12] + " ,mon_vol14 = " + state.monomer_vol[13] + " ,mon_vol15 = " + state.monomer_vol[14] + " ,mon_vol16 = " + state.monomer_vol[15] + " ,tmp_cnt = " + state.temp_cnt + " ,mon_tmp1 = " + state.monomer_temp[0] + " ,mon_tmp2 = " + state.monomer_temp[1] + " ,mon_tmp3 = " + state.monomer_temp[2] + " ,mon_tmp4 = " + state.monomer_temp[3] + " ,env_temp = " + state.env_temp + " ,mos_temp = " + state.mos_temp + " ,current = " + state.current + " ,sum_vol = " + state.sum_vol + " ,rest_cap = " + state.rest_cap + " ,sum_cap = " + state.sum_cap + " ,cycle_times = " + state.cycle_times + " ,user_def_cnt = " + state.user_def_cnt + " WHERE bms_idx ="+(i+1)+" and dev_id = " + m_StatAndParam.dev_id); } Sql_Mysql sql = new Sql_Mysql(m_ConnPool); try { //System.err.println("更新BMS模块信息"+sql_str); sql.makeManualCommit(sql_strs); } catch (Exception e) { sql.logger.error("FBS9100_Task_Thread_SQL.updateLi9130_Bms_StateBydev_id():" + e.toString(), e); } finally { sql.close_con(); } m_StatAndParam.op_cmd_ack = FBS9100_ComBase.CMD_NULL; } /******************************************************************************************************/ /** * 读取锂电池BMS信息告警读取指令 * @param con_pool * @param param */ public static void queryLi9130_Bms_AlmCmdBydev_id(MysqlConnPool con_pool, FBS9100_StatAndParam param) { String sql_str = " SELECT distinct(op_cmd) FROM " + Sql_Mysql.Li9130_Bms_Alm_Table + " where dev_id = " + param.dev_id; Sql_Mysql sql = new Sql_Mysql(con_pool.getConn()); ResultSet res = sql.sqlMysqlQuery(sql_str); try { if(res.next()) { if(null != param) { param.op_cmd = res.getInt("op_cmd"); } } } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.queryLi9130_Bms_AlmCmdBydev_id():" + e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.queryLi9130_Bms_AlmCmdBydev_id():" + e.toString(), e); } } sql.close_con(); } } /** * 插入db_ram_db.tb_li9130_bms_alm当前设备的默认数据 * @param con_pool * @param dev_id */ public static void insertLi9130_Bms_Alm(MysqlConnPool con_pool, int dev_id) { String sql_str = " SELECT op_cmd from " + Sql_Mysql.Li9130_Bms_Alm_Table + " WHERE dev_id = " + dev_id; Sql_Mysql sql = new Sql_Mysql(con_pool); ResultSet res = null; try { res = sql.sqlMysqlQuery(sql_str); if(!res.next()) { //插入默认数据 sql.sqlMysqlExecute(" INSERT INTO "+Sql_Mysql.Li9130_Bms_Alm_Table+"(dev_id,bms_idx) values("+dev_id+",1);"); sql.sqlMysqlExecute(" INSERT INTO "+Sql_Mysql.Li9130_Bms_Alm_Table+"(dev_id,bms_idx) values("+dev_id+",2);"); sql.sqlMysqlExecute(" INSERT INTO "+Sql_Mysql.Li9130_Bms_Alm_Table+"(dev_id,bms_idx) values("+dev_id+",3);"); sql.sqlMysqlExecute(" INSERT INTO "+Sql_Mysql.Li9130_Bms_Alm_Table+"(dev_id,bms_idx) values("+dev_id+",4);"); } } catch (Exception e) { sql.logger.error("FBS9100_Task_Thread_SQL.insertLi9130_Bms_Alm():" + e.toString(), e); } finally { if(null != res) { try { res.close(); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.insertLi9130_Bms_Alm():" + e.toString(), e); } } sql.close_con(); } } /** * 更新当前读取的锂电BTS的BMS模块参数 * @param m_ConnPool * @param m_StatAndParam * @param param */ public static void updateLi9130_Bms_AlmBydev_id(MysqlConnPool m_ConnPool, FBS9100_StatAndParam param,FBS9100S_LIBMS_AlarmState data) { String sql_str = " UPDATE " + Sql_Mysql.Li9130_Bms_Alm_Table + " SET op_cmd = " + param.op_cmd_ack + " ,data_flag = " + data.data_flag + " ,pack_pos = " + data.pack_pos + " ,monomer_cnt = " + data.monomer_cnt + " ,mon_vol_alm1 = " + data.monomer_vol_alarm[0] + " ,mon_vol_alm2 = " + data.monomer_vol_alarm[1] + " ,mon_vol_alm3 = " + data.monomer_vol_alarm[2] + " ,mon_vol_alm4 = " + data.monomer_vol_alarm[3] + " ,mon_vol_alm5 = " + data.monomer_vol_alarm[4] + " ,mon_vol_alm6 = " + data.monomer_vol_alarm[5] + " ,mon_vol_alm7 = " + data.monomer_vol_alarm[6] + " ,mon_vol_alm8 = " + data.monomer_vol_alarm[7] + " ,mon_vol_alm9 = " + data.monomer_vol_alarm[8] + " ,mon_vol_alm10 = " + data.monomer_vol_alarm[9] + " ,mon_vol_alm11 = " + data.monomer_vol_alarm[10] + " ,mon_vol_alm12 = " + data.monomer_vol_alarm[11] + " ,mon_vol_alm13 = " + data.monomer_vol_alarm[12] + " ,mon_vol_alm14 = " + data.monomer_vol_alarm[13] + " ,mon_vol_alm15 = " + data.monomer_vol_alarm[14] + " ,mon_vol_alm16 = " + data.monomer_vol_alarm[15] + " ,temp_cnt = " + data.temp_cnt + " ,mon_tmp_alm1 = " + data.monomer_temp_alarm[0] + " ,mon_tmp_alm2 = " + data.monomer_temp_alarm[1] + " ,mon_tmp_alm3 = " + data.monomer_temp_alarm[2] + " ,mon_tmp_alm4 = " + data.monomer_temp_alarm[3] + " ,env_temp_alm = " + data.env_temp_alarm + " ,mos_temp_alm = " + data.mos_temp_alarm + " ,current_alm = " + data.current_alarm + " ,sum_vol_alm = " + data.sum_vol_alarm + " ,user_def_cnt = " + data.user_def_cnt + " ,junheng_event_code = " + data.junheng_event_code + " ,vol_event_code = " + data.vol_event_code + " ,temp_event_code = " + data.temp_event_code + " ,curr_event_code = " + data.curr_event_code + " ,rest_cap_alm = " + data.rest_cap_alarm + " ,fet_state_code = " + data.fet_state_code + " ,junheng_state_code = " + data.junheng_state_code + " ,sys_state_code = " + data.sys_state_code + " WHERE dev_id = " + param.dev_id; Sql_Mysql sql = new Sql_Mysql(m_ConnPool); try { sql.sqlMysqlExecute(sql_str); } catch (SQLException e) { sql.logger.error("FBS9100_Task_Thread_SQL.updateLi9130_Bms_AlmBydev_id():" + e.toString(), e); } finally { sql.close_con(); } param.op_cmd_ack = FBS9100_ComBase.CMD_NULL; } /** * 更新当前读取的锂电BTS的BMS模块参数 * @param m_ConnPool * @param m_StatAndParam * @param param */ public static void updateLi9130_Bms_AlmBydev_id(MysqlConnPool m_ConnPool, FBS9100_StatAndParam param,FBS9100S_LIBMS_AlarmState[] datas) { ArrayList<String> sql_strs = new ArrayList<>(); for(int i=0;i<datas.length;i++) { FBS9100S_LIBMS_AlarmState data = datas[i]; sql_strs.add(" UPDATE " + Sql_Mysql.Li9130_Bms_Alm_Table + " SET op_cmd = " + param.op_cmd_ack + " ,data_flag = " + data.data_flag + " ,pack_pos = " + data.pack_pos + " ,monomer_cnt = " + data.monomer_cnt + " ,mon_vol_alm1 = " + data.monomer_vol_alarm[0] + " ,mon_vol_alm2 = " + data.monomer_vol_alarm[1] + " ,mon_vol_alm3 = " + data.monomer_vol_alarm[2] + " ,mon_vol_alm4 = " + data.monomer_vol_alarm[3] + " ,mon_vol_alm5 = " + data.monomer_vol_alarm[4] + " ,mon_vol_alm6 = " + data.monomer_vol_alarm[5] + " ,mon_vol_alm7 = " + data.monomer_vol_alarm[6] + " ,mon_vol_alm8 = " + data.monomer_vol_alarm[7] + " ,mon_vol_alm9 = " + data.monomer_vol_alarm[8] + " ,mon_vol_alm10 = " + data.monomer_vol_alarm[9] + " ,mon_vol_alm11 = " + data.monomer_vol_alarm[10] + " ,mon_vol_alm12 = " + data.monomer_vol_alarm[11] + " ,mon_vol_alm13 = " + data.monomer_vol_alarm[12] + " ,mon_vol_alm14 = " + data.monomer_vol_alarm[13] + " ,mon_vol_alm15 = " + data.monomer_vol_alarm[14] + " ,mon_vol_alm16 = " + data.monomer_vol_alarm[15] + " ,temp_cnt = " + data.temp_cnt + " ,mon_tmp_alm1 = " + data.monomer_temp_alarm[0] + " ,mon_tmp_alm2 = " + data.monomer_temp_alarm[1] + " ,mon_tmp_alm3 = " + data.monomer_temp_alarm[2] + " ,mon_tmp_alm4 = " + data.monomer_temp_alarm[3] + " ,env_temp_alm = " + data.env_temp_alarm + " ,mos_temp_alm = " + data.mos_temp_alarm + " ,current_alm = " + data.current_alarm + " ,sum_vol_alm = " + data.sum_vol_alarm + " ,user_def_cnt = " + data.user_def_cnt + " ,junheng_event_code = " + data.junheng_event_code + " ,vol_event_code = " + data.vol_event_code + " ,temp_event_code = " + data.temp_event_code + " ,curr_event_code = " + data.curr_event_code + " ,rest_cap_alm = " + data.rest_cap_alarm + " ,fet_state_code = " + data.fet_state_code + " ,junheng_state_code = " + data.junheng_state_code + " ,sys_state_code = " + data.sys_state_code + " WHERE bms_idx = "+(i+1)+" and dev_id = " + param.dev_id); } Sql_Mysql sql = new Sql_Mysql(m_ConnPool); try { //sql.sqlMysqlExecute(sql_str); sql.makeManualCommit(sql_strs); } catch (Exception e) { sql.logger.error("FBS9100_Task_Thread_SQL.updateLi9130_Bms_AlmBydev_id():" + e.toString(), e); } finally { sql.close_con(); } param.op_cmd_ack = FBS9100_ComBase.CMD_NULL; } } BattMonitor_FBS9100S_Inverter/src/com/dev/btse/data/FBS9100S_LIBMS_AlarmState.java
New file @@ -0,0 +1,103 @@ package com.dev.btse.data; import java.nio.ByteBuffer; public class FBS9100S_LIBMS_AlarmState { public static final int TOTAL_BYTE_LEN = 162; //结构体总长度 public static final int BYTE_LEN = 40; //单个结构体长度 public static final int LiBMS_MONOMER_MAX = 16; public static final int LiBMS_TEMP_MAX = 4; public int data_flag; public int pack_pos; //上位机需要获取的PACK组位置 public int monomer_cnt; //单体电池数量 public int monomer_vol_alarm[]; public int temp_cnt; //电芯温度数量 public int monomer_temp_alarm[]; public int env_temp_alarm; //环境温度 public int mos_temp_alarm; //MOS管温度 public int current_alarm; //电流 public int sum_vol_alarm; //总压 public int user_def_cnt; //自定义告警数量 public int junheng_event_code; //均衡事件代码 public int vol_event_code; //电压事件代码 public int temp_event_code; //温度事件代码 public int curr_event_code; //电流事件代码 public int rest_cap_alarm; //剩余容量告警 public int fet_state_code; //FET状态代码 public int junheng_state_code; //均衡状态代码 public int sys_state_code; //系统状态代码 public int reserved; //预留 public FBS9100S_LIBMS_AlarmState() { monomer_vol_alarm = new int[LiBMS_MONOMER_MAX]; monomer_temp_alarm = new int[LiBMS_TEMP_MAX]; } /** * 将bytebuffer中的数据取出放入该对象的属性中,并返回是否取出成功 * @param bf * @return */ public boolean putByteBuffer(final ByteBuffer bf) { if(bf.limit() < BYTE_LEN) return false; ByteBuffer tmpbuf = bf; // int crc0 = tmpbuf.getShort(BYTE_LEN-2) & 0xFFFF; // int crc1 = FBS9100_Crc16.CalCRC16(tmpbuf, BYTE_LEN-2); // if(crc0 != crc1) // return false; tmpbuf.position(0); data_flag = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); pack_pos = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //上位机需要获取的PACK组位置 monomer_cnt = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //单体电池数量 for(int n = 0;n<monomer_vol_alarm.length;n++) { monomer_vol_alarm[n] = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); } temp_cnt = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //电芯温度数量 for(int n = 0;n<monomer_temp_alarm.length;n++) { monomer_temp_alarm[n] = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); } env_temp_alarm = FBS9100_ComBase.changeByteToInt(tmpbuf.get());; //环境温度 mos_temp_alarm = FBS9100_ComBase.changeByteToInt(tmpbuf.get());; //MOS管温度 current_alarm = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //电流 sum_vol_alarm = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //总压 user_def_cnt = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //自定义告警数量 junheng_event_code = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //均衡事件代码 vol_event_code = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //电压事件代码 temp_event_code = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //温度事件代码 curr_event_code = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //电流事件代码 rest_cap_alarm = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //剩余容量告警 fet_state_code = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //FET状态代码 junheng_state_code = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //均衡状态代码 sys_state_code = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //系统状态代码 reserved = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //预留 tmpbuf.compact(); tmpbuf.flip(); return true; } } BattMonitor_FBS9100S_Inverter/src/com/dev/btse/data/FBS9100S_LiBMS_AnalogData.java
New file @@ -0,0 +1,88 @@ package com.dev.btse.data; import java.nio.ByteBuffer; public class FBS9100S_LiBMS_AnalogData { public static final int TOTAL_BYTE_LEN = 246; private static final int BYTE_LEN = 61; public static final int LiBMS_MONOMER_MAX = 16; public static final int LiBMS_TEMP_MAX = 4; public int data_flag; public int pack_pos; //上位机需要获取的PACK组位置 public int monomer_cnt; //单体电池数量 public double monomer_vol[] = new double[LiBMS_MONOMER_MAX]; public int temp_cnt; //电芯温度数量 public double monomer_temp[] = new double[LiBMS_TEMP_MAX]; public int env_temp; //环境温度 public int mos_temp; //MOS管温度 public double current; //电流 public double sum_vol; //总压 public double rest_cap; //剩余容量 public double sum_cap; //总容量 public int cycle_times; //电池循环次数 public int user_def_cnt; //自定义遥测数量 public int reserved; //预留 /** * 将bytebuffer中的数据取出放入该对象的属性中,并返回是否取出成功 * @param bf * @return */ public boolean putByteBuffer(final ByteBuffer bf) { if(bf.limit() < BYTE_LEN) return false; ByteBuffer tmpbuf = bf; /*int crc0 = tmpbuf.getShort(BYTE_LEN-2) & 0xFFFF; int crc1 = FBS9100_Crc16.CalCRC16(tmpbuf, BYTE_LEN-2); if(crc0 != crc1) return false;*/ tmpbuf.position(0); data_flag = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); pack_pos = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //上位机需要获取的PACK组位置 monomer_cnt = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //单体电池数量 for(int n = 0;n<monomer_vol.length;n++) { monomer_vol[n] = (double)tmpbuf.getShort()/1000; } temp_cnt = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //电芯温度数量 for(int n = 0;n<monomer_temp.length;n++) { monomer_temp[n] = (double)(tmpbuf.getShort()-2731)/10; } env_temp = tmpbuf.getShort(); //环境温度 mos_temp = tmpbuf.getShort(); //MOS管温度 current = (double)tmpbuf.getShort()/100; //电流 sum_vol =(double) FBS9100_ComBase.changeShortToInt(tmpbuf.getShort())/100; //总压 rest_cap = (double)tmpbuf.getShort()/100; //剩余容量 sum_cap = (double)tmpbuf.getShort()/100; //总容量 cycle_times = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //电池循环次数 user_def_cnt = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //自定义遥测数量 reserved = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //预留 tmpbuf.compact(); tmpbuf.flip(); return true; } } BattMonitor_FBS9100S_Inverter/src/com/dev/btse/data/FBS9100S_SX_DCDC_Data.java
New file @@ -0,0 +1,92 @@ package com.dev.btse.data; import java.nio.ByteBuffer; public class FBS9100S_SX_DCDC_Data { private final int BYTE_LEN = 62; public int PowerState; //电源状态:0-停止,1-正常输出,2/3/4/5-异常保护 public double Imuxian; //电源(母线)端电流*0.01 public double Vmuxian; //电源(母线)端电压*0.01 public double Ibatt; //电池端电流*0.01 public double Vbatt; //电池端电压*0.01 public int CurrState; //电流状态: 0-母线对电池充电 1-电池对母线放电 public int reserved1[] = new int[4]; public double Version; //版本*0.01 public int reserved2[] = new int[9]; public double SetChgVol; //充电电压设置*0.01 public double SetChgCurr; //充电电流设置*0.01 public double SetChgStopCurr; //充电截至电流设置*0.01 public double SetReChgVol; //电压跌落再次充电阈值设置*0.01 public double SetDisStartVol; //母线放电电压阈值设置*0.01 public double SetDisVol; //放电电压设置*0.01 public double SetDisCurr; //放电电流设置*0.01 public double SetChgStartVol; //电池充电电压阈值设置*0.01 public int CommTxCnt; //发送计数 public int CommRxCnt; //接收计数 public int Crc16; /** * 将bytebuffer中的数据取出放入该对象的属性中,并返回是否取出成功 * @param bf * @return */ public boolean putByteBuffer(final ByteBuffer bf) { if(bf.limit() < BYTE_LEN) return false; ByteBuffer tmpbuf = bf; int crc0 = tmpbuf.getShort(BYTE_LEN-2) & 0xFFFF; int crc1 = FBS9100_Crc16.CalCRC16(tmpbuf, BYTE_LEN-2); if(crc0 != crc1) { System.out.println(crc0 + " != " + crc1); return false; } tmpbuf.position(0); PowerState = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //电源状态:0-停止,1-正常输出,2/3/4/5-异常保护 Imuxian = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/100; //电源(母线)端电流*0.01 Vmuxian = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/100; //电源(母线)端电压*0.01 Ibatt = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/100; //电池端电流*0.01 Vbatt = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/100; //电池端电压*0.01 CurrState = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //电流状态: 0-母线对电池充电 1-电池对母线放电 for(int i=0;i<reserved1.length;i++) { reserved1[i] = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); } Version = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort()); //版本*0.01 for(int i=0;i<reserved2.length;i++) { reserved2[i] = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); } SetChgVol = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/100; //充电电压设置*0.01 SetChgCurr = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/100; //充电电流设置*0.01 SetChgStopCurr = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/100; //充电截至电流设置*0.01 SetReChgVol = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/100; //电压跌落再次充电阈值设置*0.01 SetDisStartVol = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/100; //母线放电电压阈值设置*0.01 SetDisVol = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/100; //放电电压设置*0.01 SetDisCurr = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/100; //放电电流设置*0.01 SetChgStartVol = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/100; //电池充电电压阈值设置*0.01 CommTxCnt = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //发送计数 CommRxCnt = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //接收计数 Crc16 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort())&0xFFFF; tmpbuf.compact(); tmpbuf.flip(); return true; } } BattMonitor_FBS9100S_Inverter/src/com/dev/btse/data/FBS9100S_SX_DCDC_Param.java
New file @@ -0,0 +1,102 @@ package com.dev.btse.data; import java.nio.ByteBuffer; import java.nio.ByteOrder; /** * 2021-09-03 锂电BTS新增DCDC工作参数 * @author LiJun * */ public class FBS9100S_SX_DCDC_Param { private final int BYTE_LEN = 22; public double SetChgVol; //充电电压设置*0.1 public int SetChgCurr; //充电电流设置 public double SetChgStopCurr; //充电截至电流设置*0.1 public double SetReChgVol; //电压跌落再次充电阈值设置*0.1 public double SetDisStartVol; //母线放电电压阈值设置*0.1 public double SetDisVol; //放电电压设置*0.1 public int SetDisCurr; //放电电流设置 public double SetChgStartVol; //电池充电电压阈值设置*0.1 public int ifSaveToFlash; //是否写Flash,1-写 0-不写 public int SetWorkMode; //工作模式:手动/自动 public int CRC; /** * 将bytebuffer中的数据取出放入该对象的属性中,并返回是否取出成功 * @param bf * @return */ public boolean putByteBuffer(final ByteBuffer bf) { if(bf.limit() < BYTE_LEN) return false; ByteBuffer tmpbuf = bf; int crc0 = tmpbuf.getShort(BYTE_LEN-2) & 0xFFFF; int crc1 = FBS9100_Crc16.CalCRC16(tmpbuf, BYTE_LEN-2); if(crc0 != crc1) return false; tmpbuf.position(0); SetChgVol = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/10; //充电电压设置*0.1 SetChgCurr = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //充电电流设置 SetChgStopCurr = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/10; //充电截至电流设置*0.1 SetReChgVol = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/10; //电压跌落再次充电阈值设置*0.1 SetDisStartVol = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/10; //母线放电电压阈值设置*0.1 SetDisVol = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/10; //放电电压设置*0.1 SetDisCurr = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //放电电流设置 SetChgStartVol = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/10; //电池充电电压阈值设置*0.1 ifSaveToFlash = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //是否写Flash,1-写 0-不写 SetWorkMode = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //工作模式:手动/自动 tmpbuf.compact(); tmpbuf.flip(); return true; } /** * 将数据放入bytebuffer中并返回 * @return */ public ByteBuffer getByteBuffer() { ByteBuffer bytebuffer = ByteBuffer.allocate(BYTE_LEN); bytebuffer.order(ByteOrder.LITTLE_ENDIAN); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(SetChgVol*10)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(SetChgCurr)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(SetChgStopCurr*10)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(SetReChgVol*10)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(SetDisStartVol*10)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(SetDisVol*10)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(SetDisCurr)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(SetChgStartVol*10)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(ifSaveToFlash)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(SetWorkMode)); CRC = FBS9100_Crc16.CalCRC16(bytebuffer, bytebuffer.position()); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(CRC)); bytebuffer.flip(); return bytebuffer; } @Override public String toString() { return "FBS9100S_SX_DCDC_Param [SetChgVol=" + SetChgVol + ", SetChgCurr=" + SetChgCurr + ", SetChgStopCurr=" + SetChgStopCurr + ", SetReChgVol=" + SetReChgVol + ", SetDisStartVol=" + SetDisStartVol + ", SetDisVol=" + SetDisVol + ", SetDisCurr=" + SetDisCurr + ", SetChgStartVol=" + SetChgStartVol + ", ifSaveToFlash=" + ifSaveToFlash + ", SetWorkMode=" + SetWorkMode + "]"; } } BattMonitor_FBS9100S_Inverter/src/com/dev/btse/data/FBS9100_ComBase.java
@@ -7,6 +7,7 @@ public static final int MonomerCountMax = 480; //---------------------------------------------------------------------------- public static final int BTS_DCDC_CountMax = 8; public static final int LIBTS_DCDC_CountMax = 4; //锂电BTS的最大DCDC模块信息 //---------------------------------------------------------------------------- public static final int CMD_NULL = 0x00; //---------------------------------------------------------------------------- @@ -81,6 +82,30 @@ */ public static final int CMD_GetMonomerLYVolt = 0x78; //漏液电压 public static final int CMD_GetMonomerJHCUR = 0x69; //增加均衡电流 public static final int CMD_GetLiDCDCParam = 0x8B; //读取锂电DCDC参数 public static final int CMD_SetLiDCDCParam = 0x8C; //设置锂电DCDC参数 public static final int CMD_GetPbDCDCParam = 0x8D; //读取铅酸DCDC参数 public static final int CMD_SetPbDCDCParam = 0x8E; //设置铅酸DCDC参数 public static final int CMD_GetSXDCDCData = 0x8F; //读取双向DCDC内部数据 public static final int CMD_GetLiBMSData = 0x95; //读取锂电池BMS模拟量 public static final int CMD_GetLiBMSState = 0x96; //读取锂电池BMS告警量 //------------ 平台锂电池命令 ----------------------------------------------------------------- public static final int CMD_GetLiDCDCParam_Ack = 0x8D; //读取锂电BTS参数成功 public static final int CMD_SetLiDCDCParam_Ack = 0x8E; //设置锂电BTS参数成功 public static final int CMD_GetSXDCDCData_Ack = 0x92; //读取双向DCDC内部数据成功 public static final int CMD_GetLiBMSData_Ack = 0x93; //读取锂电池BMS模拟量 public static final int CMD_GetLiBMSState_Ack = 0x94; //读取锂电池BMS告警量 //---------------------------------------------------------------------------------------- //----------------------------------------------------------------------------- //------------ 在线电压校准 ---------------------------------------------------- public static final int CMD_GetOnlineVolAdjParam = 0x6A; @@ -182,6 +207,7 @@ //------------------------------------------------------------------------------ public static final int BTSE_DevType_TieTa = 0x08; //铁塔版本的bt public static final int BTSE_DevType_NiBian = 0x06; //逆变版本的bts public static final int BTSE_DevType_LIBTS = 0x05; //锂电池版本的bts //------------------------------------------------------------------------------ public static final int SYS_STATE_STOPPED = 0x00; public static final int SYS_STATE_DISCHARGING = 0x01; BattMonitor_FBS9100S_Inverter/src/com/dev/btse/data/FBS9100_DeviceInf.java
@@ -3,6 +3,8 @@ import java.nio.ByteBuffer; import java.nio.ByteOrder; import org.apache.logging.log4j.core.impl.ThreadContextDataInjector.ForGarbageFreeThreadContextMap; public class FBS9100_DeviceInf { private final int BYTE_LEN = 144; @@ -24,6 +26,8 @@ public int BackUp9; //保留 public int[] MCU_ID = new int[4]; //MCUΨһID public int[] VersionStr = new int[112]; //版本信息描述 public int dev_id; //设备ID public int CRC = 0; @@ -65,6 +69,7 @@ for(int i = 0; i<VersionStr.length; i++) { VersionStr[i] = FBS9100_ComBase.changeByteToInt(tmpbuf.get()); //版本信息描述 } dev_id = getDeviceId(); tmpbuf.compact(); tmpbuf.flip(); @@ -104,7 +109,29 @@ return bytebuffer; } /** * 获取设备ID号 * @return */ public int getDeviceId() { return BackUp6*256*256*256 + BackUp5*256*256 + BackUp4*256 + BackUp3; } /** * * @return */ public int getBTSDevSoftType() { int BTSDevSoftType = DeviceType; if(this.dev_id / 1000000 == 913) { //锂电池BTS BTSDevSoftType = FBS9100_ComBase.BTSE_DevType_LIBTS; } return BTSDevSoftType; } @Override BattMonitor_FBS9100S_Inverter/src/com/dev/btse/data/FBS9100_JuHengParam.java
@@ -11,7 +11,7 @@ public int GdUnitAutoRestartCycle; //供电模块自动重启周期 public int AutoOffLineTestCycle; //自动离线养护周期 public double OnlineVolLow; //在线电压低阀值(0.01) public int jhSetVolt; //均衡电压设置//2021-8-13目前当做开关使用 public double jhSetVolt; //均衡电压设置//2021-8-13目前当做开关使用 public double jhVoltLimit; //均衡电压停止条件(0.001) public double jhCurrLimit; //均衡电流停止条件(0.001) public int back[] = new int[15]; //备用 @@ -50,8 +50,8 @@ GdUnitAutoRestartCycle = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //供电模块自动重启周期 AutoOffLineTestCycle = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //自动离线养护周期 OnlineVolLow = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/100; //在线电压低阀值 jhSetVolt = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); //均衡电压设置//2021-8-13目前当做开关使用 OnlineVolLow = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/100; //在线电压低阀值 jhSetVolt = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/1000; //均衡电压设置//2021-8-13目前当做开关使用 jhVoltLimit = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/1000; //均衡电压停止条件 jhCurrLimit = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/1000; //均衡电流停止条件 for(int i=0;i<back.length;i++) { @@ -59,8 +59,7 @@ } tmpbuf.compact(); tmpbuf.flip(); tmpbuf.flip(); return true; } @@ -71,7 +70,7 @@ bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(GdUnitAutoRestartCycle)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(AutoOffLineTestCycle)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(OnlineVolLow*100)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(jhSetVolt)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(jhSetVolt*1000)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(jhVoltLimit*1000)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(jhCurrLimit*1000)); for(int i=0;i<back.length;i++) { BattMonitor_FBS9100S_Inverter/src/com/dev/btse/data/FBS9100_ParamBatt.java
@@ -11,8 +11,8 @@ public double STD_CAP = 0.0; public double STD_RES = 0.0; public int BattGroupCount = 0; public int EachGroupBattCount = 0; public int BattGroupCount = 0; //铅酸电池总数 public int EachGroupBattCount = 0; //铅酸电池节数 public double MonomerVol = 0.0; public double GroupVol = 0.0; public double BattTemp = 0.0; @@ -21,9 +21,13 @@ public double OnlineVolLow = 0.0; public int GroupConnType = 0; public double bakeup1 = 0; public double bakeup2 = 0; public double bakeup3 = 0; /** * @lijun 2021-09-03 锂电BTS新增电池参数 */ public int BattGroupCountSum; //电池组总数(铅酸+锂电,只读) public int LiBattGroupCount; //锂电组数 public int LiEachGroupBattCount; //锂电节数 public double bakeup4 = 0; public double bakeup5 = 0; public double bakeup6 = 0; @@ -68,9 +72,9 @@ OnlineVolLow = 0.0; GroupConnType = 0; bakeup1 = 0; bakeup2 = 0; bakeup3 = 0; BattGroupCountSum = 0; //电池组总数(铅酸+锂电,只读) LiBattGroupCount = 0; //锂电组数 LiEachGroupBattCount = 0; //锂电节数 bakeup4 = 0; bakeup5 = 0; bakeup6 = 0; @@ -111,9 +115,9 @@ OnlineVolLow = FBS9100_ComBase.changeShortToDouble(tmpbuf.getShort())/10; GroupConnType = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); bakeup1 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); bakeup2 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); bakeup3 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); BattGroupCountSum = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); LiBattGroupCount = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); LiEachGroupBattCount = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); bakeup4 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); bakeup5 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); bakeup6 = FBS9100_ComBase.changeShortToInt(tmpbuf.getShort()); @@ -149,9 +153,9 @@ bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(OnlineVolLow*10)); bytebuffer.putShort(FBS9100_ComBase.changeIntToShort(GroupConnType)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(bakeup1)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(bakeup2)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(bakeup3)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(BattGroupCountSum)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(LiBattGroupCount)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(LiEachGroupBattCount)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(bakeup4)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(bakeup5)); bytebuffer.putShort(FBS9100_ComBase.changeDoubleToShort(bakeup6)); @@ -174,8 +178,8 @@ + ", BattGroupCount=" + BattGroupCount + ", EachGroupBattCount=" + EachGroupBattCount + ", MonomerVol=" + MonomerVol + ", GroupVol=" + GroupVol + ", BattTemp=" + BattTemp + ", FloatChargeVol=" + FloatChargeVol + ", FloatChargeCurr=" + FloatChargeCurr + ", OnlineVolLow=" + OnlineVolLow + ", GroupConnType=" + GroupConnType + ", bakeup1=" + bakeup1 + ", bakeup2=" + bakeup2 + ", bakeup3=" + bakeup3 + ", bakeup4=" + bakeup4 + ", bakeup5=" + bakeup5 + ", bakeup6=" + bakeup6 + ", bakeup7=" + ", GroupConnType=" + GroupConnType + ", bakeup1=" + BattGroupCountSum + ", bakeup2=" + LiBattGroupCount + ", bakeup3=" + LiEachGroupBattCount + ", bakeup4=" + bakeup4 + ", bakeup5=" + bakeup5 + ", bakeup6=" + bakeup6 + ", bakeup7=" + bakeup7 + ", bakeup8=" + bakeup8 + ", bakeup9=" + bakeup9 + ", bakeup10=" + bakeup10 + ", CRC=" + CRC + "]"; } BattMonitor_FBS9100S_Inverter/src/com/version_inf/version_inf.txt
@@ -1,3 +1,28 @@ V10.638 edit at date 2021-09-14 lijun 1.新增锂电BTS设备相关信息读取 ①设备对接命令接口 CMD_GetLiDCDCParam = 0x8B; //读取锂电DCDC参数 CMD_SetLiDCDCParam = 0x8C; //设置锂电DCDC参数 CMD_GetPbDCDCParam = 0x8D; //读取铅酸DCDC参数 CMD_SetPbDCDCParam = 0x8E; //设置铅酸DCDC参数 CMD_GetSXDCDCData = 0x8F; //读取双向DCDC内部数据 CMD_GetLiBMSData = 0x95; //读取锂电池BMS模拟量 CMD_GetLiBMSState = 0x96; //读取锂电池BMS告警量 ②平台对接接口 CMD_GetLiDCDCParam = 0x8B; //读取锂电DCDC参数 CMD_GetLiDCDCParam_Ack = 0x8D; //读取锂电DCDC参数成功 CMD_SetLiDCDCParam = 0x8C; //设置锂电DCDC参数 CMD_SetLiDCDCParam_Ack = 0x8E; //设置锂电DCDC参数成功 CMD_GetSXDCDCData = 0x8F; //读取双向DCDC内部数据 CMD_GetSXDCDCData_Ack = 0x92; //读取双向DCDC内部数据成功 CMD_GetLiBMSData = 0x95; //读取锂电池BMS模拟量 CMD_GetLiBMSData_Ack = 0x93; //读取锂电池BMS模拟量成功 CMD_GetLiBMSState = 0x96; //读取锂电池BMS告警量 CMD_GetLiBMSState_Ack = 0x94; //读取锂电池BMS告警量成功 2.电池参数新增锂电信息读取 V10.637 edit at date 2021-09-01 lijun 1.假负载设备新增均衡控制指令;以及单体均衡电流,单体漏液电压,以及均衡供电模块信息读取 与平台交互指令 BattMonitor_FBS9100S_Inverter/src/main/main_MonitorServer_FBS9100S.java
@@ -28,7 +28,7 @@ /**************************************************************************/ /**************************************************************************/ public final static boolean app_debug = false; public final static double m_VersionNum = 10.637; public final static double m_VersionNum = 10.638; public final static String m_Version = "Welcome To Use BattMonitorFBS9100S V" + m_VersionNum + " RC_20201110"; /**************************************************************************/