コード例 #1
0
ファイル: DataProvider.cs プロジェクト: wangdi190/DNV863
        ///<summary>开始读取规划运行数据</summary>
        public static void PlanningRunDataRead(DistNet dn, int instanceID)
        {
            initPlanningRunData(dn);

            //逐项填写运行数据
            //载入潮流



            List <PowerBasicObject> objs = dn.dbdesc["基础数据"].DictSQLS["线路"].batchLoadRunData(dn, false, instanceID);

            foreach (var item in objs)
            {
                DNACLine obj = item as DNACLine;
                obj.isInverse = obj.thisRunData.activePower < 0; //校验方向
            }
            //载入变电站
            objs = dn.dbdesc["基础数据"].DictSQLS["变电站"].batchLoadRunData(dn, false, instanceID);
            //载入配电室            //注:配电无功率数据
            objs = dn.dbdesc["基础数据"].DictSQLS["配电室"].batchLoadRunData(dn, false, instanceID);
            //载入主变压器
            objs = dn.dbdesc["基础数据"].DictSQLS["主变2卷"].batchLoadRunData(dn, false, instanceID);
            //载入配变压器
            objs = dn.dbdesc["基础数据"].DictSQLS["配变"].batchLoadRunData(dn, false, instanceID);
            //断路器状态
            objs = dn.dbdesc["基础数据"].DictSQLS["断路器"].batchLoadRunData(dn, false, instanceID);


            //网格数据
            objs = dn.dbdesc["基础数据"].DictSQLS["网格"].batchLoadRunData(dn, false, instanceID);
        }
