上期回顾(上期完成了IO监控的窗体界面的搭建,做了文本注释,以及状态框):本期我们探讨如何将PLC的输入输出捕捉到C#窗体上,实现监控状态,上期框架搭建完成后,本期将开始编写代码。1.0 为了读取PLC输入地址数据,需要调用EBRead方法,该方法用于读取PLC输入地址数据。在本例中,从0开始到1的2个字节,共16位,相当于I0.0~I1.7。var buffer = new byte[2];//读取PLC的输入地址0开始的2个字节的数据,读到bufferclient.EBRead(0, buffer.Length, buffer); //PLC的输入读取2.0 读取两个字节到缓冲区后,将第一个字节I0.0-I0.7的8位提取出来,并显示到Label控件OK中。var buffer = new byte[2];//读取DB1的从地址0开始的38个字节的数据,读到bufferclient.EBRead(0, buffer.Length, buffer); //PLC的输入读取byte db1da16 = S7.GetByteAt(buffer, 0);OK.Text = db1da16.ToString();3.0 接着,编写一个位的读取,将第一个字节的第一位I0.0单独提取出来,放入db1dbx00,然后根据true/false显示不同的背景色。bool db1dbx00 = S7.GetBitAt(buffer, 0, 0);if (db1dbx00 == true){I0_0.BackColor = Color.Green;}else{I0_0.BackColor = Color.White;}4.0 按照上述示例,依次编写I0.2和I1.0的点位反馈。bool db1dbx02 = S7.GetBitAt(buffer, 0, 2);if (db1dbx02 == true){I0_2.BackColor = Color.Green;}else{I0_2.BackColor = Color.White;}bool db1dbx10 = S7.GetBitAt(buffer, 1, 0);if (db1dbx10 == true){I1_0.BackColor = Color.Green;}else{I1_0.BackColor = Color.White;}