Visual Studio 2010--C#跟西门子1200(Sharp7)窗体控制⑥--循环读取

 

上期回顾(上期完成了,循环读取Dint变量的,功能代码的主要编写):

Visual Studio 2010--C#跟西门子1200(Sharp7)窗体控制⑥--循环读取

本期将完成启动和定时器计数,然后调试,基本上就好了

1.0 因为我们需要他,当窗体开启时定时器就循环响应,一直刷新来自PLC的数据,因此,我们只需要当窗体开启后,直接启动定时器,后面也不用关,启动代码直接加载Form1里面

public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

            timer1.Start();

        }

}

Visual Studio 2010--C#跟西门子1200(Sharp7)窗体控制⑥--循环读取

2.0 下面在写个定时器的扫描计数,方便调试,很简单,先声明下 

//定时器计数

        int time_num = 0;

Visual Studio 2010--C#跟西门子1200(Sharp7)窗体控制⑥--循环读取

3.0 就在定时器响应程序timer1_Tick中,加上代码,变量time_num自加1,,然后输出到Lable中显示,Lable就把刚才做的OK的Lable复制一个好了,看下什么名字就行,这里是Lable5

private void timer1_Tick(object sender, EventArgs e)

        {

            var client = new S7Client();//创建S7客户端对象

            client.ConnectTo("192.168.0.1", 0, 1);//接受来次通讯的结果

            var buffer = new byte[38];

            //读取DB1的从地址0开始的38个字节的数据,读到buffer

            client.DBRead(1, 0, buffer.Length, buffer);

 

            int db1da16 = S7.GetDIntAt(buffer, 8);

            OK.Text = db1da16.ToString();

 

           // int db1da20 = S7.GetDIntAt(buffer, 12);

           // label4.Text = db1da20.ToString();

 

            time_num = time_num + 1;

            label5.Text = time_num.ToString();

 

            client.Disconnect();//断开

        }

4.0 这里代码就都写完了,接下来保存,按F5调试,如下图,PLC监控数据为6666,实际我们监控到的也是6666,如果你更改后,C#也会更改,并且定时器响应次数会以200MS一次的速度一直计数,这样你的数据就读取成功了

Visual Studio 2010--C#跟西门子1200(Sharp7)窗体控制⑥--循环读取

 

 

相关文章:

  • 2021-11-13
  • 2021-06-03
  • 2021-08-18
  • 2021-05-10
  • 2021-11-11
  • 2021-12-18
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-14
  • 2021-11-23
  • 2021-06-20
  • 2021-12-06
  • 2022-01-13
  • 2021-11-08
  • 2021-11-10
相关资源
相似解决方案