示例#1
0
 /// <summary>
 /// 设置被试电磁阀的电磁铁状态22V:左、中、右
 /// </summary>
 /// <param name="state"></param>
 public void SetTestValveState_22V(TestValveState state)
 {
     //Group["被试阀电压切换缓存"] = true;
     //switch (state)
     //{
     //    case TestValveState.左位:
     //        Group["被试阀右控缓存_22V"] = false;
     //        Group["被试阀左控缓存_22V"] = true;
     //        break;
     //    case TestValveState.右位:
     //        Group["被试阀右控缓存_22V"] = true;
     //        Group["被试阀左控缓存_22V"] = false;
     //        break;
     //    default:
     //        Group["被试阀右控缓存_22V"] = false;
     //        Group["被试阀左控缓存_22V"] = false;
     //        break;
     //}
     LOG.Debug("电磁铁22V电源被设置为" + state.ToString());
 }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="state"></param>
        private void SteadystatePreeesureSingleSide(TestValveState state)
        {
            if (state == TestValveState.中位)
            {
                return;
            }

            CurvePanel panel = new CurvePanel();

            panel.Title  = TestType.稳态压差流量特性试验.ToString() + "(" + state.ToString() + ")";
            panel.XLabel = "流量(L/Min)";
            panel.YLabel = "压差(MPa)";
            Curve curvePT = new Curve();
            Curve curvePA = new Curve();
            Curve curvePB = new Curve();
            Curve curveAT = new Curve();
            Curve curveBT = new Curve();

            //添加曲线
            panel.AddCurve(curvePT);
            panel.AddCurve(curvePA);
            panel.AddCurve(curvePB);
            panel.AddCurve(curveAT);
            panel.AddCurve(curveBT);
            //添加曲线名称
            curvePT.Name = "PT口";
            curvePA.Name = "PA口";
            curvePB.Name = "PB口";
            curveAT.Name = "AT口";
            curveBT.Name = "BT口";


            this.SetCircuitState(CircuitState.PABTOut);
            this.SetThrottleValve(100f);
            this.SetTestValveState(state);
            this.SetSourcePre(this.额定压力);
            float 最大流量 = (float)(this.额定流量);

            this.SetSourceFlow(0);
            Pause(3000);

            const int div_cnt     = 10;
            const int measure_cnt = 10;

            float pressure_A = 0;
            float pressure_B = 0;
            float pressure_P = 0;
            float pressure_T = 0;
            float delta_q    = (float)(最大流量 / div_cnt);

            float flow = 0;

            for (int i = 0; i <= div_cnt; i++)
            {
                this.SetSourceFlow(i * delta_q);

                //读取压力流量数据
                flow       = 0;
                pressure_A = 0;
                pressure_B = 0;
                pressure_P = 0;
                pressure_T = 0;
                for (int j = 0; j < measure_cnt; j++)
                {
                    Pause(500);
                    flow       += this.当前流量绝对值 / measure_cnt;
                    pressure_A += this.当前A口压力 / measure_cnt;
                    pressure_B += this.当前B口压力 / measure_cnt;
                    pressure_P += this.当前P口压力 / measure_cnt;
                    pressure_T += this.当前T口压力 / measure_cnt;
                }
                //将数据添加到曲线
                curvePT.AddPoint(flow, pressure_P - pressure_T);
                curvePA.AddPoint(flow, pressure_P - pressure_A);
                curvePB.AddPoint(flow, pressure_P - pressure_B);
                curveAT.AddPoint(flow, pressure_A - pressure_T);
                curveBT.AddPoint(flow, pressure_B - pressure_T);
            }
            this.SetSourcePre(0);
            this.SetSourceFlow(0);
            SetTestValveState(TestValveState.中位);
            this.SetThrottleValve(50f);

            this.dictCurvePanel.Remove(panel.Title);
            this.dictCurvePanel.Add(panel.Title, panel);
        }
示例#3
0
 /// <summary>
 /// 设置被试阀至指定工位
 /// </summary>
 /// <param name="state"></param>
 protected override void SetTestValveState(TestValveState state)
 {
     MessageBox.Show("请手动将被试阀切换至" + state.ToString());
 }