コード例 #2
0
ファイル: PRunFlowPanel.xaml.cs プロジェクト: WildGenie/863
        public void load()
        {
            root.earth.config.tooltipMoveEnable = true;

            if (UCDNV863.EDISTNET == UCDNV863.EDistnet.亦庄16)
            {
                #region ----- gis16数据模拟或载入 -----
                //逐项填写运行数据
                //载入潮流
                List <PowerBasicObject> objs = root.distnet.dbdesc["基础数据"].DictSQLS["导线段"].batchLoadRunData(root.distnet, false);
                foreach (var item in objs)
                {
                    DNLineSeg obj = item as DNLineSeg;
                    obj.isInverse           = obj.thisRunData.activePower < 0; //校验方向
                    obj.tooltipMoveTemplate = "PlanningLineTemplate";
                    obj.tooltipMoveContent  = obj.busiRunData;
                }
                //载入变电站
                objs = root.distnet.dbdesc["基础数据"].DictSQLS["变电站"].batchLoadRunData(root.distnet, false);
                foreach (var obj in objs)
                {
                    obj.tooltipMoveTemplate = "PlanningSubstationTemplate";
                    obj.tooltipMoveContent  = obj.busiRunData;
                }
                //载入主变压器
                objs = root.distnet.dbdesc["基础数据"].DictSQLS["主变压器"].batchLoadRunData(root.distnet, false);
                foreach (var obj in objs)
                {
                    obj.tooltipMoveTemplate = "PlanningSubstationTemplate";
                    obj.tooltipMoveContent  = obj.busiRunData;
                }

                #endregion
            }
            else if (UCDNV863.EDISTNET == UCDNV863.EDistnet.亦庄new)
            {
                #region ----- 新亦庄数据模拟或载入 -----
                //逐项填写运行数据
                //载入潮流
                List <PowerBasicObject> objs = root.distnet.dbdesc["基础数据"].DictSQLS["线路"].batchLoadRunData(root.distnet, false);
                foreach (var item in objs)
                {
                    DNACLine obj = item as DNACLine;
                    obj.isInverse           = obj.thisRunData.activePower < 0; //校验方向
                    obj.tooltipMoveTemplate = "PlanningLineTemplate";
                    obj.tooltipMoveContent  = obj.busiRunData;
                }
                //载入变电站
                objs = root.distnet.dbdesc["基础数据"].DictSQLS["变电站"].batchLoadRunData(root.distnet, false);
                foreach (var obj in objs)
                {
                    obj.tooltipMoveTemplate = "PlanningSubstationTemplate";
                    obj.tooltipMoveContent  = obj.busiRunData;
                }
                //载入主变压器
                objs = root.distnet.dbdesc["基础数据"].DictSQLS["主变2卷"].batchLoadRunData(root.distnet, false);
                foreach (var obj in objs)
                {
                    obj.tooltipMoveTemplate = "PlanningSubstationTemplate";
                    obj.tooltipMoveContent  = obj.busiRunData;
                }

                #endregion
            }
            else
            {
                #region ------ gis15数据模拟域载入 ------

                //逐项填写运行数据
                //载入潮流
                string    id; PowerBasicObject obj;
                DataTable dt = DataLayer.DataProvider.getDataTableFromSQL("select f_id id,f_mch name,f_begyg yg,f_begwg wg,f_begyg/1000 fzl from MCR_ACFLOW_BRANCH union select f_id id,f_mch name,F_SHDYG yg,F_SHDWG wg,f_fzl fzl from HCR_ACFLOW_BRANCH");
                Dictionary <string, PowerBasicObject> objs;
                if (root.earth.objManager.zLayers.ContainsKey(EObjectCategory.导线类.ToString()))
                {
                    //objs = root.earth.objManager.zLayers[EObjectCategory.导线类.ToString()].pModels;
                    objs = root.distnet.getAllObjDictByCategory(EObjectCategory.导线类);
                    foreach (DataRow dr in dt.Rows)
                    {
                        id = dr["id"].ToString();
                        if (objs.TryGetValue(id, out obj))
                        {
                            if (obj.busiRunData == null)
                            {
                                obj.createRunData();
                            }
                            RunDataACLineBase rdata = obj.busiRunData as RunDataACLineBase;
                            rdata.rateOfLoad              = dr.getDouble("fzl");
                            rdata.activePower             = dr.getDouble("yg");
                            rdata.reactivePower           = dr.getDouble("wg");
                            (obj as pPowerLine).isInverse = rdata.activePower < 0; //校验方向

                            obj.tooltipMoveTemplate = "PlanningLineTemplate";
                            obj.tooltipMoveContent  = obj.busiRunData;
                        }
                    }
                }

                //载入变电站
                dt   = DataLayer.DataProvider.getDataTableFromSQL("select f_id id, f_mch name,f_ygfh yg,f_wgfh wg, f_fzl fzl, f_cos fcos, null ryd from MCR_ACFLOW_SS union select f_id id,F_MCH name, F_YGFH yg, F_WGFH wg,f_fzl fzl,f_cos fcos,f_ryd ryd from HCR_ACFLOW_SSLR");
                objs = root.earth.objManager.zLayers[EObjectCategory.变电设施类.ToString()].pModels; // root.earth.objManager.getAllObjDictBelongtoCategory("变电站");
                foreach (DataRow dr in dt.Rows)
                {
                    id = dr["id"].ToString();
                    if (objs.TryGetValue(id, out obj))
                    {
                        if (obj.busiRunData == null)
                        {
                            obj.createRunData();
                        }
                        RunDataSubstation rdata = obj.busiRunData as RunDataSubstation;
                        rdata.activePower   = dr.getDouble("yg");
                        rdata.reactivePower = dr.getDouble("wg");
                        rdata.rateOfLoad    = dr.getDouble("fzl") / 100;
                        rdata.powerFactor   = dr.getDouble("fcos");
                        rdata.redundancy    = dr.getDouble("ryd");
                        rdata.HVL           = 90 + rd.Next(40); //zh 注模拟
                        rdata.HVoltPUV      = rdata.HVL / 110;

                        obj.tooltipMoveTemplate = "PlanningSubstationTemplate";
                        obj.tooltipMoveContent  = obj.busiRunData;
                    }
                }
                //zh注,强制模拟配电室
                foreach (var item in root.distnet.getAllObjListByObjType(EObjectType.配电室))
                {
                    if (item.busiRunData == null)
                    {
                        item.createRunData();
                    }
                    RunDataTransformFacilityBase rdata = item.busiRunData as RunDataTransformFacilityBase;
                    rdata.rateOfLoad = (30.0 + rd.Next(60)) / 100;
                    rdata.HVL        = 8 + rd.Next(4);
                    rdata.HVoltPUV   = rdata.HVL / 10;
                }

                //载入变压器
                string sql = @"
                select f_id id, f_mch name, f_fh yg,f_wgfh wg,f_fzl fzl,f_glysh fcos,f_gycyxdy hvl,f_zsh allloss,f_shzgl ap,f_tgs closs,f_ts iloss,f_bs tloss,f_bsl tlr from HCR_ACFLOW_MTTV
                union 
                select f_id id, f_mch name, f_fh yg,f_wgfh wg,f_fzl fzl,f_glysh fcos,f_gycyxdy hvl,f_zsh allloss,f_shzgl ap,f_tgs closs,f_ts iloss,f_bs tloss,f_bsl tlr from HCR_ACFLOW_MTTHV
                union 
                select f_id id, f_mch name, f_ygfh yg,f_wgfh wg,f_fzl fzl,f_cos fcos,0 hvl,f_zws allloss,sqrt(f_ygfh*f_ygfh+f_wgfh*f_wgfh) ap,f_pbcus closs,f_pbfes iloss,f_pbsh tloss,f_pbsl tlr from MCR_ACFLOW_MT
                ";
                dt = DataLayer.DataProvider.getDataTableFromSQL(sql);
                if (root.earth.objManager.zLayers.ContainsKey(EObjectCategory.变压器类.ToString()))
                {
                    objs = root.earth.objManager.zLayers[EObjectCategory.变压器类.ToString()].pModels;// root.earth.objManager.getAllObjDictBelongtoCategory("变压器");
                    foreach (DataRow dr in dt.Rows)
                    {
                        id = dr["id"].ToString();
                        if (objs.TryGetValue(id, out obj))
                        {
                            RunDataTransformerBase rundata = new RunDataTransformerBase(obj)
                            {
                                activePower       = double.Parse(dr["yg"].ToString()),
                                reactivePower     = double.Parse(dr["wg"].ToString()),
                                rateOfLoad        = double.Parse(dr["fzl"].ToString()) / 100,
                                powerFactor       = double.Parse(dr["fcos"].ToString()),
                                HVL               = double.Parse(dr["hvl"].ToString()),
                                allLoss           = double.Parse(dr["allloss"].ToString()),
                                apparentPower     = double.Parse(dr["ap"].ToString()),
                                copperLoss        = double.Parse(dr["closs"].ToString()),
                                ironLoss          = double.Parse(dr["iloss"].ToString()),
                                transformLoss     = double.Parse(dr["tloss"].ToString()),
                                transformLossRate = double.Parse(dr["tlr"].ToString()),
                            };

                            obj.busiRunData         = rundata;
                            obj.tooltipMoveTemplate = "PlanningTransformerTemplate";
                            obj.tooltipMoveContent  = obj.busiRunData;
                        }
                    }
                }


                //======= 载入节点数据
                dt = DataLayer.DataProvider.getDataTableFromSQL("select * from MCR_ACFLOW_node");
                //objs = root.earth.objManager.getAllObjDictBelongtoCategory("节点");
                objs = root.distnet.getAllObjDictByObjType(EObjectType.节点);
                foreach (DataRow dr in dt.Rows)
                {
                    id = dr["f_id"].ToString();
                    if (objs.TryGetValue(id, out obj))
                    {
                        RunDataNode rundata = new RunDataNode(obj)
                        {
                            activePower   = dr.getDouble("f_yg"),
                            reactivePower = dr.getDouble("f_wg"),
                            volt          = dr.getDouble("f_dy"),
                            voltPUV       = dr.getDouble("f_dy_by"),
                        };
                        obj.busiRunData = rundata;
                    }
                }



                ////载入3卷变压器
                //dt = DataLayer.DataProvider.getDataTableFromSQL("select * from HCR_ACFLOW_MTTHV");
                //objs = root.earth.objManager.getAllObjDictBelongtoCategory("3卷变压器");
                //foreach (DataRow dr in dt.Rows)
                //{
                //    id = dr["f_id"].ToString();
                //    if (objs.TryGetValue(id, out obj))
                //    {
                //        RunDataTransformer3P rundata = new RunDataTransformer3P()
                //        {
                //            name = dr["F_MCH"].ToString(),
                //            activePower = double.Parse(dr["F_FH"].ToString()),
                //            reactivePower = double.Parse(dr["F_WGFH"].ToString()),
                //            rateOfLoad = double.Parse(dr["F_FZL"].ToString()) / 100,
                //            powerFactor = double.Parse(dr["F_GLYSH"].ToString()),
                //            HVL = double.Parse(dr["F_gycyxdy"].ToString()),
                //            allLoss = double.Parse(dr["F_zsh"].ToString()),
                //            apparentPower = double.Parse(dr["F_shzgl"].ToString()),
                //            copperLoss = double.Parse(dr["F_tgs"].ToString()),
                //            ironLoss = double.Parse(dr["F_ts"].ToString()),
                //            transformLoss = double.Parse(dr["F_bs"].ToString()),
                //            transformLossRate = double.Parse(dr["F_bsl"].ToString()),
                //        };

                //        obj.busiRunData = rundata;
                //        obj.tooltipMoveTemplate = "PlanningTransformer3Template";
                //        obj.tooltipMoveContent = obj.busiRunData;
                //    }
                //}

                #endregion
            }
            cmbMode.SelectedIndex = 0;


            root.earth.VisualRangeChanged += new EventHandler(earth_VisualRangeChanged);
        }