VisualStudio2010-C#跟西门子1200(Sharp7)-简单上位机界面⑤-数据
上期回顾(上期主要是对PLC数据块DB1的OK计数和NOK技术数据,读取到电脑上,在C#上显示,上期主要是做了界面)
本期将对上次做的界面控件,赋予生命,写代码
1.0 双击定时器timer1,在定时器响应程序中,添加代码
//******************************
var buffer3 = new byte[8];
//读取DB1的从地址16开始的8个字节的数据,读到buffer
client.DBRead(1,16, buffer3.Length, buffer3); //PLC的输出读取
//把缓冲区前4个字节,显示到OK控件文本上
int db1da16 = S7.GetDIntAt(buffer3, 0);
OK_A.Text = db1da16.ToString();
//把缓冲区的后4个字节32位,显示到NOK控件文本上
int db1da20 = S7.GetDIntAt(buffer3, 4);
NOK_A.Text = db1da20.ToString();
2.0 这里要补充一句,在这个定时器响应程序的前面,是要先建立通讯的,这里我们是把这个定时器响应程序,当成PLC跟C#的循环通讯响应程序,具体的源代码如下:
private void timer1_Tick(object sender, EventArgs e)
{
var client = new S7Client();//创建S7客户端对象
client.ConnectTo("192.168.0.1", 0, 1);//接受来次通讯的结果
}
3.0 保存,按F5调试,正常你应该就能读取到PLC的数据了,这里要注意,PLC的目标数据块以及地址,读取的字节