VisualStudio2010-C#跟西门子1200(Sharp7)-简单上位机界面⑨-IO
上期回顾(上期主要是对PLC的输出监控代码进行了编写,让其在定时器响应程序中,不断实时读取PLC,到这里IO监控的输入输出读取都已经实现了)
本期将调试下,看是不是能实时读取到PLC输入输出的状态
1.0 先看下我们前面制作的界面,大体上是这样的
2.0 然后我们的代码应该是这样的
private void timer1_Tick(object sender, EventArgs e)
{
var client = new S7Client();//创建S7客户端对象
client.ConnectTo("192.168.0.1", 0, 1);//接受来次通讯的结果
#region PLC输入监控
var buffer = new byte[4];//建立4个字节的读取缓存区
//读取输入的从地址0开始的4个字节的数据,读到buffer
client.EBRead(0, buffer.Length, buffer); //PLC的输入读取
bool db1dbx00 = S7.GetBitAt(buffer, 0, 0);
if (db1dbx00 == true)
{
I0_0.BackColor = Color.Green;
}
else
{
I0_0.BackColor = Color.WhiteSmoke;
}
bool db1dbx01 = S7.GetBitAt(buffer, 0, 1);
if (db1dbx01 == true)
{
I0_1.BackColor = Color.Green;
}
else
{
I0_1.BackColor = Color.WhiteSmoke;
}
bool db1dbx02 = S7.GetBitAt(buffer, 0, 2);
if (db1dbx02 == true)
{
I0_2.BackColor = Color.Green;
}
else
{
I0_2.BackColor = Color.WhiteSmoke;
}
bool db1dbx03 = S7.GetBitAt(buffer, 0, 3);
if (db1dbx03 == true)
{
I0_3.BackColor = Color.Green;
}
else
{
I0_3.BackColor = Color.WhiteSmoke;
}
bool db1dbx04 = S7.GetBitAt(buffer, 0, 4);
if (db1dbx04 == true)
{
I0_4.BackColor = Color.Green;
}
else
{
I0_4.BackColor = Color.WhiteSmo