示例#1
0
        /// <summary>
        /// ON/OFF曲线
        /// </summary>
        private void refreshChart()
        {
            try
            {
                if (_udcChart == null)
                {
                    _udcChart = new udcChartOnOff();

                    _udcChart.Dock = DockStyle.Fill;

                    panel1.Controls.Add(_udcChart, 0, 2);
                }

                int maxAC = 0;

                for (int i = 0; i < ONOFF_MAX; i++)
                {
                    if (maxAC < _udcOnOff[i].acv)
                    {
                        maxAC = _udcOnOff[i].acv;
                    }
                }

                _udcChart.maxVolt = maxAC;

                _udcChart.biTime = System.Convert.ToDouble(txtTotalTime.Text) / 60;

                List <udcChartOnOff.COnOff> itemList = new List <udcChartOnOff.COnOff>();

                for (int i = 0; i < ONOFF_MAX; i++)
                {
                    udcChartOnOff.COnOff item = new udcChartOnOff.COnOff();

                    item.curVolt = _udcOnOff[i].acv;

                    item.onTimes = System.Convert.ToInt32(_udcOnOff[i].onTime);

                    item.offTimes = System.Convert.ToInt32(_udcOnOff[i].offTime);

                    item.onoffTimes = System.Convert.ToInt32(_udcOnOff[i].onoffTime) * (item.onTimes + item.offTimes);

                    item.outPutType = _udcOnOff[i].outPutType;

                    itemList.Add(item);
                }

                _udcChart.onoff = itemList;

                _udcChart.Refresh();
            }
            catch (Exception)
            {
                throw;
            }
        }
示例#2
0
        private void FrmACVolt_Load(object sender, EventArgs e)
        {
            labStartTime.Text = _CtrlAC.StartTime;

            TimeSpan ts = new TimeSpan(0, 0, _CtrlAC.RunTime);

            labRunTime.Text = ts.Days.ToString("D2") + ":" + ts.Hours.ToString("D2") + ":" + ts.Minutes.ToString("D2") + ":" + ts.Seconds.ToString("D2");

            labCurVolt.Text = _CtrlAC.CurVolt.ToString();

            labWaveVolt.Text = _CtrlAC.CurVolt.ToString();

            uiOnOff = new udcChartOnOff();

            uiOnOff.Dock = DockStyle.Fill;

            panel1.Controls.Add(uiOnOff, 0, 1);

            int maxAC = 0;

            uiOnOff.biTime = _CtrlAC.TotalTime;

            List <udcChartOnOff.COnOff> itemList = new List <udcChartOnOff.COnOff>();

            for (int i = 0; i < _CtrlAC.Time.OnOff.Count; i++)
            {
                udcChartOnOff.COnOff onoff = new udcChartOnOff.COnOff();

                onoff.curVolt = _CtrlAC.Time.OnOff[i].ACV;

                onoff.onoffTimes = _CtrlAC.Time.OnOff[i].OnOffTime;

                onoff.onTimes = _CtrlAC.Time.OnOff[i].OnTime;

                onoff.offTimes = _CtrlAC.Time.OnOff[i].OffTime;

                itemList.Add(onoff);

                if (_CtrlAC.Time.OnOff[i].ACV > maxAC)
                {
                    maxAC = _CtrlAC.Time.OnOff[i].ACV;
                }
            }

            uiOnOff.maxVolt = maxAC;

            uiOnOff.onoff = itemList;

            uiOnOff.Refresh();

            uiOnOff.startRun(_CtrlAC.RunTime);

            timer1.Enabled = true;
        }
