예제 #1
0
        /// <summary>
        /// Вычисляет значение параметра Расход на входе по Ходам Насоса с Аналогового сигнала
        /// </summary>
        /// <param name="pump1">Ходы насоса 1</param>
        /// <param name="pump2">Ходы насоса 2</param>
        /// <param name="diameter1">Диаметр цилиндра насоса 1</param>
        /// <param name="diameter2">Диаметр цилиндра насоса 2</param>
        public void Calculate(P0008 pump1, P08_1 pump2, P0014 diameter1, P14_1 diameter2)
        {
            float v = float.NaN;

            if (!float.IsNaN(pump1.Value))
            {
                if (!float.IsNaN(diameter1.Value))
                {
                    v = CalculateFlow(pump1.Value, diameter1.Value) * scale_factor_1;
                }
            }

            if (!float.IsNaN(pump2.Value))
            {
                if (!float.IsNaN(diameter2.Value))
                {
                    float v2 = CalculateFlow(pump2.Value, diameter2.Value) * scale_factor_2;
                    if (!float.IsNaN(v2))
                    {
                        if (float.IsNaN(v))
                        {
                            v = 0;
                        }
                        v = v + v2;
                    }
                }
            }

            _value = v;
        }
예제 #2
0
        /// <summary>
        /// Вычисляет текущее значение Параметр Ходы Насоса 2
        /// </summary>
        /// <param name="v1">Параметр Ходы Насоса 2 с Аналогового сигнала</param>
        /// <param name="v2">Параметр Ходы Насоса 2 АСУ</param>
        public void Calculate(P08_1 v1, P11_1 v2)
        {
            if (slim.TryEnterWriteLock(300))
            {
                try
                {
                    switch (_source)
                    {
                    case SourceMoving.Analog:

                        _value = v1.Value;
                        break;

                    case SourceMoving.Asy:

                        _value = v2.Value;
                        break;

                    default:
                        break;
                    }
                }
                finally
                {
                    slim.ExitWriteLock();
                }
            }
        }
예제 #3
0
파일: P0117.cs 프로젝트: slawer/sgt
        /// <summary>
        /// Вычисляет текущее значение Параметр Ходы Насоса 2
        /// </summary>
        /// <param name="v1">Параметр Ходы Насоса 2 с Аналогового сигнала</param>
        /// <param name="v2">Параметр Ходы Насоса 2 АСУ</param>
        public void Calculate(P08_1 v1, P11_1 v2)
        {
            if (slim.TryEnterWriteLock(300))
            {
                try
                {
                    switch (_source)
                    {
                        case SourceMoving.Analog:

                            _value = v1.Value;
                            break;

                        case SourceMoving.Asy:

                            _value = v2.Value;
                            break;

                        default:
                            break;
                    }
                }
                finally
                {
                    slim.ExitWriteLock();
                }
            }
        }
예제 #4
0
파일: P0109.cs 프로젝트: slawer/sgt
        /// <summary>
        /// Вычисляет значение параметра Расход на входе по Ходам Насоса с Аналогового сигнала
        /// </summary>
        /// <param name="pump1">Ходы насоса 1</param>
        /// <param name="pump2">Ходы насоса 2</param>
        /// <param name="diameter1">Диаметр цилиндра насоса 1</param>
        /// <param name="diameter2">Диаметр цилиндра насоса 2</param>
        public void Calculate(P0008 pump1, P08_1 pump2, P0014 diameter1, P14_1 diameter2)
        {
            float v = float.NaN;
            if (!float.IsNaN(pump1.Value))
            {
                if (!float.IsNaN(diameter1.Value))
                {
                    v = CalculateFlow(pump1.Value, diameter1.Value) * scale_factor_1;
                }
            }

            if (!float.IsNaN(pump2.Value))
            {
                if (!float.IsNaN(diameter2.Value))
                {
                    float v2 = CalculateFlow(pump2.Value, diameter2.Value) * scale_factor_2;
                    if (!float.IsNaN(v2))
                    {
                        if (float.IsNaN(v)) v = 0;
                        v = v + v2;
                    }
                }
            }

            _value = v;
        }