Ejemplo n.º 1
0
        private void SearchCurrent(Ipt4 temp)
        {
            var step1 = Math.Pow(10, -temp.Power1);

            Tok1New = temp.FCurrent1 / 25000.0 * step1;
            var step2 = Math.Pow(10, -temp.Power2);

            Tok2New = temp.FCurrent2 / 25000.0 * step2;
        }
 /// <summary>Чтение данных ИПТ.</summary>
 public void ReadIpt()
 {
     try
     {
         _ipt = _iptReader.Read();
     }
     catch (SocketException ex)
     {
         DisconnectIpt();
         OnIptError(new DataReaderErrorEventArgs(ex.ErrorCode, ex.Message));
         return;
     }
     catch (Exception ex)
     {
         DisconnectIpt();
         OnIptError(new DataReaderErrorEventArgs(0, ex.Message));
         return;
     }
     OnIptDataRead(new DataReadEventArgs(_buffer, _ipt));
 }
Ejemplo n.º 3
0
        //TODO: Александр. Старые значения времени и токов нужно хранить в полях класса. Извне брать только текущие значения.
        //эти методы должны расчитывать реактивности из Ток1 и Ток2
        public void SearchReactivity(double[] l, double[] a, Buffer time, Ipt4 temp)
        {
            SearchCurrent(temp);

            if (TimeOld.Equals(DateTime.MinValue) && _tok1Old.Equals(double.NaN) && _tok2Old.Equals(double.NaN))
            {
                for (int i = 0; i < 6; i++)
                {
                    _psi01[i] = Tok1New;
                    _psi02[i] = Tok2New;
                }
                TimeOld  = DateTime.Now;
                _tok1Old = Tok1New;
                _tok2Old = Tok2New;
            }

            var timeNow = DateTime.Now;
            var dt      = timeNow - TimeOld;

            for (int i = 0; i < _one.Length; i++)
            {
                double constTRaspada = l[i] * dt.TotalSeconds;
                _one[i]      = Math.Exp(-constTRaspada);
                _two[i]      = (1 - _one[i]) / constTRaspada;
                _psi01[i]    = _psi01[i] * _one[i] - (Tok1New - _tok1Old) * _two[i] - _tok1Old * _one[i] + Tok1New;
                _psi02[i]    = _psi02[i] * _one[i] - (Tok2New - _tok2Old) * _two[i] - _tok2Old * _one[i] + Tok2New;
                Reactivity1 += a[i] * _psi01[i];
                Reactivity2 += a[i] * _psi02[i];
            }

            //Зачем потребовалось создать _timeNow ?? Да просто иначе если бы в этой строке стояло бы DateTime.Now то это было бы уже другое время, нежели участвующее в формуле выше!!!
            TimeOld  = timeNow;
            _tok1Old = Tok1New;
            _tok2Old = Tok2New;

            Reactivity1       = 1 - Reactivity1 / Tok1New;
            Reactivity2       = 1 - Reactivity2 / Tok2New;
            ReactivityAverage = (Reactivity1 + Reactivity2) / 2;
        }
Ejemplo n.º 4
0
 public DataReadEventArgs(Buffer buffer, Ipt4 ipt4)
 {
     Buffer = buffer;
     Ipt4   = ipt4;
 }