我正在使用HMI显示从PLC远程采集的样本。由于采样率(5秒),当代码运行for循环时,它会使用相同的值填充行,因为它需要一些时间来更改。我试图添加一些“最后状态”条件,但我的代码从未真正解决过。
下面是显示数据表的代码,但是单行的每一列都显示相同的值。
public DataTable dt = new DataTable();
public void Bindgrid(DataTable dtnew)
{
if (dtnew != null)
{
dt = dtnew;
PicBox.Refresh();
}
}
public void loadgrid()
{
dt.Clear();
dt.Rows.Clear();
for (int i = 1; i <= 3; i++)
{
DataRow row = dt.NewRow();
row["NO"] = i.ToString();
for (int jval = 1; jval <= totalColumntoDisplay; jval++)
{
row[jval.ToString()] = measurement;
}
dt.Rows.Add(row);
}
dataGridView1.AutoResizeColumns();
dataGridView1.DataSource = dt;
dataGridView1.AutoResizeColumns();
}
public void loadGridColums()
{
dt.Columns.Add("No");
for (int jval = 1; jval <= totalColumntoDisplay; jval++)
{
dt.Columns.Add(jval.ToString());
}
}
private void timer2_Tick(object sender, EventArgs e)
{
measurement = "PLC sampling value";
loadgrid();
Bindgrid(dt);
lastmeasurement = measurement;
}
我用if(lastmeasurement!= measurement)
更改了for循环if(lastmeasurement!=measurement)
{
row[jval.ToString()] = measurement;
jvalue++;
}
但是列值(jvalue)从未改变过。
我唯一想要显示的是具有不同值的数据表(甚至数组),它的MEAN和标准偏差,但我很难以数据表中的方式显示这些数据。也许有一种更简单的方法来显示这些数据。
PS:我将采样值存储在数据库中,该数据库实际上与最后一个状态条件一起工作,如果它在某种程度上有用的话。