private void DataAcquisition() { while (true) { LogHelper.Log(LogTarget.File, LogService.SCADACrunching, " INFO - SCADACrunching.cs - Data acquisition, new measurement ciclus."); timestamp = DateTime.Now; lock (SCADAModel.Instance.Lock2PC) { foreach (var analogValue in scadaModel.AnalogValues) { var value = client.ReadHoldingRegisters2(analogValue.Address, 1); SynchronousMachine syncMachine = adapter.GetSyncMachineByGid(analogValue.SynchronousMachine); if (syncMachine == null) { LogHelper.Log(LogTarget.File, LogService.SCADACrunching, " ERROR - SCADACrunching.cs - Data acquisition, Synchronous machine is not assigned to analog value."); throw new Exception("Synchronous machine is not assigned to analog value."); } analogValue.Value = RawValuesConverter.ConvertRange(value[0], RAW_MIN, RAW_MAX, EGU_MIN, EGU_MAX); analogValue.Timestamp = timestamp.Ticks; } SCADASubscriber.Instance.NotifySubscribers(DMSType.ANALOGVALUE); } Thread.Sleep(3000); } }