/*Modbus开始读取数据*/ private void BeginReadData() { try { ushortdata.Clear(); modbusTcpDriver.ReadHoldingRegisters(Convert.ToUInt16("1065"), Convert.ToUInt16("14"), ref ushortdata); AirData ad = new AirData(); ad.airTemperature1 = ((decimal)ushortdata[0] / 10).ToString(); ad.airHumidity1 = ((decimal)ushortdata[1] / 10).ToString();; ad.pm251 = ushortdata[2].ToString(); ad.cH2O1 = ushortdata[3].ToString(); ad.pm101 = ushortdata[4].ToString(); ad.cO21 = ushortdata[5].ToString(); ad.tVoc1 = ((decimal)ushortdata[6] / 10).ToString(); ad.airTemperature2 = ((decimal)ushortdata[7] / 10).ToString(); ad.airHumidity2 = ((decimal)ushortdata[8] / 10).ToString(); ad.pm252 = ushortdata[9].ToString(); ad.cH2O2 = ushortdata[10].ToString(); ad.pm102 = ushortdata[11].ToString(); ad.cO22 = ushortdata[12].ToString(); ad.tVoc2 = ((decimal)ushortdata[13] / 10).ToString(); string sql = string.Format(@"insert into CZFactoryAirQualitity (Area,Datetime,Tempetature,Humidity,[PM2.5],PM10,CO2,CH2O,TVOC) values ('1','{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')" , DateTime.Now, ad.airTemperature1, ad.airHumidity1, ad.pm251, ad.pm101, ad.cO21, ad.cH2O1, ad.tVoc1); // string sql1 = string.Format(@"insert into CZFactoryAirQualitity (Area,Datetime,Tempetature,Humidity,[PM2.5],PM10,CO2,CH2O,TVOC) // values ('2','{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')" // , DateTime.Now, ad.airTemperature2, ad.airHumidity2, ad.pm252, ad.pm102, ad.cO22, ad.cH2O2, ad.tVoc2); SqlUtil.ExcuteSql(sql); //SqlUtil.ExcuteSql(sql1); } catch (Exception estr) { //MessageBox.Show(estr.Message.ToString()); WriteLog(estr.Message); connnect(); BeginReadData(); } }
private void Form1_Load(object sender, EventArgs e) { connnect(); try { ushortdata.Clear(); modbusTcpDriver.ReadHoldingRegisters(Convert.ToUInt16("1065"), Convert.ToUInt16("14"), ref ushortdata); AirData ad = new AirData(); ad.airTemperature1 = ((decimal)ushortdata[0] / 10).ToString(); ad.airHumidity1 = ((decimal)ushortdata[1] / 10).ToString();; ad.pm251 = ushortdata[2].ToString(); ad.cH2O1 = ushortdata[3].ToString(); ad.pm101 = ushortdata[4].ToString(); ad.cO21 = ushortdata[5].ToString(); ad.tVoc1 = ((decimal)ushortdata[6] / 10).ToString(); ad.airTemperature2 = ((decimal)ushortdata[7] / 10).ToString(); ad.airHumidity2 = ((decimal)ushortdata[8] / 10).ToString(); ad.pm252 = ushortdata[9].ToString(); ad.cH2O2 = ushortdata[10].ToString(); ad.pm102 = ushortdata[11].ToString(); ad.cO22 = ushortdata[12].ToString(); ad.tVoc2 = ((decimal)ushortdata[13] / 10).ToString(); string sql2 = string.Format(@"insert into CZFactoryAirQualitity (Area,Datetime,Tempetature,Humidity,[PM2.5],PM10,CO2,CH2O,TVOC) values ('1','{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')" , DateTime.Now, ad.airTemperature1, ad.airHumidity1, ad.pm251, ad.pm101, ad.cO21, ad.cH2O1, ad.tVoc1); // string sql1 = string.Format(@"insert into CZFactoryAirQualitity (Area,Datetime,Tempetature,Humidity,[PM2.5],PM10,CO2,CH2O,TVOC) // values ('2','{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')" // , DateTime.Now, ad.airTemperature2, ad.airHumidity2, ad.pm252, ad.pm102, ad.cO22, ad.cH2O2, ad.tVoc2); SqlUtil.ExcuteSql(sql2); //SqlUtil.ExcuteSql(sql1); } catch (Exception estr) { WriteLog(estr.Message); connnect(); } timer3.Interval = 60000;//设置读取modbus数据时间为1分钟 timer3.Start(); this.KeyPreview = true; //查询最新一条数据结果 string sql0 = "select top 1 [PM2.5],PM10,Tempetature,Humidity ,CO2 ,TVOC,CH2O FROM CZFactoryAirQualitity where area='1' order by datetime desc"; SqlConnection conn0 = new SqlConnection("server=192.168.1.6;database=scz;uid=sa;pwd=flybarrier"); SqlDataAdapter sda0 = new SqlDataAdapter(sql0, conn0); DataTable dt0 = new DataTable(); sda0.Fill(dt0); conn0.Close(); if (dt0 != null && dt0.Rows.Count > 0) { //1、湿度 string sd = dt0.Rows[0]["Humidity"].ToString(); lblv_humidity.Text = sd; double shidu = double.Parse(sd); if (shidu > 60) { lbl_sdshd.Text = "潮湿"; } else if (shidu >= 30 && shidu <= 60) { lbl_sdshd.Text = "正常"; } else if (shidu < 30) { lbl_sdshd.Text = "干燥"; } //2、二氧化碳-->甲醛 string CO2 = dt0.Rows[0]["CH2O"].ToString(); int co2 = int.Parse(CO2); if (co2 >= 100) { lbl_eyht.Text = "超标"; } else if (co2 < 100 && co2 > 0) { lbl_eyht.Text = "正常"; } lblv_co2.Text = CO2; //3、TVOC string tv = dt0.Rows[0]["TVOC"].ToString(); lblv_tvoc.Text = tv; double tvoc = double.Parse(tv); if (tvoc <= 2) { lbl_tvocshd.Text = "正常"; } else if (tvoc > 2) { lbl_tvocshd.Text = "超标"; } //4、温度 string wd = dt0.Rows[0]["Tempetature"].ToString(); double wendu = double.Parse(wd); if (wendu > 12 && wendu < 19) { lbl_wdshd.Text = "凉爽"; } else if (wendu >= 19 && wendu <= 24) { lbl_wdshd.Text = "舒适"; } else if (wendu <= 12) { lbl_wdshd.Text = "寒冷"; } else if (wendu > 24 && wendu < 28) { lbl_wdshd.Text = "温暖"; } else if (wendu >= 28) { lbl_wdshd.Text = "炎热"; } lblv_temperature.Text = wd; //5、pm2.5的值 string pm = dt0.Rows[0]["PM2.5"].ToString(); int pm25 = int.Parse(pm); lblv_pm.Text = pm.ToString(); //判断pm2.5的值大小绘制不同的颜色提醒 if (pm25 > 0 && pm25 <= 35) { lblv_pm.ForeColor = Color.LimeGreen; Graphics gra = this.CreateGraphics(); Pen pen = new Pen(Color.LimeGreen, 3); gra.DrawEllipse(pen, 590, 280, 380, 380); lbl_con.Text = "优"; } else if (pm25 >= 36 && pm25 <= 75) { lblv_pm.ForeColor = Color.Yellow; Graphics gra = this.CreateGraphics(); Pen pen = new Pen(Color.Yellow, 3); gra.DrawEllipse(pen, 590, 280, 380, 380); lbl_con.Text = "良"; } else if (pm25 >= 76 && pm25 <= 115) { lblv_pm.ForeColor = Color.Orange; Graphics gra = this.CreateGraphics(); Pen pen = new Pen(Color.Orange, 3); gra.DrawEllipse(pen, 590, 280, 380, 380); lbl_con.Text = "轻度污染"; } else if (pm25 >= 116 && pm25 <= 150) { lblv_pm.ForeColor = Color.Red; Graphics gra = this.CreateGraphics(); Pen pen = new Pen(Color.Red, 3); gra.DrawEllipse(pen, 590, 280, 380, 380); lbl_con.Text = "中度污染"; } else if (pm25 >= 151 && pm25 <= 250) { lblv_pm.ForeColor = Color.Violet; Graphics gra = this.CreateGraphics(); Pen pen = new Pen(Color.Violet, 3); gra.DrawEllipse(pen, 590, 280, 380, 380); lbl_con.Text = "重度污染"; } else if (pm25 > 250) { lblv_pm.ForeColor = Color.Maroon; Graphics gra = this.CreateGraphics(); Pen pen = new Pen(Color.Maroon, 3); gra.DrawEllipse(pen, 590, 280, 380, 380); lbl_con.Text = "严重污染"; } } //全屏显示无边框 this.SetVisibleCore(false); this.FormBorderStyle = FormBorderStyle.None; this.WindowState = FormWindowState.Maximized; this.SetVisibleCore(true); //设置标题时间 lbl_date.Text = DateTime.Now.ToShortDateString(); lbl_week.Text = DateTime.Now.ToString("dddd"); lbl_time.Text = DateTime.Now.ToString("t"); timer1.Interval = 1000; timer1.Start(); timer2.Interval = 60000; timer2.Start(); //查询数据表中最新三条记录 string sql = string.Format(@"SELECT top 3 datetime '时间',[PM2.5],PM10,Tempetature '温度',Humidity '湿度',CO2 '二氧化碳',TVOC,CH2O FROM CZFactoryAirQualitity where area='1' order by datetime desc"); SqlConnection conn = new SqlConnection("server=192.168.1.6;database=scz;uid=sa;pwd=flybarrier"); SqlDataAdapter sda = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); sda.Fill(ds); conn.Close(); dataGridView1.DataSource = ds.Tables[0]; this.dataGridView1.RowHeadersVisible = false; //datagridview前面的空白部分去除 this.dataGridView1.AllowUserToAddRows = false; //去掉最后一行 //设置列宽 dataGridView1.Columns[0].Width = 192; dataGridView1.Columns[1].Width = 155; dataGridView1.Columns[2].Width = 155; dataGridView1.Columns[3].Width = 155; dataGridView1.Columns[4].Width = 155; dataGridView1.Columns[5].Width = 155; dataGridView1.Columns[6].Width = 155; dataGridView1.Columns[7].Width = 155; dataGridView1.Rows[0].Selected = false; //取消选中第一行 dataGridView1.ColumnHeadersHeight = 40; //设置表头高度 dataGridView1.ColumnHeadersDefaultCellStyle.Font = new Font("微软雅黑", 15); dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; //设置标题内容居中显示; foreach (DataGridViewColumn item in this.dataGridView1.Columns) { item.SortMode = DataGridViewColumnSortMode.NotSortable;//DataGridView列SortMode属性(排序模式)默认为Automatic 在此模式下,右边会预留一个小箭头 } dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; dataGridView1.ColumnHeadersDefaultCellStyle.BackColor = Color.FromArgb(0, 102, 204); dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = Color.White; }