Administrator
2023-04-10 94046653dec4645b5db84d11ebf50085e335c895
V3.105
1.新增单体均衡电流读取
9个文件已修改
87 ■■■■ 已修改文件
BattFBS9600XSP2/bin/com/version_inf/version_inf.txt 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/config.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/src/com/battdata_rt/BattData_RT_SQL.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/src/com/battdata_rt/MonVolData.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/src/com/dev/fbs9600/FBS9600_SocketClient2.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/src/com/dev/fbs9600/FBS9600_State.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/src/com/dev/fbs9600/FBS9600_State_SQL.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/src/com/version_inf/version_inf.txt 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/src/main/main_FBS9600XS.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattFBS9600XSP2/bin/com/version_inf/version_inf.txt
@@ -1,6 +1,7 @@
9600显示屏通讯程序
V3.105
    1.新增单体均衡电流读取
V3.104
    1.新增内阻测试数据记录功能,并且修复适用于多组电池通信方式时启动单组电池的内阻测试功能
BattFBS9600XSP2/config.xml
@@ -2,7 +2,7 @@
<root>
  <mysql_ramdb_recreate_en>false</mysql_ramdb_recreate_en>
  <mysql_server_ip>127.0.0.1</mysql_server_ip>
  <mysql_server_ip>192.168.10.79</mysql_server_ip>
  <!--SOURCE_BATTDATA_TYPE_FBSDEV = 0-->
  <!--SOURCE_BATTDATA_TYPE_SQLSERVER = 1-->
  <!--SOURCE_BATTDATA_TYPE_C_INTERFACE = 2-->
