/// <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(); } }
/// <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; }