/// <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; }
/// <summary> /// Вычисляет текущее значение Параметр Ходы Насоса 1 /// Вычисляется в каждом такте. /// </summary> /// <param name="v1">Параметр Ходы Насоса 1 с Аналогового сигнала</param> /// <param name="v2">Параметр Ходы Насоса 1 АСУ</param> public void Calculate(P0008 v1, P0011 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(); } } }
/// <summary> /// Вычисляет текущее значение Параметр Ходы Насоса 1 /// Вычисляется в каждом такте. /// </summary> /// <param name="v1">Параметр Ходы Насоса 1 с Аналогового сигнала</param> /// <param name="v2">Параметр Ходы Насоса 1 АСУ</param> public void Calculate(P0008 v1, P0011 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(); } } }
/// <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; }