欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-27 21:54:17
Visual Studio 2010--C#跟西门子1200(Sharp7)窗体控制⑩--循环读取上期回顾(上期完成了IO监控的输入的监控的代码编写,分别监控I0.0,I0.1,I0.2,I1.0):本期我们说一下PLC输入输出监控的,输出状态的监控,跟输入差不多1.0 跟输入的读取差不多,都是写在定时器响应程序中,接着上次的输入读取,先新建缓存区,记得这个区域要跟输入区别,不能用同样的缓存区,另外输出的读取,这里调用的是ABRead的方法,这里仍旧从地址0开始读取2个字节的数据,就相....

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

 

上期回顾(上期完成了IO监控的输入的监控的代码编写,分别监控I0.0,I0.1,I0.2,I1.0):

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

本期我们说一下PLC输入输出监控的,输出状态的监控,跟输入差不多

1.0 跟输入的读取差不多,都是写在定时器响应程序中,接着上次的输入读取,先新建缓存区,记得这个区域要跟输入区别,不能用同样的缓存区,另外输出的读取,这里调用的是ABRead的方法,这里仍旧从地址0开始读取2个字节的数据,就相当于读取Q0.0-Q1.7的数据

var buffer2 = new byte[2];

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

            client.ABRead(0, buffer2.Length, buffer2); //PLC的输出读取

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

2.0 当把PLC的输出数据读取到缓冲区的时候,我们要把他拿出来了,先试着把他单字节拿出来,代码如下,用一个局部字节变量db1da162,接收转换缓冲区的变量,接收后的数据显示到Label控件NOK上

var buffer2 = new byte[2];

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

            client.ABRead(0, buffer2.Length, buffer2); //PLC的输出读取

 

            byte db1da162 = S7.GetByteAt(buffer2, 0);

            NOK.Text = db1da162.ToString();

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

3.0 用BOOL变量db1dbx000,来接收缓存区buffer2中,0字节的0位,相当于读取的是Q0.0的数据,然后根据读取的数据显示不同的Lable控件的背景色

var buffer2 = new byte[2];

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

            client.ABRead(0, buffer2.Length, buffer2); //PLC的输出读取

 

            byte db1da162 = S7.GetByteAt(buffer2, 0);

            NOK.Text = db1da162.ToString();

 

            bool db1dbx000 = S7.GetBitAt(buffer2, 0, 0);

            if (db1dbx000 == true)

            {

                Q0_0.BackColor = Color.Green;

            }

            else

            {

                Q0_0.BackColor = Color.WhiteSmoke;

            }

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

4.0 如上所述,照样子写下Q0.1,Q0.2,Q1.0的读取代码,如下图,到这里输出输入监控的测试代码都写完了

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

 

 

本文地址:https://blog.csdn.net/danikor/article/details/107636819