/// <summary> Проба получения новых данных заливки с контроллера, вызов с таймера </summary> /// <param name="secondsBegin">секунд продолжается заливка</param> /// <param name="error">ошибка чтения ПЛК</param> /// <param name="mix">данные заливки</param> /// <returns>Есть новые данные по заливке</returns> public bool TryNewMixTick(out int secondsBegin, out int error, out Mix mix) { var result = false; secondsBegin = 0; error = 0; mix = null; var r = _client.ConnectTo(_address, 0, 2); if (r == 0) { var run = _connector.NowMixRunning(out secondsBegin, out bool begin, out bool end); _connector.GetNewDataFromPLCToBuffetDbTick(); var count = _connector.UpdateBuffer(begin); if (begin) { _edgeFrontBegin = true; } if (_edgeFrontBegin && count <= 1) { _connector.SetNewMixFromBuffer(); _connector.ClearBuffer(); _edgeFrontBegin = false; } if (end) { mix = _connector.GetUpdatedMix(); if (mix != null) { result = true; } } if (_edgeFrontBegin) { Debug.WriteLine($"Начало заливки начато, число компонентов не в смесителе: {count}"); } } else { error = r; } _client.Disconnect(); return(result); }