示例#3
0
        private void refreshOnOff()
        {
            int acv = 0;

            _udcChart.biTime = ((double)runUUT.Para.BurnTime) / 3600;

            List <udcChartOnOff.COnOff> itemList = new List <udcChartOnOff.COnOff>();

            for (int i = 0; i < runUUT.OnOff.OnOff.Count; i++)
            {
                udcChartOnOff.COnOff onoff = new udcChartOnOff.COnOff();

                onoff.curVolt = runUUT.OnOff.OnOff[i].ACV;

                onoff.onoffTimes = runUUT.OnOff.OnOff[i].OnOffTime;

                onoff.onTimes = runUUT.OnOff.OnOff[i].OnTime;

                onoff.offTimes = runUUT.OnOff.OnOff[i].OffTime;

                itemList.Add(onoff);

                if (acv < onoff.curVolt)
                {
                    acv = onoff.curVolt;
                }
            }

            _udcChart.maxVolt = acv;

            _udcChart.onoff = itemList;

            _udcChart.Refresh();

            if (CGlobalPara.C_RUNNING)
            {
                if (runUUT.Para.DoRun == EDoRun.正在老化 || runUUT.Para.DoRun == EDoRun.老化结束)
                {
                    _udcChart.startRun(runUUT.Para.RunTime, runUUT.Para.IniRunTime);
                }
            }
        }
示例#4
0
        /// <summary>
        /// 计算总时序时间段参数
        /// </summary>
        private List <udcChartOnOff.COnOff> calOnOffItem()
        {
            try
            {
                List <udcChartOnOff.COnOff> itemList = new List <udcChartOnOff.COnOff>();

                int burnTime = (int)(_udcChart.biTime * 3600);

                int leftTime = burnTime;

                int sumTime = 0;

                for (int i = 0; i < _onOffNum; i++)
                {
                    for (int j = 0; j < 4; j++)
                    {
                        sumTime += _onOff[i].Item[j].OnOffTime * (_onOff[i].Item[j].OnTime + _onOff[i].Item[j].OffTime);
                    }
                }

                if (sumTime == 0)
                {
                    return(itemList);
                }

                while (leftTime > 0)
                {
                    for (int i = 0; i < _onOffNum; i++)
                    {
                        int itemTime = (int)(_onOff[i].TotalTime);

                        if (leftTime < itemTime)  //剩余时间<ON/OFF组时间
                        {
                            itemTime = leftTime;

                            leftTime = 0;
                        }
                        else
                        {
                            leftTime -= itemTime;
                        }
                        //4小段ON/OFF时间

                        int itemLeftTime = itemTime;

                        while (itemLeftTime > 0)
                        {
                            for (int j = 0; j < 4; j++)
                            {
                                if (itemLeftTime == 0)
                                {
                                    break;
                                }

                                int onoffTime = _onOff[i].Item[j].OnOffTime * (_onOff[i].Item[j].OnTime + _onOff[i].Item[j].OffTime);

                                if (onoffTime == 0)
                                {
                                    continue;
                                }

                                //单个ON/OFF时序
                                for (int z = 0; z < _onOff[i].Item[j].OnOffTime; z++)
                                {
                                    udcChartOnOff.COnOff onoffItem = new udcChartOnOff.COnOff();

                                    onoffItem.curVolt = _onOff[i].Item[j].ACV;

                                    onoffItem.outPutType = _onOff[i].Item[j].OutPutType;

                                    //ON段
                                    if (itemLeftTime >= _onOff[i].Item[j].OnTime)
                                    {
                                        onoffItem.onTimes = _onOff[i].Item[j].OnTime;

                                        onoffItem.onoffTimes += onoffItem.onTimes;

                                        itemLeftTime -= _onOff[i].Item[j].OnTime;
                                    }
                                    else
                                    {
                                        onoffItem.onTimes = itemLeftTime;

                                        onoffItem.onoffTimes += onoffItem.onTimes;

                                        itemLeftTime = 0;;
                                    }

                                    //OFF段
                                    if (itemLeftTime >= _onOff[i].Item[j].OnOffTime)
                                    {
                                        onoffItem.offTimes = _onOff[i].Item[j].OffTime;

                                        onoffItem.onoffTimes += onoffItem.offTimes;

                                        itemLeftTime -= _onOff[i].Item[j].OffTime;
                                    }
                                    else
                                    {
                                        onoffItem.offTimes = itemLeftTime;

                                        onoffItem.onoffTimes += onoffItem.offTimes;

                                        itemLeftTime = 0;;
                                    }

                                    if (onoffItem.onoffTimes > 0)
                                    {
                                        itemList.Add(onoffItem);
                                    }
                                }
                            }
                        }
                    }
                }

                return(itemList);
            }
            catch (Exception)
            {
                throw;
            }
        }