| | |
| | | import com.battdata_rt.BattData_RT;
|
| | | import com.battdata_rt.BattData_RT_Array;
|
| | | import com.dec.fbs9100.FBS9100_TestTime;
|
| | | import com.mysql.jdbc.exceptions.MySQLTimeoutException;
|
| | |
|
| | | /****************************************************************************************************/
|
| | | public class BTS_61850_SocketClient extends Thread {
|
| | |
| | | private FBS9100_VCData m_FBS_VCData = null;
|
| | | private FBS9100_ParamDischarge m_FBS_DiscParam = null;
|
| | | private FBS9100_ParamDischarge m_FBS_DiscParamFromDev = null;
|
| | |
|
| | | private FBS9100_AlarmParam m_FBS_AlmParamFromDev = null;
|
| | | private FBS9100_AlarmParam m_FBS_AlmParam = null;
|
| | | |
| | | |
| | | private FBS9100_SysParam m_FBS_SysParam = null;
|
| | | private FBS9100_StatAndParam m_StatAndParam = null;
|
| | | FBS9100_JHPowerState fbs9100_jhpowerState = null;
|
| | |
| | |
|
| | | private Logger logger = null;
|
| | |
|
| | | private int bg_num = 1;
|
| | | /*********************************************************************************************/
|
| | | /*********************************************************************************************/
|
| | | public BTS_61850_SocketClient(MysqlConnPool m_cp, FBS9100_StatAndParam stat_param,
|
| | |
| | | m_FBS_VCData = m_StatAndParam.m_FBS_VCData;
|
| | | m_FBS_DiscParam = m_StatAndParam.m_FBS_DiscParam;
|
| | | m_FBS_DiscParamFromDev = m_StatAndParam.m_FBS_DiscParamFromDev;
|
| | | |
| | | m_FBS_AlmParamFromDev = m_StatAndParam.m_FBS_AlmParamFromDev;
|
| | | m_FBS_AlmParam = m_StatAndParam.m_FBS_AlmParam;
|
| | | |
| | | fbs9100_jhpowerState = m_StatAndParam.fbs9100_jhpowerState;
|
| | | cl_param = stat_param.clParam;
|
| | | m_FBS_SysParam = stat_param.m_FBS_SysParam;
|
| | |
| | | MonVolStd = AL_RTdata.getItem(n).MonStdVol;
|
| | | FBSDeviceName = AL_RTdata.getItem(n).FBSDeviceName;
|
| | | m_StatAndParam.BattGroupId = AL_RTdata.getItem(n).BattGroupId;
|
| | | |
| | | //
|
| | | m_StatAndParam.keyID = AL_RTdata.getItem(n).ukeyID;
|
| | | //FBSDeviceIp = AL_RTdata.getItem(n).FBSDeviceIp;
|
| | | }
|
| | | }
|
| | |
| | | try {
|
| | | m_ClientSap = new ClientSap();
|
| | | m_Association = m_ClientSap.associate(InetAddress.getByName(FBSDeviceIp), 102, null, null);
|
| | | |
| | | if(!FBSDeviceName.contains(m_ServerModel.getBaseDevName())) {
|
| | | //System.out.println(m_ServerModel);
|
| | | if(null == m_ServerModel || !FBSDeviceName.contains(m_ServerModel.getBaseDevName())) {
|
| | | //与预加载的模型文件不一致时
|
| | | System.out.println("加载设备的模型文件...");
|
| | | m_ServerModel = m_Association.retrieveModel();
|
| | | }
|
| | | //System.err.println("Dev_BASE:"+m_ServerModel.getBaseDevName());;
|
| | | System.err.println("Dev_BASE:"+m_ServerModel.getBaseDevName());;
|
| | |
|
| | |
|
| | | } catch (Exception e) {
|
| | | logger.debug("BTS_IEC61850_Client Unable to connect to device IP:" + FBSDeviceIp);
|
| | | logger.error("BTS_IEC61850_Client Unable to connect to device IP:" + FBSDeviceIp);
|
| | | continue;
|
| | | }
|
| | | if(this.FBSDeviceName.indexOf("BTSE")>0) {
|
| | | //适配各个不同协议名称的61850设备通信[读取放电参数时用到]
|
| | | ZJDYCPSS = this.FBSDeviceName.replace("BTSE", "CPSS");
|
| | | if(ZJDYCPSS.contains("2")) {
|
| | | //标识第二组
|
| | | bg_num = 2;
|
| | | }
|
| | | }
|
| | |
|
| | | logger.debug("Successfully connected to ied server " + FBSDeviceIp + " " + FBSDeviceName + "\t CPSS:"+ZJDYCPSS);
|
| | | logger.debug("IP:" + FBSDeviceIp + " - BTS_IEC61850_Client retrieving model...");
|
| | | /*
|
| | | /**
|
| | | * 添加异常捕获,概率异常报错线程会异常结束
|
| | | */
|
| | | try {
|
| | | m_ServerModel = m_Association.retrieveModel();
|
| | | } catch (ServiceError | IOException e) {
|
| | | logger.error(e.toString(), e);
|
| | | continue;
|
| | | logger.debug("Successfully connected to ied server " + FBSDeviceIp + " " + FBSDeviceName + "\t CPSS:"+ZJDYCPSS);
|
| | | logger.debug("IP:" + FBSDeviceIp + " - BTS_IEC61850_Client retrieving model...");
|
| | | /*
|
| | | try {
|
| | | m_ServerModel = m_Association.retrieveModel();
|
| | | } catch (ServiceError | IOException e) {
|
| | | logger.error(e.toString(), e);
|
| | | continue;
|
| | | }
|
| | | */
|
| | | /*
|
| | | System.out.println("reading model from file...");
|
| | |
|
| | | try {
|
| | | m_ServerModel = m_Association.getModelFromSclFile("zjdy_bts_1_2G.icd");
|
| | | //serverModel = association.getModelFromSclFile(modelFileParam.getValue());
|
| | | } catch (SclParseException e1) {
|
| | | System.out.println("Error parsing SCL file: " + e1.getMessage());
|
| | | return;
|
| | | }
|
| | |
|
| | | System.out.println("successfully read model");
|
| | | */
|
| | | |
| | | /************************* read m_DevVersion first *************************/
|
| | | m_StatAndParam.m_DevVersion = readVersionStringNodeData(FBSDeviceName + "/ncdGGIO1.DevVersion.d", Fc.DC);
|
| | | /***************************************************************************/
|
| | | logger.debug("IP:" + FBSDeviceIp + " - BTS_IEC61850_VersionInf: " + m_StatAndParam.m_DevVersion);
|
| | | |
| | | m_FBS_VCData.m_SysState.resetErrCommCount();
|
| | | FBS9100_Task_Thread_SQL.inseartOrUpdateFBS9100SFODParam(m_ConnPool, m_StatAndParam.clParam, m_StatAndParam);
|
| | |
|
| | | FBS9100_Task_Thread_SQL.queryBTS61850OffLineyhPlanOnRam(m_ConnPool, m_StatAndParam);
|
| | | |
| | | FBS9100_Task_Thread_SQL.inseartDev_6185_AlmParam(m_ConnPool, m_StatAndParam.dev_id);
|
| | | |
| | | m_StatAndParam.keyID = readStringNodeData(FBSDeviceName+"/btgGGIO1.ukeyID.d",Fc.DC);
|
| | | m_StatAndParam.serialNumber = readStringNodeData(FBSDeviceName+"/btgGGIO1.Bts_ID.d",Fc.DC); //唯一序列号
|
| | | BTS61850_Task_Thread_SQL.UpdateBattInfTable(m_ConnPool, m_StatAndParam); //更新当前参数
|
| | | |
| | | |
| | | //读取主从机功能使能
|
| | | m_FBS_VCData.m_SysState.MasterSlave_en = (int) (readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn29.mag.f",Fc.MX));
|
| | | //读取干接点功能使能
|
| | | m_FBS_VCData.m_SysState.DryContact_en = (int) (readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn30.mag.f",Fc.MX));
|
| | | } catch (Exception e) {
|
| | | logger.error(e.toString(),e);
|
| | | }
|
| | | */
|
| | | /*
|
| | | System.out.println("reading model from file...");
|
| | |
|
| | | try {
|
| | | m_ServerModel = m_Association.getModelFromSclFile("zjdy_bts_1_2G.icd");
|
| | | //serverModel = association.getModelFromSclFile(modelFileParam.getValue());
|
| | | } catch (SclParseException e1) {
|
| | | System.out.println("Error parsing SCL file: " + e1.getMessage());
|
| | | return;
|
| | | }
|
| | |
|
| | | System.out.println("successfully read model");
|
| | | */
|
| | | |
| | | /************************* read m_DevVersion first *************************/
|
| | | m_StatAndParam.m_DevVersion = readVersionStringNodeData(FBSDeviceName + "/ncdGGIO1.DevVersion.d", Fc.DC);
|
| | | /***************************************************************************/
|
| | | logger.debug("IP:" + FBSDeviceIp + " - BTS_IEC61850_VersionInf: " + m_StatAndParam.m_DevVersion);
|
| | | |
| | | m_FBS_VCData.m_SysState.resetErrCommCount();
|
| | | FBS9100_Task_Thread_SQL.inseartOrUpdateFBS9100SFODParam(m_ConnPool, m_StatAndParam.clParam, m_StatAndParam);
|
| | |
|
| | | FBS9100_Task_Thread_SQL.queryBTS61850OffLineyhPlanOnRam(m_ConnPool, m_StatAndParam);
|
| | | |
| | | m_StatAndParam.keyID = readStringNodeData(FBSDeviceName+"/btgGGIO1.ukeyID.d",Fc.DC);
|
| | | m_StatAndParam.serialNumber = readStringNodeData(FBSDeviceName+"/btgGGIO1.Bts_ID.d",Fc.DC); //唯一序列号
|
| | | BTS61850_Task_Thread_SQL.UpdateBattInfTable(m_ConnPool, m_StatAndParam); //更新当前参数
|
| | | |
| | | |
| | | //读取主从机功能使能
|
| | | m_FBS_VCData.m_SysState.MasterSlave_en = (int) (readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn29.mag.f",Fc.MX));
|
| | | //读取干接点功能使能
|
| | | m_FBS_VCData.m_SysState.DryContact_en = (int) (readFloatNodeData(FBSDeviceName + "/btgGGIO1.AnIn30.mag.f",Fc.MX));
|
| | |
|
| | | while (true == Get_AppAliveState()) {
|
| | | try {
|
| | |
| | | FBS9100_Task_Thread_SQL.queryFbsCL9100SetParamBydev_id(m_ConnPool, m_StatAndParam); // 查询离线养护参数
|
| | |
|
| | | FBS9100_Task_Thread_SQL.queryFBS9100SysParamBydev_id(m_ConnPool, m_StatAndParam); // 查询系统参数
|
| | | |
| | | FBS9100_Task_Thread_SQL.queryDev6185AlmParamBydev_id(m_ConnPool, m_StatAndParam); // 查询告警参数
|
| | | |
| | | }
|
| | | }
|
| | |
|
| | |
| | |
|
| | | //读取一次ukey
|
| | | m_StatAndParam.keyID = readStringNodeData(FBSDeviceName+"/btgGGIO1.ukeyID.d",Fc.DC);
|
| | | // m_StatAndParam.keyID = BTS61850_Task_Thread_SQL.queryDeviceUkeyID(m_ConnPool,m_StatAndParam.dev_id);
|
| | | m_StatAndParam.serialNumber = readStringNodeData(FBSDeviceName+"/btgGGIO1.Bts_ID.d",Fc.DC); //唯一序列号
|
| | | BTS61850_Task_Thread_SQL.UpdateBattInfTable(m_ConnPool, m_StatAndParam); //更新当前参数
|
| | | }
|
| | | } else if (FBS9100_ComBase.CMD_SetIp == m_FBS_DiscParam.op_cmd) {
|
| | | if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_SetIp)) {
|
| | |
| | | FBS9100_Task_Thread_SQL.updateCL9100SetParamCmdBydev_id(m_ConnPool, m_StatAndParam);
|
| | |
|
| | | }
|
| | | |
| | | |
| | | if (FBS9100_ComBase.CMD_NULL != m_FBS_AlmParam.op_cmd) {
|
| | | if (FBS9100_ComBase.CMD_ReadAlarmParam == m_FBS_AlmParam.op_cmd) {
|
| | | System.out.println("读取告警参数"+m_FBS_AlmParam.op_cmd);
|
| | | //读取告警参数
|
| | | if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_ReadAlarmParam)) {
|
| | | m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_ReadAlarmParam_ACK;
|
| | | |
| | | FBS9100_Task_Thread_SQL.UpdateDev61850AlmParam(m_ConnPool,m_StatAndParam.m_FBS_AlmParamFromDev, m_StatAndParam);
|
| | | }else {
|
| | | m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
|
| | | }
|
| | | }else if(FBS9100_ComBase.CMD_WriteAlarmParam == m_FBS_AlmParam.op_cmd) {
|
| | | //设置告警参数
|
| | | if (true == BTS_IEC61850_SocketComm(FBS9100_ComBase.CMD_WriteAlarmParam)) {
|
| | | m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_WriteAlarmParam_ACK;
|
| | | }else {
|
| | | m_StatAndParam.op_cmd = FBS9100_ComBase.CMD_FAIL;
|
| | | }
|
| | | }
|
| | | FBS9100_Task_Thread_SQL.updateDev61850AlmParamCmdBydev_id(m_ConnPool, m_StatAndParam);
|
| | | }
|
| | | // -----------------------------------------------------------------------------------//
|
| | | // -----------------------------------------------------------------------------------//
|
| | | sleep(100);
|
| | |
| | | break;
|
| | | }
|
| | | // ---------------------------------------------------------------------------------//
|
| | | } catch (InterruptedException e) {
|
| | | logger.error(e.toString(), e);
|
| | | |
| | | } catch (Exception e) {
|
| | | try {
|
| | | logger.error("IP:" + FBSDeviceIp + " " + this.getName() + " - BTS_IEC61850_ClientThread Connect Break Now By " + e.toString(), e);
|
| | | sleep(1000);
|
| | | m_Association.close();
|
| | | //m_ServerModel = null;
|
| | | break;
|
| | | } catch (InterruptedException e1) {
|
| | | // TODO Auto-generated catch block
|
| | | logger.error(e1.toString(), e1);
|
| | |
| | | //m_ServerModel = null;
|
| | | } catch (Exception e) {
|
| | | logger.error(e.toString(), e);
|
| | | } finally {
|
| | | logger.error("IP:" + FBSDeviceIp + " " + this.getName() + " - BTS_IEC61850_ClientThread Connect Stopped ...");
|
| | | }
|
| | | |
| | | logger.debug("IP:" + FBSDeviceIp + " " + this.getName() + " - BTS_IEC61850_ClientThread Stopped ...");
|
| | | }
|
| | |
|
| | | // 离线养护计划
|
| | |
| | | m_Association.getDataValues(fcModelNode);
|
| | | m_FBS_VCData.m_SysState.resetErrCommCount();
|
| | | ModelNode fc_mode = fcModelNode;
|
| | | String a[]= null;
|
| | | a = new String[5];
|
| | | a = (fc_mode.toString()).split(":");
|
| | | res_val = a[2];
|
| | | //System.out.println(a[3]);
|
| | | String split[]= null;
|
| | | split = new String[5];
|
| | | split = (res_val.toString()).split(", ");
|
| | | String result[]= null;
|
| | | result = new String[2];
|
| | | result[0] = split[0];
|
| | | result[1] = a[3];
|
| | | |
| | | resul = String.format("%s,%s", result);
|
| | | if(fc_mode instanceof BdaVisibleString) {
|
| | | resul = new String(((BdaVisibleString)fc_mode).getValue());
|
| | | }
|
| | | } catch (ServiceError e) {
|
| | | System.out.println("Service error: " + e.getMessage());
|
| | | m_FBS_VCData.m_SysState.addErrCommCount();
|
| | | return null;
|
| | | } catch (Exception e) {
|
| | | m_FBS_VCData.m_SysState.addErrCommCount();
|
| | | System.err.println(reference + " Fatal error: " + e.getMessage());
|
| | | System.out.println("Fatal error: " + e.getMessage());
|
| | | return null;
|
| | | }
|
| | | //System.out.println("Successfully read data.");
|
| | | //System.out.println(resul);
|
| | | return resul; //控制节点TRUE FALSE
|
| | | }
|
| | |
|
| | | /*********************************************************************************************/
|
| | |
|
| | | public boolean BTS_IEC61850_SocketComm(int cmd) throws InterruptedException {
|
| | |
| | | else if ((n >= (m + 24 * 2)) && (n < (m + 24 * 3))) {
|
| | | m_FBS_VCData.tmp[n - (m + 24 * 2)] = ((BdaFloat32) fc_mode).getFloat();
|
| | | }
|
| | | //跳过剩余剩余容量
|
| | | |
| | | else if ((n >= (m + 24 * 3)) && (n < (m + 24 * 4))) {
|
| | | m_FBS_VCData.mon_rest_cap[n - (m + 24 * 3)] = ((BdaFloat32) fc_mode).getFloat();
|
| | | |
| | | }
|
| | | |
| | | else if ((n >= (m + 24 * 4)) && (n < (m + 24 * 5))) {
|
| | | m_FBS_VCData.mon_JH[n - (m + 24 * 4)] = ((BdaFloat32) fc_mode).getFloat();
|
| | | }
|
| | | |
| | | else if ((n >= (m + 24 * 5)) && (n < (m + 24 * 6))) {
|
| | | m_FBS_VCData.mon_LY[n - (m + 24 * 5)] = ((BdaFloat32) fc_mode).getFloat()/1000;
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | //---------------------------------Log Level.TRACE-------------------------------------//
|
| | | logger.printf(Level.TRACE, "m_ServerModel.getDataSet(%s/LLN0.dsDevAlarm)", FBSDeviceName);
|
| | | //-------------------------------------------------------------------------------------//
|
| | | String c[] = null;
|
| | | DataSet tmp_ds_stat = m_ServerModel.getDataSet(FBSDeviceName + "/LLN0.dsDevAlarm");
|
| | | if(null == tmp_ds_stat) {
|
| | | return false;
|
| | | }
|
| | | DataSet ds_stat = tmp_ds_stat.copy();
|
| | | int size_cnt_stat = ds_stat.getMembers().size();
|
| | | c = new String[size_cnt_stat];
|
| | | String[] split = null;
|
| | | split = new String[2];
|
| | | boolean[] alm = new boolean[] {false,false,false,false,false};
|
| | | int size_cnt_stat = tmp_ds_stat.getMembers().size();
|
| | | m_Association.getDataSetValues(ds_stat);
|
| | | String sb = null;
|
| | | String temp = "%s";
|
| | | //限制当前告警个数
|
| | | size_cnt_stat = 5;
|
| | | int mon_alm_idx = 0; |
| | | for (int n = 0; n < size_cnt_stat; n++) {
|
| | | //System.err.println(ds_stat.getMembers().get(n).getName());
|
| | | if(null == ds_stat.getMembers().get(n).getChild("stVal")) {
|
| | | System.err.println(ds_stat.getMembers().get(n).getChild("mag").toString1());
|
| | | continue;
|
| | | }
|
| | | FcModelNode fc_mode = (FcModelNode) ds_stat.getMembers().get(n).getChild("stVal");
|
| | | split = fc_mode.toString().split(": ");
|
| | | c[n] = split[1];
|
| | | if(n>0) {
|
| | | temp += ",%s";
|
| | | if(fc_mode instanceof BdaBoolean) {
|
| | | //JTextField tf_t = (JTextField) data.getValueField();
|
| | | String fc_mode_str = fc_mode.toString1();
|
| | | //System.out.println("n:"+n+" "+fc_mode_str+"=="+((BdaBoolean)fc_mode).getValue());
|
| | | if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm1")){
|
| | | //通信蓄电池远程核容装置常闭接触器K1告警
|
| | | alm[0] = ((BdaBoolean)fc_mode).getValue();
|
| | | }else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm2")){
|
| | | //通信蓄电池远程核容装置通讯告警
|
| | | alm[1] = ((BdaBoolean)fc_mode).getValue();
|
| | | }else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm3")){
|
| | | //通信蓄电池远程核容装置过温告警
|
| | | alm[2] = ((BdaBoolean)fc_mode).getValue();
|
| | | }else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.Alm4")){
|
| | | //通信蓄电池远程核容装置二极管D1告警
|
| | | alm[3] = ((BdaBoolean)fc_mode).getValue();
|
| | | }else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO") && fc_mode_str.contains(".Alm5")){
|
| | | //干接点输入故障-10个干接点点位有一个告警即触发干接点告警
|
| | | alm[4] = (alm[4] || ((BdaBoolean)fc_mode).getValue());
|
| | | }else if(fc_mode_str.contains(FBSDeviceName + "/btgGGIO1.Alm1")) {
|
| | | //电池组端电压告警
|
| | | m_FBS_VCData.groupvolalm[0] = ((BdaBoolean)fc_mode).getValue();
|
| | | }else if(fc_mode_str.contains(FBSDeviceName + "/celGGIO1.Alm")) {
|
| | | //电池组单体告警
|
| | | if(0 <= mon_alm_idx && mon_alm_idx < 24) {
|
| | | //单体电压告警
|
| | | m_FBS_VCData.monvol_alm[mon_alm_idx] = ((BdaBoolean)fc_mode).getValue();
|
| | | }else if(24 <= mon_alm_idx && mon_alm_idx < 48) {
|
| | | //单体内阻告警
|
| | | m_FBS_VCData.monres_alm[mon_alm_idx-24] = ((BdaBoolean)fc_mode).getValue();
|
| | | }else if(48 <= mon_alm_idx && mon_alm_idx < 72) {
|
| | | //单体温度告警
|
| | | m_FBS_VCData.montmp_alm[mon_alm_idx-48] = ((BdaBoolean)fc_mode).getValue();
|
| | | }else if(72 <= mon_alm_idx && mon_alm_idx < 96) {
|
| | | //单体剩余容量告警
|
| | | m_FBS_VCData.moncap_alm[mon_alm_idx-72] = ((BdaBoolean)fc_mode).getValue();
|
| | | }
|
| | | mon_alm_idx ++;
|
| | | } |
| | | }
|
| | | }
|
| | | sb = String.format(temp, (Object[])c);
|
| | | |
| | | getFBS9100MonAlmData(m_FBS_VCData);
|
| | | |
| | | String sb = String.format("%b,%b,%b,%b,%b",alm[0],alm[1],alm[2],alm[3],alm[4]);
|
| | | m_FBS_VCData.m_SysState.last_dev_61850alam = m_FBS_VCData.m_SysState.dev_61850alam; // 记录上一次告警状态
|
| | | m_FBS_VCData.m_SysState.dev_61850alam = sb;
|
| | |
|
| | |
| | | //System.out.println(FBSDeviceName + "/LLN0.dsDevState 节点数:"+size_cnt);
|
| | | m_Association.getDataSetValues(ds);
|
| | | // 屏蔽当前根节点下新添加的ukey内容
|
| | | for (int n = 0; n < size_cnt && n < 120; n++) {
|
| | | for (int n = 0; n < size_cnt ; n++) {
|
| | | if(null == ds.getMembers().get(n).getChild("mag") || null == ds.getMembers().get(n).getChild("mag").getChild("f")) {
|
| | | //System.err.println(ds.getMembers().get(n).getChild("mag").toString1());
|
| | | continue;
|
| | |
| | | }else if (fc_mode_str.contains(FBSDeviceName+"/ncdGGIO1.AnIn110.mag.f")) {
|
| | | fod_state.RestTime_four = ((BdaFloat32) fc_mode).getFloat();
|
| | | //fod_state.RestTime_four = (int)readFloatNodeData(FBSDeviceName+"/ncdGGIO1.AnIn110.mag.f", Fc.MX);
|
| | | }else if(fc_mode_str.contains(ZJDYCPSS + "/cheGGIO1.LoBatAh.mag.f")) {
|
| | | //核容终止时剩余容量
|
| | | m_FBS_VCData.test_end_cap[0] = ((BdaFloat32) fc_mode).getFloat();
|
| | | }else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn4.mag.f")) {
|
| | | //核容终止时组端电压
|
| | | m_FBS_VCData.test_end_vol[0] = ((BdaFloat32) fc_mode).getFloat();
|
| | | }else if(fc_mode_str.contains(FBSDeviceName + "/ncdGGIO1.AnIn3.mag.f")) {
|
| | | //核容终止时间
|
| | | m_FBS_VCData.test_timelong[0] = ((BdaFloat32) fc_mode).getFloat()*60*60;
|
| | | //System.out.println("test_timelong:" + ((BdaFloat32) fc_mode).getFloat());
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | m_FBS_DiscParamFromDev.ChargeCurrSet = Float.parseFloat(tf_t.getText());
|
| | | //m_FBS_DiscParamFromDev.ChargeCurrSet = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.ChargeCurr.mag.f", Fc.MX);
|
| | | }else {
|
| | | System.out.println(fc_model_str);
|
| | | //System.out.println(fc_model_str);
|
| | | }
|
| | | }
|
| | | if(m_FBS_DiscParamFromDev.DCVolHighLimit <= 0) {
|
| | | //集合点位中无升压上限[兼容早期设备该参数为绑定到集合以及兼容ICD文件不匹配读取参数异常]
|
| | | m_FBS_DiscParamFromDev.DCVolHighLimit = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.DCVolLimit.mag.f", Fc.MX);
|
| | | }
|
| | | if(m_FBS_DiscParamFromDev.ChargeCurrSet <= 0) {
|
| | | //集合点位中无充电电流[兼容早期设备该参数为绑定到集合以及兼容ICD文件不匹配读取参数异常]
|
| | | m_FBS_DiscParamFromDev.ChargeCurrSet = readFloatNodeData(FBSDeviceName + "/ncdGGIO1.ChargeCurr.mag.f", Fc.MX);
|
| | | }
|
| | | ds_pm = null;
|
| | | }else {
|
| | |
| | | if(!setBTSPublicKeyY(getUKEYRootDomStr(FBSDeviceName,sign_type)+"/ncdGGIO1.SysTime_SYS.setMag.i"));
|
| | | comm_res = writeNodeData_Int64(FBSDeviceName + "/ncdGGIO1.SysTime_SYS.setMag.i", "SP",time_l);
|
| | | logger.printf(Level.WARN, "DevIp:%s operate FBS9100_ComBase.CMD_UpdateXZTime , SetTime:"+Com.getDateTimeFormat(m_StatAndParam.m_FBS_DiscParam.OffLineYHstarttime, Com.DTFYMDhms), FBSDeviceIp);
|
| | | }else if(FBS9100_ComBase.CMD_ReadAlarmParam == cmd) {
|
| | | |
| | | //读取告警参数
|
| | | m_FBS_AlmParamFromDev.groupvol_high_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para1.setMag.f", Fc.SP);
|
| | | m_FBS_AlmParamFromDev.groupvol_low_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para2.setMag.f", Fc.SP);
|
| | | m_FBS_AlmParamFromDev.monvol_high_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para3.setMag.f", Fc.SP);
|
| | | m_FBS_AlmParamFromDev.monvol_low_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para4.setMag.f", Fc.SP);
|
| | | m_FBS_AlmParamFromDev.monres_high_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para5.setMag.f", Fc.SP);
|
| | | m_FBS_AlmParamFromDev.monres_low_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para6.setMag.f", Fc.SP);
|
| | | m_FBS_AlmParamFromDev.montmp_high_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para7.setMag.f", Fc.SP);
|
| | | m_FBS_AlmParamFromDev.montmp_low_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para8.setMag.f", Fc.SP);
|
| | | m_FBS_AlmParamFromDev.moncap_high_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para9.setMag.f", Fc.SP);
|
| | | m_FBS_AlmParamFromDev.moncap_low_val = readFloatNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para10.setMag.f", Fc.SP);
|
| | | //System.out.println(m_FBS_AlmParamFromDev);
|
| | | comm_res = true;
|
| | | }else if(FBS9100_ComBase.CMD_WriteAlarmParam == cmd) {
|
| | | //设置告警参数
|
| | | if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para1.setMag.f"));
|
| | | writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para1.setMag.f", "SP", m_FBS_AlmParam.groupvol_high_val);
|
| | | |
| | | if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para2.setMag.f"));
|
| | | writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para2.setMag.f", "SP", m_FBS_AlmParam.groupvol_low_val);
|
| | | |
| | | if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para3.setMag.f"));
|
| | | writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para3.setMag.f", "SP", m_FBS_AlmParam.monvol_high_val);
|
| | | |
| | | if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para4.setMag.f"));
|
| | | writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para4.setMag.f", "SP", m_FBS_AlmParam.monvol_low_val);
|
| | | |
| | | if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para5.setMag.f"));
|
| | | writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para5.setMag.f", "SP", m_FBS_AlmParam.monres_high_val);
|
| | | |
| | | if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para6.setMag.f"));
|
| | | writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para6.setMag.f", "SP", m_FBS_AlmParam.monres_low_val);
|
| | | |
| | | if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para7.setMag.f"));
|
| | | writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para7.setMag.f", "SP", m_FBS_AlmParam.montmp_high_val);
|
| | | |
| | | if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para8.setMag.f"));
|
| | | writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para8.setMag.f", "SP", m_FBS_AlmParam.montmp_low_val);
|
| | | |
| | | if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para9.setMag.f"));
|
| | | writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para9.setMag.f", "SP", m_FBS_AlmParam.moncap_high_val);
|
| | | |
| | | if(!setBTSPublicKeyY("CPSS/cheGGIO" + bg_num + ".Para10.setMag.f"));
|
| | | writeNodeData(ZJDYCPSS + "/cheGGIO" + bg_num + ".Para10.setMag.f", "SP", m_FBS_AlmParam.moncap_low_val);
|
| | | comm_res = true;
|
| | | }
|
| | | //comm_res = true;
|
| | | } catch (Exception e) {
|
| | |
| | | m_RTData[n].al_MonVol.get(index).monRes = (float) vc_data.res[mon_index];
|
| | | m_RTData[n].al_MonVol.get(index).monTmp = (float) vc_data.tmp[mon_index];
|
| | | m_RTData[n].al_MonVol.get(index).mon_JH_curr = (float) vc_data.mon_JH[mon_index];
|
| | | m_RTData[n].al_MonVol.get(index).mon_rest_cap = (float) vc_data.mon_rest_cap[mon_index];
|
| | | m_RTData[n].al_MonVol.get(index).mon_LY_vol = (float) vc_data.mon_LY[mon_index];
|
| | |
|
| | | mon_index++;
|
| | | }
|
| | |
| | |
|
| | | System.out.println(createSignature(btsid, keyid));
|
| | | }
|
| | | /**
|
| | | * 更新电池组数据
|
| | | * |
| | | * @param vc_data
|
| | | */
|
| | | private void getFBS9100MonAlmData(FBS9100_VCData vc_data) {
|
| | | {
|
| | | int mon_index = 0;
|
| | | for (int n = 0; n < FBS9100_ComBase.BattGroupCountMax; n++) {
|
| | | if (null != m_RTData[n]) {
|
| | | for (int index = 0; index < m_RTData[n].MonCount; index++) {
|
| | | if (mon_index >= FBS9100_ComBase.MonomerCountMax) {
|
| | | break;
|
| | | }
|
| | |
|
| | | m_RTData[n].al_MonVol.get(index).monvol_alm = vc_data.monvol_alm[mon_index];
|
| | | m_RTData[n].al_MonVol.get(index).monres_alm = vc_data.monres_alm[mon_index];
|
| | | m_RTData[n].al_MonVol.get(index).montmp_alm = vc_data.montmp_alm[mon_index];
|
| | | m_RTData[n].al_MonVol.get(index).monrestcap_alm = vc_data.moncap_alm[mon_index];
|
| | | |
| | | mon_index++;
|
| | | }
|
| | | |
| | | m_RTData[n].updata_BattRtAlARM_To_RamDb();
|
| | | BTS61850_Task_Thread_SQL.updateBattRtState_Table(m_ConnPool,vc_data,m_RTData);
|
| | | // ---------------------------------------------------------------------------//
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | /*********************************************************************************************/
|
| | | }
|
| | | /*********************************
|