BattFBS9600XSP2/src/com/battdata_rt/BattData_RT_SQL.java
@@ -150,8 +150,21 @@
            if (sql_str_ser.trim().length() > 1) {
                sql_str_ser = ", mon_ser = CASE mon_num " + sql_str_ser + " ELSE mon_ser END ";
            }
            String sql_str_jh = " ";
            for (int n = 0; n < bd_rt.MonCount; n++) {
                tmp_dt = ((MonVolData) bd_rt.al_MonVol.get(n)).monJHcurr;
                if (((MonVolData) bd_rt.al_MonVol_RtOld.get(n)).monJHcurr != tmp_dt) {
                    ((MonVolData) bd_rt.al_MonVol_RtOld.get(n)).monJHcurr = tmp_dt;
                    sql_str_jh = sql_str_jh + " WHEN " + (n + 1) + " THEN "
                            + String.format("%1.3f", new Object[] { Float.valueOf(tmp_dt) });
                }
            }
            if (sql_str_jh.trim().length() > 1) {
                sql_str_jh = ", mon_ser = CASE mon_num " + sql_str_jh + " ELSE mon_JH_curr END ";
            }
            String sql_str_2 = sql_str_vol + sql_str_tmp + sql_str_res + sql_str_ser;
            String sql_str_2 = sql_str_vol + sql_str_tmp + sql_str_res + sql_str_ser + sql_str_jh;
            if (sql_str_2.trim().length() > 1) {
                sql_str_2 = sql_str_2 + " WHERE BattGroupId=" + bd_rt.BattGroupId;
            } else {
BattFBS9600XSP2/src/com/battdata_rt/MonVolData.java
@@ -11,8 +11,9 @@
    public float monRes = 0.0F;
    public float monSer = 0.0F;
    public float connRes = 0.0F;
    public float monJHcurr = 0.1F;
    public float monJHcurr = 0;                    //均衡电流
    public float mon_LY_vol = 0;                //漏液电压
    public MonVolData() {
    }
BattFBS9600XSP2/src/com/dev/fbs9600/FBS9600_SocketClient2.java
@@ -206,9 +206,6 @@
                FBS9600_State_SQL.queryFBS9100SetParam_Table(conn, m_FBS9600_State);
                if(m_FBS9600_State.getFBS9600Cmd() == FBS9600_CommData.CMD_StartResTest) {
                    //if(param.TestCmd == Concentrator_ComBase.CMD_StartResDischarge) {
                        if(m_FBS9600_State.BattGroupNum < 1) {
                            m_FBS9600_State.BattGroupNum = 1;
                        }
                        boolean success = writeResTestControl(m_FBS9600_State.BattGroupNum,true);
                        if(success) {
                            m_FBS9600_State.setFBS9600Cmd(FBS9600_CommData.CMD_StartResTestAck);
@@ -220,10 +217,6 @@
                    //}
                }else if(m_FBS9600_State.getFBS9600Cmd() == FBS9600_CommData.CMD_StopResTest) {
                    //停止内阻测试
                    if(m_FBS9600_State.BattGroupNum < 1) {
                        m_FBS9600_State.BattGroupNum = 1;
                    }
                    //停止内阻测试
                    boolean success = writeResTestControl(m_FBS9600_State.BattGroupNum,false);
                    if(success) {
                        m_FBS9600_State.setFBS9600Cmd(FBS9600_CommData.CMD_StopResTestAck);
@@ -256,6 +249,9 @@
    }
    private boolean writeResTestControl(int battGroupNum, boolean b) {
        if(battGroupNum < 1) {
            battGroupNum = 1;
        }
        int offset = (battGroupNum-1)*0x1000+0x0FF7;
        return MyModbusUtils.writeHoldingRegister(offset,b?1:0, DataType.TWO_BYTE_INT_UNSIGNED, master);        
    }
@@ -289,6 +285,18 @@
        BatchRead<Integer> batch3 = m_FBS9600_State.createMonTmpBatchRead(master,index,battData_RT.MonCount);        
        BatchResults<Integer> res3 = MyModbusUtils.readMutilRegisters(batch3, master);
        m_FBS9600_State.putMonTmpBatchResult(res3,index,battData_RT);
        {
            //读取单体均衡电流
            BatchRead<Integer> batch4 = m_FBS9600_State.createMonJhCurrBatchRead(master,index,battData_RT.MonCount);
            BatchResults<Integer> res4 = MyModbusUtils.readMutilRegisters(batch4, master);
            m_FBS9600_State.putMonJhCurrBatchResult(res4,index,battData_RT);
            //读取单体漏液电压
        }
        //Date end = new Date();
        //logger.info("读取单体数据耗时"+(end.getTime()-start.getTime()));
        battData_RT.updata_BattRtData_To_RamDb();        //更新电池组端数据
BattFBS9600XSP2/src/com/dev/fbs9600/FBS9600_State.java
@@ -283,6 +283,39 @@
        }
        return false;
    }
    /**
     *     读取单体均衡电流
     * @param master
     * @param index
     * @param monCount
     * @return
     */
    public BatchRead<Integer> createMonJhCurrBatchRead(MyModbusMaster master, int index,int monCount) {
        int offset = index*0x1000;
        BatchRead<Integer> batch = new BatchRead<Integer>();
        for(int i=0;i<monCount;i++) {
            batch.addLocator(i,MyModbusUtils.createBaseLocator(0x098D+offset+i,DataType.TWO_BYTE_INT_UNSIGNED, master));        //单体均衡电流
        }
        return batch;
    }
    /**
     *     读取单体均衡电流
     * @param res
     * @param index
     * @param battData_RT
     * @return
     */
    public boolean putMonJhCurrBatchResult(BatchResults<Integer> res, int index, BattData_RT battData_RT) {
        if(res != null) {
            for(int i=0;i<battData_RT.MonCount;i++) {
                //System.out.println("均衡电流:"+res.getIntValue(i));
                battData_RT.al_MonVol.get(i).monJHcurr = (float)res.getIntValue(i)/1000;
            }
            return true;
        }
        return false;
    }
    public void setCommData(MyModbusMaster master) {
        this.com_count = master.getTolcommcount();
BattFBS9600XSP2/src/com/dev/fbs9600/FBS9600_State_SQL.java
@@ -79,7 +79,7 @@
            if(res.next()) {
                state.setFBS9600Cmd(res.getInt("op_cmd"));
                //state.BattGroupNum = res.getInt("BattGroupNum");
                state.BattGroupNum = 0;
                state.BattGroupNum = 1;
            }
        } catch (SQLException e) {
            e.printStackTrace();
BattFBS9600XSP2/src/com/version_inf/version_inf.txt
@@ -1,6 +1,7 @@
9600显示屏通讯程序
V3.105
    1.新增单体均衡电流读取
V3.104
    1.新增内阻测试数据记录功能,并且修复适用于多组电池通信方式时启动单组电池的内阻测试功能
BattFBS9600XSP2/src/main/main_FBS9600XS.java
@@ -27,7 +27,7 @@
    public static final boolean is_app_for_bpm7100_only = false;
    public static final boolean is_app_for_FBS9100S_only = true;
    public static final boolean app_debug = false;
    public static final double m_VersionNum = 3.104D;
    public static final double m_VersionNum = 3.105D;
    public static final String m_Version = "Welcome To Use BattMonitorFBS9100S V" + m_VersionNum + " RC_20180324";
    public static final int DEF_MysqlServerFBS9100S_Port = 3360;
    public static final int DEF_MysqlServer_Port = 5306;