private void MeasurementTimer_Tick(object sender, EventArgs e) { try { Single PTSA, HM, temp; ushort[] data = master.ReadInputRegisters(byte.Parse(ModbusAddrTextBox.Text), 46001 - 1, 8); UInt32 tData = ((UInt32)data[1] << 16) + data[0]; byte[] temp_bytes = BitConverter.GetBytes(tData); PTSA = BitConverter.ToSingle(temp_bytes, 0); tData = ((UInt32)data[5] << 16) + data[4]; temp_bytes = BitConverter.GetBytes(tData); temp = BitConverter.ToSingle(temp_bytes, 0); tData = ((UInt32)data[7] << 16) + data[6]; temp_bytes = BitConverter.GetBytes(tData); HM = BitConverter.ToSingle(temp_bytes, 0); DateTime CrtTime = new DateTime(); CrtTime = DateTime.Now; if (senortype == SenorType.ST_510 || senortype == SenorType.Unknow) { ValueLabel1.Text = "PTSA: " + PTSA.ToString() + "ppb"; ValueLabel2.Text = "HM: " + HM.ToString() + "%"; ValueLabel3.Text = "temp: " + temp.ToString() + " "; } File.AppendAllText(SnTextBox.Text + ".csv", CrtTime.ToString() + "," + PTSA.ToString("F2") + "," + HM.ToString("F1") + "," + temp.ToString("F1") + "\r\n"); } catch (System.Exception ex) { MessageBox.Show(ex.Message); } finally { } }