/// <summary> /// 电量换算时间返回时间为(分钟) /// </summary> /// <param name="Clfs">测量方式</param> /// <param name="Yj">元件</param> /// <param name="I">电流</param> /// <param name="U">电压</param> /// <param name="Glys">功率因素</param> /// <param name="DianLiang">需要转换的电量</param> /// <returns></returns> public static float DLtoTime(CLDC_Comm.Enum.Cus_Clfs Clfs, CLDC_Comm.Enum.Cus_PowerYuanJian Yj, float I, float U, string Glys, float DianLiang) { float _GlysValue = Function.Number.getGlysValue(Glys); float _CS1 = 1F; switch ((int)Clfs) { case 0: //三相四线 { _CS1 = 3F; break; } case 5: //单相 { _CS1 = 1F; break; } default: { _CS1 = 1.732F; break; } } _CS1 = (int)Yj > 1 ? 1F : _CS1; //如果是合元则保留原值,不是合元参数1就=1 return(DianLiang * 60000 / (_CS1 * U * I * _GlysValue)); }
private void CreateFaInfo() { int _FirstYaoJian = CLDC_MeterUI.UI_Detection_New.Main.GetFirstYaoJianMeterIndex(_DnbGroup); CLDC_DataCore.Model.DnbModel.DnbInfo.MeterBasicInfo _DnbInfo = _DnbGroup.MeterGroup[_FirstYaoJian]; _Ub = float.Parse(_DnbInfo.Mb_chrUb); //电压 _Ib = _DnbInfo.Mb_chrIb; //电流字符串 _Dj = _DnbInfo.Mb_chrBdj; //等级 有功(无功) _GuiCheng = _DnbInfo.GuiChengName; //使用的规程名称 _Const = _DnbInfo.Mb_chrBcs; //常数 _Znq = _DnbInfo.Mb_BlnZnq; //止逆器 _Hgq = _DnbInfo.Mb_BlnHgq; //互感器 _Clfs = (CLDC_Comm.Enum.Cus_Clfs)_DnbInfo.Mb_intClfs; //测量方式 for (int i = 0; i < _DnbGroup.CheckPlan.Count; i++) { if (!(_DnbGroup.CheckPlan[i] is StPlan_QianDong)) { continue; } StPlan_QianDong _Item = (StPlan_QianDong)_DnbGroup.CheckPlan[i]; int _RowIndex = Dgv_QianDong.Rows.Add(); Dgv_QianDong.Rows[_RowIndex].HeaderCell.Value = _Item.ToString(); Dgv_QianDong.Rows[_RowIndex].Tag = i; Dgv_QianDong.Rows[_RowIndex].Cells[0].Value = _Item.PowerFangXiang.ToString(); Dgv_QianDong.Rows[_RowIndex].Cells[1].Value = _Item.FloatxU * 100F; //电压倍数 Dgv_QianDong.Rows[_RowIndex].Cells[1].Tag = Dgv_QianDong.Rows[_RowIndex].Cells[1].Value; //电压倍数副本 Dgv_QianDong.Rows[_RowIndex].Cells[2].Value = _Item.FloatxIb; //潜动电流+多少倍起动电流 Dgv_QianDong.Rows[_RowIndex].Cells[2].Tag = Dgv_QianDong.Rows[_RowIndex].Cells[2].Value; _Item.CheckTimeAndIb(_GuiCheng, _Clfs, _Ub, _Ib, _Dj, _Const, _Znq, _Hgq); //计算潜动电流和潜动时间 Dgv_QianDong.Rows[_RowIndex].Cells[3].Value = _Item.FloatIb; //潜动电流 Dgv_QianDong.Rows[_RowIndex].Cells[4].Value = Math.Round(_Item.CheckTime, 1); //潜动时间 Dgv_QianDong.Rows[_RowIndex].Cells[4].Tag = Dgv_QianDong.Rows[_RowIndex].Cells[4].Value; //潜动时间副本 Dgv_QianDong.Rows[_RowIndex].Cells[5].Value = _Item.DefaultValue == 1 ? true : false; //是否默认合格 Dgv_QianDong.Rows[_RowIndex].Cells[5].Tag = Dgv_QianDong.Rows[_RowIndex].Cells[5].Value; //是否默认合格副本 } }
/// <summary> /// 海南获取起动时间 /// </summary> /// <param name="U">标定电压</param> /// <param name="qIb">起动电流值</param> /// <param name="MeterConst">表常数</param> /// <param name="_Clfs">测量方式</param> /// <returns></returns> public static float getQiDongTime(float U, float qIb, int MeterConst, CLDC_Comm.Enum.Cus_Clfs _Clfs) { float _m = 0; switch (_Clfs) { case CLDC_Comm.Enum.Cus_Clfs.单相: { _m = 1F; break; } case CLDC_Comm.Enum.Cus_Clfs.相四线: { _m = 3F; break; } case CLDC_Comm.Enum.Cus_Clfs.二元件跨相60: case CLDC_Comm.Enum.Cus_Clfs.二元件跨相90: case CLDC_Comm.Enum.Cus_Clfs.元件跨相90: case CLDC_Comm.Enum.Cus_Clfs.相三线: { _m = (float)Math.Sqrt(3D); break; } } return(1.2F * 60F * 1000F / ((float)MeterConst * _m * U * qIb)); }
private CLDC_Comm.Enum.Cus_Clfs getCLFS() { CLDC_Comm.Enum.Cus_Clfs Rc = CLDC_Comm.Enum.Cus_Clfs.单相; if ("三相三线" == txt_JXFS.Text) { Rc = CLDC_Comm.Enum.Cus_Clfs.相三线; } else if ("三相四线" == txt_JXFS.Text) { Rc = CLDC_Comm.Enum.Cus_Clfs.相四线; } return(Rc); }
public ViewPulseOutPut() { InitializeComponent(); CLDC_Comm.Enum.Cus_Clfs _clfs = CLDC_Comm.Enum.Cus_Clfs.单相; CLDC_DataCore.Model.DnbModel.DnbInfo.MeterBasicInfo MeterFirstInfo = null; MeterFirstInfo = CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.MeterGroup[CLDC_DataCore.Const.GlobalUnit.FirstYaoJianMeter]; _clfs = (CLDC_Comm.Enum.Cus_Clfs)MeterFirstInfo.Mb_intClfs; if (_clfs == CLDC_Comm.Enum.Cus_Clfs.单相) { bShowXl = false; } else { bShowXl = true; } int _ColIndex = Data_View.Columns.Add("Data_Z", "表号"); Data_View.Columns[_ColIndex].Tag = 0; Data_View.Columns[_ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells; Data_View.Columns[_ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; Data_View.Columns[_ColIndex].SortMode = DataGridViewColumnSortMode.Automatic; _ColIndex = Data_View.Columns.Add("Data_Z", "电能脉冲输出"); Data_View.Columns[_ColIndex].Tag = 0; Data_View.Columns[_ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells; Data_View.Columns[_ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; Data_View.Columns[_ColIndex].SortMode = DataGridViewColumnSortMode.Automatic; _ColIndex = Data_View.Columns.Add("Data_Z", "秒脉冲输出"); Data_View.Columns[_ColIndex].Tag = 0; Data_View.Columns[_ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells; Data_View.Columns[_ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; Data_View.Columns[_ColIndex].SortMode = DataGridViewColumnSortMode.Automatic; _ColIndex = Data_View.Columns.Add("Data_Z", "投切脉冲输出"); Data_View.Columns[_ColIndex].Tag = 0; Data_View.Columns[_ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells; Data_View.Columns[_ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; Data_View.Columns[_ColIndex].SortMode = DataGridViewColumnSortMode.Automatic; if (bShowXl) { _ColIndex = Data_View.Columns.Add("Data_Z", "需量脉冲输出"); Data_View.Columns[_ColIndex].Tag = 0; Data_View.Columns[_ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells; Data_View.Columns[_ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; Data_View.Columns[_ColIndex].SortMode = DataGridViewColumnSortMode.NotSortable; } }
public UI_AutoPowerControl() { InitializeComponent(); this.TopMost = true; InitDicPram(); RegeditEvent(); dbi_IA.Value = 0; dbi_IB.Value = 0; dbi_IC.Value = 0; dbi_CUA.Value = 0; dbi_CIA.Value = 0; clfsTmp = CLDC_DataCore.Const.GlobalUnit.Clfs; }
/// <summary> /// 根据规程计算起动时间和起动电流 /// </summary> /// <param name="GuiChengName">规程名称</param> /// <param name="clfs">测量方式</param> /// <param name="U">电压</param> /// <param name="Ib">电流字符串Ib(Imax)</param> /// <param name="Dj">等级1.0(2.0)</param> /// <param name="MeterConst">常数 有功(无功)</param> /// <param name="znq">止逆器</param> /// <param name="hgq">互感器</param> public void CheckTimeAndIb(string GuiChengName, CLDC_Comm.Enum.Cus_Clfs clfs, float U, string Ib, string Dj, string MeterConst, bool znq, bool hgq) { CLDC_Comm.Enum.Cus_Ywg _Ywg = new CLDC_Comm.Enum.Cus_Ywg(); if (this.PowerFangXiang == CLDC_Comm.Enum.Cus_PowerFangXiang.正向有功 || this.PowerFangXiang == CLDC_Comm.Enum.Cus_PowerFangXiang.反向有功) { _Ywg = CLDC_Comm.Enum.Cus_Ywg.P; } else { _Ywg = CLDC_Comm.Enum.Cus_Ywg.Q; } float _ib = 0F; try { _ib = CLDC_DataCore.Function.Number.GetCurrentByIb("Ib", Ib); } catch { } if (_ib == 0F) { _ib = float.Parse(Ib.Substring(0, Ib.IndexOf("("))); } if (this.FloatxIb == 0) //如果方案电流倍数为0,则使用规程起动电流 { this.FloatIb = CLDC_DataCore.Function.QiDQianDFunction.getQiDongCurrent(GuiChengName, _ib, Dj, znq, hgq, _Ywg); } else //反之则直接使用方案电流倍数乘以标定电流 { this.FloatIb = this.FloatxIb * _ib; } if (this.xTime == 0F) //如果方案起动时间为0,则使用规程起动时间 { this.CheckTime = CLDC_DataCore.Function.QiDQianDFunction.getQiDongTime(GuiChengName, U, this.FloatIb, CLDC_DataCore.Function.Number.GetBcs(MeterConst, _Ywg == CLDC_Comm.Enum.Cus_Ywg.P?true:false), clfs); } else { this.CheckTime = this.xTime; } }
/// <summary> /// 计算潜动时间 /// </summary> /// <param name="GuiChengName">规程名称</param> /// <param name="U">标定电压</param> /// <param name="xU">电压倍数</param> /// <param name="qIb">起动电流</param> /// <param name="MeterLevel">电能表常数</param> /// <param name="MeterConst">测量方式</param> /// <param name="_Clfs">测量方式</param> /// <param name="_Ywg">测量方式</param> /// <returns></returns> public static float getQianDongTime(string GuiChengName, float U, float xU, float qIb, string MeterLevel, int MeterConst, CLDC_Comm.Enum.Cus_Clfs _Clfs, CLDC_Comm.Enum.Cus_Ywg _Ywg) { float _m = 0; switch (_Clfs) { case CLDC_Comm.Enum.Cus_Clfs.单相: { _m = 1F; break; } case CLDC_Comm.Enum.Cus_Clfs.相四线: { _m = 3F; break; } case CLDC_Comm.Enum.Cus_Clfs.二元件跨相60: case CLDC_Comm.Enum.Cus_Clfs.二元件跨相90: case CLDC_Comm.Enum.Cus_Clfs.元件跨相90: case CLDC_Comm.Enum.Cus_Clfs.相三线: { _m = (float)Math.Sqrt(3D); break; } } string[] _Dj = CLDC_DataCore.Function.Number.getDj(MeterLevel); if (_Ywg == CLDC_Comm.Enum.Cus_Ywg.P) { MeterLevel = _Dj[0].Trim(); } else { MeterLevel = _Dj[1].Trim(); } float fbase = 900; switch (MeterLevel) { case "0.2S": { fbase = 900F; break; } case "0.5S": case "1.0": case "1": { fbase = 600F; break; } case "2.0": case "2": { fbase = 480F; break; } default: break; } switch (GuiChengName.ToUpper()) { case "JJG307-1988": { return(10F * (getQiDongTime(GuiChengName, U * xU, qIb, MeterConst, _Clfs))); } case "JJG307-2006": { return(20F * 1000F / ((float)MeterConst * _m * U * xU * qIb * 0.25F)); } case "JJG596-1999": { return(10F * (getQiDongTime(GuiChengName, U * xU, qIb, MeterConst, _Clfs))); } case "JJG596-2012": { return(fbase * 1000000F / ((float)MeterConst * _m * U * qIb)); } default: { return(10F * (getQiDongTime(GuiChengName, U * xU, qIb, MeterConst, _Clfs))); } } }
/// <summary> /// 获取起动时间 /// </summary> /// <param name="GuiChengName">规程名称(JJG307-1988)</param> /// <param name="U">标定电压</param> /// <param name="qIb">起动电流值</param> /// <param name="MeterConst">表常数</param> /// <param name="_Clfs">测量方式</param> /// <returns></returns> public static float getQiDongTime(string GuiChengName, float U, float qIb, int MeterConst, CLDC_Comm.Enum.Cus_Clfs _Clfs) { float _m = 0; switch (_Clfs) { case CLDC_Comm.Enum.Cus_Clfs.单相: { _m = 1F; break; } case CLDC_Comm.Enum.Cus_Clfs.相四线: { _m = 3F; break; } case CLDC_Comm.Enum.Cus_Clfs.二元件跨相60: case CLDC_Comm.Enum.Cus_Clfs.二元件跨相90: case CLDC_Comm.Enum.Cus_Clfs.元件跨相90: case CLDC_Comm.Enum.Cus_Clfs.相三线: { _m = (float)Math.Sqrt(3D); break; } } switch (GuiChengName.ToUpper()) { case "JJG307-1988": { return(1.4F * 60F * 1000F / ((float)MeterConst * _m * U * qIb)); } case "JJG307-2006": { return(80F * 1000F / ((float)MeterConst * _m * U * qIb)); } case "JJG596-1999": { return(1.4F * 60F * 1000F / ((float)MeterConst * _m * U * qIb)); } case "JJG596-2012": { return(1.2F * 60F * 1000F / ((float)MeterConst * _m * U * qIb)); } default: { return(1.2F * 60F * 1000F / ((float)MeterConst * _m * U * qIb)); } } }
/// <summary> /// 海南获取潜动时间 /// </summary> /// <param name="U"></param> /// <param name="xU"></param> /// <param name="qIb"></param> /// <param name="imax"></param> /// <param name="meterLevel"></param> /// <param name="MeterConst"></param> /// <param name="_Clfs"></param> /// <param name="hgq"></param> /// <param name="_Ywg"></param> /// <returns></returns> public static float getQianDongTime(float U, float xU, float qIb, float imax, string meterLevel, int MeterConst, CLDC_Comm.Enum.Cus_Clfs _Clfs, bool hgq, CLDC_Comm.Enum.Cus_Ywg _Ywg) { xU = 1.15f; if (hgq) { return(5 * getQiDongTime(xU * U, qIb, MeterConst, _Clfs)); } float _m = 0; switch (_Clfs) { case CLDC_Comm.Enum.Cus_Clfs.单相: { _m = 1F; break; } case CLDC_Comm.Enum.Cus_Clfs.相四线: { _m = 3F; break; } case CLDC_Comm.Enum.Cus_Clfs.二元件跨相60: case CLDC_Comm.Enum.Cus_Clfs.二元件跨相90: case CLDC_Comm.Enum.Cus_Clfs.元件跨相90: case CLDC_Comm.Enum.Cus_Clfs.相三线: { _m = (float)Math.Sqrt(3D); break; } } string[] _Dj = CLDC_DataCore.Function.Number.getDj(meterLevel); if (_Ywg == CLDC_Comm.Enum.Cus_Ywg.P) { meterLevel = float.Parse(_Dj[0]).ToString("F1"); } else { meterLevel = float.Parse(_Dj[1]).ToString("F1"); } int cs = meterLevel == "1.0" ? 600 : 480; return(cs * (float)Math.Pow(10, 6) / (MeterConst * _m * U * xU * imax)); }
/// <summary> /// 获取XID的值 /// </summary> /// <param name="clfs">测量方式</param> /// <param name="Ywg">有无功</param> /// <param name="Yj">元件</param> /// <returns></returns> public static string XID(CLDC_Comm.Enum.Cus_Clfs clfs, CLDC_Comm.Enum.Cus_Ywg Ywg, CLDC_Comm.Enum.Cus_PowerYuanJian Yj) { return(((int)clfs).ToString() + ((int)Ywg).ToString() + ((int)Yj).ToString()); }