コード例 #1
0
        /// <summary>
        /// 获取误差限
        /// </summary>
        /// <param name="obj"></param>
        private void CheckWcLimit(object obj)
        {
            int intFirst = (int)obj;

            try
            {
                for (int i = intFirst; i < intFirst + 10; i++)
                {
                    lock (LockedWcLimit)
                    {
                        if (i >= Dgv_Wc.Rows.Count)
                        {
                            AsyncOpDone.Set();
                            return;
                        }

                        StPlan_WcPoint _Item = (StPlan_WcPoint)_DnbGroup.CheckPlan[(int)Dgv_Wc.Rows[i].Tag];

                        _Item.SetWcx(_WcLimitName, _FirstGuiCheng, _FirstDj, _FirstHgq);

                        Dgv_Wc.Rows[i].Cells[1].Value = _Item.ErrorShangXian;       //上线

                        Dgv_Wc.Rows[i].Cells[3].Value = _Item.ErrorXiaXian;         //下限

                        Dgv_Wc.Rows[i].Cells[2].Value = _Item.ErrorShangXian * _DnbGroup.WcxUpPercent;

                        Dgv_Wc.Rows[i].Cells[4].Value = _Item.ErrorShangXian * _DnbGroup.WcxDownPercent;
                    }
                }
                AsyncOpDone.Set();
            }
            catch
            {
                AsyncOpDone.Set();
            }
        }
コード例 #2
0
        /// <summary>
        /// 添加一个需要检定的误差点
        /// </summary>
        /// <param name="WcType">误差类型</param>
        /// <param name="GLFX">功率方向 </param>
        /// <param name="Yj">元件</param>
        /// <param name="Glys">功率因素</param>
        /// <param name="xIb">电流倍数</param>
        /// <param name="XieBo">是否加谐波0-不加,1-加</param>
        /// <param name="Xiangxu">相序0-正相序,1-逆相序</param>
        public void Add(CLDC_Comm.Enum.Cus_WcType WcType, CLDC_Comm.Enum.Cus_PowerFangXiang GLFX, CLDC_Comm.Enum.Cus_PowerYuanJian Yj, string Glys, string xIb, int XieBo, int Xiangxu, string strLimit)
        {
            string _PrjID = getWcPrjID(WcType, GLFX, Yj, Glys, xIb, XieBo, Xiangxu);

            if (CheckedYn(_PrjID) || _PrjID.Length != 9)
            {
                return;
            }
            StPlan_WcPoint _Point = new StPlan_WcPoint();

            _Point.PrjID = _PrjID;
            string _GlfxString;

            switch ((int)GLFX)
            {
            case 1:
            {
                _GlfxString = "P+";
                GlfxYj[0]   = true;
                break;
            }

            case 2:
            {
                _GlfxString = "P-";
                GlfxYj[1]   = true;
                break;
            }

            case 3:
            {
                _GlfxString = "Q+";
                GlfxYj[2]   = true;
                break;
            }

            case 4:
            {
                _GlfxString = "Q-";
                GlfxYj[3]   = true;
                break;
            }

            case 5:
            {
                _GlfxString = "Q1";
                GlfxYj[4]   = true;
                break;
            }

            case 6:
            {
                _GlfxString = "Q2";
                GlfxYj[5]   = true;
                break;
            }

            case 7:
            {
                _GlfxString = "Q3";
                GlfxYj[6]   = true;
                break;
            }

            case 8:
            {
                _GlfxString = "Q4";
                GlfxYj[7]   = true;
                break;
            }

            default:
            {
                _GlfxString = "P+";
                break;
            }
            }

            string _Yj = "";

            switch (Yj.ToString().ToUpper())
            {
            case "H":
                _Yj = "合元";
                break;

            case "A":
                _Yj = "A元";
                break;

            case "B":
                _Yj = "B元";
                break;

            case "C":
                _Yj = "C元";
                break;

            default:
                _Yj = "合元";
                break;
            }

            _Point.PrjName = string.Format("{0} {1} {2} {3} {4}",
                                           _GlfxString, _Yj, Glys, xIb, (int)WcType == 2 ? "标准偏差" : "基本误差");
            _Point.PowerYinSu   = Glys;
            _Point.PowerDianLiu = xIb;

            CLDC_DataCore.DataBase.IDAndValue   _WcLimitName  = _WcLimit.getWcLimitNameValue(CzWcLimit);
            CLDC_DataCore.DataBase.IDAndValue   _GuiChengName = _WcLimit.getGuiChengValue("JJG596-2012");
            CLDC_DataCore.DataBase.IDAndValue[] _DjValue      = new CLDC_DataCore.DataBase.IDAndValue[2];

            CLDC_DataCore.Model.DnbModel.DnbInfo.MeterBasicInfo meter = CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.MeterGroup[CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.GetFirstYaoJianMeterBwh()];
            string[] _DJ = CLDC_DataCore.Function.Number.getDj(meter.Mb_chrBdj);

            _DjValue[0] = _WcLimit.getDjValue(_DJ[0]);
            _DjValue[1] = _WcLimit.getDjValue(_DJ[1]);

            CLDC_DataCore.DataBase.IDAndValue _GlysValue = new CLDC_DataCore.DataBase.IDAndValue();         //功率因素值
            CLDC_DataCore.DataBase.IDAndValue _xIbValue  = new CLDC_DataCore.DataBase.IDAndValue();         //电流倍数值

            _GlysValue.Value = _Point.PowerYinSu;
            _GlysValue.id    = long.Parse(CLDC_DataCore.Const.GlobalUnit.g_SystemConfig.GlysZiDian.getGlysID(_GlysValue.Value));

            _xIbValue.Value = _Point.PowerDianLiu;
            _xIbValue.id    = long.Parse(CLDC_DataCore.Const.GlobalUnit.g_SystemConfig.xIbDic.getxIbID(_xIbValue.Value));

            bool _YouGong = true;

            if ((int)_Point.PowerFangXiang > 2)
            {
                _YouGong = false;
            }

            if (_Point.Pc == 0)          //基本误差的误差限获取
            {
                _WcLimit.SetWcx(_WcLimitName
                                , _GuiChengName
                                , (int)_Point.PowerFangXiang > 2 ? _DjValue[1] : _DjValue[0]
                                , _Point.PowerYuanJian
                                , meter.Mb_BlnHgq
                                , _YouGong, _GlysValue, _xIbValue, strLimit);
            }
            else
            {
                string[] _Wcx = _WcLimit.getPcxValue(_WcLimitName
                                                     , _GuiChengName
                                                     , (int)_Point.PowerFangXiang > 2 ? _DjValue[1] : _DjValue[0]).Split('|');

                _Point.SetWcx(float.Parse(_Wcx[0].Replace("+", "")), float.Parse(_Wcx[1]));      //设置误差限
            }

            LstCheckPoint.Add(_Point);
            return;
        }